第二章-AT89系列單片機硬件體系結構n課件_第1頁
第二章-AT89系列單片機硬件體系結構n課件_第2頁
第二章-AT89系列單片機硬件體系結構n課件_第3頁
第二章-AT89系列單片機硬件體系結構n課件_第4頁
第二章-AT89系列單片機硬件體系結構n課件_第5頁
已閱讀5頁,還剩84頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、12022/10/14單片機原理與應用電子課件第 2 章AT89系列單片機的硬件體系結構 12022/10/11單片機原理與應用電子課件第 2 章AT2022/10/142本章主要內容2.1 AT89系列單片機概述2.2AT89系列單片機的結構原理2.3 AT89系列單片機的存儲器結構2.4 AT89系列單片機的引腳功能2.5 AT89系列單片機的I/O接口2.6AT89S系列單片機內部看門狗定時器(WDT) 2.7 AT89系列單片機的復位工作方式2.8 AT89系列單片機的低功耗方式2.9 AT89系列單片機的時序2022/10/112本章主要內容2.1 AT89系列單片機2022/10/

2、143第 2 章 AT89系列單片機的硬件體系結構 ATMEL公司是美國20世紀80年代中期成立并發(fā)展起來的半導體公司。該公司率先將獨特的Flash存儲技術注入于單片機產品中。其推出的AT89系列單片機,在世界電子技術行業(yè)中引起了極大的反響,在國內也受到廣大用戶的歡迎。 本章以AT89S51為主線敘述AT89XXX系列單片機的內部結構、引腳功能、工作方式和時序等方面的知識,本章的知識是學習后續(xù)章節(jié)的基礎,也是單片機應用系統硬件設計的基礎。 2022/10/113第 2 章 AT89系列單片機的硬件體第二章-AT89系列單片機硬件體系結構n課件2022/10/1452.1 AT89系列單片機概述

3、2.1.1 AT89系列單片機簡介 AT89系列單片機是與MCS51系列單片機兼容的低功耗高性能位Flash單片機。它是在MCS-51的技術內核為主導的基礎上傾注了ATMEL公司優(yōu)良技術進行新的設計和開發(fā),使之功能更強、更具特色,尤其是AT89S系列單片機具有在系統可程序設計功能,使生產維護更加方便靈活。 2022/10/1152.1 AT89系列單片機概述2.1.2022/10/1462.1.2 AT89系列單片機的主要性能與MCS-51單片機產品兼容4K/8K等可程序設計Flash內存1000次擦寫周期全靜態(tài)操作:0Hz33MHz(89S系列)或00Hz24MHz(89C系列)三級加密程序

4、內存32個可程序設計I/O口線兩個/三個16位定時器/計數器6/8個中斷源全雙工UART串行通道低功耗空閑和掉電模式看門狗定時器及雙數據指針(89S系列)靈活的在系統程序設計(ISP)(89S系列) 2022/10/1162.1.2 AT89系列單片機的主要性2022/10/1472.1.3 AT89系列單片機的主要品種 Atmel公司的AT89系列單片機有多種型號,但以AT89X51和AT89X52為代表,其主要單片機品種及其特性見表2-1。 2022/10/1172.1.3 AT89系列單片機的主要品PLCC(Plastic Leaded Chip Carrier),帶引線的塑料芯片載體.

5、表面貼裝型封裝之一,外形呈正方形,32腳封裝PLCC(Plastic Leaded Chip CarriPQFP(Plastic Quad Flat Package,塑料方塊平面封裝)一種芯片封裝形式,引腳總數一般都在100以上。PQFP(Plastic Quad Flat Package2022/10/14102.1.3 AT89系列單片機的主要品種 從表2-1中可以看出,AT89系列單片機主要分為51和52兩個子系列,每個子系列都有四種型號. 52子系列與51子系列相比不同之處: flash程序內存增至8KB,數據存儲器增至256B,有3個定時器/計數器等;AT89S和AT89C相比新增加

6、了以下功能: 支持在系統程序設計ISP 使生產及維護更方便;增加了片內看門狗使用戶的應用系統更堅固;雙數據指針使數據操作更加快捷方便;速度更高最高可使用33MHZ的晶振;AT89LS和AT89LV系列可以在更低的電壓(2.7V)和更寬的范圍下(2.7V6.0V)工作,使應用范圍更加廣泛。 2022/10/11102.1.3 AT89系列單片機的主要2022/10/14112.1.4 AT89系列單片機的型號編碼 AT89 系列單片機的型號編碼由三個部分組成,它們是前綴、型號和后綴,格式如下: AT 89XXXXXYYYY 其中AT 是前綴,89XXXXX 是型號,YYYY 是后綴。有關參數的表

7、示和意義如下:前綴由字母“AT”組成,表示該器件是ATMEL公司的產品。型號由“89CXXXX”或“89LVXXXX”或“89SXXXX”等表示?!?9CXXXX”中,9是表示內部含Flash內存,C表示為CMOS產品。“89LVXXXX”中,LV表示低壓產品。“89SXXXX”中,S表示含有串行下載Flash內存?!癤XXX”,表示器件型號數如51、52、53、1051、8252等2022/10/11112.1.4 AT89系列單片機的型號2022/10/1412 后綴由“YYYY”四個參數組成,每個參數的表示和意義不同。在型號與后綴部分有“-”號隔開。 后綴中的第一個參數 Y用于表示速度,

8、后綴中的第二個參數Y用于表示封裝,后綴中第三個參數 Y用于表示溫度范圍,后綴中第四個參數Y用于說明產品的處理情況。 例如:有一個單片機型號為“AT89C5112PI”,則表示意義為該單片機是 ATMEL公司的Flash單片機,內部是CMOS結構,速度為12 MHz,封裝為塑封DIP,是工業(yè)用產品,按標準處理工藝生產。 2022/10/1112 后綴由“YYYY”四個參第二章-AT89系列單片機硬件體系結構n課件2022/10/14142.2AT89系列單片機的結構原理2.2.1 AT89系列單片機的基本組成 圖2-1是AT89系列單片機的基本結構框圖。 圖2-1 AT89系列單片機的基本結構框

9、圖時序和振蕩電路程序存儲器 ROM數據存儲器RAM2個16位定時/計數器CPU內部8位數據總線中斷系統并行I/O口 串行I/O口內部中斷外部中斷 P0 P1 P2 P3 RXD TXD時鐘源外部事件2022/10/11142.2AT89系列單片機的結構原理RAM128BRAM地址寄存器P3口P1口P2口P0口鎖存器鎖存器鎖存器鎖存器中斷定時/計數器串行口SPBACC暫存器1暫存器2PSW指令寄存器IR指令譯碼器IDDPL緩沖器程序計數器PCPC增量器地址寄存器AR定時與控制4KROMALUDPH運算器控制器存儲器I/O接口圖2.2 AT89C51單片機的內部結構示意RAMRAM地址寄存器P3口

10、P1口P2口P0口鎖存器鎖存器鎖2022/10/14162.2.2 AT89系列單片機的內部框圖 圖2-2 是AT89S系列單片機的內部結構框圖。圖2-2 AT89S系列單片機的內部結構框圖2022/10/11162.2.2 AT89系列單片機的內部2022/10/14172.2.3 AT89系列單片機的CPU 中央處理器CPU是單片機的大腦,它決定了單片機的指令系統及主要功能。CPU由運算器和控制器兩部分組成,主要完成取指令、指令譯瑪、發(fā)出各種操作所需的控制信號,使單片機各個部分協調工作。1運算器 運算器是以算術邏輯單元ALU為核心,加上累加器A、寄存器B、程序狀態(tài)字PSW及專門用于位操作的

11、布爾處理機等組成的,它可以實現數據的算術運算、邏輯運算、位變量處理和數據傳送等操作。(1) 累加器ACC 累加器ACC是一個8位累加器,它是CPU中使用最頻繁的寄存器,ALU進行運算時,數據絕大多數時候都來自于累加器ACC。它一般用于存放參加運算的操作數和運算結果,在指令系統中用A表示。2022/10/11172.2.3 AT89系列單片機的CP2022/10/1418(2) B寄存器 B寄存器是運算器中的一個工作寄存器,它是為乘法和除法指令而設置的。在除法指令中,被除數取自ACC,除數取自B,商數存放在ACC中,而余數則存放在B中。乘法指令的兩個操作數分別取自ACC和B,乘積則存放在AB寄存

12、器對中(此處的A即ACC)。在其他的運算中,B寄存器可作為中間結果寄存器使用。(3)程序狀態(tài)字寄存器PSW 程序狀態(tài)字寄存器PSW是一個8位的寄存器,包含了各種程序狀態(tài)信息,它相當于一個標志寄存器,用來存放ALU操作結果的有關狀態(tài),以供程序查詢和判別。 表2.1 PSW各位定義表位編號PSW7PSW6PSW5PSW4PSW3PSW2PSW1PSW0位定義CYACF0RS1RS0OVP位地址D7HD6HD5HD4HD3HD2HD1HD0H2022/10/1118(2) B寄存器表2.1 P2022/10/1419此寄存器各位的含義如下(其中PSW.1未用):CY(PSW.7):進位標志。在執(zhí)行某

13、些算術和邏輯指令時,它可以被硬件或軟件置位或清零。CY在布爾處理機中被認為是位累加器,其重要性相當于一般中央處理器中的累加器A。AC(PSW.6):輔助進位標志。當進行加法或減法操作而產生由低4位數向高4位數進位或借位時,AC將被硬件置位,否則就被清零。AC被用于BCD碼調整,詳見指令系統中的“DA A”指令。F0(PSW.5):用戶標志位。F0是用戶定義的一個狀態(tài)標記,用軟件來使它置位或清零。該標志位狀態(tài)一經設定,可由軟件測試F0,以控制程序的流向。RS1、RS0(PSW.4、PSW.3):寄存器區(qū)選擇控制位。可以用軟件來置位或清零以確定工作寄存器區(qū)。RS1、RS0與寄存器區(qū)的對應關系見表2

14、-5。2022/10/1119此寄存器各位的含義如下(其中PSW.2022/10/1420OV(PSW.2):溢出標志。帶符號加減運算中,超出了累加器A所能表示的符號數有效范圍(128127)時,即產生溢出,OV=1,表明運算運算結果錯誤。如果OV=0,表明運算結果正確。執(zhí)行加法指令ADD時,當位6向位7進位,而位7不向C進位時,OV=1;或者位6不向位7進位,而位7向C進位時,同樣OV=1。乘法指令,乘積超過255時,OV=1,乘積在AB寄存器對中。若OV=0,則說明乘積沒有超過255,乘積只在累加器A中。表2-5 工作寄存器組R0R7的物理地址RS1 RS0工作寄存器組號R0R1的物理地址

15、0 00 11 01 1012300H 07H08H 0FH10H 17H18H 1FH2022/10/1120OV(PSW.2):溢出標志。帶符號2022/10/1421除法指令,OV=1,表示除數為0,運算不被執(zhí)行;否則,OV=0。 P(PSW.0):奇偶標志。每個指令周期都由硬件來置位或清零,以表示累加器A中1的位數的奇偶數。若1的位數為奇數,P置1,否則P清零。 P標志位對串行通信中的數據傳輸有重要的意義,在串行通信中常用奇偶校驗的辦法來檢驗數據傳輸的可靠性。在發(fā)送端可根據P的值對數據進行奇偶置位或清零。PSW.1:程序狀態(tài)字的第1位,該位的含義沒有定義,若用戶要使用這一位,可直接使用

16、PSW.1的位地址。PSW寄存器除具有字節(jié)地址外,還具有位地址,因此,可以對PSW中的任一位進行操作,這無疑大大提高了指令執(zhí)行的效率。2022/10/1121除法指令,OV=1,表示除數為0,運2022/10/1422例【 2-1 】 試分析下面指令執(zhí)行后,累加器A,標志位C、AC、OV、P的值?MOV A,#66HADD A,#58H分析:第一條指令執(zhí)行時把立即數66H送入累加器A,第二條指令執(zhí)行時把累加器A中的立即數66H與立即數58H相加,結果回送到累加器A中。加法運算過程如下: 66H=01100110B 58H=01011001B 0 1 1 0 0 1 1 0 B + 0 1 0

17、1 1 0 0 1 B 1 0 1 1 1 1 1 1=0BFH則執(zhí)行后累加器A中的值為0BFH,由相加過程得C=0、AC=0、OV=1、P=1。 2022/10/1122例【 2-1 】 試分析下面指令執(zhí)行2022/10/14232控制器 控制部件是單片機的控制中心,它包括定時和控制電路、指令寄存器、指令譯碼器、程序計數器PC、堆棧指針SP、數據指針DPTR以及信息傳送控制部件等。 它先以振蕩信號為基準產生CPU的時序,從ROM中取出指令到指令寄存器,然后在指令譯碼器中對指令進行譯碼,產生指令執(zhí)行所需的各種控制信號,送到單片機內部的各功能部件,指揮各功能部件產生相應的操作,完成指令對應的功能

18、。2022/10/11232控制器2022/10/1424(1)程序計數器PC 程序計數器PC用于存放CPU要執(zhí)行的下一條指令的地址。 執(zhí)行指令時,CPU按PC的指示地址從ROM中讀取指令碼送入指令寄存器中,由指令譯碼器對指令進行譯碼,發(fā)出相應的控制信號,從而完成指令所指定的操作。讀取指令后PC會自動+1指向CPU要執(zhí)行的下一條指令的地址。 系統復位后PC的初始值為0000H,因此CPU從ROM中0000H單元讀取指令并譯碼執(zhí)行。 程序計數器PC不屬于特殊功能寄存器SFR塊,本身并沒有地址,因而不可尋址,用戶無法對它進行讀/寫操作,但是可以通過轉移、調用、返回等指令改變其內容,以控制程序按要求

19、轉移。 2022/10/1124(1)程序計數器PC2022/10/1425 (2) 堆棧指針SP 堆棧指針SP是一個8位特殊功能寄存器。它指示出堆棧頂部在內部RAM中的位置。系統復位后,SP初始化為07H,使得堆棧事實上由08H單元開始??紤]到08H1FH單元分屬于工作寄存器區(qū)13,若程序設計中要用到這些區(qū),則最好把SP值改置為1FH或更大的值如60H。 除用軟件直接改變SP值外,在執(zhí)行PUSH、POP、各種子程序調用、中斷響應、子程序返回(RET)和中斷返回(RETI)等指令時,SP值將自動調整。2022/10/1125 (2) 堆棧指針SP2022/10/1426(3) 數據指針DPTR

20、 DPTR為16位的數據指針寄存器,由兩個8位的寄存器DPH和DPL組成,可存放一個16位的地址值。 當CPU訪問64KB的外部數據存儲器時,就用DPTR作地址指針,存放外部內存的地址; 當CPU訪問64KB的程序存儲器時,DPTR用作基址寄存器。 CPU也可單獨對DPH、DPL操作,即將DPTR分成兩個寄存器使用。 2022/10/1126(3) 數據指針DPTR2022/10/14272.3AT89系列單片機的存儲器結構 AT89系列單片機采用哈佛結構,有單獨的程序存儲器和數據存儲器。外部程序存儲器和數據存儲器都可以64K尋址。AT89系列單片機存儲器的結構如圖2-3所示。 圖2-3 AT

21、89系列單片機內存的結構EA=1時,若地址大于4k,則自動訪問外部RAM2022/10/11272.3AT89系列單片機的存儲器結2022/10/1428 2.3.1 AT89系列單片機的程序存儲器1AT89系列單片機程序存儲器ROM程序存儲器用于存放編好的程序、常數或表格。在正常工作時只可讀不可寫,掉電后數據不丟失。以AT89S51單片機為例:(1)片內具有4K的flash結構的電可擦除只讀存儲器,與INTEL公司早期產品的紫外線擦除的EPROM結構相比,使用更靈活更方便。(2)外部可以擴展64K的ROM,以滿足一些大程序的需要。 但是建議用戶盡量不要外擴ROM,因為當擴展外部ROM的時候,

22、系統要占有單片機的P0、P2口及P3口的部分口線作為總線。所以在大多數的應用場合,盡量選擇片內的FLASH內存的容量能夠滿足實際需要單片機型號,這樣不僅可以節(jié)省額外的硬件投資、節(jié)省單片機的口線資源,更重要的是片內FLASH中的程序在下載、燒寫時通過“加密”可以得到保護。只有當程序特別大,內部空間無法滿足要求時才選用擴展外部ROM。2022/10/1128 2.3.1 AT89系列單片機的程2022/10/1429 (3)程序內存最低端的地址可以在片內Flash中,或在外部ROM中。通過單片機/EA的引腳的電平來選擇。 例如,在帶有4KB片內Flash的AT89S51中,如果把/EA引腳連到Vc

23、c,當地址為0000H0FFFH時,則訪問內部Flash;當地址為1000HFFFFH時,將自動轉向外部程序內存。 如果/EA端接地,則只訪問外部程序內存,不管是否有內部Flash內存。2022/10/1129 (3)程序內存最低端的地址可以在片2022/10/14302AT89系列單片機程序存儲器管理(1)每個ROM單元(byte)對應一個惟一的16bit的地址編碼(Address)(2)CPU要到某個ROM單元去取指令,是通過把地址編碼寫入16位的程序計數器PC來實現的,因此AT89系列單片機地址的編碼范圍(通常稱為尋址范圍)為: 0000 0000 0000 0000B 1111 111

24、1 1111 1111B(二進制) 0 0 0 0 H F F F F H (十六進制) 0 65535 (十進制)(3)系統復位后,PC的初始值為0000H,以后的取值是CPU根據用戶程序的運行流程自動裝載的(程序順序執(zhí)行時,PC值自動加1;執(zhí)行轉移指令、子程序調用和中斷服務程序時,PC值分別等于轉移的目標地址、子程序或中斷服務程序的入口地址。 2022/10/11302AT89系列單片機程序存儲器管理2022/10/14313AT89系列單片機程序存儲器的分配 程序內存的某些單元是保留給系統使用的,這幾個單元的配置如圖2-4所示。 從圖2-4可知,單片機復位后,程序計數器PC的內容為000

25、0H,所以CPU總是從0000H單元開始執(zhí)行程序。系統分配的中斷區(qū)復位時PC=0000H,指向次地址外部中斷0定時器0外部中斷1定時器1串口定時器2溢出2022/10/11313AT89系列單片機程序存儲器的分2022/10/14323AT89系列單片機程序存儲器的分配 從地址0003H開始,系統每隔8個單元為6個中斷服務子程序分配有一個固定的入口地址。 中斷響應后,程序指針PC將自動根據中斷類型指向這些入口地址的某一個,CPU就從這里開始執(zhí)行中斷服務子程序。 因此從0003H單元開始的這段區(qū)域應該保留給中斷使用,所以程序設計時在0000H0002H單元放置一條轉移指令,跳過這段區(qū)域,轉到系統

26、主程序,除非系統不使用中斷,主程序才可以覆蓋這段區(qū)域。 2022/10/11323AT89系列單片機程序存儲器的分2022/10/14332.3.2 AT89系列單片機的數據存儲器 數據存儲器RAM用于存放程序中的“中間數據”或程序運行后的結果。掉電后內容會丟失。 與程序存儲器一樣,數據存儲器同樣可分為兩個地址空間:一個為內部256B內存空間,一個為外部擴展的64KB內存空間。 使用外部RAM同樣是要付出占用口資源為代價的,所以一般情況下不提倡使用外部RAM。 51系列單片機使用MOV指令訪問內部RAM空間,使用 MOVX指令訪問外部RAM空間。2022/10/11332.3.2 AT89系列

27、單片機的數據2022/10/14341.內部數據存儲器的結構 單片機的內部數據存儲器結構如圖2-5所示。片內數據存儲器地址范圍是00HFFH,只有256個字節(jié)。 對于51系列高128B被特殊功能寄存器占用。對于52等內部具有256B系列單片機,高128字節(jié)與特殊功能寄存器地址重迭。也就是說高128字節(jié)與特殊功能寄存器有相同的地址,而物理上是分開的。 圖2-5單片機的內部數據存儲器結構00H工作寄存器區(qū)020H2FH7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)R0R2R1R3R4R5R6R707H02H01H00H06H04H05H03H08H1FH工作

28、寄存器區(qū)3工作寄存器區(qū)2工作寄存器區(qū)10FH10H17H18HSFR當一條指令訪問高于7FH 的地址時,尋址方式決定CPU 訪問高128 字節(jié)RAM 還是特殊功能寄存器空間。2022/10/11341.內部數據存儲器的結構圖2-5單2022/10/1435直接尋址方式訪問特殊功能寄存器(SFR):例如:MOV 0A0H , #data,直接尋址指令訪問0A0H(P2口)存儲單元;間接尋址方式訪問高128 字節(jié)RAM:例如:當R0 內容為0A0H,指令MOV R0 , #data,訪問的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。(1)低128字節(jié)RAM區(qū)低128字節(jié)區(qū)的分配情

29、況如圖2-6所示。主要分為三個區(qū)域:工作寄存器組區(qū)、位尋址區(qū)和用戶RAM區(qū)。圖2-6 內部RAM低128字節(jié)區(qū)的分配2022/10/1135直接尋址方式訪問特殊功能寄存器(SF2022/10/14361)工作寄存器組區(qū) 最低32個單元(地址為00H1FH)是4個通用工作寄存器組。每個寄存器組含有8個8位寄存器,編號為R0R7。 程序狀態(tài)字PSW中的2位RS0、RS1用來確定當前采用哪一個工作寄存器組,其對應關系如前面的表2-3所示。 在某一時刻只能選用其中的一組寄存器工作,系統復位后,指向工作寄存器組0。如果用戶程序不需要4個工作寄存器區(qū),則不用的工作寄存器單元可以作一般的RAM使用。2022

30、/10/11361)工作寄存器組區(qū)2022/10/14372)位尋址區(qū) 內部RAM區(qū)中的20H2FH單元(16字節(jié))可供位尋址,這16個單元共有128位,每位均可直接尋址,其位地址范圍為00H7FH,具體情況見表2-6。 這些位地址有兩種表示方式:一種是采用位地址形式,即00H7FH; 一種是用字節(jié)地址(20H2FH).位數方式表示。例如,位地址00H07H也可表示為20H.020H.7。2022/10/11372)位尋址區(qū)單元地址00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)27H22H21H20H26H24H25H23H28H2FH

31、07 06 05 04 03 02 01 000F 0E 0D 0C 0B 0A 09 0817 16 15 14 13 12 11 101F 1E 1D 1C 1B 1A 19 1827 26 25 24 23 22 21 202F 2E 2D 2C 2B 2A 29 2837 36 35 34 33 32 31 303F 3E 3D 3C 3B 3A 39 3847 46 45 44 43 42 41 407F 7E 7D 7C 7B 7A 79 78位地址總共128個可按位尋址的位位尋址區(qū)分布在:20H2FH單元單元地址00H20H2FH7FH1FH30H80HFFH522022/10/

32、1439 3)用戶RAM區(qū) 30H7FH共80個字節(jié)單元,為字節(jié)尋址的內部RAM區(qū),可供用戶作為數據存儲區(qū)。這一區(qū)域的操作指令非常豐富,數據處理方便靈活,是非常寶貴的資源。但是,如果堆棧指針初始化時設置在這個區(qū)域,就要留出足夠的字節(jié)單元作為堆棧區(qū),以防止在數據存儲時,破壞了堆棧的內容。堆棧:是按先進后出或后進先出原則進行讀/寫的特殊RAM區(qū)域。51單片機的堆棧區(qū)是不固定的,原則上可設置在內部RAM的任意區(qū)域內。實際使用時要根據對片內RAM各功能區(qū)的使用情況而靈活設置, 應避開工作寄存器區(qū)、位尋址區(qū)和用戶實際使用的數據區(qū),一般設在2FH地址單元以后的區(qū)域。2022/10/1139 3)用戶RAM

33、區(qū)2022/10/1440堆棧的作用:主要用在子程序調用或中斷處理過程中,用于保護斷點和現場,實現子程序或中斷的多級嵌套處理。 在CPU響應中斷或調用子程序時,會自動地將斷點處的16位返回地址壓入堆棧。 在中斷服務程序或子程序結束時,返回地址會自動由堆棧彈出,并放回到程序計數器PC中,使程序從原斷口處繼續(xù)執(zhí)行下去。 堆棧除了用于保護斷點處的返回地址外,還可以用于保護其他一些重要信息,要注意的是,必須按照“后進先出”的原則存取信息。堆棧也可以作為特殊的數據交換區(qū)使用。2022/10/1140堆棧的作用:主要用在子程序調用或中斷2022/10/1441堆棧的開辟:棧頂的位置由專門設置的堆棧指針寄存

34、器SP指出。 51單片機的SP是8位寄存器,堆棧屬向上生長的,當數據壓入堆棧時,SP的內容自動加1,作為本次進棧的指針, 然后再存入數據。SP的值隨著數據的存入而增加。 當數據從堆棧彈出之后, SP的值隨之減少。 復位時, SP的初值為07H,用戶在初始化程序中可以給SP賦新的初值。 2022/10/1141堆棧的開辟:棧頂的位置由專門設置的堆2022/10/1442(2)高128字節(jié)的特殊功能寄存器SFR區(qū)特殊功能寄存器SFR是單片機片內資源的控制指揮單元,單片機內部不管集成了多少外圍接口部件和功能單元,都是通過特殊功能寄存器SFR進行控制和管理的,因此學習任何一個單片機的功能部件的使用,一

35、定要了解與之相關的SFR,并弄清通過這些SFR如何去控制你所使用的功能部件。 51系列單片機內的I/O鎖存器、定時器、串行口數據緩沖器以及各種控制寄存器和狀態(tài)寄存器都以特殊功能寄存器的形式出現。它們離散地分布在80HFFH的地址空間范圍內,具體分布見表2-7。2022/10/1142(2)高128字節(jié)的特殊功能寄存器S2022/10/14432022/10/11432022/10/1444字節(jié)地址能被8整除的專用寄存器可以實現位尋址2022/10/1144字節(jié)地址能被8整除的專用寄存器可以實2022/10/14451)SFR的使用方法從表2-7可以看出,80HFFH這128字節(jié)并不是所有的地址

36、都定義了SFR。在這個區(qū)域當中,除了SFR之外剩余的空閑單元,用戶不得使用。讀這些地址,一般將得到一個隨機數據;寫入的數據將會無效。必須使用直接尋址方式對SFR進行訪問,可使用寄存器名稱(是它的符號地址)或地址。例如:0EOH累加器的地址 ACC累加器的名稱2022/10/11451)SFR的使用方法2022/10/1446具有位地址和位名稱的SFR才可以位尋址,位地址有以下4種表示形式:直接使用位地址表示例如:0D7H PSW最高位的位地址使用位名稱表示、例如:CY PSW最高位的位名稱使用SFR字節(jié)地址.位形式表示例如:0D7H.7 PSW字節(jié)地址.最高位使用SFR名稱. 位形式表示例如:

37、PSW.7 PSW名稱.最高位 2022/10/1146具有位地址和位名稱的SFR才可以位2022/10/14472)AT89S系列單片機新增的SFR及功能簡介 AT89S系列單片機除了如表2-8所示的和AT89C系列單片機相同的SFR以外,又新增了幾個SFR,使其功能更強。 雙數據指針寄存器DPTR0和DPTR1: AT89S系列單片機提供了兩路16位數據指針寄存器:位于SFR中82H83H的DPTR0和位于84H85H的DPTR1,能給程序設計帶來很大的便利。 在8051體系中,數據指針DPTR作為一個特殊的16位寄存器,用于尋址64 KB的XDATA或CODE空間。雙數據指針可以改善同時

38、需要兩個16位指針運用時的性能。 DPTR0仍然運用原來的地址,用AUXR1的0位DPS來切換。當DPS位為0時,所有對DPTR的操作運用 DPTR0;當DPS位為1時,所有對DPTR的操作運用 DPTR1。 這樣,通過一個基本的INC AUXR1指令,就可以來回切換兩個數據指針 2022/10/11472)AT89S系列單片機新增的SFR2022/10/1448例如:MOV AUXR1,#0 ; DPS為0,DPTR0有效 INC AUXR1 ; DPS為1,DPTR1有效 INC AUXR1 ; DPS為0,DPTR0有效 輔助寄存器1(AUXR1)AUXR1用于選擇雙數據指針寄存器DP0

39、和DP1,它的字節(jié)地址為A2H,不可以位尋址。各位的定義如圖2-7所示。 圖2-7輔助寄存器1 AUXR1 其中:- :預留擴展用; DPS :數據指針選擇位 DPS=0 選擇DPTR寄存器DP0L和DP0H;DPS=1 選擇DPTR寄存器DP1L和DP1H。2022/10/1148例如:2022/10/1449輔助寄存器(AUXR) AUXR 用于選擇ALE的時鐘輸出方式、RESET輸出及空閑模式下WDT的工作方式,地址為8EH,不可以位尋址,各位的定義如圖2-8所示。圖2-8 輔助寄存器AUXR其中: - :預留擴展用DISALE: ALE使能標志位DISALE=0 ALE 以1/6晶振頻

40、率輸出信號;DISALE=1 ALE 只有在執(zhí)行MOVX 或MOVC指令時啟動DISRTO: 復位輸出標志位DISRTO=0 看門狗(WDT)定時結束,Reset 輸出高電平;DISRTO=1 Reset 只有輸入WDIDLE:空閑模式下WDT使能標志位WDIDLE=0 空閑模式下,WDT繼續(xù)計數;WDIDLE=1 空閑模式下,WDT停止計數2022/10/1149輔助寄存器(AUXR)2022/10/1450 看門狗復位特殊功能寄存器WDTRST WDTRST的地址為0A6H,用于系統初始化時向WDTRST寄存器依次寫入0E1H和0E1H來啟動WDT;當WDT啟動后,系統正常工作時,用戶必須

41、定時向WDTRST寫入01EH和0E1H即喂狗來避免WDT溢出。當系統由于干擾造成死機,不能定時向WDTRST寫入01EH和0E1H即喂狗時,WDT溢出使系統復位,使系統恢復正常工作。(3)內部高128B的RAM區(qū)(僅52等系列單片機具有) 內部高128B的RAM區(qū)具有和SFR區(qū)相同的地址,但必須使用間接尋址方式訪問,例如:將50H寫入85H單元,可以采用如下形式: MOV R0,#85H MOV R0,#50H2022/10/1150 看門狗復位特殊功能寄存器WDTR2022/10/14512.外部數據存儲器 外部數據存儲器的尋址空間可達64KB,地址范圍是0000HFFFFH。P0端口作為

42、RAM的地址/數據總線,當外部地址空間小于FFH時,只需P0口作為地址總線即可,P2口可以作為一般的I/O使用。當外部地址空間大于FFH時,則由P2端口傳送高8位地址。對片外數據存儲器的訪問,使用MOVX的間接尋址指令,以區(qū)別對內部RAM的訪問,同時產生讀、寫信號。2022/10/11512.外部數據存儲器2022/10/14522.4 AT89系列單片機的引腳功能2.4.1 外部引腳圖2-9是AT89S51/2單片機的引腳結構圖。TQFP(thin quad flat package)薄塑封四角扁平封裝厚度為1.0mm2022/10/11522.4 AT89系列單片機的引腳功能2022/10

43、/1453 圖2-9 AT89S52單片機的引腳圖 在圖2-9 AT89S52單片機的引腳圖中,P1.0(T2EX)、 P1.1(T2)引腳的第二功能(括號內功能),只有52等內部具有T2的系列單片機具有,P1.5(MOSI)、P1.6(MISO)、P1.7(SCK)引腳的第二功能只有89S系列單片機具有。這些引腳從功能角度來看可分為下面四個部分:2022/10/1153 圖2022/10/1454 1輸入輸出引腳 AT89系列單片機共有四個8位的并行I/O口:P0、P1、P2、P3口,對應的引腳分別是P0.0 P0.7,P1.0 P1.7,P2.0 P2.7,P3.0 P3.7,共32根I/

44、O線。每根線可以單獨用作輸入或輸出。2022/10/1154 2022/10/14552控制引腳 (1)RST 復位輸入端。 在振蕩器運行時,在此腳上出現兩個機器周期以上的高電平將使單片機復位??撮T狗定時器(Watchdog)溢出后,該引腳會保持98個振蕩周期的高電平,也會使單片機復位。 (2)ALE/PROG 地址鎖存允許/編程脈沖 在訪問外部存儲器時,這個輸出信號用于鎖存低字節(jié)地址。在對Flash內存編程時,這條引腳用于輸入編程脈沖PROG。一般情況下,ALE是振蕩器頻率的6分頻信號,可用于外部定時或時鐘。但是,在對外部數據存儲器每次存取中,會跳過一個ALE脈沖。在需要時,可以把AUXR寄

45、存器的0位置為“1”,從而屏蔽ALE的工作;而只有在MOVX或MOVC指令執(zhí)行時ALE才被啟動。在單片機處于外部執(zhí)行方式時,對ALE屏蔽位置“1”并不起作用。2022/10/11552控制引腳2022/10/1456(3)/PSEN 外部程序存儲器的選通信號 它用于讀外部程序存儲器的選通信號,低電平有效。當AT89系列單片機在執(zhí)行來自外部程序存儲器的指令時,每一個機器周期PSEN被啟動2次。在對外部數據存儲器的每次存取中,/PSEN不出現。(4)/EA/Vpp 外部程序存儲器訪問允許端/編程電源輸入端 /EA接地,單片機從地址為0000HFFFFH的外部程序內存中讀取代碼。/EA接到Vcc,單

46、片機先從內部程序內存中讀取代碼,然后自動轉向外部。在對Flash內存編程時,這條引腳接收12V編程電壓Vpp。2022/10/1156(3)/PSEN 外部程序存2022/10/1457 3電源和時鐘引腳 Vcc:電源端。 GND:接地端。 4外接晶體引腳 XTAL1:接外部晶體的一個引腳。在單片機內部,它是構成片內振蕩器的反相放大器的輸入端。當采用外部振蕩器時,該引腳接收振蕩器的信號,即把此信號直接接到內部時鐘發(fā)生器的輸入端。 XTAL2:接外部晶體的另一個引腳。在單片機內部,它是構成片內振蕩器的反相放大器的輸出端。當采用外部振蕩器時,此引腳應懸浮不連接。如圖2-10、圖2-11所示。202

47、2/10/1157 3電源和時鐘引腳2022/10/1458 圖2-10內部振蕩器的接法 圖2-11外部振蕩器的接法 XTAL1XTAL2GND8XX51C01C02外部時鐘XTAL1XTAL2GND8XX51懸空外部時鐘XTAL1XTAL2GNDCHMOSHMOS8XX512022/10/1158 圖2-10內部振蕩器的接法 2022/10/14592.4.2 片外總線結構 從AT89系列單片機引腳可以看出,除了電源、復位、時鐘輸入以及I/O口外,其余的管腳都是為實現系統擴展而設置的。這些管腳構成了片外三總線結構,如圖2-12所示。 圖2-12 51系列單片機片外總線結構圖2022/10/1

48、1592.4.2 片外總線結構圖2-12 2022/10/14601.地址總線(AB) 地址總線的寬度是16位,因此可以尋址的范圍是64KB。采用分時復用技術,可以對外部64KB的數據存儲器或程序存儲器直接尋址。它由P0口提供16位地址總線的低8位(A0A7),由P2口提供地址總線的高8位(A8A15)。2.數據總線(DB) 數據總線的寬度是8位,它由P0口提供。3.控制總線(CB) 控制總線由P3口的第二功能(RXD、TXD、INT0、INT1、T0、T1、RD、WR)和4根獨立的控制線(RST、EA、ALE、PSEN)組成。2022/10/11601.地址總線(AB)2022/10/146

49、12.5 AT89系列單片機的I/O接口 AT89系列單片機有P0(P0.0P0.7)、P1(P1.0P1.7)、P2(P2.0P2.7)、P3(P3.0P3.7)4個8位雙向輸入/輸出端口,在結構上因端口的使用功能不同,其結構和性能都有所不同因此了解端口的結構特點是十分必要的,下面分別介紹。2022/10/11612.5 AT89系列單片機的I/O接2022/10/1462圖2-13 P0口的位結構圖2.5.1 P0口 P0口是一個8位漏極開路的雙向I/O口。圖2-13是P0口的位結構圖。02022/10/1162圖2-13 P0口的位結構圖2.5. P0口是一個 8位雙向I/O口, 可作為

50、通用I/O接口, 也可作為地址/數據分時復用口。輸出級是漏極開路電路, 必須外接上拉電阻。 1.P0口作通用I/O口使用。 對于內部有flash內存的單片機,P0口可以作通用I/O口,此時控制端為低電平,轉換開關MUX把輸出級與鎖存器的端接通,同時因與門輸出為低電平,輸出級T1管處于截止狀態(tài),輸出級為漏極開路電路。(1)在I/O模式下作輸出口使用時,P0口應外接上拉電阻(10K左右),否則P0口無法輸出高電平(2)在I/O模式下作輸入口使用時,在輸入操作前應先向端口寫“1” 2022/10/14642. P0口作低8位地址/數據復用總線使用。 若單片機外部擴展存儲器,P0口輸出低8位地址或數據

51、信息,此時控制端應為高電平,轉換開關MUX將反相器輸出端與輸出級場效應管T2接通。在該模式,兩個MOS管輪流導通,無需上拉電阻。工作時低8位地址與數據線分時使用P0口。低8位地址由ALE信號的負跳變使它鎖存到外部地址鎖存器中,而高8位地址由P2口輸出。3. 對Flash內存進行編程或校驗時輸入或輸出代碼 在對Flash內存進行編程下載時,P0用于接收程序代碼字節(jié);在校驗時,則輸出程序代碼字節(jié),此時需要外加上拉電阻。2022/10/11642. P0口作低8位地址/數據復用2022/10/14652.5.2 P1口 P1口是一個有內部上拉電阻的準雙向口與P0口有一些不同之處。無多路轉接電路MUX

52、,有內部有上拉電阻。與場效應管共同組成輸出驅動電路。2022/10/11652.5.2 P1口2022/10/14661. P1口作通用I/O口使用 作為輸出口使用時,已能向外提供推拉電流負載,無需再外接上拉電阻。在作輸入時,和P0口一樣,必須先將“1”寫入鎖存器,使場效應管T2截止,從而完成輸入操作。2022/10/11661. P1口作通用I/O口使用2022/10/14672. P1口管腳復用功能 對于52系列單片機,P1.0與P1.1可以配置成定時/計數器2的外部計數輸入端(P1.0/T2)與定時/計數器2的觸發(fā)輸入端(P1.0/T2EX);對于AT89S系列單片機P1.5、P1.6、

53、P1.7用于flash內存的ISP下載引腳。3.對Flash內存進行編程或校驗時接收低8位地址在對AT89系列單片機內部Flash并行編程下載和程序校驗時,P1口接收低8位地址。2022/10/11672. P1口管腳復用功能2022/10/14682.5.3 P2口2022/10/11682.5.3 P2口2022/10/14691. P2口作通用I/O口使用。當P2口作通用I/O口使用時,是一個準雙向口2. P2口作高8位地址總線口使用。當系統擴展外部存儲器時,P2口用于輸出高8位地址A15A8。這時在CPU的控制下,轉換開關,接通內部地址總線。3. 對Flash內存進行編程和校驗時接收高

54、位地址 在對AT89系列單片機內部Flash并行程序設計和程序校驗時,P2口也接收高位地址或一些控制信號。2022/10/11691. P2口作通用I/O口使用。2022/10/14702.5.4 P3口 P3口是一個多用途的口,也是一個準雙向口,作為第一功能(通用I/O端口)使用時,第二功能信號引線應保持高電平,與非門開通其功能同P1口。以維持從鎖存器到輸出端數據輸出通路的暢通。第二功能輸出第二功能輸入2022/10/11702.5.4 P3口第二第二2022/10/14712.5.4 P3口使用P3口的第二功能時,該位的鎖存器應置“1”,使與非門對第二功能信號的輸出是暢通的。CPU區(qū)分單片

55、機的引腳是否有第二功能只要CPU執(zhí)行到相應的指令,就自動轉成了第二功能。2022/10/11712.5.4 P3口使用P3口的第二功2022/10/14722.6AT89S單片機內部看門狗定時器(WDT)2.6.1看門狗定時器(WDT)簡介 WDT是為了解決CPU運行時可能進入混亂或死循環(huán)而設置的,AT89S51的WDT由一個14bit計數器和看門狗復位SFR(WDTRST)構成。 外部復位時,WDT默認為關閉狀態(tài),要打開WDT,用戶必須順序將01EH和0E1H寫到WDTRST寄存器(SFR地址為0A6H)中。 當啟動WDT后,它會隨晶體振蕩器在每個機器周期計數,除硬件復位或WDT溢出復位外沒

56、有其它方法關閉WDT。 WDT溢出將使RST引腳輸出高電平的復位脈沖,復位脈沖持續(xù)時間98個時鐘周期 2022/10/11722.6AT89S單片機內部看門狗定2022/10/14732.6.2看門狗定時器(WDT)的使用1.按次序寫01EH和0E1H到WDTRST寄存器(SFR地址為0A6H)中,打開WDT。2當WDT打開后,需周期性地寫01EH和0E1H到WDTRST寄存器以避免WDT計數溢出。3WDT打開時它會隨晶體振蕩器在每個機器周期計數,14bit WDT計數器計數達到16383(即3FFFH),WDT將溢出并使器件復位。這意味著用戶必須在小于16383個機器周期內復位WDT(重寫0

57、1EH和0E1H到WDTRST寄存器)。2022/10/11732.6.2看門狗定時器(WDT)的2022/10/14742.7 AT89系列單片機的復位工作方式復位:將單片機系統置成特定初始狀態(tài)的操作,復位后程序從頭(0000H單元)開始執(zhí)行程序。 系統剛接通電源或重新啟動時均進入復位狀態(tài)。當系統處于正常工作狀態(tài)時,如果RST引腳上有一個高電平并維持2個機器周期(24個振蕩周期)以上,則CPU就可以實現可靠復位,如圖2-17所示,其中TCY為機器周期,等于12個時鐘周期。各寄存器和程序計數器PC的狀態(tài)見表2-11所示。圖2-17 復位電路示意圖2022/10/11742.7 AT89系列單片

58、機的復位工作2022/10/1475 系統簡單的復位電路圖如圖2-18所示其中.圖2.18(a)是上電復位電路,也稱為自動復位電路。當接通電源的瞬間,RST端與VCC同電位,隨著電容上的電壓逐漸上升,RST端的電壓逐漸下降,于是在RST端便形成了一個正脈沖,只要該正脈沖的寬度持續(xù)兩個機器周期的高電平,就可實現系統自動復位。圖2.18(b)是上電復位和按鈕復位(也稱為手動復位)的組合,當人工按下P按鈕后就可實現系統復位。單片機復位后,各寄存器和程序計數器PC的狀態(tài)見表2-11所示。(a)上電復位電路 (b)上電復位及按鈕復位電路圖2-18 單片機的復位電路2022/10/1175 系統簡單的復位

59、電路圖如圖2022/10/14762022/10/11762022/10/14772.8 AT89系列單片機的低功耗方式 節(jié)電工作方式是減少單片機功耗的工作方式,通常分為空閑(等待)方式和掉電(停機)方式兩種。只有CHMOS型器件才有這種工作方式。正常工作電流:1120mA空閑狀態(tài)電流:1.75mA掉電狀態(tài)電流:550A節(jié)電工作方式由SFR中的PCON寄存器進行控制:PD掉電控制位 IDL 空閑控制位Idle(空閑)PowerDown2022/10/11772.8 AT89系列單片機的低功耗方2022/10/14782.8 AT89系列單片機的低功耗方式 在空閑工作方式中(IDL=1),振蕩器

60、繼續(xù)工作,時鐘脈沖輸出到中斷系統、串行口以及定時器模塊,但卻不提供給CPU。在掉電方式中(PD=1),振蕩器停止工作。 SMOD:串行口波特率倍率控制位。GF0,GF1:通用標志位。PD:掉電方式控制位。PD=1,進入掉電工作方式。IDL:空閑方式控制位。IDL=1,進入空閑工作方式。PCON寄存器的復位值為0XXX000,PCON.4PCON.6為保留 位,用戶不要對它們進行寫操作。2022/10/11782.8 AT89系列單片機的低功耗方2022/10/14792.8.1 空閑工作方式 當CPU執(zhí)行完置IDL=1( ORL PCON,#01H,PCON.0=1)的指令后,系統進入了空閑工

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論