第二章AT89系列單片機(jī)的硬件體系結(jié)構(gòu)n精要課件_第1頁
第二章AT89系列單片機(jī)的硬件體系結(jié)構(gòu)n精要課件_第2頁
第二章AT89系列單片機(jī)的硬件體系結(jié)構(gòu)n精要課件_第3頁
第二章AT89系列單片機(jī)的硬件體系結(jié)構(gòu)n精要課件_第4頁
第二章AT89系列單片機(jī)的硬件體系結(jié)構(gòu)n精要課件_第5頁
已閱讀5頁,還剩173頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

12023/1/10單片機(jī)原理與應(yīng)用電子課件第2

章AT89系列單片機(jī)的硬件體系結(jié)構(gòu)12023/1/9單片機(jī)原理與應(yīng)用電子課件第2章AT8912023/1/102本章主要內(nèi)容2.1AT89系列單片機(jī)概述2.2

AT89系列單片機(jī)的結(jié)構(gòu)原理2.3AT89系列單片機(jī)的存儲器結(jié)構(gòu)2.4AT89系列單片機(jī)的引腳功能2.5AT89系列單片機(jī)的I/O接口2.6

AT89S系列單片機(jī)內(nèi)部看門狗定時(shí)器(WDT)2.7AT89系列單片機(jī)的復(fù)位工作方式2.8AT89系列單片機(jī)的低功耗方式2.9AT89系列單片機(jī)的時(shí)序2023/1/92本章主要內(nèi)容2.1AT89系列單片機(jī)概述22023/1/103第2章AT89系列單片機(jī)的硬件體系結(jié)構(gòu)

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

2023/1/93第2章AT89系列單片機(jī)的硬件體系結(jié)3第二章AT89系列單片機(jī)的硬件體系結(jié)構(gòu)n精要課件42023/1/1052.1AT89系列單片機(jī)概述2.1.1AT89系列單片機(jī)簡介

AT89系列單片機(jī)是與MCS—51系列單片機(jī)兼容的低功耗高性能8位Flash單片機(jī)。它是在MCS-51的技術(shù)內(nèi)核為主導(dǎo)的基礎(chǔ)上傾注了ATMEL公司優(yōu)良技術(shù)進(jìn)行新的設(shè)計(jì)和開發(fā),使之功能更強(qiáng)、更具特色,尤其是AT89S系列單片機(jī)具有在系統(tǒng)可程序設(shè)計(jì)功能,使生產(chǎn)維護(hù)更加方便靈活。

2023/1/952.1AT89系列單片機(jī)概述2.1.152023/1/1062.1.2AT89系列單片機(jī)的主要性能與MCS-51單片機(jī)產(chǎn)品兼容4K/8K等可程序設(shè)計(jì)Flash內(nèi)存1000次擦寫周期全靜態(tài)操作:0Hz~33MHz(89S系列)或00Hz~24MHz(89C系列)三級加密程序內(nèi)存32個(gè)可程序設(shè)計(jì)I/O口線兩個(gè)/三個(gè)16位定時(shí)器/計(jì)數(shù)器6/8個(gè)中斷源全雙工UART串行通道低功耗空閑和掉電模式看門狗定時(shí)器及雙數(shù)據(jù)指針(89S系列)靈活的在系統(tǒng)程序設(shè)計(jì)(ISP)(89S系列)

2023/1/962.1.2AT89系列單片機(jī)的主要性能62023/1/1072.1.3AT89系列單片機(jī)的主要品種

Atmel公司的AT89系列單片機(jī)有多種型號,但以AT89X51和AT89X52為代表,其主要單片機(jī)品種及其特性見表2-1。

2023/1/972.1.3AT89系列單片機(jī)的主要品種7PLCC(PlasticLeadedChipCarrier),帶引線的塑料芯片載體.表面貼裝型封裝之一,外形呈正方形,32腳封裝PLCC(PlasticLeadedChipCarri8PQFP(PlasticQuadFlatPackage,塑料方塊平面封裝)一種芯片封裝形式,引腳總數(shù)一般都在100以上。PQFP(PlasticQuadFlatPackage92023/1/10102.1.3AT89系列單片機(jī)的主要品種

從表2-1中可以看出,AT89系列單片機(jī)主要分為51和52兩個(gè)子系列,每個(gè)子系列都有四種型號.

52子系列與51子系列相比不同之處:flash程序內(nèi)存增至8KB,數(shù)據(jù)存儲器增至256B,有3個(gè)定時(shí)器/計(jì)數(shù)器等;AT89S和AT89C相比新增加了以下功能:支持在系統(tǒng)程序設(shè)計(jì)ISP使生產(chǎn)及維護(hù)更方便;增加了片內(nèi)看門狗使用戶的應(yīng)用系統(tǒng)更堅(jiān)固;雙數(shù)據(jù)指針使數(shù)據(jù)操作更加快捷方便;速度更高最高可使用33MHZ的晶振;AT89LS和AT89LV系列可以在更低的電壓(2.7V)和更寬的范圍下(2.7V~6.0V)工作,使應(yīng)用范圍更加廣泛。

2023/1/9102.1.3AT89系列單片機(jī)的主要品種102023/1/10112.1.4AT89系列單片機(jī)的型號編碼AT89系列單片機(jī)的型號編碼由三個(gè)部分組成,它們是前綴、型號和后綴,格式如下:

AT89XXXXX-YYYY其中AT是前綴,89XXXXX是型號,YYYY是后綴。有關(guān)參數(shù)的表示和意義如下:前綴由字母“AT”組成,表示該器件是ATMEL公司的產(chǎn)品。型號由“89CXXXX”或“89LVXXXX”或“89SXXXX”等表示?!?9CXXXX”中,9是表示內(nèi)部含F(xiàn)lash內(nèi)存,C表示為CMOS產(chǎn)品?!?9LVXXXX”中,LV表示低壓產(chǎn)品?!?9SXXXX”中,S表示含有串行下載Flash內(nèi)存?!癤XXX”,表示器件型號數(shù)如51、52、53、1051、8252等2023/1/9112.1.4AT89系列單片機(jī)的型號編碼112023/1/1012

后綴由“YYYY”四個(gè)參數(shù)組成,每個(gè)參數(shù)的表示和意義不同。在型號與后綴部分有“-”號隔開。

后綴中的第一個(gè)參數(shù)Y用于表示速度,后綴中的第二個(gè)參數(shù)Y用于表示封裝,后綴中第三個(gè)參數(shù)Y用于表示溫度范圍,后綴中第四個(gè)參數(shù)Y用于說明產(chǎn)品的處理情況。例如:有一個(gè)單片機(jī)型號為“AT89C51—12PI”,則表示意義為該單片機(jī)是ATMEL公司的Flash單片機(jī),內(nèi)部是CMOS結(jié)構(gòu),速度為12MHz,封裝為塑封DIP,是工業(yè)用產(chǎn)品,按標(biāo)準(zhǔn)處理工藝生產(chǎn)。

2023/1/912后綴由“YYYY”四個(gè)參數(shù)組12第二章AT89系列單片機(jī)的硬件體系結(jié)構(gòu)n精要課件132023/1/10142.2

AT89系列單片機(jī)的結(jié)構(gòu)原理2.2.1AT89系列單片機(jī)的基本組成圖2-1是AT89系列單片機(jī)的基本結(jié)構(gòu)框圖。

圖2-1AT89系列單片機(jī)的基本結(jié)構(gòu)框圖時(shí)序和振蕩電路程序存儲器ROM數(shù)據(jù)存儲器RAM2個(gè)16位定時(shí)/計(jì)數(shù)器CPU內(nèi)部8位數(shù)據(jù)總線中斷系統(tǒng)并行I/O口

串行I/O口內(nèi)部中斷外部中斷P0P1P2P3RXDTXD時(shí)鐘源外部事件2023/1/9142.2

AT89系列單片機(jī)的結(jié)構(gòu)原理2.14RAM128BRAM地址寄存器P3口P1口P2口P0口鎖存器鎖存器鎖存器鎖存器中斷定時(shí)/計(jì)數(shù)器串行口SPBACC暫存器1暫存器2PSW指令寄存器IR指令譯碼器IDDPL緩沖器程序計(jì)數(shù)器PCPC增量器地址寄存器AR定時(shí)與控制4KROMALUDPH運(yùn)算器控制器存儲器I/O接口圖2.2AT89C51單片機(jī)的內(nèi)部結(jié)構(gòu)示意RAMRAM地址寄存器P3口P1口P2口P0口鎖存器鎖存器鎖152023/1/10162.2.2AT89系列單片機(jī)的內(nèi)部框圖

圖2-2是AT89S系列單片機(jī)的內(nèi)部結(jié)構(gòu)框圖。圖2-2AT89S系列單片機(jī)的內(nèi)部結(jié)構(gòu)框圖2023/1/9162.2.2AT89系列單片機(jī)的內(nèi)部框圖162023/1/10172.2.3AT89系列單片機(jī)的CPU

中央處理器CPU是單片機(jī)的大腦,它決定了單片機(jī)的指令系統(tǒng)及主要功能。CPU由運(yùn)算器和控制器兩部分組成,主要完成取指令、指令譯瑪、發(fā)出各種操作所需的控制信號,使單片機(jī)各個(gè)部分協(xié)調(diào)工作。1.運(yùn)算器

運(yùn)算器是以算術(shù)邏輯單元ALU為核心,加上累加器A、寄存器B、程序狀態(tài)字PSW及專門用于位操作的布爾處理機(jī)等組成的,它可以實(shí)現(xiàn)數(shù)據(jù)的算術(shù)運(yùn)算、邏輯運(yùn)算、位變量處理和數(shù)據(jù)傳送等操作。(1)累加器ACC累加器ACC是一個(gè)8位累加器,它是CPU中使用最頻繁的寄存器,ALU進(jìn)行運(yùn)算時(shí),數(shù)據(jù)絕大多數(shù)時(shí)候都來自于累加器ACC。它一般用于存放參加運(yùn)算的操作數(shù)和運(yùn)算結(jié)果,在指令系統(tǒng)中用A表示。2023/1/9172.2.3AT89系列單片機(jī)的CPU172023/1/1018(2)?B寄存器B寄存器是運(yùn)算器中的一個(gè)工作寄存器,它是為乘法和除法指令而設(shè)置的。在除法指令中,被除數(shù)取自ACC,除數(shù)取自B,商數(shù)存放在ACC中,而余數(shù)則存放在B中。乘法指令的兩個(gè)操作數(shù)分別取自ACC和B,乘積則存放在AB寄存器對中(此處的A即ACC)。在其他的運(yùn)算中,B寄存器可作為中間結(jié)果寄存器使用。(3)程序狀態(tài)字寄存器PSW程序狀態(tài)字寄存器PSW是一個(gè)8位的寄存器,包含了各種程序狀態(tài)信息,它相當(dāng)于一個(gè)標(biāo)志寄存器,用來存放ALU操作結(jié)果的有關(guān)狀態(tài),以供程序查詢和判別。

表2.1PSW各位定義表位編號PSW7PSW6PSW5PSW4PSW3PSW2PSW1PSW0位定義CYACF0RS1RS0OV—P位地址D7HD6HD5HD4HD3HD2HD1HD0H2023/1/918(2)?B寄存器表2.1PSW182023/1/1019此寄存器各位的含義如下(其中PSW.1未用):CY(PSW.7):進(jìn)位標(biāo)志。在執(zhí)行某些算術(shù)和邏輯指令時(shí),它可以被硬件或軟件置位或清零。CY在布爾處理機(jī)中被認(rèn)為是位累加器,其重要性相當(dāng)于一般中央處理器中的累加器A。AC(PSW.6):輔助進(jìn)位標(biāo)志。當(dāng)進(jìn)行加法或減法操作而產(chǎn)生由低4位數(shù)向高4位數(shù)進(jìn)位或借位時(shí),AC將被硬件置位,否則就被清零。AC被用于BCD碼調(diào)整,詳見指令系統(tǒng)中的“DAA”指令。

F0(PSW.5):用戶標(biāo)志位。F0是用戶定義的一個(gè)狀態(tài)標(biāo)記,用軟件來使它置位或清零。該標(biāo)志位狀態(tài)一經(jīng)設(shè)定,可由軟件測試F0,以控制程序的流向。

RS1、RS0(PSW.4、PSW.3):寄存器區(qū)選擇控制位??梢杂密浖碇梦换蚯辶阋源_定工作寄存器區(qū)。RS1、RS0與寄存器區(qū)的對應(yīng)關(guān)系見表2-5。2023/1/919此寄存器各位的含義如下(其中PSW.1未192023/1/1020OV(PSW.2):溢出標(biāo)志。帶符號加減運(yùn)算中,超出了累加器A所能表示的符號數(shù)有效范圍(-128~+127)時(shí),即產(chǎn)生溢出,OV=1,表明運(yùn)算運(yùn)算結(jié)果錯(cuò)誤。如果OV=0,表明運(yùn)算結(jié)果正確。執(zhí)行加法指令A(yù)DD時(shí),當(dāng)位6向位7進(jìn)位,而位7不向C進(jìn)位時(shí),OV=1;或者位6不向位7進(jìn)位,而位7向C進(jìn)位時(shí),同樣OV=1。乘法指令,乘積超過255時(shí),OV=1,乘積在AB寄存器對中。若OV=0,則說明乘積沒有超過255,乘積只在累加器A中。表2-5工作寄存器組R0~R7的物理地址RS1RS0工作寄存器組號R0~R1的物理地址00011011012300H~07H08H~0FH10H~17H18H~1FH2023/1/920OV(PSW.2):溢出標(biāo)志。帶符號加減202023/1/1021除法指令,OV=1,表示除數(shù)為0,運(yùn)算不被執(zhí)行;否則,OV=0。

P(PSW.0):奇偶標(biāo)志。每個(gè)指令周期都由硬件來置位或清零,以表示累加器A中1的位數(shù)的奇偶數(shù)。若1的位數(shù)為奇數(shù),P置1,否則P清零。

P標(biāo)志位對串行通信中的數(shù)據(jù)傳輸有重要的意義,在串行通信中常用奇偶校驗(yàn)的辦法來檢驗(yàn)數(shù)據(jù)傳輸?shù)目煽啃浴T诎l(fā)送端可根據(jù)P的值對數(shù)據(jù)進(jìn)行奇偶置位或清零。PSW.1:程序狀態(tài)字的第1位,該位的含義沒有定義,若用戶要使用這一位,可直接使用PSW.1的位地址。PSW寄存器除具有字節(jié)地址外,還具有位地址,因此,可以對PSW中的任一位進(jìn)行操作,這無疑大大提高了指令執(zhí)行的效率。2023/1/921除法指令,OV=1,表示除數(shù)為0,運(yùn)算不212023/1/1022例【2-1】試分析下面指令執(zhí)行后,累加器A,標(biāo)志位C、AC、OV、P的值?MOVA,#66HADDA,#58H分析:第一條指令執(zhí)行時(shí)把立即數(shù)66H送入累加器A,第二條指令執(zhí)行時(shí)把累加器A中的立即數(shù)66H與立即數(shù)58H相加,結(jié)果回送到累加器A中。加法運(yùn)算過程如下:

66H=01100110B58H=01011001B

01100110B+01011001B

10111111=0BFH則執(zhí)行后累加器A中的值為0BFH,由相加過程得C=0、AC=0、OV=1、P=1。2023/1/922例【2-1】試分析下面指令執(zhí)行后,222023/1/10232.控制器

控制部件是單片機(jī)的控制中心,它包括定時(shí)和控制電路、指令寄存器、指令譯碼器、程序計(jì)數(shù)器PC、堆棧指針SP、數(shù)據(jù)指針DPTR以及信息傳送控制部件等。它先以振蕩信號為基準(zhǔn)產(chǎn)生CPU的時(shí)序,從ROM中取出指令到指令寄存器,然后在指令譯碼器中對指令進(jìn)行譯碼,產(chǎn)生指令執(zhí)行所需的各種控制信號,送到單片機(jī)內(nèi)部的各功能部件,指揮各功能部件產(chǎn)生相應(yīng)的操作,完成指令對應(yīng)的功能。2023/1/9232.控制器232023/1/1024(1)程序計(jì)數(shù)器PC

程序計(jì)數(shù)器PC用于存放CPU要執(zhí)行的下一條指令的地址。

執(zhí)行指令時(shí),CPU按PC的指示地址從ROM中讀取指令碼送入指令寄存器中,由指令譯碼器對指令進(jìn)行譯碼,發(fā)出相應(yīng)的控制信號,從而完成指令所指定的操作。讀取指令后PC會自動(dòng)+1指向CPU要執(zhí)行的下一條指令的地址。系統(tǒng)復(fù)位后PC的初始值為0000H,因此CPU從ROM中0000H單元讀取指令并譯碼執(zhí)行。

程序計(jì)數(shù)器PC不屬于特殊功能寄存器SFR塊,本身并沒有地址,因而不可尋址,用戶無法對它進(jìn)行讀/寫操作,但是可以通過轉(zhuǎn)移、調(diào)用、返回等指令改變其內(nèi)容,以控制程序按要求轉(zhuǎn)移。

2023/1/924(1)程序計(jì)數(shù)器PC242023/1/1025

(2)堆棧指針SP堆棧指針SP是一個(gè)8位特殊功能寄存器。它指示出堆棧頂部在內(nèi)部RAM中的位置。系統(tǒng)復(fù)位后,SP初始化為07H,使得堆棧事實(shí)上由08H單元開始。考慮到08H~1FH單元分屬于工作寄存器區(qū)1~3,若程序設(shè)計(jì)中要用到這些區(qū),則最好把SP值改置為1FH或更大的值如60H。除用軟件直接改變SP值外,在執(zhí)行PUSH、POP、各種子程序調(diào)用、中斷響應(yīng)、子程序返回(RET)和中斷返回(RETI)等指令時(shí),SP值將自動(dòng)調(diào)整。2023/1/925(2)堆棧指針SP252023/1/1026(3)數(shù)據(jù)指針DPTR

DPTR為16位的數(shù)據(jù)指針寄存器,由兩個(gè)8位的寄存器DPH和DPL組成,可存放一個(gè)16位的地址值。

當(dāng)CPU訪問64KB的外部數(shù)據(jù)存儲器時(shí),就用DPTR作地址指針,存放外部內(nèi)存的地址;當(dāng)CPU訪問64KB的程序存儲器時(shí),DPTR用作基址寄存器。

CPU也可單獨(dú)對DPH、DPL操作,即將DPTR分成兩個(gè)寄存器使用。

2023/1/926(3)數(shù)據(jù)指針DPTR262023/1/10272.3

AT89系列單片機(jī)的存儲器結(jié)構(gòu)

AT89系列單片機(jī)采用哈佛結(jié)構(gòu),有單獨(dú)的程序存儲器和數(shù)據(jù)存儲器。外部程序存儲器和數(shù)據(jù)存儲器都可以64K尋址。AT89系列單片機(jī)存儲器的結(jié)構(gòu)如圖2-3所示。

圖2-3AT89系列單片機(jī)內(nèi)存的結(jié)構(gòu)EA=1時(shí),若地址大于4k,則自動(dòng)訪問外部RAM2023/1/9272.3

AT89系列單片機(jī)的存儲器結(jié)構(gòu)272023/1/1028

2.3.1AT89系列單片機(jī)的程序存儲器1.AT89系列單片機(jī)程序存儲器ROM 程序存儲器用于存放編好的程序、常數(shù)或表格。在正常工作時(shí)只可讀不可寫,掉電后數(shù)據(jù)不丟失。以AT89S51單片機(jī)為例:(1)片內(nèi)具有4K的flash結(jié)構(gòu)的電可擦除只讀存儲器,與INTEL公司早期產(chǎn)品的紫外線擦除的EPROM結(jié)構(gòu)相比,使用更靈活更方便。(2)外部可以擴(kuò)展64K的ROM,以滿足一些大程序的需要。

但是建議用戶盡量不要外擴(kuò)ROM,因?yàn)楫?dāng)擴(kuò)展外部ROM的時(shí)候,系統(tǒng)要占有單片機(jī)的P0、P2口及P3口的部分口線作為總線。所以在大多數(shù)的應(yīng)用場合,盡量選擇片內(nèi)的FLASH內(nèi)存的容量能夠滿足實(shí)際需要單片機(jī)型號,這樣不僅可以節(jié)省額外的硬件投資、節(jié)省單片機(jī)的口線資源,更重要的是片內(nèi)FLASH中的程序在下載、燒寫時(shí)通過“加密”可以得到保護(hù)。只有當(dāng)程序特別大,內(nèi)部空間無法滿足要求時(shí)才選用擴(kuò)展外部ROM。2023/1/9282.3.1AT89系列單片機(jī)的程序存282023/1/1029

(3)程序內(nèi)存最低端的地址可以在片內(nèi)Flash中,或在外部ROM中。通過單片機(jī)/EA的引腳的電平來選擇。例如,在帶有4KB片內(nèi)Flash的AT89S51中,如果把/EA引腳連到Vcc,當(dāng)?shù)刂窞?000H~0FFFH時(shí),則訪問內(nèi)部Flash;當(dāng)?shù)刂窞?000H~FFFFH時(shí),將自動(dòng)轉(zhuǎn)向外部程序內(nèi)存。如果/EA端接地,則只訪問外部程序內(nèi)存,不管是否有內(nèi)部Flash內(nèi)存。2023/1/929(3)程序內(nèi)存最低端的地址可以在片內(nèi)F292023/1/10302.AT89系列單片機(jī)程序存儲器管理(1)每個(gè)ROM單元(byte)對應(yīng)一個(gè)惟一的16bit的地址編碼(Address)(2)CPU要到某個(gè)ROM單元去取指令,是通過把地址編碼寫入16位的程序計(jì)數(shù)器PC來實(shí)現(xiàn)的,因此AT89系列單片機(jī)地址的編碼范圍(通常稱為尋址范圍)為:

0000000000000000B~1111111111111111B(二進(jìn)制)

0000H~FFFFH(十六進(jìn)制)

0~65535(十進(jìn)制)(3)系統(tǒng)復(fù)位后,PC的初始值為0000H,以后的取值是CPU根據(jù)用戶程序的運(yùn)行流程自動(dòng)裝載的(程序順序執(zhí)行時(shí),PC值自動(dòng)加1;執(zhí)行轉(zhuǎn)移指令、子程序調(diào)用和中斷服務(wù)程序時(shí),PC值分別等于轉(zhuǎn)移的目標(biāo)地址、子程序或中斷服務(wù)程序的入口地址。

2023/1/9302.AT89系列單片機(jī)程序存儲器管理302023/1/10313.AT89系列單片機(jī)程序存儲器的分配 程序內(nèi)存的某些單元是保留給系統(tǒng)使用的,這幾個(gè)單元的配置如圖2-4所示。

從圖2-4可知,單片機(jī)復(fù)位后,程序計(jì)數(shù)器PC的內(nèi)容為0000H,所以CPU總是從0000H單元開始執(zhí)行程序。系統(tǒng)分配的中斷區(qū)復(fù)位時(shí)PC=0000H,指向次地址外部中斷0定時(shí)器0外部中斷1定時(shí)器1串口定時(shí)器2溢出2023/1/9313.AT89系列單片機(jī)程序存儲器的分配 312023/1/10323.AT89系列單片機(jī)程序存儲器的分配

從地址0003H開始,系統(tǒng)每隔8個(gè)單元為6個(gè)中斷服務(wù)子程序分配有一個(gè)固定的入口地址。

中斷響應(yīng)后,程序指針PC

將自動(dòng)根據(jù)中斷類型指向這些入口地址的某一個(gè),CPU就從這里開始執(zhí)行中斷服務(wù)子程序。

因此從0003H單元開始的這段區(qū)域應(yīng)該保留給中斷使用,所以程序設(shè)計(jì)時(shí)在0000H~0002H單元放置一條轉(zhuǎn)移指令,跳過這段區(qū)域,轉(zhuǎn)到系統(tǒng)主程序,除非系統(tǒng)不使用中斷,主程序才可以覆蓋這段區(qū)域。

2023/1/9323.AT89系列單片機(jī)程序存儲器的分配 322023/1/10332.3.2AT89系列單片機(jī)的數(shù)據(jù)存儲器數(shù)據(jù)存儲器RAM用于存放程序中的“中間數(shù)據(jù)”或程序運(yùn)行后的結(jié)果。掉電后內(nèi)容會丟失。與程序存儲器一樣,數(shù)據(jù)存儲器同樣可分為兩個(gè)地址空間:一個(gè)為內(nèi)部256B內(nèi)存空間,一個(gè)為外部擴(kuò)展的64KB內(nèi)存空間。

使用外部RAM同樣是要付出占用口資源為代價(jià)的,所以一般情況下不提倡使用外部RAM。

51系列單片機(jī)使用MOV指令訪問內(nèi)部RAM空間,使用

MOVX指令訪問外部RAM空間。2023/1/9332.3.2AT89系列單片機(jī)的數(shù)據(jù)存儲332023/1/10341.

內(nèi)部數(shù)據(jù)存儲器的結(jié)構(gòu)單片機(jī)的內(nèi)部數(shù)據(jù)存儲器結(jié)構(gòu)如圖2-5所示。片內(nèi)數(shù)據(jù)存儲器地址范圍是00H~FFH,只有256個(gè)字節(jié)。

對于51系列高128B被特殊功能寄存器占用。對于52等內(nèi)部具有256B系列單片機(jī),高128字節(jié)與特殊功能寄存器地址重迭。也就是說高128字節(jié)與特殊功能寄存器有相同的地址,而物理上是分開的。

圖2-5單片機(jī)的內(nèi)部數(shù)據(jù)存儲器結(jié)構(gòu)00H工作寄存器區(qū)020H2FH7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)R0R2R1R3R4R5R6R707H02H01H00H06H04H05H03H08H1FH工作寄存器區(qū)3工作寄存器區(qū)2工作寄存器區(qū)10FH10H17H18HSFR當(dāng)一條指令訪問高于7FH的地址時(shí),尋址方式?jīng)Q定CPU訪問高128字節(jié)RAM還是特殊功能寄存器空間。2023/1/9341.

內(nèi)部數(shù)據(jù)存儲器的結(jié)構(gòu)圖2-5單片機(jī)342023/1/1035直接尋址方式訪問特殊功能寄存器(SFR):例如:MOV0A0H,#data,直接尋址指令訪問0A0H(P2口)存儲單元;間接尋址方式訪問高128字節(jié)RAM:例如:當(dāng)R0內(nèi)容為0A0H,指令MOV@R0,#data,訪問的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。(1)低128字節(jié)RAM區(qū) 低128字節(jié)區(qū)的分配情況如圖2-6所示。主要分為三個(gè)區(qū)域:工作寄存器組區(qū)、位尋址區(qū)和用戶RAM區(qū)。圖2-6內(nèi)部RAM低128字節(jié)區(qū)的分配2023/1/935直接尋址方式訪問特殊功能寄存器(SFR)352023/1/10361)工作寄存器組區(qū)最低32個(gè)單元(地址為00H~1FH)是4個(gè)通用工作寄存器組。每個(gè)寄存器組含有8個(gè)8位寄存器,編號為R0~R7。

程序狀態(tài)字PSW中的2位RS0、RS1用來確定當(dāng)前采用哪一個(gè)工作寄存器組,其對應(yīng)關(guān)系如前面的表2-3所示。

在某一時(shí)刻只能選用其中的一組寄存器工作,系統(tǒng)復(fù)位后,指向工作寄存器組0。如果用戶程序不需要4個(gè)工作寄存器區(qū),則不用的工作寄存器單元可以作一般的RAM使用。2023/1/9361)工作寄存器組區(qū)362023/1/10372)位尋址區(qū)內(nèi)部RAM區(qū)中的20H~2FH單元(16字節(jié))可供位尋址,這16個(gè)單元共有128位,每位均可直接尋址,其位地址范圍為00H~7FH,具體情況見表2-6。這些位地址有兩種表示方式:一種是采用位地址形式,即00H~7FH;一種是用字節(jié)地址(20H~2FH).位數(shù)方式表示。例如,位地址00H~07H也可表示為20H.0~20H.7。2023/1/9372)位尋址區(qū)37單元地址00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)27H22H21H20H26H24H25H23H28H2FH07060504030201000F0E0D0C0B0A090817161514131211101F1E1D1C1B1A191827262524232221202F2E2D2C2B2A292837363534333231303F3E3D3C3B3A393847464544434241407F7E7D7C7B7A7978位地址總共128個(gè)可按位尋址的位位尋址區(qū)分布在:20H—2FH單元單元地址00H20H2FH7FH1FH30H80HFFH52382023/1/1039

3)用戶RAM區(qū)30H~7FH共80個(gè)字節(jié)單元,為字節(jié)尋址的內(nèi)部RAM區(qū),可供用戶作為數(shù)據(jù)存儲區(qū)。這一區(qū)域的操作指令非常豐富,數(shù)據(jù)處理方便靈活,是非常寶貴的資源。但是,如果堆棧指針初始化時(shí)設(shè)置在這個(gè)區(qū)域,就要留出足夠的字節(jié)單元作為堆棧區(qū),以防止在數(shù)據(jù)存儲時(shí),破壞了堆棧的內(nèi)容。堆棧:是按先進(jìn)后出或后進(jìn)先出原則進(jìn)行讀/寫的特殊RAM區(qū)域。51單片機(jī)的堆棧區(qū)是不固定的,原則上可設(shè)置在內(nèi)部RAM的任意區(qū)域內(nèi)。實(shí)際使用時(shí)要根據(jù)對片內(nèi)RAM各功能區(qū)的使用情況而靈活設(shè)置,應(yīng)避開工作寄存器區(qū)、位尋址區(qū)和用戶實(shí)際使用的數(shù)據(jù)區(qū),一般設(shè)在2FH地址單元以后的區(qū)域。2023/1/9393)用戶RAM區(qū)392023/1/1040堆棧的作用:主要用在子程序調(diào)用或中斷處理過程中,用于保護(hù)斷點(diǎn)和現(xiàn)場,實(shí)現(xiàn)子程序或中斷的多級嵌套處理。

在CPU響應(yīng)中斷或調(diào)用子程序時(shí),會自動(dòng)地將斷點(diǎn)處的16位返回地址壓入堆棧。

在中斷服務(wù)程序或子程序結(jié)束時(shí),返回地址會自動(dòng)由堆棧彈出,并放回到程序計(jì)數(shù)器PC中,使程序從原斷口處繼續(xù)執(zhí)行下去。堆棧除了用于保護(hù)斷點(diǎn)處的返回地址外,還可以用于保護(hù)其他一些重要信息,要注意的是,必須按照“后進(jìn)先出”的原則存取信息。堆棧也可以作為特殊的數(shù)據(jù)交換區(qū)使用。2023/1/940堆棧的作用:主要用在子程序調(diào)用或中斷處理402023/1/1041堆棧的開辟:棧頂?shù)奈恢糜蓪iT設(shè)置的堆棧指針寄存器SP指出。51單片機(jī)的SP是8位寄存器,堆棧屬向上生長的,當(dāng)數(shù)據(jù)壓入堆棧時(shí),SP的內(nèi)容自動(dòng)加1,作為本次進(jìn)棧的指針,然后再存入數(shù)據(jù)。SP的值隨著數(shù)據(jù)的存入而增加。

當(dāng)數(shù)據(jù)從堆棧彈出之后,SP的值隨之減少。

復(fù)位時(shí),SP的初值為07H,用戶在初始化程序中可以給SP賦新的初值。

2023/1/941堆棧的開辟:棧頂?shù)奈恢糜蓪iT設(shè)置的堆棧指412023/1/1042(2)高128字節(jié)的特殊功能寄存器SFR區(qū)

特殊功能寄存器SFR是單片機(jī)片內(nèi)資源的控制指揮單元,單片機(jī)內(nèi)部不管集成了多少外圍接口部件和功能單元,都是通過特殊功能寄存器SFR進(jìn)行控制和管理的,因此學(xué)習(xí)任何一個(gè)單片機(jī)的功能部件的使用,一定要了解與之相關(guān)的SFR,并弄清通過這些SFR如何去控制你所使用的功能部件。51系列單片機(jī)內(nèi)的I/O鎖存器、定時(shí)器、串行口數(shù)據(jù)緩沖器以及各種控制寄存器和狀態(tài)寄存器都以特殊功能寄存器的形式出現(xiàn)。它們離散地分布在80H~FFH的地址空間范圍內(nèi),具體分布見表2-7。2023/1/942(2)高128字節(jié)的特殊功能寄存器SFR422023/1/10432023/1/943432023/1/1044字節(jié)地址能被8整除的專用寄存器可以實(shí)現(xiàn)位尋址2023/1/944字節(jié)地址能被8整除的專用寄存器可以實(shí)現(xiàn)位442023/1/10451)SFR的使用方法①從表2-7可以看出,80H~FFH這128字節(jié)并不是所有的地址都定義了SFR。在這個(gè)區(qū)域當(dāng)中,除了SFR之外剩余的空閑單元,用戶不得使用。讀這些地址,一般將得到一個(gè)隨機(jī)數(shù)據(jù);寫入的數(shù)據(jù)將會無效。②必須使用直接尋址方式對SFR進(jìn)行訪問,可使用寄存器名稱(是它的符號地址)或地址。例如:0EOH——累加器的地址

ACC——累加器的名稱2023/1/9451)SFR的使用方法452023/1/1046③具有位地址和位名稱的SFR才可以位尋址,位地址有以下4種表示形式:直接使用位地址表示例如:0D7H——PSW最高位的位地址使用位名稱表示、例如:CY——PSW最高位的位名稱使用SFR字節(jié)地址.位形式表示例如:0D7H.7——PSW字節(jié)地址.最高位使用SFR名稱.位形式表示例如:PSW.7——PSW名稱.最高位2023/1/946③具有位地址和位名稱的SFR才可以位尋址462023/1/10472)AT89S系列單片機(jī)新增的SFR及功能簡介

AT89S系列單片機(jī)除了如表2-8所示的和AT89C系列單片機(jī)相同的SFR以外,又新增了幾個(gè)SFR,使其功能更強(qiáng)。

①雙數(shù)據(jù)指針寄存器DPTR0和DPTR1:AT89S系列單片機(jī)提供了兩路16位數(shù)據(jù)指針寄存器:位于SFR中82H~83H的DPTR0和位于84H~85H的DPTR1,能給程序設(shè)計(jì)帶來很大的便利。在8051體系中,數(shù)據(jù)指針DPTR作為一個(gè)特殊的16位寄存器,用于尋址64KB的XDATA或CODE空間。雙數(shù)據(jù)指針可以改善同時(shí)需要兩個(gè)16位指針運(yùn)用時(shí)的性能。

DPTR0仍然運(yùn)用原來的地址,用AUXR1的0位DPS來切換。當(dāng)DPS位為0時(shí),所有對DPTR的操作運(yùn)用DPTR0;當(dāng)DPS位為1時(shí),所有對DPTR的操作運(yùn)用DPTR1。

這樣,通過一個(gè)基本的INCAUXR1指令,就可以來回切換兩個(gè)數(shù)據(jù)指針

2023/1/9472)AT89S系列單片機(jī)新增的SFR及功472023/1/1048例如:MOVAUXR1,#0;DPS為0,DPTR0有效……INCAUXR1;DPS為1,DPTR1有效……INCAUXR1;DPS為0,DPTR0有效

②輔助寄存器1(AUXR1)AUXR1用于選擇雙數(shù)據(jù)指針寄存器DP0和DP1,它的字節(jié)地址為A2H,不可以位尋址。各位的定義如圖2-7所示。

圖2-7輔助寄存器1AUXR1

其中:-:預(yù)留擴(kuò)展用;DPS:數(shù)據(jù)指針選擇位DPS=0選擇DPTR寄存器DP0L和DP0H;DPS=1選擇DPTR寄存器DP1L和DP1H。2023/1/948例如:482023/1/1049③輔助寄存器(AUXR)

AUXR用于選擇ALE的時(shí)鐘輸出方式、RESET輸出及空閑模式下WDT的工作方式,地址為8EH,不可以位尋址,各位的定義如圖2-8所示。圖2-8輔助寄存器AUXR其中:-:預(yù)留擴(kuò)展用DISALE:

ALE使能標(biāo)志位DISALE=0ALE以1/6晶振頻率輸出信號;DISALE=1ALE只有在執(zhí)行MOVX或MOVC指令時(shí)啟動(dòng)DISRTO:復(fù)位輸出標(biāo)志位DISRTO=0看門狗(WDT)定時(shí)結(jié)束,Reset輸出高電平;DISRTO=1Reset只有輸入WDIDLE:空閑模式下WDT使能標(biāo)志位WDIDLE=0空閑模式下,WDT繼續(xù)計(jì)數(shù);WDIDLE=1空閑模式下,WDT停止計(jì)數(shù)2023/1/949③輔助寄存器(AUXR)492023/1/1050

④看門狗復(fù)位特殊功能寄存器WDTRSTWDTRST的地址為0A6H,用于系統(tǒng)初始化時(shí)向WDTRST寄存器依次寫入0E1H和0E1H來啟動(dòng)WDT;當(dāng)WDT啟動(dòng)后,系統(tǒng)正常工作時(shí),用戶必須定時(shí)向WDTRST寫入01EH和0E1H即喂狗來避免WDT溢出。當(dāng)系統(tǒng)由于干擾造成死機(jī),不能定時(shí)向WDTRST寫入01EH和0E1H即喂狗時(shí),WDT溢出使系統(tǒng)復(fù)位,使系統(tǒng)恢復(fù)正常工作。(3)內(nèi)部高128B的RAM區(qū)(僅52等系列單片機(jī)具有)內(nèi)部高128B的RAM區(qū)具有和SFR區(qū)相同的地址,但必須使用間接尋址方式訪問,例如:將50H寫入85H單元,可以采用如下形式:

MOVR0,#85HMOV@R0,#50H2023/1/950④看門狗復(fù)位特殊功能寄存器WDTRST502023/1/10512.外部數(shù)據(jù)存儲器

外部數(shù)據(jù)存儲器的尋址空間可達(dá)64?KB,地址范圍是0000H~FFFFH。P0端口作為RAM的地址/數(shù)據(jù)總線,當(dāng)外部地址空間小于FFH時(shí),只需P0口作為地址總線即可,P2口可以作為一般的I/O使用。當(dāng)外部地址空間大于FFH時(shí),則由P2端口傳送高8位地址。對片外數(shù)據(jù)存儲器的訪問,使用MOVX的間接尋址指令,以區(qū)別對內(nèi)部RAM的訪問,同時(shí)產(chǎn)生讀、寫信號。2023/1/9512.外部數(shù)據(jù)存儲器512023/1/10522.4AT89系列單片機(jī)的引腳功能2.4.1外部引腳圖2-9是AT89S51/2單片機(jī)的引腳結(jié)構(gòu)圖。TQFP(thinquadflatpackage)薄塑封四角扁平封裝厚度為1.0mm2023/1/9522.4AT89系列單片機(jī)的引腳功能2.522023/1/1053

圖2-9AT89S52單片機(jī)的引腳圖在圖2-9AT89S52單片機(jī)的引腳圖中,P1.0(T2EX)、P1.1(T2)引腳的第二功能(括號內(nèi)功能),只有52等內(nèi)部具有T2的系列單片機(jī)具有,P1.5(MOSI)、P1.6(MISO)、P1.7(SCK)引腳的第二功能只有89S系列單片機(jī)具有。這些引腳從功能角度來看可分為下面四個(gè)部分:2023/1/953圖2-532023/1/1054

1.輸入輸出引腳AT89系列單片機(jī)共有四個(gè)8位的并行I/O口:P0、P1、P2、P3口,對應(yīng)的引腳分別是P0.0~P0.7,P1.0~P1.7,P2.0~P2.7,P3.0~P3.7,共32根I/O線。每根線可以單獨(dú)用作輸入或輸出。2023/1/954542023/1/10552.控制引腳

(1)RST復(fù)位輸入端。在振蕩器運(yùn)行時(shí),在此腳上出現(xiàn)兩個(gè)機(jī)器周期以上的高電平將使單片機(jī)復(fù)位??撮T狗定時(shí)器(Watchdog)溢出后,該引腳會保持98個(gè)振蕩周期的高電平,也會使單片機(jī)復(fù)位。(2)ALE/PROG————地址鎖存允許/編程脈沖在訪問外部存儲器時(shí),這個(gè)輸出信號用于鎖存低字節(jié)地址。在對Flash內(nèi)存編程時(shí),這條引腳用于輸入編程脈沖PROG。一般情況下,ALE是振蕩器頻率的6分頻信號,可用于外部定時(shí)或時(shí)鐘。但是,在對外部數(shù)據(jù)存儲器每次存取中,會跳過一個(gè)ALE脈沖。在需要時(shí),可以把AUXR寄存器的0位置為“1”,從而屏蔽ALE的工作;而只有在MOVX或MOVC指令執(zhí)行時(shí)ALE才被啟動(dòng)。在單片機(jī)處于外部執(zhí)行方式時(shí),對ALE屏蔽位置“1”并不起作用。2023/1/9552.控制引腳552023/1/1056(3)/PSEN————外部程序存儲器的選通信號它用于讀外部程序存儲器的選通信號,低電平有效。當(dāng)AT89系列單片機(jī)在執(zhí)行來自外部程序存儲器的指令時(shí),每一個(gè)機(jī)器周期PSEN被啟動(dòng)2次。在對外部數(shù)據(jù)存儲器的每次存取中,/PSEN不出現(xiàn)。(4)/EA/Vpp————外部程序存儲器訪問允許端/編程電源輸入端/EA接地,單片機(jī)從地址為0000H~FFFFH的外部程序內(nèi)存中讀取代碼。/EA接到Vcc,單片機(jī)先從內(nèi)部程序內(nèi)存中讀取代碼,然后自動(dòng)轉(zhuǎn)向外部。在對Flash內(nèi)存編程時(shí),這條引腳接收12V編程電壓Vpp。2023/1/956(3)/PSEN————外部程序存儲器562023/1/1057

3.電源和時(shí)鐘引腳

Vcc:電源端。

GND:接地端。

4.外接晶體引腳

XTAL1:接外部晶體的一個(gè)引腳。在單片機(jī)內(nèi)部,它是構(gòu)成片內(nèi)振蕩器的反相放大器的輸入端。當(dāng)采用外部振蕩器時(shí),該引腳接收振蕩器的信號,即把此信號直接接到內(nèi)部時(shí)鐘發(fā)生器的輸入端。

XTAL2:接外部晶體的另一個(gè)引腳。在單片機(jī)內(nèi)部,它是構(gòu)成片內(nèi)振蕩器的反相放大器的輸出端。當(dāng)采用外部振蕩器時(shí),此引腳應(yīng)懸浮不連接。如圖2-10、圖2-11所示。2023/1/9573.電源和時(shí)鐘引腳572023/1/1058

圖2-10內(nèi)部振蕩器的接法圖2-11外部振蕩器的接法XTAL1XTAL2GND8XX51C01C02外部時(shí)鐘XTAL1XTAL2GND8XX51懸空外部時(shí)鐘XTAL1XTAL2GNDCHMOSHMOS8XX512023/1/958圖2-10內(nèi)部振蕩器的接法582023/1/10592.4.2片外總線結(jié)構(gòu)從AT89系列單片機(jī)引腳可以看出,除了電源、復(fù)位、時(shí)鐘輸入以及I/O口外,其余的管腳都是為實(shí)現(xiàn)系統(tǒng)擴(kuò)展而設(shè)置的。這些管腳構(gòu)成了片外三總線結(jié)構(gòu),如圖2-12所示。

圖2-1251系列單片機(jī)片外總線結(jié)構(gòu)圖2023/1/9592.4.2片外總線結(jié)構(gòu)圖2-1251592023/1/10601.地址總線(AB)地址總線的寬度是16位,因此可以尋址的范圍是64?KB。采用分時(shí)復(fù)用技術(shù),可以對外部64?KB的數(shù)據(jù)存儲器或程序存儲器直接尋址。它由P0口提供16位地址總線的低8位(A0~A7),由P2口提供地址總線的高8位(A8~A15)。2.數(shù)據(jù)總線(DB)數(shù)據(jù)總線的寬度是8位,它由P0口提供。3.控制總線(CB)控制總線由P3口的第二功能(RXD、TXD、INT0、INT1、T0、T1、RD、WR)和4根獨(dú)立的控制線(RST、EA、ALE、PSEN)組成。2023/1/9601.地址總線(AB)602023/1/10612.5AT89系列單片機(jī)的I/O接口

AT89系列單片機(jī)有P0(P0.0~P0.7)、P1(P1.0~P1.7)、P2(P2.0~P2.7)、P3(P3.0~P3.7)4個(gè)8位雙向輸入/輸出端口,在結(jié)構(gòu)上因端口的使用功能不同,其結(jié)構(gòu)和性能都有所不同因此了解端口的結(jié)構(gòu)特點(diǎn)是十分必要的,下面分別介紹。2023/1/9612.5AT89系列單片機(jī)的I/O接口612023/1/1062圖2-13P0口的位結(jié)構(gòu)圖2.5.1P0口P0口是一個(gè)8位漏極開路的雙向I/O口。圖2-13是P0口的位結(jié)構(gòu)圖。0×2023/1/962圖2-13P0口的位結(jié)構(gòu)圖2.5.162

P0口是一個(gè)8位雙向I/O口,可作為通用I/O接口,也可作為地址/數(shù)據(jù)分時(shí)復(fù)用口。輸出級是漏極開路電路,

必須外接上拉電阻。

1.P0口作通用I/O口使用。對于內(nèi)部有flash內(nèi)存的單片機(jī),P0口可以作通用I/O口,此時(shí)控制端為低電平,轉(zhuǎn)換開關(guān)MUX把輸出級與鎖存器的端接通,同時(shí)因與門輸出為低電平,輸出級T1管處于截止?fàn)顟B(tài),輸出級為漏極開路電路。(1)在I/O模式下作輸出口使用時(shí),P0口應(yīng)外接上拉電阻(10K左右),否則P0口無法輸出高電平(2)在I/O模式下作輸入口使用時(shí),在輸入操作前應(yīng)先向端口寫“1”

632023/1/10642.?P0口作低8位地址/數(shù)據(jù)復(fù)用總線使用。若單片機(jī)外部擴(kuò)展存儲器,P0口輸出低8位地址或數(shù)據(jù)信息,此時(shí)控制端應(yīng)為高電平,轉(zhuǎn)換開關(guān)MUX將反相器輸出端與輸出級場效應(yīng)管T2接通。在該模式,兩個(gè)MOS管輪流導(dǎo)通,無需上拉電阻。工作時(shí)低8位地址與數(shù)據(jù)線分時(shí)使用P0口。低8位地址由ALE信號的負(fù)跳變使它鎖存到外部地址鎖存器中,而高8位地址由P2口輸出。3.對Flash內(nèi)存進(jìn)行編程或校驗(yàn)時(shí)輸入或輸出代碼在對Flash內(nèi)存進(jìn)行編程下載時(shí),P0用于接收程序代碼字節(jié);在校驗(yàn)時(shí),則輸出程序代碼字節(jié),此時(shí)需要外加上拉電阻。2023/1/9642.?P0口作低8位地址/數(shù)據(jù)復(fù)用總線642023/1/10652.5.2P1口P1口是一個(gè)有內(nèi)部上拉電阻的準(zhǔn)雙向口與P0口有一些不同之處。無多路轉(zhuǎn)接電路MUX,有內(nèi)部有上拉電阻。與場效應(yīng)管共同組成輸出驅(qū)動(dòng)電路。2023/1/9652.5.2P1口652023/1/10661.?P1口作通用I/O口使用

作為輸出口使用時(shí),已能向外提供推拉電流負(fù)載,無需再外接上拉電阻。在作輸入時(shí),和P0口一樣,必須先將“1”寫入鎖存器,使場效應(yīng)管T2截止,從而完成輸入操作。

2023/1/9661.?P1口作通用I/O口使用662023/1/10672.P1口管腳復(fù)用功能對于52系列單片機(jī),P1.0與P1.1可以配置成定時(shí)/計(jì)數(shù)器2的外部計(jì)數(shù)輸入端(P1.0/T2)與定時(shí)/計(jì)數(shù)器2的觸發(fā)輸入端(P1.0/T2EX);對于AT89S系列單片機(jī)P1.5、P1.6、P1.7用于flash內(nèi)存的ISP下載引腳。3.對Flash內(nèi)存進(jìn)行編程或校驗(yàn)時(shí)接收低8位地址在對AT89系列單片機(jī)內(nèi)部Flash并行編程下載和程序校驗(yàn)時(shí),P1口接收低8位地址。2023/1/9672.P1口管腳復(fù)用功能672023/1/10682.5.3P2口2023/1/9682.5.3P2口682023/1/10691.?P2口作通用I/O口使用。當(dāng)P2口作通用I/O口使用時(shí),是一個(gè)準(zhǔn)雙向口2.?P2口作高8位地址總線口使用。

當(dāng)系統(tǒng)擴(kuò)展外部存儲器時(shí),P2口用于輸出高8位地址A15~A8。這時(shí)在CPU的控制下,轉(zhuǎn)換開關(guān),接通內(nèi)部地址總線。3.對Flash內(nèi)存進(jìn)行編程和校驗(yàn)時(shí)接收高位地址在對AT89系列單片機(jī)內(nèi)部Flash并行程序設(shè)計(jì)和程序校驗(yàn)時(shí),P2口也接收高位地址或一些控制信號。2023/1/9691.?P2口作通用I/O口使用。692023/1/10702.5.4P3口P3口是一個(gè)多用途的口,也是一個(gè)準(zhǔn)雙向口,作為第一功能(通用I/O端口)使用時(shí),第二功能信號引線應(yīng)保持高電平,與非門開通其功能同P1口。以維持從鎖存器到輸出端數(shù)據(jù)輸出通路的暢通。第二功能輸出第二功能輸入2023/1/9702.5.4P3口第二第二702023/1/10712.5.4P3口使用P3口的第二功能時(shí),該位的鎖存器應(yīng)置“1”,使與非門對第二功能信號的輸出是暢通的。CPU區(qū)分單片機(jī)的引腳是否有第二功能只要CPU執(zhí)行到相應(yīng)的指令,就自動(dòng)轉(zhuǎn)成了第二功能。2023/1/9712.5.4P3口使用P3口的第二功能時(shí)712023/1/10722.6

AT89S單片機(jī)內(nèi)部看門狗定時(shí)器(WDT)2.6.1

看門狗定時(shí)器(WDT)簡介WDT是為了解決CPU運(yùn)行時(shí)可能進(jìn)入混亂或死循環(huán)而設(shè)置的,AT89S51的WDT由一個(gè)14bit計(jì)數(shù)器和看門狗復(fù)位SFR(WDTRST)構(gòu)成。

外部復(fù)位時(shí),WDT默認(rèn)為關(guān)閉狀態(tài),要打開WDT,用戶必須順序?qū)?1EH和0E1H寫到WDTRST寄存器(SFR地址為0A6H)中。當(dāng)啟動(dòng)WDT后,它會隨晶體振蕩器在每個(gè)機(jī)器周期計(jì)數(shù),除硬件復(fù)位或WDT溢出復(fù)位外沒有其它方法關(guān)閉WDT。WDT溢出將使RST引腳輸出高電平的復(fù)位脈沖,復(fù)位脈沖持續(xù)時(shí)間98個(gè)時(shí)鐘周期

2023/1/9722.6

AT89S單片機(jī)內(nèi)部看門狗定時(shí)器722023/1/10732.6.2

看門狗定時(shí)器(WDT)的使用1.按次序?qū)?1EH和0E1H到WDTRST寄存器(SFR地址為0A6H)中,打開WDT。2.當(dāng)WDT打開后,需周期性地寫01EH和0E1H到WDTRST寄存器以避免WDT計(jì)數(shù)溢出。3.WDT打開時(shí)它會隨晶體振蕩器在每個(gè)機(jī)器周期計(jì)數(shù),14bitWDT計(jì)數(shù)器計(jì)數(shù)達(dá)到16383(即3FFFH),WDT將溢出并使器件復(fù)位。這意味著用戶必須在小于16383個(gè)機(jī)器周期內(nèi)復(fù)位WDT(重寫01EH和0E1H到WDTRST寄存器)。2023/1/9732.6.2

看門狗定時(shí)器(WDT)的使用732023/1/10742.7AT89系列單片機(jī)的復(fù)位工作方式復(fù)位:將單片機(jī)系統(tǒng)置成特定初始狀態(tài)的操作,復(fù)位后程序從頭(0000H單元)開始執(zhí)行程序。系統(tǒng)剛接通電源或重新啟動(dòng)時(shí)均進(jìn)入復(fù)位狀態(tài)。當(dāng)系統(tǒng)處于正常工作狀態(tài)時(shí),如果RST引腳上有一個(gè)高電平并維持2個(gè)機(jī)器周期(24個(gè)振蕩周期)以上,則CPU就可以實(shí)現(xiàn)可靠復(fù)位,如圖2-17所示,其中TCY為機(jī)器周期,等于12個(gè)時(shí)鐘周期。各寄存器和程序計(jì)數(shù)器PC的狀態(tài)見表2-11所示。圖2-17復(fù)位電路示意圖2023/1/9742.7AT89系列單片機(jī)的復(fù)位工作方式742023/1/1075系統(tǒng)簡單的復(fù)位電路圖如圖2-18所示其中.圖2.18(a)是上電復(fù)位電路,也稱為自動(dòng)復(fù)位電路。當(dāng)接通電源的瞬間,RST端與VCC同電位,隨著電容上的電壓逐漸上升,RST端的電壓逐漸下降,于是在RST端便形成了一個(gè)正脈沖,只要該正脈沖的寬度持續(xù)兩個(gè)機(jī)器周期的高電平,就可實(shí)現(xiàn)系統(tǒng)自動(dòng)復(fù)位。圖2.18(b)是上電復(fù)位和按鈕復(fù)位(也稱為手動(dòng)復(fù)位)的組合,當(dāng)人工按下P按鈕后就可實(shí)現(xiàn)系統(tǒng)復(fù)位。單片機(jī)復(fù)位后,各寄存器和程序計(jì)數(shù)器PC的狀態(tài)見表2-11所示。(a)上電復(fù)位電路(b)上電復(fù)位及按鈕復(fù)位電路圖2-18單片機(jī)的復(fù)位電路2023/1/975系統(tǒng)簡單的復(fù)位電路圖如圖2-752023/1/10762023/1/976762023/1/10772.8AT89系列單片機(jī)的低功耗方式

節(jié)電工作方式是減少單片機(jī)功耗的工作方式,通常分為空閑(等待)方式和掉電(停機(jī))方式兩種。只有CHMOS型器件才有這種工作方式。正常工作電流:11~20mA空閑狀態(tài)電流:1.7~5mA掉電狀態(tài)電流:5~50μA節(jié)電工作方式由SFR中的PCON寄存器進(jìn)行控制:PD--掉電控制位IDL--空閑控制位Idle(空閑)PowerDown2023/1/9772.8AT89系列單片機(jī)的低功耗方式772023/1/10782.8AT89系列單片機(jī)的低功耗方式

在空閑工作方式中(IDL=1),振蕩器繼續(xù)工作,時(shí)鐘脈沖輸出到中斷系統(tǒng)、串行口以及定時(shí)器模塊,但卻不提供給CPU。在掉電方式中(PD=1),振蕩器停止工作。

SMOD:串行口波特率倍率控制位。GF0,GF1:通用標(biāo)志位。PD:掉電方式控制位。PD=1,進(jìn)入掉電工作方式。IDL:空閑方式控制位。IDL=1,進(jìn)入空閑工作方式。PCON寄存器的復(fù)位值為0XXX000,PCON.4~PCON.6為保留位,用戶不要對它們進(jìn)行寫操作。2023/1/9782.8AT89系列單片機(jī)的低功耗方式782023/1/10792.8.1空閑工作方式

當(dāng)CPU執(zhí)行完置IDL=1(ORLPCON,#01H,PCON.0=1)的指令后,系統(tǒng)進(jìn)入了空閑工作方式。這時(shí),內(nèi)部時(shí)鐘不提供給CPU,而只供給中斷、串行口、定時(shí)器部分。CPU的內(nèi)部狀態(tài)維持不變,即包括堆棧指針SP、程序計(jì)數(shù)器PC、程序狀態(tài)字PSW、累加器ACC等其他所有的內(nèi)容保持不變,端口狀態(tài)也保持不變。ALE保持邏輯高電平。

有兩種方法可以使系統(tǒng)退出空閑工作方式:

1、任何的中斷請求都可以由硬件將PCON.0(IDL)清0而中止空閑工作方式。當(dāng)執(zhí)行完中斷服務(wù)程序返回時(shí),從置空閑工作方式指令的下一條指令開始繼續(xù)執(zhí)行程序。

2、硬件復(fù)位。RST端的復(fù)位信號直接將PCON.0(IDL)清0,從而退出空閑狀態(tài),CPU則從進(jìn)入空閑方式的下一條指令開始重新執(zhí)行程序。2023/1/9792.8.1空閑工作方式792023/1/10802.8.2掉電工作方式

當(dāng)CPU執(zhí)行一條置PCON.1位(PD)為1的指令后,系統(tǒng)進(jìn)入掉電工作方式。在這種工作方式下,內(nèi)部振蕩器停止工作。由于沒有振蕩時(shí)鐘,因此所有的功能部件都停止工作,但內(nèi)部RAM區(qū)和特殊功能寄存器的內(nèi)容被保留,而端口的輸出狀態(tài)值都保存在對應(yīng)的SFR中,ALE和都為低電平。

退出掉電方式的惟一方法是硬件復(fù)位。復(fù)位后將所有的特殊功能寄存器的內(nèi)容初始化,但不改變內(nèi)部RAM區(qū)的數(shù)據(jù)。在掉電工作方式下,Vcc可以降到2?V,但在進(jìn)入掉電方式之前,Vcc不能降低。而在準(zhǔn)備退出掉電方式之前,Vcc必須恢復(fù)到正常的工作電壓值,并維持一段時(shí)間(約10?ms),使振蕩器重新啟動(dòng)并穩(wěn)定后,方可退出掉電方式。2023/1/9802.8.2掉電工作方式802023/1/10812.9AT89系列單片機(jī)的時(shí)序單片機(jī)取出指令后要對指令進(jìn)行譯碼產(chǎn)生各種操作信號,所謂時(shí)序,就是指CPU在執(zhí)行指令時(shí)所需控制信號的時(shí)間順序稱為時(shí)序。為達(dá)到同步協(xié)調(diào)工作的目的,各操作信號在時(shí)間上有嚴(yán)格的先后次序。CPU執(zhí)行指令的一系列動(dòng)作都是在時(shí)序電路控制下一拍一拍進(jìn)行的,為了便于對CPU時(shí)序進(jìn)行分析,人們按指令的執(zhí)行過程規(guī)定了幾種周期,即時(shí)鐘周期、狀態(tài)周期、機(jī)器周期和指令周期,也稱為時(shí)序定時(shí)單位。

2023/1/9812.9AT89系列單片機(jī)的時(shí)序812023/1/10822.9.1幾個(gè)基本時(shí)序單位時(shí)鐘周期:又稱為振蕩周期、節(jié)拍(用P表示),定義為單片機(jī)提供時(shí)鐘信號的振蕩源(OSC)的周期。它是時(shí)序中的最小單位。

圖2-20CPU的基本時(shí)序圖2023/1/9822.9.1幾個(gè)基本時(shí)序單位圖2-20C822023/1/1083狀態(tài)周期:每個(gè)狀態(tài)周期為時(shí)鐘周期的2倍,是振蕩源經(jīng)二分頻后得到。用作單片機(jī)內(nèi)部各功能部件按序協(xié)調(diào)工作的控制信號,稱為狀態(tài)周期,用S表示。

一個(gè)狀態(tài)有兩個(gè)節(jié)拍,前半周期對應(yīng)的節(jié)拍定義為P1,后半周期對應(yīng)的節(jié)拍定義為P2。一般情況下,CPU中的算術(shù)邏輯運(yùn)算在P1有效期間完成,在P2有效期間進(jìn)行內(nèi)部寄存器間的信息傳送。2023/1/983832023/1/10842-9AT89系列單片機(jī)的時(shí)序機(jī)器周期:完成一個(gè)基本操作所需要的時(shí)間稱為機(jī)器周期。51單片機(jī)有固定的機(jī)器周期,規(guī)定一個(gè)機(jī)器周期有6個(gè)狀態(tài),分別表示為S1~S6,而一個(gè)狀態(tài)包含兩個(gè)時(shí)鐘周期,那么一個(gè)機(jī)器周期就有12個(gè)時(shí)鐘周期,即機(jī)器周期就是振蕩脈沖的12分頻。指令周期:指CPU執(zhí)行一條指令所需要的時(shí)間,它是時(shí)序中的最大單位。一般由若干個(gè)機(jī)器周期組成,指令不同,所需要的機(jī)器周期數(shù)也不同。51系統(tǒng)中,一個(gè)指令周期通常含1~4個(gè)機(jī)器周期。大多數(shù)指令是單字節(jié)單周期指令,還有一些指令是單字節(jié)雙周期指令和雙字節(jié)雙周期指令,而乘法指令MUL和除法指令DIV都是單字節(jié)四周期指令(參見附錄B)。2023/1/9842-9AT89系列單片機(jī)的時(shí)序機(jī)器周期842023/1/10852-9AT89系列單片機(jī)的時(shí)序【例2-2】設(shè)AT89單片機(jī)的外接晶體振蕩器的振蕩頻率為12MHz,求該單片機(jī)的振蕩周期、狀態(tài)周期、機(jī)器周期和指令周期。解:振蕩周期=1/fosc=1/12MHZ=0.0833us

狀態(tài)周期=2/fosc=2/12MHZ=0.167us

機(jī)器周期=12/fosc=12/12MHZ=1us

指令周期=(1-4)機(jī)器周期=1-4us2023/1/9852-9AT89系列單片機(jī)的時(shí)序【例2-852023/1/10862.9.2CPU取指令和執(zhí)行指令時(shí)序CPU在執(zhí)行指令時(shí),對每條指令的執(zhí)行都分為取指令和執(zhí)行指令兩個(gè)階段,圖2-21給出了89系列單片機(jī)取指令和執(zhí)行指令的時(shí)序。執(zhí)行指令時(shí),CPU從內(nèi)部或外部ROM中取出指令操作碼及操作數(shù),然后再執(zhí)行這條指令。

大部分指令在整個(gè)指令執(zhí)行過程中,在每個(gè)機(jī)器周期內(nèi)ALE信號出現(xiàn)兩次。每出現(xiàn)一次ALE信號,CPU就依次進(jìn)行取指令操作,但并不是每條指令在ALE生效時(shí)都能有效地讀取指令,

在此,我們針對單字節(jié)單周期指令、雙字節(jié)單周期指令、單字節(jié)雙周期指令等幾種典型指令,介紹其取指令和執(zhí)行指令的時(shí)序。2023/1/9862.9.2CPU取指令和執(zhí)行指令時(shí)序862023/1/1087(1)單字節(jié)單周期指令:只需進(jìn)行一次讀指令操作(指令只有一個(gè)字節(jié)),當(dāng)?shù)诙€(gè)ALE有效時(shí),由于PC沒有加1,讀出的還是原指令。屬于一次無效操作。單字節(jié)單周期指令例:INCA2023/1/987(1)單字節(jié)單周期指令:單字節(jié)單周期指令872023/1/1088(2)雙字節(jié)單周期指令:

ALE兩次讀操作都有效,第一次讀操作碼(指令第一字節(jié)),第二次讀立即數(shù)(指令第二字節(jié))。雙字節(jié)單周期指令例:ADDA,#data2023/1/988(2)雙字節(jié)單周期指令:雙字節(jié)單周期指令8889(3)單字節(jié)雙周期指令:

兩個(gè)機(jī)器周期共進(jìn)行四次讀指令操作,但其后三次的讀操作都是無效的。89單字節(jié)雙周期指令例:INCDPTR89(3)單字節(jié)雙周期指令:89單字節(jié)雙周期指令例:INC89902023/1/10單片機(jī)原理與應(yīng)用電子課件第2

章AT89系列單片機(jī)的硬件體系結(jié)構(gòu)12023/1/9單片機(jī)原理與應(yīng)用電子課件第2章AT89902023/1/1091本章主要內(nèi)容2.1AT89系列單片機(jī)概述2.2

AT89系列單片機(jī)的結(jié)構(gòu)原理2.3AT89系列單片機(jī)的存儲器結(jié)構(gòu)2.4AT89系列單片機(jī)的引腳功能2.5AT89系列單片機(jī)的I/O接口2.6

AT89S系列單片機(jī)內(nèi)部看門狗定時(shí)器(WDT)2.7AT89系列單片機(jī)的復(fù)位工作方式2.8AT89系列單片機(jī)的低功耗方式2.9AT89系列單片機(jī)的時(shí)序2023/1/92本章主要內(nèi)容2.1AT89系列單片機(jī)概述912023/1/1092第2章AT89系列單片機(jī)的硬件體系結(jié)構(gòu)

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

2023/1/93第2章AT89系列單片機(jī)的硬件體系結(jié)92第二章AT89系列單片機(jī)的硬件體系結(jié)構(gòu)n精要課件932023/1/10942.1AT89系列單片機(jī)概述2.1.1AT89系列單片機(jī)簡介

AT89系列單片機(jī)是與MCS—51系列單片機(jī)兼容的低功耗高性能8位Flash單片機(jī)。它是在MCS-51的技術(shù)內(nèi)核為主導(dǎo)的基礎(chǔ)上傾注了ATMEL公司優(yōu)良技術(shù)進(jìn)行新的設(shè)計(jì)和開發(fā),使之功能更強(qiáng)、更具特色,尤其是AT89S系列單片機(jī)具有在系統(tǒng)可程序設(shè)計(jì)功能,使生產(chǎn)維護(hù)更加方便靈活。

2023/1/952.1AT89系列單片機(jī)概述2.1.1942023/1/10952.1.2AT89系列單片機(jī)的主要性能與MCS-51單片機(jī)產(chǎn)品兼容4K/8K等可程序設(shè)計(jì)Flash內(nèi)存1000次擦寫周期全靜態(tài)操作:0Hz~33MHz(89S系列)或00Hz~24MHz(89C系列)三級加密程序內(nèi)存32個(gè)可程序設(shè)計(jì)I/O口線兩個(gè)/三個(gè)16位定時(shí)器/計(jì)數(shù)器6/8個(gè)中斷源全雙工UART串行通道低功耗空閑和掉電模式看門狗定時(shí)器及雙數(shù)據(jù)指針(89S系列)靈活的在系統(tǒng)程序設(shè)計(jì)(ISP)(89S系列)

2023/1/962.1.2AT89系列單片機(jī)的主要性能952023/1/10962.1.3AT89系列單片機(jī)的主要品種

Atmel公司的AT89系列單片機(jī)有多種型號,但以AT89X51和AT89X52為代表,其主要單片機(jī)品種及其特性見表2-1。

2023/1/972.1.3AT89系列單片機(jī)的主要品種96PLCC(PlasticLeadedChipCarrier),帶引線的塑料芯片載體.表面貼裝型封裝之一,外形呈正方形,32腳封裝PLCC(PlasticLeadedChipCarri97PQFP(PlasticQuadFlatPackage,塑料方塊平面封裝)一種芯片封裝形式,引腳總數(shù)一般都在100以上。PQFP(PlasticQuadFlatPackage982023/1/10992.1.3AT89系列單片機(jī)的主要品種

從表2-1中可以看出,AT89系列單片機(jī)主要分為51和52兩個(gè)子系列,每個(gè)子系列都有四種型號.

52子系列與51子系列相比不同之處:flash程序內(nèi)存增至8KB,數(shù)據(jù)存儲器增至256B,有3個(gè)定時(shí)器/計(jì)數(shù)器等;AT89S和AT89C相比新增加了以下功能:支持在系統(tǒng)程序設(shè)計(jì)ISP

溫馨提示

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

最新文檔

評論

0/150

提交評論