版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理
89C51系列單片機(jī)的結(jié)構(gòu);89C51系列單片機(jī)引腳及其功能;存儲(chǔ)器配置;CPU時(shí)序;復(fù)位及復(fù)位電路;輸入/輸出端口結(jié)構(gòu)
2.1
89C51單片機(jī)內(nèi)部結(jié)構(gòu)及特點(diǎn)一、89C51單片機(jī)的基本組成
89C51單片機(jī)的基本結(jié)構(gòu)見下圖。
MCS-51系列單片機(jī)為Intel公司產(chǎn)品,1980年推出。MCS-51系列單片機(jī)有:8051,8751,803180c51BH,80c31BH…它們的基本組成、基本性能和指令系統(tǒng)都是相同的。
89C51單片機(jī)是ATMEL、PHILIPS、SST公司的產(chǎn)品:89C51=80C31+373+FlashROM給單片機(jī)的開發(fā)及應(yīng)用帶來(lái)很大的方便第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理89C51單片機(jī)結(jié)構(gòu)框圖80C51CPU振蕩器和時(shí)序OSC64KB總線擴(kuò)展控制器數(shù)據(jù)存儲(chǔ)器256BRAM/SFR2×16位定時(shí)器/計(jì)數(shù)器可編程I/O程序存儲(chǔ)器4KBROM可編程全雙工串行口外中斷內(nèi)中斷控制并行口串行通信外部時(shí)鐘源外部事件計(jì)數(shù)第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理含有:1.
一個(gè)8位CPU80C512.
128B/256BRAM/SFR3.4KBFlashROM
(8051/8052是掩膜ROM,8751/8752是EPROM,但8031、8032、80C32片內(nèi)無(wú)ROM)4.片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路(石英晶體與微調(diào)電容需外接,最高允許振蕩頻率為12MHZ)5.4個(gè)8位并行I/O接口(共32位I/O)P0~P3,每個(gè)口皆可輸入和輸出,其中P3口還可用于——串行輸入/輸出、定時(shí)/計(jì)數(shù)器、外部事件計(jì)數(shù)輸入,中斷輸入。6.2個(gè)16位定時(shí)/計(jì)數(shù)器7.5個(gè)中斷源的中斷控制系統(tǒng)(2個(gè)外中斷,2個(gè)定時(shí)/計(jì)數(shù)器中斷,1個(gè)串行口中斷)8.1個(gè)全雙工的串行I/O接口第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理與8051相比,89C51具有兩種用軟件選擇的節(jié)電工作方式——
空閑方式:CPU停止工作,RAM、定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)等繼續(xù)工作。
掉電方式:片內(nèi)振蕩器停止,所以系統(tǒng)不能工作,僅保存RAM中內(nèi)容。
第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理
89C51與8051/8751/8031芯片的外部引腳和指令系統(tǒng)完全兼容,僅在內(nèi)部配置了一個(gè)FlashROM。結(jié)構(gòu)總圖如下:由中央處理單元(CPU)、存儲(chǔ)器(ROM及RAM)、I/O接口組成。ALU—可對(duì)4位,8位,16位數(shù)據(jù)進(jìn)行算術(shù)邏輯運(yùn)算等操作。ACC—提供一個(gè)運(yùn)算數(shù),經(jīng)Temp2送入ALU或中轉(zhuǎn)站,用A表示。PSW—程序狀態(tài)字,標(biāo)志指令執(zhí)行后的信息狀態(tài)。B—8位Reg,可作通用Reg.使用。②布爾處理器——以PSW中的C(進(jìn)位標(biāo)志位)為其累加器,專門用于處理位操作(位運(yùn)算、位處理、位尋址)①運(yùn)算器1.CPU二、89C51單片機(jī)內(nèi)部結(jié)構(gòu)P0驅(qū)動(dòng)器P2驅(qū)動(dòng)器P0鎖存器P2鎖存器RAM地址寄存器128BRAM4KBFlashROMB寄存器暫存器1暫存器2ACCSP程序地址寄存器緩沖器PC增1PCDPTR中斷、串行口和定時(shí)器PSWP1鎖存器P1驅(qū)動(dòng)器P3鎖存器P3驅(qū)動(dòng)器定時(shí)控制指令寄存器指令譯碼器OSCALUP0.0-P0.7P2.0-P2.7P3.0-P3.7P1.0-P1.7XTAL1
XTAL2PSENALEEARET程序計(jì)數(shù)器PC(16bit)—PCH,PCL。其中存放著將要執(zhí)行的下一條指令的地址。指令Reg.IR—存放從PC中地址取出的指令。指令譯碼器ID—對(duì)指令進(jìn)行譯碼PLA,產(chǎn)生控制信號(hào),以執(zhí)行指令規(guī)定的操作。振蕩器及定時(shí)電路:外接晶體和微調(diào)電容(30pF),其頻率范圍為0~24MHZ,常用6MHZ晶體。
③控制器
2.存儲(chǔ)器(特點(diǎn):
ROM和RAM獨(dú)立編址(哈佛結(jié)構(gòu)))(1)程序存儲(chǔ)器(ROM)地址從0000H開始,內(nèi)部4KB。用于存放程序和表格常數(shù)。(2)數(shù)據(jù)存儲(chǔ)器(RAM)
①
地址為00H~7FH,128B。存放中間結(jié)果、數(shù)據(jù)暫存及數(shù)據(jù)緩沖等。
②128B的RAM中有32個(gè)字節(jié)單元可指定為工作寄存器。
③片內(nèi)還有21個(gè)特殊功能寄存器(SFR),它們同128字節(jié)RAM統(tǒng)一編址,地址為80H~FFH。后面詳細(xì)介紹。第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理3.I/O接口(1)4個(gè)8位并行I/O口P0~P3,均可輸入/輸出。(2)每個(gè)I/O口(8位)有一鎖存器,鎖存器地址與RAM地址統(tǒng)一編址,可作為特殊功能Reg.(SFR)來(lái)尋址。
這個(gè)鎖存器(SFR)類似于8255中I/O口與Reg之間的關(guān)系。對(duì)I/O口操作,即是對(duì)這個(gè)鎖存器操作。在單片機(jī)外部的存儲(chǔ)器:(1)外部程序存儲(chǔ)器ROM單元:
與內(nèi)部程序存儲(chǔ)器ROM統(tǒng)一編址,共64KB。
如,內(nèi)部已用4KB,則外部ROM地址為1000H~FFFFH。(2)外部數(shù)據(jù)存儲(chǔ)器RAM單元:0000H~FFFFH(64KB)
內(nèi)、外部數(shù)據(jù)存儲(chǔ)器RAM的操作指令不同。第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理
89C51為40
PINDIP封裝或方形封裝。2.2
89C51單片機(jī)引腳及其功能89C51單片機(jī)引腳圖1.電源引腳(Vss,Vcc)
Vss(I,20)
電源地電平
Vcc(I,40)
電源端+5V當(dāng)外接晶體時(shí),接晶體和微調(diào)電容的一端。2.時(shí)鐘電路引腳(XTAL1,XTAL2)
XTAL1(I,19):振蕩器反向放大器輸入端。當(dāng)采用外部時(shí)鐘時(shí),此腳作為驅(qū)動(dòng)端,接外部時(shí)鐘。XTAL2(I,18):振蕩器反向放大器輸出端。當(dāng)外接晶體時(shí),接晶體和微調(diào)電容的一端。當(dāng)采用外部時(shí)鐘時(shí),此腳懸空。振蕩電路的頻率就是晶體固有頻率。單片機(jī)正常工作時(shí),該引腳應(yīng)有脈沖信號(hào)輸出。第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理振蕩電路的頻率為晶體固有頻率C30PFC30PF6MHZ89C51X1X2對(duì)CHMOS如此VCC5.1K外時(shí)鐘信號(hào)89c51X1X2第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理對(duì)HMOS如此VCC5.1K外時(shí)鐘信號(hào)8031X2X1VssXTAL1(I,19):當(dāng)采用外部時(shí)鐘時(shí)HMOS:此腳接地CHMOS:此腳作為驅(qū)動(dòng)端,接外部時(shí)鐘。XTAL2(I,18):當(dāng)采用外部時(shí)鐘時(shí)HMOS:此腳接外部時(shí)鐘CHMOS:此腳懸空第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理注第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理
CHMOS(互補(bǔ)金屬氧化物HMOS)是CMOS和HMOS(高密度溝道MOS工藝)的結(jié)合,除了保持HMOS高速度和高密度之外,還有CMOS低功耗的特點(diǎn)。兩類器件的功能是完全兼容的,區(qū)別在CHMOS器件具有低功耗的特點(diǎn)。它所消耗的電流比HMOS器件少很多,主要在于其采用了兩種降低功耗的方式:空閑方式和掉電方式。CHMOS器件在掉電方式(CPU停止工作,片內(nèi)RAM的數(shù)據(jù)繼續(xù)保持)下時(shí),消耗的電流可低于10μA。采用CHMOS的器件在編號(hào)中用一個(gè)C來(lái)加以區(qū)別,如:80C51,80C31,89C51等。(1)RST/VPD(I,9)——多功能引腳,復(fù)位/備用電源。
RST復(fù)位信號(hào),高電平有效。VPD
備用電源輸入端。當(dāng)Vcc發(fā)生故障(掉電等),降低到低電平的規(guī)定值時(shí),可由該端子為片內(nèi)RAM提供電源。
在通電瞬間(Vc=0),電容C通過(guò)R充電,在RST
端出現(xiàn)如圖正脈沖,則89C51加電自動(dòng)復(fù)位。
R、C隨CPU時(shí)鐘頻率而變化,取值如圖。復(fù)位電路有上電復(fù)位、按鍵兼上電復(fù)位兩種:
在RST端加入“1”,且維持兩個(gè)機(jī)器周期(24個(gè)振蕩周期),則CPU復(fù)位。復(fù)位時(shí)PC=0000H。復(fù)位上電復(fù)位(右圖)3.控制信號(hào)引腳(RST/VPD,ALE/PROG、PSEN和EA)
開關(guān)常開時(shí),為上電復(fù)位電路;
當(dāng)常開按鍵閉合時(shí),相當(dāng)于RST端通過(guò)電阻R1(200Ω)與Vcc電源接通,22uF電容迅速放電,RST上得到一個(gè)5V經(jīng)220Ω與1K電阻的分壓(高電平)。這個(gè)分壓大致為5V的5/6,4.2V,使單片機(jī)復(fù)位。
當(dāng)常開按鍵松開時(shí),RST端經(jīng)一段時(shí)間后又逐漸降至0V。時(shí)序圖如右所示。5V4.2V按下開關(guān)松開開關(guān)上電兼手動(dòng)復(fù)位
(右圖,電平方式開關(guān)復(fù)位)第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理
PROG:對(duì)片內(nèi)FlashROM編程寫入時(shí)的編程脈沖輸入端。ALE:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),ALE的輸出用于鎖存地址的低8位,即將P0口數(shù)據(jù)和地址分開。(2)ALE/PROG(I/O,30)——地址鎖存允許/編程脈沖輸入端
即使不訪問(wèn)外部存儲(chǔ)器,ALE端仍以振蕩頻率的1/6周期性地輸出正脈沖信號(hào),這可作為輸出脈沖或定時(shí)信號(hào)。ALE端的負(fù)載能力為8個(gè)LS型TTL輸入。(3)PSEN(O,29)——外部程序存儲(chǔ)器“讀”信號(hào)
當(dāng)訪問(wèn)外部程序存儲(chǔ)器時(shí),此腳定時(shí)輸出負(fù)脈沖作為讀片外程序M的選通信號(hào),通常接EPROM的OE端。
PSEN端在每個(gè)機(jī)器周期(12個(gè)振蕩周期)中兩次有效,但當(dāng)訪問(wèn)外部RAM時(shí),兩次PSEN負(fù)脈沖信號(hào)不出現(xiàn)。PSEN端可以驅(qū)動(dòng)8個(gè)LS型TTL。第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理VPP:用于在對(duì)89c51的片內(nèi)FlashROM編程時(shí),施加(12V~21V)高壓的輸入端。EA=1,CPU訪問(wèn)片內(nèi)FlashROM,并執(zhí)行其指令。當(dāng)PC>0FFFH
時(shí)(4KB),自動(dòng)轉(zhuǎn)向片外ROM。(4)EA/VPP(I,31)——內(nèi)外程序存儲(chǔ)器選擇/編程電源輸入4.I/O端口P0~P3(1)P0口(P0.0~P0.7,39~32pin,I/O)是漏極開路的8位準(zhǔn)雙向
I/O端口。GDSEA=0,不論片內(nèi)是否有存儲(chǔ)器,只執(zhí)行片外ROM的指令。準(zhǔn)雙向
當(dāng)I/O口作為輸入時(shí),應(yīng)先向此口鎖存器寫入全1,此時(shí)該口引腳浮空,可作高阻抗輸入。第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理漏極開路的8位準(zhǔn)雙向I/O口,每位能驅(qū)動(dòng)8個(gè)LS型TTL負(fù)載。在CPU訪問(wèn)片外存儲(chǔ)器(RAM、ROM)時(shí),P0口為分時(shí)復(fù)用的低8位地址總線和8位數(shù)據(jù)總線(此時(shí),其內(nèi)部上拉電阻被激活)若系統(tǒng)中無(wú)外擴(kuò)存儲(chǔ)器(RAM、ROM),P0口可作為一個(gè)數(shù)據(jù)輸入/輸出口(輸出時(shí),不能激活內(nèi)部上拉電阻,需外接上拉電阻;輸入時(shí),應(yīng)先向口鎖存器寫入1,使P0口全部引腳浮空再輸入)。
(2)P1口(P1.0~P1.7,1~8pin,I/O)帶內(nèi)部上拉電阻的8位
準(zhǔn)雙向I/O端口。(并行或按位使用)
輸出時(shí),P1口的每一位能驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。
輸入時(shí),先向其口鎖存器寫入全1,此時(shí)將P1口引腳由內(nèi)部上拉電阻拉成高電平。第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理(3)
P2口(P2.0~P2.7,21~28pin,I/O)帶內(nèi)部上拉電阻的8位
準(zhǔn)雙向I/O端口。當(dāng)有外部存貯器時(shí),用作高8位地址總線。②當(dāng)無(wú)外部存貯器時(shí),可用作一般I/O線。輸出輸入時(shí)的情況同P1口。
(4)
P3口(P3.0~P3.7,10~17pin,I/O)
雙功能口。帶內(nèi)部上拉電阻的8位準(zhǔn)雙向I/O端口。每位能驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。P3口除作為一般I/O口外,每個(gè)引腳都有第二功能。第一功能:一般I/O口,準(zhǔn)雙向,輸出輸入時(shí)的情況同P1口。第二功能:系統(tǒng)控制信號(hào),定義如下:第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理
P3.0RXDP3.1TXD
P3.2INT0P3.3INT1
P3.4T0P3.5T1
P3.6WRP3.7RD串行口輸入/
輸出端外部中斷輸入定時(shí)/計(jì)數(shù)器的計(jì)數(shù)脈沖輸入片外RAM讀/寫信號(hào)第二功能:系統(tǒng)控制信號(hào),定義如下:任意一位不用于第二功能(首選)時(shí),可用于第一功能。第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理
①程序MEM和數(shù)據(jù)MEM獨(dú)立編址(哈佛結(jié)構(gòu))。
②程序MEM:片內(nèi)與片外統(tǒng)一編址(64KB)。③數(shù)據(jù)MEM:片內(nèi)與片外獨(dú)立編址。
①片內(nèi)片外統(tǒng)一編址的64KBROM:0000H~FFFFH②64KB片外RAM:0000H~FFFFH③256字節(jié)片內(nèi)RAM:00H~FFH
存儲(chǔ)空間分布圖見下圖。編址特點(diǎn)從用戶角度看,89C51存貯器地址空間分為3類:89c51指令系統(tǒng)設(shè)計(jì)了不同的訪問(wèn)指令,以區(qū)別3個(gè)存貯區(qū)的訪問(wèn)。如:①片內(nèi)、外ROM用MOVC②片外RAM用MOVX③片內(nèi)RAM用MOV2.389C51單片機(jī)存儲(chǔ)器配置第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理
③圖2-489C51存儲(chǔ)器配置①
②RAM與I/O統(tǒng)一編址第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理一、程序存儲(chǔ)器(地址線16位,最多達(dá)64KB) ——用于存放程序和表格常數(shù)等。1.89C51片內(nèi)有4K程序M
EA=1,片內(nèi)尋址4KB:0000H~0FFFH。當(dāng)指令地址超過(guò)0FFFH后,自動(dòng)指向外部ROM,地址
1000H~FFFFH。
EA=0,片內(nèi)ROM不起作用,CPU只能從片外ROM中取指令,
0000H~FFFFH
。
注:EA=0,適用于內(nèi)部沒(méi)有ROM的8031應(yīng)用系統(tǒng)。2.程序M中的部分保留單元(系統(tǒng)留用),見下表。INT1中斷服務(wù)程序0013H~001AH定時(shí)器2中斷服務(wù)(89C52才有)002BH定時(shí)器0溢出中斷服務(wù)000BH~0012H串行口中斷服務(wù)程序0023H~002AHINT0中斷服務(wù)程序0003H~000AH定時(shí)器1中斷服務(wù)001BH~0022H復(fù)位后初始化引導(dǎo)程序0000H~0002H保留目的存儲(chǔ)單元保留目的存儲(chǔ)單元第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理中斷向量表1.片外RAM
0000H~FFFFH,使用MOVX指令訪問(wèn)。二、數(shù)據(jù)存儲(chǔ)器 ——用于存放暫存數(shù)據(jù)、中間運(yùn)算結(jié)果等。2.片內(nèi)RAM
00H~FFH,使用MOV指令訪問(wèn)。0023H串行口中斷001BH定時(shí)器1溢出中斷0013HINT1中斷000BH定時(shí)器0溢出中斷0003HINT0中斷中斷入口地址中斷源0003H~002AH均勻地分為5段,為5個(gè)中斷服務(wù)程序起始處。因?yàn)樽止?jié)單元太少,所以常在這些存儲(chǔ)單元中存放轉(zhuǎn)移指令。注:P26圖,擴(kuò)展ROM。一般,盡量不擴(kuò)充片外ROM,而選用片內(nèi)具有大容量Flash的單片機(jī)。第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理安排了21個(gè)SFR地址離散分布32個(gè)字節(jié)通用Reg.區(qū)即可字節(jié)尋址,又可位尋址.80字節(jié)RAM區(qū)由PSW中的RS1、RS0兩位組合選中當(dāng)前組CPU上電時(shí)選中0組;未用到的組可作為RAM用.程序執(zhí)行的任何時(shí)刻,只能用一組。16字節(jié)圖2-8低128字節(jié)RAM區(qū)圖2-9高128字節(jié)RAM區(qū)(SFR區(qū))第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理
②高128字節(jié)RAM——SFR是80H~FFH的部分單元,使用時(shí)只能直接尋址。其余未定義部分不能使用。①低128字節(jié)RAM
00H~7FH均可用作一般的RAM單元外,其中某些部分還可以以其它形式使用。
片內(nèi)RAM
通用Reg.區(qū)4組,00H~1FH(4×8=32),指令比一般RAM更豐富、簡(jiǎn)潔、快捷。位地址區(qū)20H~2FH
以位尋址方式使用時(shí),地址從00H~7FH。
對(duì)字節(jié)RAM,用直接尋址和間接尋址;對(duì)位地址單元用位尋址方式。(以區(qū)別某個(gè)單元是字節(jié)或位單元)
用戶通用RAM可在此將部分區(qū)域設(shè)置為堆棧低128字節(jié)第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理ⅲ)SFR包括
ACC——累加器(字節(jié)地址E0H),指令中用A表示。
B——Reg.(字節(jié)地址F0H),用于乘除指令。在其他指令中,可作為一般通用Reg或RAM單元。
PSW——程序狀態(tài)字(字節(jié)地址D0H),各位的含義及格式見下一頁(yè)。
ⅰ)SFR的表示方式:寄存器名ACC地址E0HTCON.0——表示Reg的bit(點(diǎn)操作符)IT0(位名稱)ⅱ)SFR中,凡地址能整除8的單元同時(shí)具有位尋址能力(11個(gè))。位地址都是88HACC.0E0H(位地址,ACC.0無(wú)位名稱)以ACC為例:這些位地址的一般表示方式第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理
SP----堆棧指針(字節(jié)地址81H),其內(nèi)容可為00~7FH的任何地址單元,系統(tǒng)復(fù)位時(shí)為07H(向上生成)。
DPTR----數(shù)據(jù)指針(83H、82H),既可作為一個(gè)16位Reg(DPTR)、
也可作為兩個(gè)8位Reg(DPH,DPL)使用。
以16位使用時(shí),對(duì)片外RAM尋址。
P
XOVRS0RS1F0ACCYPSW(D0H)進(jìn)借位標(biāo)志,位地址D7H位操作時(shí)的位累加器。CY——AC——半進(jìn)位標(biāo)志。FO——用戶標(biāo)志位(用戶可設(shè)置其為0或1)RS1、RSO——選擇工作Reg.區(qū)OV——溢出標(biāo)志P——奇偶標(biāo)志,運(yùn)行結(jié)果有奇數(shù)個(gè)1,P=1;否則P=0。
P0~P3
——I/O端口(80H,90H,A0H,B0H)
4個(gè)I/O端口的鎖存器地址,還可按位尋址,即每一條I/O線均可獨(dú)立用作輸入或輸出。
在單片機(jī)中,將I/O端口當(dāng)作SFR,不設(shè)專門的口操作指令(IN或OUT),而采用統(tǒng)一的MOV指令,使用方便。例:MOVP1,A
;A→P1
SBUF——串行數(shù)據(jù)緩沖器(99H)用于存放欲發(fā)送或已接收的數(shù)據(jù)。例:MOVSBUF,A;A→SBUF
THi,TLi——定時(shí)/計(jì)數(shù)器i中的計(jì)數(shù)器(i=1,2)一個(gè)16位(THiTLi)或兩個(gè)8位定時(shí)/計(jì)數(shù)器(THi,TLi)。
其他控制Reg.——IP,IE,TMOD…為中斷系統(tǒng)、定時(shí)/計(jì)數(shù)器、串行口和供電方式的控制與狀態(tài)位。 P30表第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理
2.4CPU時(shí)序一、片內(nèi)振蕩器及時(shí)鐘信號(hào)的產(chǎn)生2.時(shí)鐘信號(hào)的產(chǎn)生1.振蕩器(構(gòu)成見前)S1S2S3S4S5S6時(shí)鐘信號(hào)的周期S包含2個(gè)振蕩周期:S=fosc/2。每個(gè)時(shí)鐘周期S有兩個(gè)節(jié)拍P1、P2,稱為相1(P1)和相2(P2)。
CPU以P1、P2為基本節(jié)拍指揮單片機(jī)各部件協(xié)調(diào)工作。foscfosc/2第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理
1.機(jī)器周期:CPU訪問(wèn)存儲(chǔ)器一次所需要的時(shí)間(如取指令、讀存儲(chǔ)器、寫存儲(chǔ)器等)。2.1個(gè)機(jī)器周期=12個(gè)振蕩周期(fosc)=6個(gè)時(shí)鐘周期(S,fosc/2) 當(dāng)使用6MHZ晶振時(shí),一個(gè)機(jī)器周期=2us。3.指令周期(一條指令的執(zhí)行時(shí)間)=n個(gè)機(jī)器周期
n小則執(zhí)行速度快。
注:大部分指令周期為1個(gè)或2個(gè)機(jī)器周期,乘除指令為4個(gè)機(jī)器周期。二、機(jī)器周期和指令周期
CPU的4個(gè)時(shí)序單位從小到大依次是:
節(jié)拍、時(shí)鐘周期、機(jī)器周期和指令周期,如圖2-13所示。圖2-1389C51單片機(jī)各種周期的相互關(guān)系第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理三、CPU取指、執(zhí)指周期時(shí)序每條指令的執(zhí)行都可以包括取指和執(zhí)指兩個(gè)階段。在取指階段,CPU從內(nèi)部或外部ROM中取出指令操作碼及操作數(shù),然后再執(zhí)行這條指令。單字節(jié)和雙字節(jié)的指令都可能是單機(jī)器周期或雙周期,而三字節(jié)指令都是雙周期的,只有乘、除指令占四周期。因此,當(dāng)使用6MHZ晶振時(shí),執(zhí)行一條指令的時(shí)間(指令周期)分別是2μs,4μs和8μs。如
圖2-14所示。第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理圖2-1489C51單片機(jī)的取指/執(zhí)行時(shí)序第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理(1)每個(gè)機(jī)器周期出現(xiàn)兩次ALE脈沖,用于地址鎖存。(此周期信號(hào)可用于其它外設(shè)的控制信號(hào))(2)對(duì)外RAM進(jìn)行讀寫時(shí),ALE信號(hào)不是周期性的,缺一次。故用ALE做系統(tǒng)定時(shí)脈沖時(shí)要考慮到這一點(diǎn)。
1.復(fù)位電路
①?gòu)?fù)位信號(hào)的內(nèi)部電路復(fù)位引腳RST通過(guò)片內(nèi)一個(gè)斯密特觸發(fā)器與片內(nèi)復(fù)位電路相連,斯密特觸發(fā)器用來(lái)脈沖整形及抑制噪聲,其輸出在每個(gè)機(jī)器周期的S5P2被復(fù)位電路采樣一次。如果RST引腳有一高電平并維持2個(gè)機(jī)器周期,89C51便執(zhí)行內(nèi)部復(fù)位。P39圖2-15。②復(fù)位信號(hào)的外部電路(見前)
2.復(fù)位時(shí)SFR的狀態(tài)復(fù)位后,PC=0000H,使單片機(jī)從起始地址0000H單元開始執(zhí)行程序。若單片機(jī)運(yùn)行出錯(cuò)或進(jìn)入死循環(huán),可按復(fù)位鍵重新啟動(dòng),或通過(guò)watchdog電路使其自動(dòng)復(fù)位。2.5復(fù)位操作第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理寄存器復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)PC0000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0~P3FFHSCON00HIP××000000BSBUF不定IE0×000000BPCON0×××0000BTMOD00H第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理
A=00H:
累加器已被清0。PSW=00H:選寄存器0組為工作寄存器組。SP=07H: 堆棧指針指向片內(nèi)RAM07H字節(jié)單元,根據(jù)堆棧操作法則,第一個(gè)被壓入的數(shù)據(jù)被寫入08H單元中。P0~P3=FFH:
已向各端口線寫入1,此時(shí),各端口既可用于輸入,又可用于輸出。IP=×××00000B:
各個(gè)中斷源處于低優(yōu)先級(jí)。IE=0××00000B:
各個(gè)中斷均被關(guān)斷。TMOD=00H:T0/T1均為工作方式0,且運(yùn)行于定時(shí)器狀態(tài)。TCON=00H:T0/T1均被關(guān)斷。SCON=00H:
串行口處于工作方式0,允許發(fā)送,不允許接收。PCON=00H:
SMOD=0,波特率不加倍。表2-8中的符號(hào)意義如下:
2.689c51單片機(jī)的低功耗工作方式第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理89C51提供兩種節(jié)電工作方式:空閑(等待、待機(jī))方式和掉電(停機(jī))工作方式圖2-17所示為實(shí)現(xiàn)這兩種方式的內(nèi)部電路。若IDL=0,則89C51將進(jìn)入空閑運(yùn)作方式。此時(shí),振蕩器仍繼續(xù)運(yùn)行,但I(xiàn)DL封鎖了去CPU的“與”門,故CPU得不到時(shí)鐘信號(hào)。而中斷、串行口和定時(shí)器等環(huán)節(jié)卻仍在時(shí)鐘控制下正常運(yùn)行。掉電方式下(PD=0),振蕩器凍結(jié)。圖中,PD和IDL均為PCON中PD和IDL觸發(fā)器的Q輸出端。89c51有4個(gè)8位并行I/O端口P0、P1、P2、P3。每個(gè)端口是8位準(zhǔn)雙向口,每一條I/O線都能獨(dú)立地作I/O。每個(gè)端口有:
1個(gè)輸出鎖存器(P0~P3),即常說(shuō)的口地址(80H,90H,A0H,B0H)。
1個(gè)輸出驅(qū)動(dòng)器
2(或3)個(gè)三態(tài)輸入緩沖器。
2.7輸入/輸出端口一、P0口
某一位結(jié)構(gòu)見圖2-21第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理負(fù)載管當(dāng)C=0時(shí),開關(guān)MUX被控為如圖示位置,P0口為通用I/O口;當(dāng)C=1時(shí),開關(guān)撥向反相器3的輸出端,P0口分時(shí)作為地址/數(shù)據(jù)總線使用。1.P0口作為一般I/O口使用(C=0)CPU執(zhí)行I/O指令時(shí),系統(tǒng)自動(dòng)使:C=0,則有:
①鎖存器的Q端與輸出級(jí)T2連接
②與門4輸出0使負(fù)載管T1截止負(fù)載管這時(shí),輸出級(jí)是漏極開路的開漏電路,P0口可作為一般I/O口使用。
當(dāng)用于I/O時(shí),需外接10K的上拉電阻到Vcc,否則不能有高電平輸出。
(1)P0口作輸出MOV A,#00H;MOV P0,A;向P0口輸出00H這時(shí)有:鎖存器Q=0(輸出數(shù)據(jù)0),Q=1,T2導(dǎo)通,P0.x=0。第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理(2)P0口作輸入例:MOV A,P0 ;P0.x信號(hào)經(jīng)輸入緩沖器到CPU
輸入時(shí)應(yīng)保證T2截止(否則,輸入的高電平將可能被短路)
為此,在輸入前先輸出“1”,使Q=0,T2截止.(這時(shí)T1、T2全截止,引腳處于懸浮狀態(tài),可作高阻抗輸入)程序通常為:MOV A,#0FFH MOV P0,A ;先輸出 MOV A,P0 ;再輸入
稱這種數(shù)據(jù)輸入為“讀引腳”操作。見圖中的“讀引腳”線。負(fù)載管當(dāng)執(zhí)行一條由端口輸入的指令時(shí),“讀引腳”脈沖把三態(tài)緩沖器2打開,這樣,端口上的數(shù)據(jù)經(jīng)過(guò)緩沖器2讀入到內(nèi)部總線。
當(dāng)用一根端口線去驅(qū)動(dòng)一個(gè)晶體管的基極時(shí),向此端口線輸出“1”使該晶體管導(dǎo)通,導(dǎo)通的晶體管會(huì)把引腳上的電平拉低。若這時(shí)從該引腳讀入剛才輸出的數(shù)據(jù),讀入的為“0”,與剛才輸出的值不符。
為避免錯(cuò)讀引腳電平,單片機(jī)還提供了一組“讀鎖存器”操作。見圖中的“讀鎖存器”線。如:ORL P0,A ;指令功能:
將P0與A相或,然后P0
該指令先將P0口D鎖存器數(shù)據(jù)(即此時(shí)引腳應(yīng)該的電平)讀入CPU,再與A內(nèi)容相“或”,最終將“或”的結(jié)果送到P0鎖存器。此時(shí),鎖存器的內(nèi)容(Q端狀態(tài))和引腳一致,P0數(shù)據(jù)來(lái)源于鎖存器而不是引腳。(3)P0口作輸出時(shí)需注意負(fù)載管第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理
在以上過(guò)程中,讀入操作不是“讀引腳”,而是“讀鎖存器”。這一類指令稱為“讀—修改—寫”指令,有:ANL,ORL,XRL,JBC,CPL,INC,DEC,DJNZ等。這類指令常用來(lái)“位”修改,修改時(shí)不能影響其他位。CPU對(duì)片外存儲(chǔ)器讀寫時(shí),系統(tǒng)自動(dòng)使C=1,圖中MUX接反相器3的輸出端:(1)輸出地址/數(shù)據(jù)信號(hào)經(jīng)T1、T2推拉輸出(T1導(dǎo)通時(shí)上拉,T2導(dǎo)通時(shí)下拉),負(fù)載能力較強(qiáng)。(激活內(nèi)部上拉電阻T1)
(2)輸入數(shù)據(jù)從P0輸入。這時(shí),“讀引腳”信號(hào)有效打開輸入緩沖器2數(shù)據(jù)到DB。第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理負(fù)載管2.P0口作為地址/數(shù)據(jù)總線使用(C=1)
對(duì)89C51外擴(kuò)存儲(chǔ)器并使用時(shí),系統(tǒng)自動(dòng)使C=1。這時(shí):P0口可作為地址/數(shù)據(jù)總線使用,對(duì)片外ROM(或RAM)尋址及作為數(shù)據(jù)輸入/輸出通道。注意:當(dāng)P0作為總線使用時(shí),不再能作I/O口使用。3.P1口用作輸出時(shí):能向外提供拉電流負(fù)載,所以不必再接上拉電阻。
作輸入時(shí):先對(duì)鎖存器寫入“1”,使FET截止。內(nèi)部電阻實(shí)際上是兩個(gè)FET并在一起,一個(gè)為負(fù)載管,其阻值固定;另一個(gè)工作在導(dǎo)通或截止兩種狀態(tài),使其總阻值在0或阻值很大兩種情況下變化。
當(dāng)阻值為0時(shí),引腳快速上拉至高電平;當(dāng)阻值很大時(shí),P1口為高阻輸入狀態(tài)。二、P1口某一位結(jié)構(gòu)圖見圖2-19,工作原理同P0口,也是一個(gè)準(zhǔn)雙向口。區(qū)別如下:1.僅作為一般I/O口。2.內(nèi)部有上拉電阻,無(wú)需外接。第2章89C51單片機(jī)硬件結(jié)構(gòu)和原理3.當(dāng)系統(tǒng)中無(wú)需外擴(kuò)ROM(89C51/8751),只需擴(kuò)展256B片外RAM時(shí),只需用P0口的低8位地址即可。這時(shí),P2口仍可作為通用I/O口。使用 MOVXA,@Ri4.若擴(kuò)展RAM超過(guò)256B(用MOVXA,@DPTR),需使用P2口的高8位地址線。訪問(wèn)片外RAM周期結(jié)束后,P2口仍可作通用I/O口,但使用時(shí)要謹(jǐn)慎。三、P2口見圖2-201.作為一般I/O口使用時(shí),同P1口。2.當(dāng)系統(tǒng)中有外部ROM、RAM時(shí),P2口輸出高8位地址。此時(shí),不再作為通用I/O口。驅(qū)動(dòng)部分與P1口類似,但比P1口多了一個(gè)轉(zhuǎn)換控制部分。當(dāng)CPU對(duì)片內(nèi)存儲(chǔ)器和I/O口進(jìn)行讀/寫(執(zhí)行MOV指令或EA=1時(shí),執(zhí)行MOVC指令)時(shí),由內(nèi)部硬件自動(dòng)使開關(guān)MUX倒向鎖存器的Q端,這時(shí),P2口為一般I/O口。四、P3口——多功能口
溫馨提示
- 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)館入駐辦法
- 倒班工作安全管理
- 醫(yī)療器械維護(hù)基礎(chǔ)設(shè)施施工合同
- 印刷企業(yè)平面設(shè)計(jì)師招聘合同
- 造紙企業(yè)消防設(shè)施改造施工協(xié)議
- 市場(chǎng)營(yíng)銷班主任合同協(xié)議
- 食品冷鏈貨車司機(jī)招聘合同
- 地震監(jiān)測(cè)新司機(jī)招聘模板
- 金融服務(wù)平臺(tái)審計(jì)要領(lǐng)
- 2024-2030年中國(guó)網(wǎng)吧服務(wù)行業(yè)市場(chǎng)發(fā)展分析及前景趨勢(shì)與投資風(fēng)險(xiǎn)研究報(bào)告
- 中藥材種植中藥材運(yùn)輸配送方案
- 高寶故障代碼-中文
- 重慶市中學(xué)2023-2024學(xué)年物理八年級(jí)第一學(xué)期期末學(xué)業(yè)水平測(cè)試試題含解析
- 滲流力學(xué)進(jìn)展與前沿
- 影城防汛緊急避險(xiǎn)應(yīng)急預(yù)案
- 中國(guó)慢性便秘診治指南解讀
- 2023年山西省普通高中學(xué)業(yè)水平考試數(shù)學(xué)試題( 含解析)
- 鄰近鐵路營(yíng)業(yè)線施工安全監(jiān)測(cè)技術(shù)規(guī)程 (TB 10314-2021)
- 電力設(shè)備典型消防規(guī)程通用課件
- 口腔急救知識(shí)培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論