版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2023/2/51第2章AT89C51單片機(jī)的結(jié)構(gòu)22023/2/5第2章AT89C51單片機(jī)的結(jié)構(gòu)2.1AT89C51單片機(jī)的基本結(jié)構(gòu) 2.2AT89C51單片機(jī)的存儲(chǔ)器配置 2.3AT89C51的時(shí)鐘電路與CPU時(shí)序2.4AT89C51復(fù)位與復(fù)位電路 2.5AT89C51單片機(jī)的最小系統(tǒng)32023/2/52.1AT89C51單片機(jī)的基本結(jié)構(gòu)AT89C51是具有MCS-51內(nèi)核、片內(nèi)帶有4KB的flashROM的單片機(jī),圖2-1為AT89C51基本結(jié)構(gòu)示意圖。從圖中可以看出,單片機(jī)有一條內(nèi)部總線,各個(gè)功能模塊都掛在這條總線上,通過(guò)內(nèi)部總線傳送數(shù)據(jù)信息和控制信息。AT89C51主要由以下部件組成。42023/2/5AT89C51單片機(jī)基本結(jié)構(gòu)示意圖52023/2/562023/2/5AT89C51主要組成部件1.CPUCPU是單片機(jī)的核心部分,CPU包括兩個(gè)基本部分:運(yùn)算器和控制器。(1)運(yùn)算器運(yùn)算器即算術(shù)邏輯運(yùn)算單元ALU(ArithmeticLogicUint),是進(jìn)行算術(shù)或邏輯運(yùn)算的部件??蓪?shí)現(xiàn)算術(shù)運(yùn)算和邏輯運(yùn)算。操作的結(jié)果一般送回累加器ACC(Accumulator),而其狀態(tài)信息送至程序狀態(tài)寄存器PSW(ProgramStatusWord)。(2)控制器控制器是用來(lái)控制計(jì)算機(jī)工作的部件??刂破鹘邮諄?lái)自存儲(chǔ)器的指令,使各部分協(xié)調(diào)工作,完成指令所規(guī)定的操作。72023/2/52.內(nèi)部數(shù)據(jù)存儲(chǔ)器AT89C51芯片內(nèi)共有256B(地址為:00H~FFH)的數(shù)據(jù)存儲(chǔ)器,其中高128B(地址為:80H~FFH)被專用寄存器占用,能作為寄存器供用戶使用的只是低128B(地址為:00H~7FH),用于存放可讀寫的數(shù)據(jù),如程序執(zhí)行過(guò)程中的變量。82023/2/53.內(nèi)部程序存儲(chǔ)器AT89C51共有4KB(地址為:0000H~0FFFH)的flash程序存儲(chǔ)器,用于存放程序、原始數(shù)據(jù)或表格常數(shù)。4.定時(shí)/計(jì)數(shù)器AT89C51共有兩個(gè)16位的定時(shí)/計(jì)數(shù)器,每個(gè)定時(shí)/計(jì)數(shù)器都可以設(shè)置成計(jì)數(shù)方式,用于對(duì)外部事件進(jìn)行計(jì)數(shù);也可以設(shè)置成定時(shí)方式,并可以根據(jù)計(jì)數(shù)或定時(shí)的結(jié)果實(shí)現(xiàn)對(duì)單片機(jī)運(yùn)行的控制。92023/2/55.并行I/O口AT89C51共有4個(gè)8位的I/O口(P0、Pl、P2、P3)。每個(gè)8位的口,既可用作輸入口,也可用作輸出口,每個(gè)口即可以8位同步讀寫,又可對(duì)每一位進(jìn)行單獨(dú)的操作,十分的方便。6.串行口AT89C51單片機(jī)有一個(gè)全雙工的串行接口,以實(shí)現(xiàn)單片機(jī)和其他設(shè)備之間的串行數(shù)據(jù)傳送。該串行口功能較強(qiáng),既可作為全雙工異步通信收發(fā)器使用,也可作為同步移位器使用。102023/2/57.中斷控制系統(tǒng)AT89C51單片機(jī)有較強(qiáng)的中斷系統(tǒng),可以滿足控制應(yīng)用的需要。AT89C51的中斷系統(tǒng)有5個(gè)中斷源,包括兩個(gè)外中斷、兩個(gè)定時(shí)/計(jì)數(shù)中斷和一個(gè)串行口中斷。8.時(shí)鐘電路AT89C51芯片的內(nèi)部有時(shí)鐘電路,但石英晶體和微調(diào)電容需外接。時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)鐘脈沖序列。112023/2/52.1.2AT89C51單片機(jī)的引腳功能AT89C51單片機(jī)采用40腳雙列直插式的DIP40封裝,還提供較小尺寸表面封裝形式的PQFP/TQFP44,其引腳排列如圖2-2所示。為使結(jié)構(gòu)更加緊湊,單片機(jī)的許多引腳具有雙重功能。122023/2/5AT89C51采用DIP40封裝132023/2/5AT89C51采用PQFP/TQFP44封裝142023/2/5引腳功能
40個(gè)引腳大致可分為4類:電源、時(shí)鐘、控制和I/O引腳。152023/2/5⒈電源:⑴VCC-芯片電源,接+5V;⑵VSS-接地端;⒉時(shí)鐘:XTAL1、XTAL2-晶體振蕩電路反相輸入端和輸出端。⒊控制線:控制線共有4根,⑴ALE/PROG:地址鎖存允許/片內(nèi)EPROM編程脈沖
ALE功能:用來(lái)鎖存P0口送出的低8位地址
PROG功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。⑵PSEN:外ROM讀選通信號(hào)。⑶RST/VPD:復(fù)位/備用電源。
RST(Reset)功能:復(fù)位信號(hào)輸入端。
VPD功能:在Vcc掉電情況下,接備用電源。⑷EA/Vpp:內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。
EA功能:內(nèi)外ROM選擇端。
Vpp功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,施加編程電源Vpp。162023/2/5⒋
I/O線
80C51共有4個(gè)8位并行I/O端口:P0、P1、P2、P3口,共32個(gè)引腳。P3口還具有第二功能,用于特殊信號(hào)輸入輸出和控制信號(hào)(屬控制總線)。P3.0——
RXD:串行口輸入端;P3.1——
TXD:串行口輸出端;P3.2——
INT0:外部中斷0請(qǐng)求輸入端;P3.3——
INT1:外部中斷1請(qǐng)求輸入端;P3.4——
T0:定時(shí)/計(jì)數(shù)器0外部信號(hào)輸入端;P3.5——
T1:定時(shí)/計(jì)數(shù)器1外部信號(hào)輸入端;P3.6——
WR:外RAM寫選通信號(hào)輸出端;P3.7——
RD:外RAM讀選通信號(hào)輸出端。172023/2/5P3口的第二功能表表2-1P3口的第二功能表端口引腳(DIP40封裝)第二功能P3.010RXD(串行輸入口)P3.111TXD(串行輸出口)P3.212INT0(外部中斷0輸入)P3.313INT1(外部中斷1輸入)P3.414T0(定時(shí)/計(jì)數(shù)器0的外部計(jì)數(shù)輸入)P3.515T1(定時(shí)/計(jì)數(shù)器1的外部計(jì)數(shù)輸入)P3.616WR(外部數(shù)據(jù)存儲(chǔ)器寫脈沖輸出)P3.717RD(外部數(shù)據(jù)存儲(chǔ)器讀脈沖輸出)182023/2/52.2AT89C51單片機(jī)的存儲(chǔ)器配置
一般微機(jī)通常是程序和數(shù)據(jù)共用一個(gè)存儲(chǔ)空間,屬于“馮.諾依曼”(VonNeumann)結(jié)構(gòu)。而單片機(jī)的存儲(chǔ)器組織結(jié)構(gòu)則把程序存儲(chǔ)空間和數(shù)據(jù)存儲(chǔ)空間嚴(yán)格區(qū)分開(kāi)來(lái),屬于“哈佛”(Harvard)結(jié)構(gòu)。192023/2/52.2AT89C51單片機(jī)的存儲(chǔ)器配置AT89C51單片機(jī)存儲(chǔ)器在物理結(jié)構(gòu)上分成四個(gè)存儲(chǔ)空間:片內(nèi)程序存儲(chǔ)器、片外程序存儲(chǔ)器、片內(nèi)數(shù)據(jù)存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器。從用戶使用的角度,即從邏輯上考慮,則有三個(gè)存儲(chǔ)空間:片內(nèi)外統(tǒng)一編址的64KB程序存儲(chǔ)器地址空間(0000H~FFFFH)、256B的片內(nèi)數(shù)據(jù)存儲(chǔ)器地址空間(00H~FFH)及片外數(shù)據(jù)存儲(chǔ)器地址空間(0000H~FFFFH)。CPU在訪問(wèn)三個(gè)不同的邏輯空間時(shí),通過(guò)采用不同形式的指令,來(lái)產(chǎn)生相應(yīng)的存儲(chǔ)器選通信號(hào),訪問(wèn)程序存儲(chǔ)器使用MOVC指令、訪問(wèn)片內(nèi)數(shù)據(jù)存儲(chǔ)器使用MOV指令、訪問(wèn)片外數(shù)據(jù)存儲(chǔ)器使用MOVX指令202023/2/5程序存儲(chǔ)器89C51單片機(jī)內(nèi)部有4K的程序存儲(chǔ)器,0000H~0FFFH;程序從0000H開(kāi)始;有一些特殊功能的區(qū)域,如中斷入口地址。212023/2/5特殊功能寄存器(21個(gè)SFR)內(nèi)部RAM128B00H7FH80HFFH外部RAM(64KB)0000HFFFFHWERD外部ROM(60KB)EA=0/1內(nèi)部ROM(4KB)EA=1外部ROM(4KB)EA=0PSEN0000H0FFFH1000HFFFFH222023/2/5AT89C51程序存儲(chǔ)器配置232023/2/5中斷入口地址表:中斷源入口地址外部中斷00003H定時(shí)器0000BH外部中斷10013H定時(shí)器1001BH串行口0023H242023/2/5數(shù)據(jù)存儲(chǔ)器
內(nèi)部數(shù)據(jù)存儲(chǔ)器在物理上分為兩個(gè)不同的存儲(chǔ)空間:數(shù)據(jù)存儲(chǔ)器空間(低128單元)特殊功能寄存器空間(高128單元)。這兩個(gè)空間是相連的。從用戶角度而言,低128單元才是真正的數(shù)據(jù)存儲(chǔ)器。252023/2/5MCS51數(shù)據(jù)存儲(chǔ)器配置262023/2/5AT89C51低128B的片內(nèi)數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器由RAM構(gòu)成,一旦掉電,其數(shù)據(jù)將丟失。低128B的數(shù)據(jù)存儲(chǔ)器(地址范圍:00H~7FH)用于存放程序運(yùn)算的中間結(jié)果的暫存,用作緩存、堆棧等。低128B的數(shù)據(jù)存儲(chǔ)器的存儲(chǔ)器配置如圖2-4。數(shù)據(jù)存儲(chǔ)器空間(低128單元)按功能劃分為:通用寄存器區(qū)位尋址區(qū)用戶區(qū)272023/2/5AT89C51低128B的片內(nèi)數(shù)據(jù)存儲(chǔ)器用戶RAM區(qū)工作寄存器區(qū)位尋址區(qū)00H2FH30H7FH1FH20H工作寄存器3區(qū)工作寄存器2區(qū)工作寄存器1區(qū)工作寄存器0區(qū)07H00H08H0FH10H17H18H1FH282023/2/51)片內(nèi)RAM工作寄存器區(qū):字節(jié)地址:00H~1FH位尋址區(qū):字節(jié)地址:20H~2FH位地址為:00H~7FH數(shù)據(jù)緩沖區(qū)/堆棧區(qū):字節(jié)地址:00H~7FH一般使用30H~7FH292023/2/5工作寄存器區(qū)
將地址00H~1FH共32個(gè)單元設(shè)為工作寄存器區(qū),分為4組,每組由8個(gè)單元按序組成通用寄存器R0~R7。任一時(shí)刻CPU只能選用一組工作寄存器為當(dāng)前工作寄存器。CPU復(fù)位后,自動(dòng)選中第0組工作寄存器。通過(guò)程序?qū)Τ绦驙顟B(tài)字PSW中的RS1、RS0位進(jìn)行設(shè)置,以實(shí)現(xiàn)工作寄存器組的切換,對(duì)應(yīng)關(guān)系如表2-2。表2-2工作寄存器選擇RS1RS0寄存器組片內(nèi)RAM地址00第0組00H~07H01第1組08H~0FH10第2組10H~17H11第3組18H~1FH302023/2/5位尋址區(qū)
地址為20H~2FH的16個(gè)RAM(字節(jié))單元,既可以作為一般的數(shù)據(jù)存儲(chǔ)器按字節(jié)讀寫,又可以按位存取。
16個(gè)RAM單元,每個(gè)單元8位,共有128位,將每一位分配一個(gè)地址,稱為位地址,地址編碼00~7FH。表2-3是位地址的分布表。字節(jié)地址和位地址都是用8位的二進(jìn)制表示,理解上容易產(chǎn)生混淆。字節(jié)地址單元的數(shù)據(jù)(內(nèi)容)是8位二進(jìn)制數(shù),而位地址的數(shù)據(jù)(內(nèi)容)是1位二進(jìn)制數(shù)。例如,字節(jié)地址2AH單元的數(shù)為0,表示位地址50H~57H中8個(gè)單元的數(shù)均為0,又例如位地址28H的數(shù)為0表示字節(jié)地址25H的D0位(最低位)為0。也可以用“字節(jié)地址.位”表示位地址,例如25H.1(字節(jié)地址25H的第1位D1)等于位地址29H。312023/2/5位尋址區(qū)(20H—2FH)16個(gè)字節(jié)。16*8=128位,每一位都有一個(gè)位地址,范圍為:00H—7FH,位地址區(qū)也可作為一般RAM使用。位尋址區(qū)322023/2/5用戶RAM區(qū)在30H~7FH區(qū)的80個(gè)RAM單元為用戶RAM區(qū),只能按字節(jié)存取。30H~7FH區(qū)是真正的數(shù)據(jù)緩沖區(qū)。由于工作寄存器區(qū)、位尋址區(qū)、數(shù)據(jù)緩沖區(qū)統(tǒng)一編址,使用同樣的指令訪問(wèn),這三個(gè)區(qū)的單元既有自己獨(dú)特的功能,又可統(tǒng)一調(diào)度使用。因此,前兩區(qū)未使用的單元也可用為一般的用戶RAM單元,使容量較小的片內(nèi)RAM得以充分利用。程序設(shè)計(jì)時(shí),將中間的計(jì)算結(jié)果,作為變量存放在該區(qū)域。對(duì)這部分區(qū)域的使用不作任何規(guī)定和限制,但應(yīng)當(dāng)說(shuō)明的是,堆棧一般開(kāi)辟在此區(qū)。332023/2/5*關(guān)于堆棧堆棧:是一個(gè)特殊的存儲(chǔ)區(qū)域;特點(diǎn):“后進(jìn)先出”。單片機(jī)的堆棧是地址增加型,即壓入數(shù)據(jù)時(shí)地址指針增加。堆站的操作有 壓入:PUSH
彈出:POP342023/2/5堆棧操作示意圖352023/2/5362023/2/5AT89C51的特殊功能寄存器SFR(高128單元)內(nèi)部RAM的高128單元是給特殊寄存器使用的,因此稱之為專用寄存器區(qū),其單元地址為80H~FFH。因?yàn)檫@些寄存器的功能已作專門規(guī)定,所以稱其為專用寄存器或特殊功能寄存器(SpecialFunctionRegisters)。特殊功能寄存器的總數(shù)為21個(gè),僅占用了80H~FFH中的很小一部分。表中給出了這些特殊功能寄存器的符號(hào)、名稱和地址等。372023/2/5特殊功能寄存器SFR占用字節(jié)地址:80H~FFH位尋址寄存器:其字節(jié)地址可被8整除。專用寄存器:A、B、PSW、DPTR、SPI/O接口寄存器:
P0、P1、P2、P3、SBUF、TMOD、TCON、SCON…382023/2/5表2-4特殊功能寄存器SFR地址表寄存器位地址及位名稱字節(jié)地址D7D6D5D4D3D2D1D0BF7HF6HF5HF4HF3HF2HF1HF0HF0HACCE7HE6HE5HE4HE3HE2HE1HE0HE0HPSWD7HD6HD5HD4HD3HD2HD1HD0HD0HCyACF0RS1RS0OVF1PIPBFHBEHBDHBCHBBHBAHB9HB8HB8HP3B7HB6HB5HB4HB3HB2HB1HB0HB0HP3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0IEAFHAEHADHACHABHAAHA9HA8HA8HEAESET1EX1ET0EX0特殊功能寄存器符號(hào)極其分布表392023/2/5P2A7HA6HA5HA4HA3HA2HA1HA0HA0HP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0SBUF99HSCON9FH9EH9DH9CH9BH9AH99H98H98HSM0SM1SM2RENTB8RB8TIRIP197H96H95H94H93H92H91H90H90HP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0TH18DHTH08CHTL18BHTL08AHTMODGATEC/TM1M0GATEC/TM1M089HTCON8FH8EH8DH8CH8BH8AH89H88H88HTF1TR1TF0TR0IE1IT1IE0IT0PCONSMODGF1GF0PDIDL87HDPH83HDPL82HSP81HP087H86H85H84H83H82H81H80H80HP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0402023/2/521個(gè)特殊功能寄存器是不連讀地分散在內(nèi)部RAM的高128單元之中,盡管其中還有許多空閑地址,但用戶不能使用。程序計(jì)數(shù)器PC是獨(dú)立于SFR之外的唯一的一個(gè)不可尋址的專用寄存器。PC不占RAM單元,在物理上是獨(dú)立存在的。它不包括在21個(gè)特殊功能寄存器中。在21個(gè)特殊功能寄存器中,有11個(gè)寄存器不僅可以字節(jié)尋址,也可以進(jìn)行位尋址。凡是能進(jìn)行位尋址的SFR,其特征是字節(jié)地址都能被8整除(字節(jié)地址的末位是0或8)。IP中有3位、IE中有2位、PSW中有一位對(duì)用戶無(wú)實(shí)際意義,所以直接尋址位為82位;再加上數(shù)據(jù)存儲(chǔ)器中的128位,89C51共計(jì)有210位可尋址位。412023/2/5(1)程序計(jì)數(shù)器PCPC是一個(gè)16位的計(jì)數(shù)器。其內(nèi)容為將要執(zhí)行的指令地址,尋址范圍達(dá)64KB。PC有自動(dòng)加1功能,從而實(shí)現(xiàn)程序的順序執(zhí)行。PC沒(méi)有地址,是不可尋址的(但在物理上是存在的),因此用戶無(wú)法對(duì)它進(jìn)行讀寫;但可以通過(guò)轉(zhuǎn)移、調(diào)用返回等指令改變其內(nèi)容,以實(shí)現(xiàn)程序的轉(zhuǎn)移。422023/2/5(2) 累加器A累加器A為8位寄存器,是最常用的專用寄存器,功能較多。它既可用于存放操作數(shù),也可用來(lái)存放中間結(jié)果。89C51單片機(jī)中大部分單操作數(shù)指令的操作數(shù)就取自累加器,許多雙操作數(shù)指令中的一個(gè)操作數(shù)也取自累加器。加、減、乘、除運(yùn)算指令的運(yùn)算結(jié)果都存放在累加器A或B寄存器中。432023/2/5(3) B寄存器B寄存器是一個(gè)8位寄存器,主要用于乘除運(yùn)算。乘法運(yùn)算時(shí),B是乘數(shù)。乘法操作后,乘積的高8位存于B中。除法運(yùn)算時(shí),B存放除數(shù)。除法操作后,余數(shù)存于B中。此外,B寄存器也可作為一般數(shù)據(jù)寄存器使用。442023/2/5(4)程序狀態(tài)字PSW(PROGRAMSTATUSWORD)程序狀態(tài)字PSW是一個(gè)8位寄存器,用于存放程序運(yùn)行的狀態(tài)信息。其中,有些位的狀態(tài)是程序執(zhí)行的結(jié)果,是由硬件自動(dòng)置位的;而有些位的狀態(tài)則采用軟件的方法來(lái)設(shè)定。PSW的位狀態(tài)可以用專門指令進(jìn)行測(cè)試,也可以用指令讀出。一些條件轉(zhuǎn)移指令會(huì)根據(jù)PSW有關(guān)位的狀態(tài)進(jìn)行程序轉(zhuǎn)移。PSW的各位含義如圖所示。其中PSW.1為保留位,未用。452023/2/5程序狀態(tài)字PSW表2-5程序狀態(tài)字寄存器PSW各位名稱及地址位D7D6D5D4D3D2D1D0位地址D7HD6HD5HD4HD3HD2HD1HD0H名稱CYACF0RS1RS0OVF1P462023/2/5CY(PSW.7):進(jìn)位標(biāo)志位
CY是PSW中最常用的標(biāo)志位,其功能有二:一是存放算術(shù)運(yùn)算的進(jìn)位標(biāo)志;二是在位操作中作累加位使用。位傳送、位與、位或操作,操作數(shù)之一為進(jìn)位標(biāo)志位。AC(PSW.6):輔助進(jìn)位位 當(dāng)進(jìn)行加法或減法操作而產(chǎn)生由低4位向高4位的進(jìn)位或借位時(shí),由硬件將AC置1;否則就被清除。AC還用于十進(jìn)制調(diào)整,同DAA指令結(jié)合起來(lái)使用。472023/2/5F0(PSW.5):用戶標(biāo)志位 它是用戶定義的一個(gè)狀態(tài)標(biāo)記,可以用軟件來(lái)使它置位或清除,也可用軟件測(cè)試F0以控制程序的流向。RS1、RS0(PSW.4,PSW.3):當(dāng)前寄存器區(qū)選擇位 用軟件來(lái)置位或清除,以選擇和確定當(dāng)前工作寄存器區(qū)。
482023/2/5OV(PSW.2)溢出標(biāo)志位①在帶符號(hào)數(shù)運(yùn)算中,OV=1,表示加減運(yùn)算結(jié)果超出了累加器A所能表示的符號(hào)數(shù)的有效范圍(–128~+127),即產(chǎn)生了溢出,因此運(yùn)算結(jié)果是錯(cuò)誤的;否則OV=0,運(yùn)算結(jié)果正確,無(wú)溢出。②在乘法運(yùn)行中,OV=1,表示乘積超過(guò)255,即乘積分別放在B與A中;否則OV=0,表示乘積只放在A中。③在除法運(yùn)行中,OV=1,表示除數(shù)為0,除法不能進(jìn)行;否則,OV=0,除數(shù)不為0,除法可正常進(jìn)行。492023/2/5P(PSW.0):奇偶位
每個(gè)指令周期都由硬件來(lái)置位或清除,以表示累加器A中1的個(gè)數(shù)的奇偶性。P=1,則累加器A中1的個(gè)數(shù)為奇數(shù);若P=0,則累加器A中1的個(gè)數(shù)為偶數(shù)。在串行通訊中用于校驗(yàn)數(shù)據(jù)的正確性。502023/2/5(5) 堆棧指針SP
堆棧指針SP是一個(gè)8位專用寄存器。它指示出堆棧頂部在內(nèi)部數(shù)據(jù)存儲(chǔ)器中的位置。系統(tǒng)復(fù)位后,SP初始化為07H,使得堆棧向上由08H單元開(kāi)始??紤]到08H~1FH單元屬于工作寄存器區(qū),若程序設(shè)計(jì)中要用到這些區(qū),最好把SP的值置為1FH或更大一些,一般將堆棧開(kāi)辟在30H~7FH區(qū)域中。SP的值越小,堆棧深度就越深,但最大為128字節(jié)。512023/2/5SP的值除了可以用軟件直接改變外(MOVSP,#DATA),在執(zhí)行堆棧操作,程序調(diào)用、子程序返回及中斷返回等指令時(shí),SP的值自動(dòng)增量或減量。堆棧操作指令為:
PUSH ACC(壓入堆棧)
POP ACC(彈出堆棧)522023/2/5(6) 數(shù)據(jù)指針DPTR數(shù)據(jù)指針DPTR是唯一1個(gè)16位的可尋址的專用寄存器;由兩個(gè)8位寄存器DPH和DPL拼裝而成,其中DPH為DPTR的高8位,DPL為DPTR的低8位。它既可作為一個(gè)16位寄存器來(lái)使用,也可作為2個(gè)獨(dú)立的8位寄存器(DPH和DPL)來(lái)使用。
DPTR通常用來(lái)存放16位地址。既可訪問(wèn)外部RAM,也可訪問(wèn)ROM。例如:
MOV DPTR, #2000H MOVX A, @PPTR
;將外RAM2000H單元內(nèi)容→A MOVC A, @A+DPTR
;訪問(wèn)ROM指令532023/2/5(7) 端口P0~P3專用寄存器P0、P1、P2和P3分別是I/O口P0~P3的鎖存器。在80C51中,I/O和RAM統(tǒng)一編址,既可以字節(jié)尋址,也可以位尋址,使用起來(lái)較方便。 有關(guān)P0~P3的詳細(xì)情況,在后續(xù)內(nèi)容中介紹。542023/2/5(8) 串行數(shù)據(jù)緩沖器SBUF串行數(shù)據(jù)緩沖器SBUF用于存放欲發(fā)送或接收的數(shù)據(jù),它實(shí)際上由兩個(gè)獨(dú)立的寄存器組成,一個(gè)是發(fā)送緩沖器,另一個(gè)是接收緩沖器。當(dāng)要發(fā)送的數(shù)據(jù)傳送到SBUF時(shí),進(jìn)入的是發(fā)送緩沖器,當(dāng)要從SBUF取數(shù)據(jù)時(shí),則取自接收緩沖器,取走的是剛接收到的數(shù)據(jù)。552023/2/5(9) 定時(shí)器/計(jì)數(shù)器80C51單片機(jī)有兩個(gè)16位定時(shí)器/計(jì)數(shù)器T0和T1,它們分別由兩個(gè)獨(dú)立的8位寄存器組成,共有4個(gè)獨(dú)立的寄存器:TH0,TL0,TH1,TL1,可對(duì)這4個(gè)寄存器尋址,但不能把T0和T1當(dāng)成16位寄存器來(lái)訪問(wèn)。562023/2/5(10) 其它控制寄存器IP、IE、TMOD、TCON、SCON和PCON寄存器分別包含有中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器、串行口和供電方式的控制和狀態(tài)位,這些寄存器將在以后內(nèi)容中介紹。572023/2/5AT89C51的片外數(shù)據(jù)存儲(chǔ)器外部數(shù)據(jù)存儲(chǔ)器又稱外部RAM,當(dāng)片內(nèi)RAM的容量不能滿足要求時(shí),可通過(guò)總線端口和其他I/O口擴(kuò)展外部數(shù)據(jù)RAM,其最大容量可達(dá)64K字節(jié)。外部數(shù)據(jù)存儲(chǔ)器和內(nèi)部數(shù)據(jù)存儲(chǔ)器的功能基本相同,但外部數(shù)據(jù)存儲(chǔ)器不能用于堆棧操作,對(duì)外部外部數(shù)據(jù)存儲(chǔ)器的訪問(wèn)只能使用間接尋址方式。582023/2/5特殊功能寄存器(21個(gè)SFR)內(nèi)部RAM128B00H7FH80HFFH外部RAM(64KB)0000HFFFFHWERD外部ROM(60KB)EA=0/1內(nèi)部ROM(4KB)EA=1外部ROM(4KB)EA=0PSEN0000H0FFFH1000HFFFFH592023/2/5AT89C52的存儲(chǔ)器配置AT89C52相當(dāng)于MCS-51單片機(jī)中的52子系列,與51子系列的AT89C51相比,片內(nèi)的程序存儲(chǔ)器flashROM增加到了8KB,片內(nèi)的數(shù)據(jù)存儲(chǔ)器增加了128B。AT89C52的存儲(chǔ)器結(jié)構(gòu)如圖2-7所示。外部ROM(56KB)EA=0/1內(nèi)部ROM(8KB)EA=1外部ROM(8KB)EA=0PSEN0000H1FFFH2000HFFFFH特殊功能寄存器(27個(gè)SFR)內(nèi)部RAM低128B00H7FH80HFFH內(nèi)部RAM高128B內(nèi)部數(shù)據(jù)存儲(chǔ)器內(nèi)、外程序存儲(chǔ)器602023/2/589C51的存儲(chǔ)器配置小結(jié)AT89C51的片內(nèi)集成有一定容量的程序存儲(chǔ)器(4K)和數(shù)據(jù)存儲(chǔ)器(128B)。當(dāng)然,還可以根據(jù)需要對(duì)存儲(chǔ)器進(jìn)行外部擴(kuò)展。從物理上分,89C51的存儲(chǔ)器有4個(gè)存儲(chǔ)空間:片內(nèi)程序存儲(chǔ)器、片外程序存儲(chǔ)器、片內(nèi)數(shù)據(jù)存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器。從邏輯上分,89C51有3個(gè)存儲(chǔ)器地址空間:片內(nèi)外統(tǒng)一的64KB的程序存儲(chǔ)器地址空間、256B的內(nèi)部數(shù)據(jù)存儲(chǔ)器地址空間(其中128B的專用寄存器地址空間,僅有部分字節(jié)有實(shí)際意義)和64KB的外部數(shù)據(jù)存儲(chǔ)器地址空間。為了區(qū)分不同的存儲(chǔ)器空間,在用指令訪問(wèn)這三個(gè)不同的邏輯空間時(shí)采用了不同形式的指令。612023/2/52.3AT89C51的時(shí)鐘電路與CPU時(shí)序晶體振蕩器時(shí)鐘方式利用芯片內(nèi)部的振蕩器,然后在引腳XTALl和XTAL2兩端跨接晶體振蕩器(簡(jiǎn)稱晶振),就構(gòu)成了穩(wěn)定的自激振蕩器,發(fā)出的脈沖直接送入內(nèi)部時(shí)鐘電路。外接晶振通常為石英晶體振蕩器或振蕩器。使用石英晶體振蕩器時(shí),Cl和C2的值為30pF左右;使用陶瓷振蕩器時(shí),Cl和C2的值為40pF左右;選用晶振的頻率也就是單片機(jī)的時(shí)鐘頻率,AT89C51最高時(shí)鐘頻率可達(dá)到24MHz。晶振和電容要盡可能安裝得與單片機(jī)引腳XTALl和XTAL2靠近。XTAL1XTAL2AT89C51C1C2622023/2/52.3AT89C51的時(shí)鐘電路與CPU時(shí)序外部時(shí)鐘方式 從單片機(jī)外部直接引入振蕩時(shí)鐘脈沖。振蕩時(shí)鐘脈沖從AT89C51的XTALl輸入,XTAL2應(yīng)懸空。XTAL1XTAL2AT89C51懸空外部時(shí)鐘632023/2/5CPU時(shí)序單片機(jī)的時(shí)序是指CPU在執(zhí)行指令時(shí)所需控制信號(hào)的時(shí)間順序。時(shí)序信號(hào)是以時(shí)鐘脈沖為基準(zhǔn)產(chǎn)生的。CPU發(fā)出的時(shí)序信號(hào)有兩類:一類用于片內(nèi)各功能部件的控制,由于這類信號(hào)在CPU內(nèi)部使用,用戶無(wú)須了解;另一類信號(hào)通過(guò)單片機(jī)的引腳送到外部,用于片外存儲(chǔ)器或I/O端口的控制,這類時(shí)序信號(hào)對(duì)單片機(jī)系統(tǒng)的硬件設(shè)計(jì)非常重要。為了便于對(duì)CPU時(shí)序進(jìn)行分析,人們按指令的執(zhí)行過(guò)程規(guī)定了幾種周期,即時(shí)鐘周期、機(jī)器周期和指令周期,也稱為時(shí)序定時(shí)單位。642023/2/5CPU時(shí)序時(shí)鐘周期時(shí)鐘周期也稱為振蕩周期,定義為時(shí)鐘脈沖頻率(fosc)的倒數(shù),是計(jì)算機(jī)中最基本的、最小的時(shí)間單位。機(jī)器周期完成一個(gè)基本操作所需要的時(shí)間稱為機(jī)器周期。AT89C51有固定的機(jī)器周期,規(guī)定一個(gè)機(jī)器周期就有12個(gè)時(shí)鐘周期,也就是說(shuō)一個(gè)機(jī)器周期共包含12個(gè)振蕩脈沖,即機(jī)器周期就是振蕩脈沖的12分頻。如果使用6MHz的時(shí)鐘頻率,一個(gè)機(jī)器周期就是2μs,而如果使用12MHz的時(shí)鐘頻率,一個(gè)機(jī)器周期就是1μs。652023/2/5指令周期指令周期是執(zhí)行一條指令所需要的時(shí)間一般由若干個(gè)機(jī)器周期組成,指令不同,所需要的機(jī)器周期數(shù)也不同。對(duì)于一些簡(jiǎn)單的單字節(jié)指令,在取指令周期中,指令取出到指令寄存器后,立即譯碼執(zhí)行,不再需要其他的機(jī)器周期。對(duì)于一些比較復(fù)雜的指令,例如,轉(zhuǎn)移指令、乘除運(yùn)算則需要兩個(gè)或兩個(gè)以上的機(jī)器周期。662023/2/5讀外部RAM或I/O的時(shí)序圖
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 市政廣場(chǎng)綠化設(shè)計(jì)與施工合同
- 洗浴中心招投標(biāo)授權(quán)委托書(shū)模板
- 網(wǎng)約車駕駛員服務(wù)協(xié)議
- 南京市攝影基地租賃合同
- 環(huán)保旅游業(yè)PTR管理辦法
- 城市綠化帶擴(kuò)建合同
- 文化藝術(shù)兼職演員合同
- 建筑材料市場(chǎng)租賃合同終止
- 圖書(shū)館圍墻建設(shè)合同
- 人力資源成品油市場(chǎng)管理辦法
- 農(nóng)村留守兒童心理健康狀況調(diào)查研究
- 手術(shù)室銳器刺傷
- 中國(guó)食物成分表2018年(標(biāo)準(zhǔn)版)第6版
- 消防安全教育主題班會(huì):森林防火與消防安全 課件
- 【00后大學(xué)生理財(cái)意識(shí)與規(guī)劃探究(定量論文)11000字】
- 公路消防知識(shí)培訓(xùn)內(nèi)容
- 吊車吊裝方案計(jì)算書(shū)
- 2024年云南省數(shù)字經(jīng)濟(jì)產(chǎn)業(yè)投資集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 警方開(kāi)展心理輔導(dǎo)活動(dòng)方案
- 餐廳股份合作協(xié)議書(shū)
- 成人重癥患者人工氣道濕化護(hù)理專家共識(shí)
評(píng)論
0/150
提交評(píng)論