a片在线观看免费看视频_欧美婬片在线a_同性男男无遮挡无码视频_久久99狠狠色精品一区_《性妲己》电影在线观看_久久久99婷婷久久久久久_亚洲精品久久久久58_激情在线成人福利小电影_色婷婷久久综合五月激情网

0 賣盤信息
BOM詢價
電子百科詞庫 >at89s52單片機

at89s52單片機

[ 瀏覽次數:約2068次 ] 發布日期:2017-06-27

         AT89S52是一種低功耗、高性能CMOS 8位微控制器,具有8K 系統可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術制造,與工業80C51 產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統可編程,亦適于常規編程器。在單芯片上,擁有靈巧的8 CPU 和在系統可編程Flash,使得AT89S52在眾多嵌入式控制應用系統中得到廣泛應用。

at89s52單片機.jpg

目錄
AT89S52主要性能
AT89S52寄存器
AT89S52存儲器
AT89S52中斷源

AT89S52主要性能


1、與MCS-51單片機產品兼容;

28K字節在系統可編程Flash存儲器;

31000次擦寫周期;

4、全靜態操作:0Hz-33MHz;

5、三級加密程序存儲器;

632個可編程I/O口線;

7、三個16定時器/計數器;

86個中斷源;

9、全雙工UART串行通道;

10、低功耗空閑和掉電模式;

11、掉電后中斷可喚醒;

12、看門狗定時器;

13、雙數據指針;

14、掉電標識符。

AT89S52引腳說明

 

AT89S52 是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統可編

AT89S52-24PU Flash存儲器。使用Atmel 公司高密度非易失性存儲器技術制造,與工業80C51 產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統可編程,亦適于常規編程器。在單芯片上,擁有靈巧的8 CPU 和在系統可編程Flash,使得AT89S52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。 AT89S52具有以下標準功能: 8k字節Flash256字節RAM32 I/O 口線,看門狗定時器,2 個數據指針,三個16 位 定時器/計數器,一個6向量2級中斷結構,全雙工串行口。另外,AT89S52 可降至0Hz 靜態邏 輯操作,支持2種軟件可選擇節電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數

AT89S52引腳圖 DIP封裝 器、串口、中斷繼續工 作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。

P0

P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8TTL邏 輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。 當訪問外部程序和數據存儲器時,P0口也被作為低8位地址/數據復用。在這種模式下, P0不具有內部上拉電阻。 在flash編程時,P0口也用來接收指令字節;在程序校驗時,輸出指令字節。程序校驗 時,需要外部上拉電阻。

P1

P1 口是一個具有內部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅動4 TTL 邏輯電平。

此外,P1.0P1.1分別作定時器/計數器2的外部計數輸入(P1.0/T2)和定時器/計數器2 的觸發輸入(P1.1/T2EX)。 在flash編程和校驗時,P1口接收低8位地址字節。

引腳號第二功能:

P1.0 T2(定時器/計數器T2的外部計數輸入),時鐘輸出

P1.1 T2EX(定時器/計數器T2的捕捉/重載觸發信號和方向控制)

P1.5 MOSI(在系統編程用)

P1.6 MISO(在系統編程用)

P1.7 SCK(在系統編程用)

P2

P2 口是一個具有內部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅動

AT89S52引腳圖 PLCC封裝 4 TTL 邏輯電平。對P2 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。 在訪問外部程序存儲器或用16位地址讀取外部數據存儲器(例如執行MOVX @DPTR) 時,P2 口送出高八位地址。在這種應用中,P2 口使用很強的內部上拉發送1。在使用 8位地址(MOVX @RI)訪問外部數據存儲器時,P2口輸出P2鎖存器的內容。 在flash編程和校驗時,P2口也接收高8位地址字節和一些控制信號。

P3

P3 口是一個具有內部上拉電阻的8 位雙向I/O 口,p3 輸出緩沖器能驅動4 TTL 邏輯電平。 P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。 在flash編程和校驗時,P3口也接收一些控制信號。

端口引腳第二功能:

P3.0 RXD(串行輸入口)

P3.1 TXD(串行輸出口)

P3.2 INTO(外中斷0)

P3.3 INT1(外中斷1)

P3.4 TO(定時/計數器0)

P3.5 T1(定時/計數器1)

P3.6 WR(外部數據存儲器寫選通)

P3.7 RD(外部數據存儲器讀選通)

此外,P3口還接收一些用于FLASH閃存編程和程序校驗的控制信號。

RST

復位輸入。當振蕩器工作時,RST引腳出現兩個機器周期以上高電平將使單片機復位。

ALE/PROG

當訪問外部程序存儲器或數據存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數據存儲器時將跳過一個ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVXMOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執行外部程序時,應設置ALE禁止位無效。

PSEN

程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89S52由外部程序存儲器取指令(或數據)時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數據存儲器,將跳過兩次PSEN信號。

EA/VPP

外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH)EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內部會鎖存EA端狀態。如EA端為高電平(Vcc)CPU則執行內部程序存儲器的指令。FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp

AT89S52寄存器

 

并不是所有的地址都被定義了。片上沒有定義的地址是不能用的。讀這些地址,一般將得到一

AT89S52 特殊寄存器映象及復位值 個隨機數據;寫入的數據將會無效。

用戶不應該給這些未定義的地址寫入數據“1”。由于這些寄存器在將來可能被賦予新的功能,復位后,這些位都為“0”

定時器2寄存器:寄存器T2CON T2MOD 包含定時器2 的控制位和狀態位(如表2和表3所示),寄存器對RCAP2HRCAP2L是定時器2的捕捉/自動重載寄存器。

中斷寄存器:各中斷允許位在IE寄存器中,六個中斷源的兩個優先級也可在IE中設置。

2 T2CON:定時器/計數器2控制寄存器

T2CON 地址為0C8H 復位值:0000 0000B位可尋址

TF2

EXF2

RLCLK

TCLK

EXEN2

TR2

C/T2

CP/RL2

7

6

5

4

3

2

1

0

 

符號

功能

TF2

定時器2 溢出標志位。必須軟件清“0”。RCLK=1 或TCLK=1 時,TF2不

用置位。

EXF2

定時器2 外部標志位。EXEN2=1 時,T2EX 上的負跳變而出現捕捉或重載

時,EXF2 會被硬件置位。定時器2 打開,EXF2=1 時,將引導CPU執行定

時器2 中斷程序。EXF2 必須軟件清“0”。在向下/向上計數模式(DCEN=1)

下EXF2不能引起中斷。

RLCLK

串行口接收數據時鐘標志位。若RCLK=1,串行口將使用定時器2 溢出脈沖

作為串行口工作模式1 和3 的串口接收時鐘;RCLK=0,將使用定時器1計數

溢出作為串口接收時鐘。

TCLK

串行口發送數據時鐘標志位。若TCLK=1,串行口將使用定時器2 溢出脈沖作

為串行口工作模式1 和3 的串口發送時鐘;TCLK=0,將使用定時器1計數溢出

作為串口發送時鐘。

EXEN2

定時器2外部允許標志位。當EXEN2=1時,如果定時器2沒有用作串行時鐘,

T2EX(P1.1)的負跳變將引起定時器2 捕捉和重載。若EXEN2=0,定時器2

將視T2EX端的信號無效

TR2

開始/停止控制定時器2。TR2=1,定時器2開始工作

C/T2

定時器 2 定時/計數選擇標志位。C/T2 =0,定時; C/T2 =1,外部事件計

數(下降沿觸發)

CP/RL2

捕捉/重載選擇標志位。當EXEN2=1時, CP/RL2=1,T2EX出現負脈沖,會引

起捕捉操作;當定時器2溢出或EXEN2=1時T2EX出現負跳變,都會出現自動重載

操作。CP/RL2=0 將引起T2EX 的負脈沖。當RCKL=1或TCKL=1時,此標志位

無效,定時器2溢出時,強制做自動重載操作。

雙數據指針寄存器:為了更有利于訪問內部和外部數據存儲器,系統提供了兩路16位數據指針寄存器:位于SFR82H~83HDP0和位于84H85。特殊寄存器AUXR1DPS=0 選擇DP0;DPS=1 選擇DP1。用戶應該在訪問數據指針寄存器前先初始化DPS至合理的值。

3a AUXR:輔助寄存器

AUXR 地址:8EH 復位值:XXX00XX0B不可位尋址




WDIDLE

DISRTO



DISALE

7

6

5

4

3

2

1

0

預留擴展用

DISALE ALE使能標志位

DISALE 操作方式

0 ALE 1/6晶振頻率輸出信號

1 ALE 只有在執行MOVX MOVC指令時激活

DISRTO 復位輸出標志位

DISRTO

0看門狗(WDT)定時結束,Reset 輸出高電平

1 Reset 只有輸入

WDIDLE 空閑模式下WDT 使能標志位

WDIDLE

0 空閑模式下,WDT繼續計數

1 空閑模式下,WDT停止計數

掉電標志位:掉電標志位(POF)位于特殊寄存器PCON的第四位(PCON.4)。上電期間POF“1”POF可以軟件控制使用與否,但不受復位影響。

3b AUXR1:輔助寄存器1

AUXR1 地址:A2H 復位值:XXXXXXX0B

不可位尋址








DPS

7

6

5

4

3

2

1

0

預留擴展用

DPS 數據指針選擇位

DPS

0 選擇DPTR寄存器DP0LDP0H

1 選擇DPTR寄存器DP1LDP1H

AT89S52存儲器

 

MCS-51器件有單獨的程序存儲器和數據存儲器。外部程序存儲器和數據存儲器都可以64K尋址。

程序存儲器:如果EA引腳接地,程序讀取只從外部存儲器開始。

對于 89S52,如果EA VCC,程序讀寫先從內部存儲器(地址為0000H1FFFH)開始,接著從外部尋址,尋址地址為:2000H~FFFFH

數據存儲器:AT89S52 256 字節片內數據存儲器。高128 字節與特殊功能寄存器重疊。也就是說高128字節與特殊功能寄存器有相同的地址,而物理上是分開的。

當一條指令訪問高于7FH 的地址時,尋址方式決定CPU 訪問高128 字節RAM 還是特殊功能寄存器空間。直接尋址方式訪問特殊功能寄存器(SFR)

例如,下面的直接尋址指令訪問0A0H(P2)存儲單元MOV 0A0H , #data使用間接尋址方式訪問高128 字節RAM。例如,下面的間接尋址方式中,R0 內容為0A0H,訪問的是地址0A0H的寄存器,而不是P2(它的地址也是0A0H)

MOV @R0 , #data堆棧操作也是間接尋址方式。因此,高128字節數據RAM也可用于堆棧空間。

片上資源

 

看門狗定時器

WDT是一種需要軟件控制的復位方式。WDT 13位計數器和特殊功能寄存器中的看門狗定時器復位存儲器(WDTRST)構成。WDT 在默認情況下無法工作;為了激活WDT,用戶必須往WDTRST寄存器(地址:0A6H)中依次寫入01EH 0E1H。當WDT激活后,晶振工作,WDT在每個機器周期都會增加。WDT計時周期依賴于外部時鐘頻率。除了復位(硬件復位或WDT溢出復位),沒有辦法停止WDT工作。當WDT溢出,它將驅動RSR引腳一個高電平輸出。

WDT的使用為了激活WDT,用戶必須向WDTRST寄存器(地址為0A6HSFR)依次寫入01EH0E1H。當WDT激活后,用戶必須向WDTRST寫入01EH0E1H喂狗來避免WDT溢出。當計數達到8191(1FFFH)時,13 位計數器將會溢出,這將會復位器件。晶振正常工作、WDT激活后,每一個機器周期WDT 都會增加。為了復位WDT,用戶必須向WDTRST 寫入01EH 0E1H(WDTRST 是只讀寄存器)WDT計數器不能讀或寫。

WDT計數器溢出時,將給RST引腳產生一個復位脈沖輸出,這個復位脈沖持續96個晶振周期(TOSC),其中TOSC=1/FOSC。為了很好地使用WDT,應該在一定時間內周期性寫入那部分代碼,以避免WDT復位。

掉電和空閑方式下的 WDT在掉電模式下,晶振停止工作,這意味這WDT也停止了工作。在這種方式下,用戶不必喂狗。有兩種方式可以離開掉電模式:硬件復位或通過一個激活的外部中斷。通過硬件復位退出掉電模式后,用戶就應該給WDT喂狗,就如同通常AT89S52 復位一樣。

通過中斷退出掉電模式的情形有很大的不同。中斷應持續拉低很長一段時間,使得晶振穩定。當中斷拉高后,執行中斷服務程序。為了防止WDT在中斷保持低電平的時候復位器件,WDT 直到中斷拉低后才開始工作。這就意味著WDT 應該在中斷服務程序中復位。

為了確保在離開掉電模式最初的幾個狀態WDT不被溢出,最好在進入掉電模式前就復位WDT

在進入待機模式前,特殊寄存器AUXRWDIDLE位用來決定WDT是否繼續計數。

默認狀態下,在待機模式下,WDIDLE=0WDT繼續計數。為了防止WDT在待機模式下復位AT89S52,用戶應該建立一個定時器,定時離開待機模式,喂狗,再重新進入待機模式。

UART

AT89S52 中,UART 的操作與AT89C51AT89C52一樣。為了獲得更深入的關于UART 的信息,選擇“Products”,然后選擇“8051-Architech Flash Microcontroller”,再選擇“ProductOverview”即可。

定時器 0 和定時器1

AT89S52 中,定時器0 和定時器1 的操作與AT89C51 AT89C52 一樣。為了獲得更深入的關于UART 的信息,選擇“Products”,然后選擇“8051-Architech Flash Microcontroller”,再選擇“ProductOverview”即可。

定時器 2

定時器2是一個16位定時/計數器,它既可以做定時器,又可以做事件計數器。其工作方式由特殊寄存器T2CON中的C/T2位選擇(如表2所示)。定時器2有三種工作模式:

捕捉方式、自動重載(向下或向上計數)和波特率發生器。如表3 所示,工作模式由T2CON中的相關位選擇。定時器2 2 8位寄存器:TH2TL2。在定時工作方式中,每個機器周期,TL2寄存器都會加1。由于一個機器周期由12 個晶振周期構成,因此,計數頻率就是晶振頻率的1/12。表 3定時器2工作模式

RCLK+TCLK

CP/RL2

TR2

MODE

0

0

1

16位自動重載

0

1

1

16位捕捉

1

x

1

波特率發生器

x

x

0

(不用)

捕捉方式在捕捉模式下,通過T2CON中的EXEN2來選擇兩種方式。

5 定時器的捕捉模式 如果EXEN2=0,定時器2時一個16位定時/計數器,溢出時,對T2CON TF2標志置位,TF2引起中斷。如果EXEN2=1,定時器2做相同的操作。除上述功能外,外部輸入T2EX引腳(P1.1)10的下跳變也會使得TH2TL2中的值分別捕捉到RCAP2HRCAP2L中。除此之外,T2EX 的跳變會引起T2CON 中的EXF2 置位。像TF2 一樣,T2EX 也會引起中斷。捕捉模式如圖5所示。在計數工作方式下,寄存器在相關外部輸入角T2 發生1 0 的下降沿時增加1。在這種方式下,每個機器周期的S5P2期間采樣外部輸入。一個機器周期采樣到高電平,而下一個周期采樣到低電平,計數器將加1。在檢測到跳變的這個周期的S3P1 期間,新的計數值出現在寄存器中。因為識別1-0的跳變需要2個機器周期(24個晶振周期),所以,最大的計數頻率不高于晶振頻率的1/24。為了確保給定的電平在改變前采樣到一次,電平應該至少在一個完整的機器周期內保持不變。

自動重載當定時器2 工作于16 位自動重載模式,可對其編程實現向上計數或向下計數。這一功能可以通過特殊寄存器T2MOD(見表4)中的DCEN(向下計數允許位)來實現。通過復位,DCEN 被置為0,因此,定時器2 默認為向上計數。DCEN 設置后,定時器2就可以取決于T2EX向上、向下計數。

如圖6 所示,DCEN=0 時,定時器2 自動計數。通過T2CON 中的EXEN

6 定時器2重載模式(DCEN=0) 2 位可以選擇兩種方式。如果EXEN2=0,定時器2計數,計到0FFFFH后置位TF2溢出標志。計數溢出也使得定時器寄存器重新從RCAP2H RCAP2L 中加載16 位值。定時器工作于捕捉模式,RCAP2HRCAP2L的值可以由軟件預設。如果EXEN2=1,計數溢出或在外部T2EX(P1.1)引腳上的10的下跳變都會觸發16位重載。這個跳變也置位EXF2中斷標志位。T2EX 上的一個邏輯0 使得定時器2 向下計數。當TH2 TL2 分別等于RCAP2H RCAP2L中的值的時候,計數器下溢。計數器下溢,置位TF2,并將0FFFFH加載到定時器存儲器中。如圖6所示,置位DCEN,允許定時器2向上或向下計數。在這種模式下,T2EX引腳控制著計數的方向。T2EX上的一個邏輯1使得定時器2向上計數。定時器計到0FFFFH溢出,并置位TF2。定時器的溢出也使得RCAP2HRCAP2L中的16位值分別加載到定時器存儲器TH2TL2中。

定時器2上溢或下溢,外部中斷標志位EXF2 被鎖死。在這種工作模式下,EXF2不能觸發中斷。

4 T2MOD-定時器2控制寄存器

T2MOD 地址:0C9H 復位值:XXXXXX00B

不可位尋址







T2OE

DCEN

7

6

5

4

3

2

1

0

 

符號

功能


無定義,預留擴展


定時器2輸出允許位


置1后,定時器2可配置成向上/向下計數

AT89S52中斷源

 

AT89S52 6個中斷源:兩個外部中斷(INT0 INT1),三個定時中斷(定時器012)和一個串行中斷。這些中斷如圖10所示每個中斷源都可以通過置位或清除特殊寄存器IE 中的相關中斷允許控制位分別使得中斷源有效或無效。IE還包括一個中斷允許總控制位EA,它能一次禁止所有中斷。

如表5所示,IE.6位是不可用的。對于AT89S52IE.5位也是不能用的。用戶軟件不應給這些位寫1。它們為AT89系列新產品預留。

定時器2可以被寄存器T2CON中的TF2EXF2的或邏輯觸發。程序進入中斷服務后,這些標志位都可以由硬件清0。實際上,中斷服務程序必須判定是否是TF2 EXF2激活中斷,標志位也必須由軟件清0

定時器0和定時器1標志位TF0 TF1在計數溢出的那個周期的S5P2被置位。它們的值一直到下一個周期被電路捕捉下來。然而,定時器2 的標志位TF2 在計數溢出的那個周期的S2P2被置位,在同一個周期被電路捕捉下來。

4 中斷允許控制寄存器(IE)

(MSB) (LSB)

EA


ET2

ES

ET1

EX1

ET0

EX0

中斷允許控制位=1,允許中斷

中斷允許控制位=0,禁止中斷

符號

位地址

功能

EA

IE.7

中斷總允許控制位。EA=0,中斷總禁止;EA=1,各中斷

由各自的控制位設定


IE.6

預留

ET2

IE.5

定時器2中斷允許控制位

ES

IE.4

串行口中斷允許控制位

ET1

IE.3

定時器1中斷允許控制位

EX1

IE.2

外部中斷1允許控制位

ET0

IE.1

定時器0中斷允許控制位

EX0

IE.0

外部中斷0允許控制位

 


相關資訊

拍明芯城微信圖標

各大手機應用商城搜索“拍明芯城”

下載客戶端,隨時隨地買賣元器件!

拍明芯城公眾號
拍明芯城抖音
拍明芯城b站
拍明芯城頭條
拍明芯城微博
拍明芯城視頻號