版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用第第2章章 AT89S51單片機(jī)的硬件結(jié)構(gòu)單片機(jī)的硬件結(jié)構(gòu)主講人:趙宇洋主講人:趙宇洋2 第第2章章 目錄目錄2.1 AT89S51單片機(jī)的硬件組成單片機(jī)的硬件組成2.2 AT89S51的引腳功能的引腳功能 2.2.1 電源及時(shí)鐘引腳 2.2.2 控制引腳 2.2.3 并行I/O口引腳2.3 AT89S51的的CPU 2.3.1 運(yùn)算器 2.3.2 控制器2.4 AT89S51存儲(chǔ)器的結(jié)構(gòu)存儲(chǔ)器的結(jié)構(gòu) 2.4.1 程序存儲(chǔ)器空間 2.4.2 數(shù)據(jù)存儲(chǔ)器空間 2.4.3 特殊功能寄存器(SFR) 2.4.4 位地址空間2.5 AT89S51的并行的并行I/O端口端
2、口 2.5.1 P0口 2.5.2 P1口 2.5.3 P2口 2.5.4 P3口 2.5.5 P1P3口驅(qū)動(dòng)LED發(fā)光二極管2.6 時(shí)鐘電路與時(shí)序時(shí)鐘電路與時(shí)序 2.6.1 時(shí)鐘電路設(shè)計(jì) 2.6.2 機(jī)器周期、指令周期與指令時(shí)序2.7 復(fù)位操作和復(fù)位電路復(fù)位操作和復(fù)位電路 2.7.1 復(fù)位操作 2.7.2 復(fù)位電路設(shè)計(jì)2.8 低功耗節(jié)電模式低功耗節(jié)電模式 2.8.1 空閑模式 2.8.2 掉電運(yùn)行模式 2.8.3 掉電和空閑模式下的WDT內(nèi)容梗概:內(nèi)容梗概: AT89S51AT89S51的片內(nèi)硬件基本結(jié)構(gòu)、引腳功能、存儲(chǔ)器結(jié)構(gòu)、的片內(nèi)硬件基本結(jié)構(gòu)、引腳功能、存儲(chǔ)器結(jié)構(gòu)、特殊功能寄存器功能、特
3、殊功能寄存器功能、4 4個(gè)并行個(gè)并行I/OI/O口的結(jié)構(gòu)和特點(diǎn),口的結(jié)構(gòu)和特點(diǎn), 復(fù)位電路和時(shí)鐘電路的設(shè)計(jì)復(fù)位電路和時(shí)鐘電路的設(shè)計(jì), ,節(jié)電工作模式。節(jié)電工作模式。學(xué)習(xí)目的:學(xué)習(xí)目的: 為為AT89S51AT89S51系統(tǒng)的應(yīng)用設(shè)計(jì)打下基礎(chǔ)。系統(tǒng)的應(yīng)用設(shè)計(jì)打下基礎(chǔ)。 在原理和結(jié)構(gòu)上,單片機(jī)把微機(jī)的許多概念、技術(shù)與特點(diǎn)在原理和結(jié)構(gòu)上,單片機(jī)把微機(jī)的許多概念、技術(shù)與特點(diǎn)都繼承下來(lái),用學(xué)習(xí)微機(jī)的思路來(lái)學(xué)習(xí)單片機(jī)。都繼承下來(lái),用學(xué)習(xí)微機(jī)的思路來(lái)學(xué)習(xí)單片機(jī)。CPUCPU運(yùn)算部件運(yùn)算部件控制部件控制部件B BRAMRAMP0P0口口P2P2口口ROMROM(EPROM)(EPROM)串行口串行口 C /
4、TC / T中斷中斷系統(tǒng)系統(tǒng)SFRSFRP1P1口口8 8P3P3口口8 88 88 8XTALXTAL1 1XTALXTAL2 2PSEN ALEPSEN ALE EA RESET EA RESETV cV cc cV sV ss su按功能可分成按功能可分成8個(gè)部件,通過(guò)片內(nèi)單一總線(xiàn)連接起來(lái)個(gè)部件,通過(guò)片內(nèi)單一總線(xiàn)連接起來(lái)1.1.微處理器微處理器2.2.數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器3.3.程序存儲(chǔ)器程序存儲(chǔ)器4.I/O4.I/O口口5.5.串行口串行口6.6.定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器7.7.中斷系統(tǒng)中斷系統(tǒng)8.8.特殊功能特殊功能寄存器寄存器u控制方式:控制方式:SFR對(duì)各功能部件集中控制對(duì)各功
5、能部件集中控制2.1 AT89S512.1 AT89S51單片機(jī)的硬件組成單片機(jī)的硬件組成(1 1)8 8位微處理器(位微處理器(CPUCPU););(2 2)數(shù)據(jù)存儲(chǔ)器()數(shù)據(jù)存儲(chǔ)器(128B RAM128B RAM););(3 3)程序存儲(chǔ)器()程序存儲(chǔ)器(4KB Flash ROM4KB Flash ROM););(4 4)4 4個(gè)個(gè)8 8位可編程并行位可編程并行I/OI/O口(口(P0P0口、口、P1P1口、口、P2P2口和口和P3P3口);口);(5 5)1 1個(gè)全雙工的異步串行口;個(gè)全雙工的異步串行口;(6 6)2 2個(gè)可編程的個(gè)可編程的1616位定時(shí)器位定時(shí)器/ /計(jì)數(shù)器;計(jì)數(shù)器
6、;(7 7)1 1個(gè)看門(mén)狗定時(shí)器;個(gè)看門(mén)狗定時(shí)器;(8 8)中斷系統(tǒng)具有)中斷系統(tǒng)具有5 5個(gè)中斷源、個(gè)中斷源、5 5個(gè)中斷向量;個(gè)中斷向量;(9 9)特殊功能寄存器()特殊功能寄存器(SFRSFR)2626個(gè);個(gè);(1010)低功耗模式有)低功耗模式有空閑模式空閑模式和和掉電模式掉電模式,且具有掉電模式,且具有掉電模式 下的中斷恢復(fù)模式;下的中斷恢復(fù)模式;(1111)3 3個(gè)程序加密鎖定位。個(gè)程序加密鎖定位。8與與AT89C51AT89C51相比,相比,AT89S51AT89S51有更突出的優(yōu)點(diǎn):有更突出的優(yōu)點(diǎn):(1 1)增加在線(xiàn)可編程功能)增加在線(xiàn)可編程功能ISPISP;(2 2)數(shù)據(jù)指針
7、數(shù)據(jù)指針增加到增加到兩個(gè)兩個(gè),方便了對(duì)片外,方便了對(duì)片外RAMRAM的訪(fǎng)問(wèn)過(guò)程;的訪(fǎng)問(wèn)過(guò)程;(3 3)增加了)增加了看門(mén)狗定時(shí)器看門(mén)狗定時(shí)器,提高了系統(tǒng)的抗干擾能力;,提高了系統(tǒng)的抗干擾能力;(4 4)增加)增加斷電標(biāo)志斷電標(biāo)志;(5 5)增加)增加掉電狀態(tài)掉電狀態(tài)下的下的中斷恢復(fù)模式中斷恢復(fù)模式。基本結(jié)構(gòu)基本結(jié)構(gòu)依舊是依舊是CPU CPU 加上外圍芯片的傳統(tǒng)微機(jī)結(jié)構(gòu)。加上外圍芯片的傳統(tǒng)微機(jī)結(jié)構(gòu)。92.2 AT89S512.2 AT89S51的引腳功能的引腳功能4040只引腳只引腳雙列直插封裝(雙列直插封裝(DIPDIP)4444只引腳方形封裝方式(只引腳方形封裝方式(4 4只無(wú)用)只無(wú)用)引
8、腳邏輯圖引腳邏輯圖 80518051單片機(jī)為單片機(jī)為4040條引腳雙列直插式封裝條引腳雙列直插式封裝 引腳可分為三個(gè)部分引腳可分為三個(gè)部分X1 X2 EA PSEN ALE RST VCC GND 8051 P0 P1 P2 P3 P00P07 P10P17 P20P27 P30P37 控控制制引引腳腳并行并行I/O口引腳口引腳電源及時(shí)鐘引腳電源及時(shí)鐘引腳2.2.1 2.2.1 電源及時(shí)鐘引腳電源及時(shí)鐘引腳1 1電源引腳電源引腳 (1 1)VccVcc(4040腳):腳):+5V+5V電源;電源; (2 2)VssVss(2020腳):接地。腳):接地。2 2時(shí)鐘引腳時(shí)鐘引腳 (1 1)XTA
9、L1XTAL1(1919腳):采用外接晶體振蕩器時(shí),接地。腳):采用外接晶體振蕩器時(shí),接地。 (2 2)XTAL2XTAL2(1818腳):接外部晶體的另一端。腳):接外部晶體的另一端。112.2.2 2.2.2 控制引腳控制引腳(1) RST/VPD(9(1) RST/VPD(9腳腳) ):復(fù)位與備用電源:復(fù)位與備用電源(2)(2) / /VPP (31VPP (31腳腳):): 第一功能:第一功能: 外部程序存儲(chǔ)器訪(fǎng)問(wèn)允許控制端。外部程序存儲(chǔ)器訪(fǎng)問(wèn)允許控制端。 =1=1,訪(fǎng)問(wèn)片內(nèi)程序存儲(chǔ)器,訪(fǎng)問(wèn)片內(nèi)程序存儲(chǔ)器, =0=0,單片機(jī)則只訪(fǎng)問(wèn)外部程序存儲(chǔ)器單片機(jī)則只訪(fǎng)問(wèn)外部程序存儲(chǔ)器; ; 第二
10、功能第二功能VPPVPP,用于,用于施加編程電壓施加編程電壓。(3) (3) ALE/ ALE/ (3030腳)腳): 第一功能第一功能ALEALE:地址鎖存允許:地址鎖存允許; ; 第二功能第二功能 :編程脈沖輸入端。編程脈沖輸入端。(4) (4) (2929腳)腳):讀外部程序存儲(chǔ)器的選通信號(hào)。:讀外部程序存儲(chǔ)器的選通信號(hào)。 12EAEAEAPROGPROGPSENEA2.2.3 2.2.3 并行并行I/OI/O口引腳口引腳(1)(1) P0P0口口:雙向雙向8 8位三態(tài)位三態(tài)I/OI/O口,地址總線(xiàn)(低口,地址總線(xiàn)(低8 8位)及數(shù)據(jù)位)及數(shù)據(jù)總線(xiàn)分時(shí)復(fù)用口,可驅(qū)動(dòng)總線(xiàn)分時(shí)復(fù)用口,可驅(qū)動(dòng)
11、8 8個(gè)個(gè)LSLS型型TTLTTL負(fù)載。負(fù)載。(2) (2) P1P1口口:8 8位位準(zhǔn)雙向準(zhǔn)雙向I/OI/O口,可驅(qū)動(dòng)口,可驅(qū)動(dòng)4 4個(gè)個(gè)LSLS型型TTLTTL負(fù)載。負(fù)載。(3) (3) P2P2口口:8 8位位準(zhǔn)雙向準(zhǔn)雙向I/OI/O口,與地址總線(xiàn)(高口,與地址總線(xiàn)(高8 8位)復(fù)用,位)復(fù)用,可驅(qū)動(dòng)可驅(qū)動(dòng)4 4個(gè)個(gè)LSLS型型TTLTTL負(fù)載。負(fù)載。(4) (4) P3P3口口:8 8位位準(zhǔn)雙向準(zhǔn)雙向I/OI/O口,雙功能復(fù)用口,可驅(qū)動(dòng)口,雙功能復(fù)用口,可驅(qū)動(dòng)4 4個(gè)個(gè)LSLS型型TTLTTL負(fù)載。負(fù)載。13 P0 P0口口作為總線(xiàn)時(shí),為雙向口;作為通用作為總線(xiàn)時(shí),為雙向口;作為通用I
12、/OI/O口時(shí),為準(zhǔn)雙口時(shí),為準(zhǔn)雙 向口,這時(shí)需加上拉電阻。向口,這時(shí)需加上拉電阻。 P1 P1口、口、P2P2口、口、P3P3口口均為均為準(zhǔn)雙向口準(zhǔn)雙向口。14INT0INT1WRRD 注意:注意:準(zhǔn)雙向口與雙向三態(tài)口的差別準(zhǔn)雙向口與雙向三態(tài)口的差別。雙向口通過(guò)方向寄存器設(shè)置后,要作輸出可以直接向數(shù)雙向口通過(guò)方向寄存器設(shè)置后,要作輸出可以直接向數(shù)據(jù)寄存器寫(xiě),做輸入可以直接讀;而據(jù)寄存器寫(xiě),做輸入可以直接讀;而5151的結(jié)構(gòu)造成其的結(jié)構(gòu)造成其準(zhǔn)雙準(zhǔn)雙向口向口,輸出直接用就可以了,輸入必須先寫(xiě)全,輸出直接用就可以了,輸入必須先寫(xiě)全1 1然后再讀。然后再讀。P1P3P1P3準(zhǔn)雙向口僅有高、低電平兩
13、個(gè)狀態(tài);作通用準(zhǔn)雙向口僅有高、低電平兩個(gè)狀態(tài);作通用I/OI/O的的輸入口使用時(shí),輸入口使用時(shí),一定要向該口先寫(xiě)入一定要向該口先寫(xiě)入“1 1”。而而P0P0雙向三態(tài)口作為總線(xiàn)使用,口線(xiàn)內(nèi)無(wú)上拉電阻,處雙向三態(tài)口作為總線(xiàn)使用,口線(xiàn)內(nèi)無(wú)上拉電阻,處于高阻于高阻“懸浮懸浮”態(tài)。態(tài)。152.3.1 2.3.1 運(yùn)算器運(yùn)算器 對(duì)操作數(shù)進(jìn)行對(duì)操作數(shù)進(jìn)行算術(shù)、邏輯運(yùn)算和位操作算術(shù)、邏輯運(yùn)算和位操作。1 1算術(shù)邏輯運(yùn)算單元算術(shù)邏輯運(yùn)算單元ALUALU2 2累加器累加器A A 使用最頻繁的寄存器,使用最頻繁的寄存器,可寫(xiě)為可寫(xiě)為AccAcc。 A A的作用:的作用:(1 1)是)是ALUALU單元的輸入源之一,
14、又是運(yùn)算結(jié)果存放單元。單元的輸入源之一,又是運(yùn)算結(jié)果存放單元。(2 2)數(shù)據(jù)傳送大多都通過(guò)累加器)數(shù)據(jù)傳送大多都通過(guò)累加器A A。(3 3)A A的進(jìn)位的進(jìn)位標(biāo)志標(biāo)志CyCy同時(shí)又是同時(shí)又是位處理機(jī)的位累加器。位處理機(jī)的位累加器。162.3 AT89S512.3 AT89S51的的CPUCPU由由運(yùn)算器運(yùn)算器和和控制器控制器構(gòu)成。構(gòu)成。3 3程序狀態(tài)字寄存器程序狀態(tài)字寄存器PSWPSW (1 1)CyCy(PSW.7PSW.7)進(jìn)位標(biāo)志位進(jìn)位標(biāo)志位(2 2)Ac (PSW.6)Ac (PSW.6)輔助進(jìn)位標(biāo)志位輔助進(jìn)位標(biāo)志位(3 3)F0F0(PSW.5PSW.5)標(biāo)志位:由用戶(hù)使用的狀態(tài)標(biāo)志
15、位。標(biāo)志位:由用戶(hù)使用的狀態(tài)標(biāo)志位。(4 4)RS1RS1、RS0RS0(PSW.4PSW.4、PSW.3PSW.3):4 4組工作寄存器區(qū)選擇組工作寄存器區(qū)選擇控制位控制位1 1和位和位0 0。PSW的格式的格式(5 5)OVOV(PSW.2PSW.2)溢出標(biāo)志位)溢出標(biāo)志位當(dāng)執(zhí)行算術(shù)指令時(shí),用來(lái)指示運(yùn)算結(jié)果是否產(chǎn)生溢出。當(dāng)執(zhí)行算術(shù)指令時(shí),用來(lái)指示運(yùn)算結(jié)果是否產(chǎn)生溢出。 如果結(jié)果產(chǎn)生溢出,如果結(jié)果產(chǎn)生溢出,OV=1OV=1;否則,;否則,OV=0OV=0。(6 6)PSW.1PSW.1位位 保留位。保留位。(7 7)P P(PSW.0PSW.0)奇偶標(biāo)志位)奇偶標(biāo)志位指令執(zhí)行完,累加器指令執(zhí)
16、行完,累加器A A中中“1 1”的個(gè)數(shù)的個(gè)數(shù)是是奇數(shù)奇數(shù)還是還是偶數(shù)偶數(shù)。 P=1 P=1,表示,表示A A中中“1 1”的個(gè)數(shù)為的個(gè)數(shù)為奇數(shù)奇數(shù)。P=0P=0,表示,表示A A中中“1 1”的個(gè)數(shù)為的個(gè)數(shù)為偶數(shù)偶數(shù)。18192.3.2 2.3.2 控制器控制器任務(wù):任務(wù):識(shí)別指令,并根據(jù)指令性質(zhì)控制單片機(jī)各功能部件。識(shí)別指令,并根據(jù)指令性質(zhì)控制單片機(jī)各功能部件。包括:包括:程序計(jì)數(shù)器、指令寄存器、指令譯碼器、定時(shí)及控制程序計(jì)數(shù)器、指令寄存器、指令譯碼器、定時(shí)及控制邏輯電路等。邏輯電路等。功能:功能:控制指令的讀入、譯碼和執(zhí)行??刂浦噶畹淖x入、譯碼和執(zhí)行。 程序計(jì)數(shù)器程序計(jì)數(shù)器PCPC是一個(gè)獨(dú)
17、立的是一個(gè)獨(dú)立的1616位位計(jì)數(shù)器,不可訪(fǎng)問(wèn)。單片機(jī)計(jì)數(shù)器,不可訪(fǎng)問(wèn)。單片機(jī)復(fù)位時(shí),復(fù)位時(shí),PCPC中的內(nèi)容為中的內(nèi)容為0000H0000H,從程序存儲(chǔ)器,從程序存儲(chǔ)器0000H0000H單元取指單元取指令,開(kāi)始執(zhí)行程序。令,開(kāi)始執(zhí)行程序。PCPC工作過(guò)程是工作過(guò)程是:CPUCPU讀指令時(shí),讀指令時(shí),PCPC中的內(nèi)容作為所取指令的地中的內(nèi)容作為所取指令的地址,程序存儲(chǔ)器按此地址輸出指令字節(jié),同時(shí)址,程序存儲(chǔ)器按此地址輸出指令字節(jié),同時(shí)PCPC自動(dòng)加自動(dòng)加1 1。. .程序存儲(chǔ)器空間程序存儲(chǔ)器空間 片內(nèi)片內(nèi)和和片外片外兩部分。兩部分。 片內(nèi)片內(nèi)4KB4KB Flash Flash ,電編程和擦除
18、,也可在線(xiàn)編程。,電編程和擦除,也可在線(xiàn)編程。 片外擴(kuò)展最多可至片外擴(kuò)展最多可至64KB64KB。. .數(shù)據(jù)存儲(chǔ)器空間數(shù)據(jù)存儲(chǔ)器空間片內(nèi)片內(nèi)與與片外片外兩部分。兩部分。 片內(nèi)有片內(nèi)有128B RAM128B RAM(5252子系列為子系列為256B256B)。)。 片外可擴(kuò)展至片外可擴(kuò)展至64KB RAM 64KB RAM 。202.4 AT89S512.4 AT89S51存儲(chǔ)器的結(jié)構(gòu)存儲(chǔ)器的結(jié)構(gòu). .特殊功能寄存器特殊功能寄存器SFRSFR 片內(nèi)各功能部件的控制寄存器及狀態(tài)寄存器,綜合反映片內(nèi)各功能部件的控制寄存器及狀態(tài)寄存器,綜合反映整個(gè)單片機(jī)基本系統(tǒng)內(nèi)部實(shí)際的工作狀態(tài)及工作方式。整個(gè)單片
19、機(jī)基本系統(tǒng)內(nèi)部實(shí)際的工作狀態(tài)及工作方式。. .位地址空間位地址空間 共有共有211211個(gè)個(gè)可尋址位,構(gòu)成了位地址空間。位于內(nèi)部可尋址位,構(gòu)成了位地址空間。位于內(nèi)部 RAMRAM(共(共128128位)和特殊功能寄存器區(qū)(共位)和特殊功能寄存器區(qū)(共8383位)中。位)中。212.4.1 2.4.1 程序存儲(chǔ)器空間程序存儲(chǔ)器空間只讀,存放固定常數(shù),地址范圍只讀,存放固定常數(shù),地址范圍0000H0000H0FFFH0FFFH。使用時(shí)應(yīng)注意以下問(wèn)題:使用時(shí)應(yīng)注意以下問(wèn)題:(1 1)分為片內(nèi)和片外兩部分,訪(fǎng)問(wèn)片內(nèi)的還是片外的程序)分為片內(nèi)和片外兩部分,訪(fǎng)問(wèn)片內(nèi)的還是片外的程序存儲(chǔ)器,由存儲(chǔ)器,由 引
20、腳電平引腳電平確定。確定。 =1 =1時(shí),時(shí),CPUCPU從片內(nèi)從片內(nèi)0000H0000H開(kāi)始取指令,開(kāi)始取指令,當(dāng)當(dāng)PCPC值沒(méi)有超出值沒(méi)有超出0FFFH0FFFH時(shí),只訪(fǎng)問(wèn)片內(nèi)時(shí),只訪(fǎng)問(wèn)片內(nèi)Flash Flash 存儲(chǔ)器,存儲(chǔ)器,若超出若超出,自動(dòng)轉(zhuǎn)向,自動(dòng)轉(zhuǎn)向讀片外程序存儲(chǔ)器空間讀片外程序存儲(chǔ)器空間1000H1000HFFFFH FFFFH 內(nèi)的程序。內(nèi)的程序。 =0 =0時(shí),只能執(zhí)行片外程序存儲(chǔ)器(時(shí),只能執(zhí)行片外程序存儲(chǔ)器(0000H0000HFFFFHFFFFH)中的)中的程序,不理會(huì)片內(nèi)程序,不理會(huì)片內(nèi)4KB Flash 4KB Flash 存儲(chǔ)器。存儲(chǔ)器。22EAEAEA23(
21、2 2)程序存儲(chǔ)器某些單元被固定用于各中斷源中斷服務(wù)程)程序存儲(chǔ)器某些單元被固定用于各中斷源中斷服務(wù)程序入口。序入口。通常這通常這5 5個(gè)中斷入口個(gè)中斷入口地址處地址處都放一條跳轉(zhuǎn)指令都放一條跳轉(zhuǎn)指令跳向?qū)?yīng)的中跳向?qū)?yīng)的中斷服務(wù)子程序,而不是直接存放中斷服務(wù)子程序斷服務(wù)子程序,而不是直接存放中斷服務(wù)子程序。2.4.2 2.4.2 數(shù)據(jù)存儲(chǔ)器空間數(shù)據(jù)存儲(chǔ)器空間. .片內(nèi)數(shù)據(jù)存儲(chǔ)器片內(nèi)數(shù)據(jù)存儲(chǔ)器 片內(nèi)數(shù)據(jù)存儲(chǔ)器(片內(nèi)數(shù)據(jù)存儲(chǔ)器(RAMRAM)共)共128128個(gè)個(gè)單元,字節(jié)地址為單元,字節(jié)地址為00H00H7FH7FH。00H00H1FH1FH:4 4組通用工作寄存器區(qū),可組通用工作寄存器區(qū),可
22、通過(guò)指令改變通過(guò)指令改變RS1RS1、RS0RS0兩位兩位來(lái)選擇。來(lái)選擇。20H20H2FH2FH:1616個(gè)個(gè)單元的單元的128128位可位尋址位可位尋址也可字節(jié)尋址。也可字節(jié)尋址。30H30H7FH7FH:用戶(hù):用戶(hù)RAMRAM區(qū),只能進(jìn)行字節(jié)區(qū),只能進(jìn)行字節(jié)尋址,用作存數(shù)據(jù)以及作為堆棧區(qū)。尋址,用作存數(shù)據(jù)以及作為堆棧區(qū)。24AT89S51AT89S51片內(nèi)片內(nèi)RAMRAM結(jié)構(gòu)結(jié)構(gòu). .片外數(shù)據(jù)存儲(chǔ)器片外數(shù)據(jù)存儲(chǔ)器 注意,片內(nèi)注意,片內(nèi)RAMRAM與片外與片外RAMRAM兩個(gè)空間是兩個(gè)空間是相互獨(dú)立的相互獨(dú)立的,片內(nèi),片內(nèi)RAMRAM與片外與片外RAMRAM的低的低128B128B的地址是
23、相同的,但由于使用的是不同的地址是相同的,但由于使用的是不同的訪(fǎng)問(wèn)指令,所以不會(huì)發(fā)生沖突。的訪(fǎng)問(wèn)指令,所以不會(huì)發(fā)生沖突。252.4.3 2.4.3 特殊功能寄存器(特殊功能寄存器(SFRSFR) AT89S51AT89S51采用特殊功能寄存器集中控制采用特殊功能寄存器集中控制各功能部件各功能部件。 SFRSFR的單元地址的單元地址映射在片內(nèi)映射在片內(nèi)RAM80HRAM80HFFHFFH區(qū)域區(qū)域中,共中,共2626個(gè)。個(gè)。 與與AT89C51AT89C51相比,相比,新增新增5 5個(gè)個(gè)SFRSFR:DP1LDP1L、DP1HDP1H、AUXRAUXR、AUXR1AUXR1和和WDTRSTWDTR
24、ST。2627凡是凡是可位尋址的可位尋址的SFRSFR,字節(jié)地址末位只能是,字節(jié)地址末位只能是0H0H或或8H8H。若讀若讀/ /寫(xiě)未定義單元,將得到一個(gè)不確定的隨機(jī)數(shù)。寫(xiě)未定義單元,將得到一個(gè)不確定的隨機(jī)數(shù)。1 1堆棧指針堆棧指針SPSP 指示堆棧頂部在內(nèi)部指示堆棧頂部在內(nèi)部RAMRAM塊中的位置。塊中的位置。 堆棧結(jié)構(gòu)堆棧結(jié)構(gòu): :向上生長(zhǎng)型向上生長(zhǎng)型。 單片機(jī)單片機(jī)復(fù)位復(fù)位后,后,SPSP為為07H07H,堆棧實(shí)際上從,堆棧實(shí)際上從08H08H單元開(kāi)始,由單元開(kāi)始,由于于08H08H1FH1FH單元分別是屬于單元分別是屬于1 13 3組的工作寄存器區(qū),組的工作寄存器區(qū),最好最好在復(fù)位后把
25、在復(fù)位后把SPSP值改置為值改置為60H60H或更大的值或更大的值,避免堆棧與工作,避免堆棧與工作寄存器沖突。寄存器沖突。29 堆棧是為堆棧是為子程序調(diào)用子程序調(diào)用和和中斷操作中斷操作而設(shè)而設(shè):(1 1)保護(hù)斷點(diǎn)。)保護(hù)斷點(diǎn)。無(wú)論是子程序調(diào)用、還是中斷服務(wù)子程序調(diào)用,最終都無(wú)論是子程序調(diào)用、還是中斷服務(wù)子程序調(diào)用,最終都要返回主程序。應(yīng)預(yù)先把主程序的斷點(diǎn)在堆棧中保護(hù)起來(lái),為程序正要返回主程序。應(yīng)預(yù)先把主程序的斷點(diǎn)在堆棧中保護(hù)起來(lái),為程序正確返回做準(zhǔn)備。確返回做準(zhǔn)備。(2 2)現(xiàn)場(chǎng)保護(hù)。)現(xiàn)場(chǎng)保護(hù)。執(zhí)行子程序或中斷服務(wù)子程序時(shí),要用到一些寄存器單執(zhí)行子程序或中斷服務(wù)子程序時(shí),要用到一些寄存器單元
26、,會(huì)破壞原有內(nèi)容。要把有關(guān)寄存器單元的內(nèi)容保存起來(lái),送入堆元,會(huì)破壞原有內(nèi)容。要把有關(guān)寄存器單元的內(nèi)容保存起來(lái),送入堆棧,這就是所謂的棧,這就是所謂的“現(xiàn)場(chǎng)保護(hù)現(xiàn)場(chǎng)保護(hù)”。 兩種操作方式:兩種操作方式:數(shù)據(jù)壓入數(shù)據(jù)壓入(PUSHPUSH)堆棧,數(shù)據(jù)彈出堆棧,數(shù)據(jù)彈出(POPPOP)堆棧。堆棧。數(shù)據(jù)壓入堆棧,數(shù)據(jù)壓入堆棧,SPSP自動(dòng)加自動(dòng)加1 1;數(shù)據(jù)彈出堆棧,;數(shù)據(jù)彈出堆棧,SPSP自動(dòng)減自動(dòng)減1 1。2 2寄存器寄存器B B 為執(zhí)行乘法和除法而設(shè)。為執(zhí)行乘法和除法而設(shè)。 在不執(zhí)行乘、除法操作時(shí),可當(dāng)作普通寄存器。在不執(zhí)行乘、除法操作時(shí),可當(dāng)作普通寄存器。 乘法乘法:兩乘數(shù)分別在:兩乘數(shù)分別
27、在A A、B B中,執(zhí)行乘法指令后,乘積在中,執(zhí)行乘法指令后,乘積在BABA兩個(gè)寄存器中,兩個(gè)寄存器中,B B放乘積的高放乘積的高8 8位,位,A A放乘積的低放乘積的低8 8位;位; 除法除法:被除數(shù)取自:被除數(shù)取自A A,除數(shù)取自,除數(shù)取自B B,商存放在,商存放在A A,余數(shù)存,余數(shù)存B B323 3AUXRAUXR寄存器寄存器AUXRAUXR寄存器的格式寄存器的格式DISALEDISALE:ALEALE的禁止的禁止/ /允許位允許位。0 0:ALEALE有效,發(fā)出脈沖;有效,發(fā)出脈沖; 1 1:ALEALE僅在執(zhí)行僅在執(zhí)行MOVCMOVC和和MOVXMOVX類(lèi)指令時(shí)有效,不訪(fǎng)問(wèn)外部存儲(chǔ)
28、器時(shí),類(lèi)指令時(shí)有效,不訪(fǎng)問(wèn)外部存儲(chǔ)器時(shí), ALE ALE不輸出脈沖信號(hào)。不輸出脈沖信號(hào)。DISRTODISRTO:禁止禁止/ /允許允許WDTWDT溢出時(shí)的復(fù)位輸出溢出時(shí)的復(fù)位輸出。0 0:WDTWDT溢出時(shí),在溢出時(shí),在RSTRST引腳輸出一個(gè)高電平脈沖;引腳輸出一個(gè)高電平脈沖;1 1:RSTRST引腳僅為輸入腳。引腳僅為輸入腳。WDIDLEWDIDLE:WDTWDT在空閑模式下的禁止在空閑模式下的禁止/ /允許位。允許位。 0 0: WDTWDT在空閑模式下繼續(xù)計(jì)數(shù);在空閑模式下繼續(xù)計(jì)數(shù); 1 1: WDTWDT在空閑模式下暫停計(jì)數(shù)。在空閑模式下暫停計(jì)數(shù)。334. 4. 數(shù)據(jù)指針數(shù)據(jù)指針D
29、PTR0DPTR0和和DPTR1DPTR1雙數(shù)據(jù)指針寄存器,雙數(shù)據(jù)指針寄存器,便于訪(fǎng)問(wèn)便于訪(fǎng)問(wèn)數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器。AUXR1AUXR1的的DPSDPS位位用于用于選擇選擇兩個(gè)數(shù)據(jù)指針兩個(gè)數(shù)據(jù)指針:DPS=0DPS=0,選用,選用DPTR0DPTR0;DPS=1DPS=1,選用,選用DPTR1DPTR1。 數(shù)據(jù)指針數(shù)據(jù)指針可作為一個(gè)可作為一個(gè)1616位寄存器來(lái)用,也可作為兩個(gè)獨(dú)立位寄存器來(lái)用,也可作為兩個(gè)獨(dú)立的的8 8位寄存器位寄存器DP0HDP0H(或(或DP1HDP1H)和)和DP0LDP0L(或(或DP1LDP1L)來(lái)用。)來(lái)用。5. AUXR15. AUXR1寄存器寄存器AUXR1AU
30、XR1是輔助寄存器,格式如圖所示:是輔助寄存器,格式如圖所示:AUXR1AUXR1寄存器的格式寄存器的格式6. 6. 看門(mén)狗定時(shí)器看門(mén)狗定時(shí)器WDTWDTWDTWDT:1414位計(jì)數(shù)器,看門(mén)狗定時(shí)器復(fù)位寄存器位計(jì)數(shù)器,看門(mén)狗定時(shí)器復(fù)位寄存器WDTRSTWDTRST。 當(dāng)當(dāng)CPUCPU由于干擾,程序陷入死循環(huán)或跑飛狀態(tài)時(shí),由于干擾,程序陷入死循環(huán)或跑飛狀態(tài)時(shí),WDTWDT提提供了一種使程序恢復(fù)正常運(yùn)行的有效手段。供了一種使程序恢復(fù)正常運(yùn)行的有效手段。 有關(guān)有關(guān)WDTWDT在抗干擾設(shè)計(jì)中的應(yīng)用以及低功耗模式下運(yùn)行的在抗干擾設(shè)計(jì)中的應(yīng)用以及低功耗模式下運(yùn)行的狀態(tài),將在相應(yīng)的章節(jié)中具體介紹。狀態(tài),將在
31、相應(yīng)的章節(jié)中具體介紹。352.4.4 2.4.4 位地址空間位地址空間211211個(gè)尋址位的位地址,位地址范圍為個(gè)尋址位的位地址,位地址范圍為 00H00HFFHFFH: 00H00H7FH7FH 128 128位處于位處于片內(nèi)片內(nèi)RAMRAM字節(jié)地址字節(jié)地址 20H20H2FH2FH 單元;單元; 其余的其余的8383個(gè)可尋址位個(gè)可尋址位分布在分布在特殊功能寄存器特殊功能寄存器SFRSFR中。中。36表表2-5 內(nèi)部的可尋址位及位地址內(nèi)部的可尋址位及位地址特殊功能寄存器位 地 址字 節(jié)地 址D7D6D5D4D3D2D1D0BF7HF6HF5HF4HF3HF2HF1HF0HF0HAccE7HE
32、6HE5HE4HE3HE2HE1HE0HE0HPSWD7HD6HD5HD4HD3HD2HD1HD0HD0HIPBCHBBHBAHB9HB8HB8HP3B7HB6HB5HB4HB3HB2HB1HB0HB0HIEAFHACHABHAAHA9HA8HA8HP2A7HA6HA5HA4HA3HA2HA1HA0HA0HSCON9FH9EH9DH9CH9BH9AH99H98H98HP197H96H95H94H93H92H91H90H90HTCON8FH8EH8DH8CH8BH8AH89H88H88HP087H86H85H84H83H82H81H80H80H表2-6 SFR中的位地址分布可被位尋址的可被位尋址
33、的特殊寄存器特殊寄存器有有11個(gè)個(gè),共有位地址,共有位地址88個(gè),個(gè),5個(gè)位未用,其余個(gè)位未用,其余83個(gè)個(gè)位的位地址離散地分布于片內(nèi)數(shù)據(jù)存儲(chǔ)器區(qū)字節(jié)地址為位的位地址離散地分布于片內(nèi)數(shù)據(jù)存儲(chǔ)器區(qū)字節(jié)地址為80HFFH的范圍內(nèi)的范圍內(nèi),其,其最低的位地址等于其字節(jié)地址最低的位地址等于其字節(jié)地址,且其字節(jié)地址的,且其字節(jié)地址的末位都為末位都為0H或或8H。39AT89S51AT89S51單片機(jī)的存儲(chǔ)器結(jié)構(gòu)單片機(jī)的存儲(chǔ)器結(jié)構(gòu) 4 4個(gè)雙向的個(gè)雙向的8 8位并行位并行I/OI/O端口,分別記為端口,分別記為P0P0、P1P1、P2P2和和P3P3,其中其中輸出鎖存器輸出鎖存器屬于屬于特殊功能寄存器特殊
34、功能寄存器。 端口的每一位均由輸出鎖存器、輸出驅(qū)動(dòng)器和輸入緩沖端口的每一位均由輸出鎖存器、輸出驅(qū)動(dòng)器和輸入緩沖器組成,器組成,4 4個(gè)端口按個(gè)端口按字節(jié)輸入字節(jié)輸入/ /輸出輸出外,也可外,也可位尋址位尋址。402.5 AT89S512.5 AT89S51的的并行并行I/OI/O端口端口多路開(kāi)關(guān)多路開(kāi)關(guān)1)功能功能:用于控制選通I/O方式還是地址/數(shù)據(jù)輸出方式2)方式控制方式控制:由內(nèi)部控制信號(hào)產(chǎn)生輸入鎖存器輸入鎖存器兩個(gè)輸入緩沖器兩個(gè)輸入緩沖器(BUF1和BUF2)推拉式推拉式I/O驅(qū)動(dòng)器驅(qū)動(dòng)器BUF2BUF1Q QQ QD DC CVccVcc控制控制AD0AD0P0R1P0R1 P0R2
35、P0R2D0D0P0WP0W圖圖1 1、P0P0口內(nèi)部結(jié)構(gòu)口內(nèi)部結(jié)構(gòu)讀鎖存器讀鎖存器讀引腳讀引腳鎖存器鎖存器內(nèi)部總線(xiàn)內(nèi)部總線(xiàn)寫(xiě)鎖存器寫(xiě)鎖存器地址地址/ /數(shù)據(jù)數(shù)據(jù)P00P00多路開(kāi)關(guān)多路開(kāi)關(guān)102.5.1 P02.5.1 P0口口P0P0口是一個(gè)口是一個(gè)雙功能雙功能的的8 8位并行端口,字節(jié)地址位并行端口,字節(jié)地址為為80H80H,位地址,位地址80H80H87H87H。端口的各位具有完全相同但相互獨(dú)立的電路結(jié)構(gòu)端口的各位具有完全相同但相互獨(dú)立的電路結(jié)構(gòu)。421 1. .位電路結(jié)構(gòu)位電路結(jié)構(gòu)一個(gè)數(shù)據(jù)輸出的鎖存器,用于數(shù)據(jù)位的鎖存。一個(gè)數(shù)據(jù)輸出的鎖存器,用于數(shù)據(jù)位的鎖存。兩個(gè)三態(tài)的數(shù)據(jù)輸入緩沖器
36、兩個(gè)三態(tài)的數(shù)據(jù)輸入緩沖器:讀鎖存器數(shù)據(jù)讀鎖存器數(shù)據(jù)的輸入緩沖器的輸入緩沖器BUF1BUF1和和讀引讀引腳數(shù)據(jù)腳數(shù)據(jù)的輸入緩沖器的輸入緩沖器BUF2BUF2。一個(gè)多路轉(zhuǎn)接開(kāi)關(guān)一個(gè)多路轉(zhuǎn)接開(kāi)關(guān)MUXMUX,由,由“控制控制”信號(hào)控制,實(shí)現(xiàn)鎖存器的輸出和信號(hào)控制,實(shí)現(xiàn)鎖存器的輸出和地址地址/ /數(shù)據(jù)信號(hào)之間的轉(zhuǎn)接。數(shù)據(jù)信號(hào)之間的轉(zhuǎn)接。數(shù)據(jù)輸出的數(shù)據(jù)輸出的控制和驅(qū)動(dòng)電路控制和驅(qū)動(dòng)電路,由,由兩個(gè)場(chǎng)效應(yīng)管兩個(gè)場(chǎng)效應(yīng)管(FETFET)組成。)組成。2 2工作過(guò)程分析工作過(guò)程分析(1 1)P0P0口用作地址口用作地址/ /數(shù)據(jù)總線(xiàn)數(shù)據(jù)總線(xiàn)(2 2)P0P0口用作通用口用作通用I/OI/O口口P0P0口作輸出
37、口口作輸出口時(shí),來(lái)自時(shí),來(lái)自CPUCPU的的“寫(xiě)寫(xiě)”脈沖加在脈沖加在D D鎖存器的鎖存器的CPCP端,內(nèi)部總端,內(nèi)部總線(xiàn)上的數(shù)據(jù)寫(xiě)入線(xiàn)上的數(shù)據(jù)寫(xiě)入D D鎖存器,并由引腳鎖存器,并由引腳P0.xP0.x輸出。輸出。P0P0口作輸入口口作輸入口使用時(shí),有使用時(shí),有兩種讀入方式兩種讀入方式:“讀鎖存器讀鎖存器”和和“讀引腳讀引腳”灌灌灌灌灌3 3P0P0口的特點(diǎn)口的特點(diǎn)P0P0口為口為雙功能口雙功能口地址地址/ /數(shù)據(jù)復(fù)用數(shù)據(jù)復(fù)用口和口和通用通用I/OI/O口???。(1 1)當(dāng)當(dāng)P0P0口用作口用作地址地址/ /數(shù)據(jù)復(fù)用數(shù)據(jù)復(fù)用口時(shí),是一個(gè)口時(shí),是一個(gè)真正的雙向口真正的雙向口,輸出低,輸出低8 8位
38、位地址和輸出地址和輸出/ /輸入輸入8 8位數(shù)據(jù)。位數(shù)據(jù)。(2 2)當(dāng)當(dāng)P0P0口用作口用作通用通用I/OI/O口時(shí),由于需要在片外接上拉電阻,端口不存在口時(shí),由于需要在片外接上拉電阻,端口不存在高阻抗(懸?。顟B(tài),因此是一個(gè)高阻抗(懸?。顟B(tài),因此是一個(gè)準(zhǔn)雙向口準(zhǔn)雙向口。為保證引腳信號(hào)的。為保證引腳信號(hào)的正確正確讀入讀入,應(yīng),應(yīng)首先向鎖存器寫(xiě)首先向鎖存器寫(xiě)1 1。432.5.2 P12.5.2 P1口口 P1P1口內(nèi)部結(jié)構(gòu)如圖口內(nèi)部結(jié)構(gòu)如圖2 2所示所示 輸出部分有內(nèi)部上拉電阻輸出部分有內(nèi)部上拉電阻R R* *約為約為20K20K。 其他部分與其他部分與P0P0端口使用相類(lèi)似(讀引腳時(shí)先寫(xiě)入
39、端口使用相類(lèi)似(讀引腳時(shí)先寫(xiě)入1 1)。)。寫(xiě)數(shù)據(jù)讀端口2 2工作過(guò)程分析工作過(guò)程分析P1P1口口只能作為通用的只能作為通用的I/OI/O口口使用。使用。(1 1)P1P1口作口作輸出口輸出口時(shí);時(shí);(2 2)P1P1口作為口作為輸入口輸入口時(shí),分為時(shí),分為“讀鎖存器讀鎖存器”和和“讀引腳讀引腳”兩種方式。兩種方式。3 3P1P1口的特點(diǎn)口的特點(diǎn) 由于內(nèi)部上拉電阻,由于內(nèi)部上拉電阻,無(wú)高阻抗輸入無(wú)高阻抗輸入狀態(tài),故為狀態(tài),故為準(zhǔn)雙向口準(zhǔn)雙向口。 P1P1口口“讀引腳讀引腳”輸入輸入時(shí),必須時(shí),必須先向鎖存器寫(xiě)入先向鎖存器寫(xiě)入1 1。452.5.3 P22.5.3 P2口口1 1、P2P2可以作
40、為通用的可以作為通用的I/OI/O,也可以作為,也可以作為高高8 8位地址位地址輸出。輸出。2 2、當(dāng)控制信號(hào)為、當(dāng)控制信號(hào)為1 1時(shí)時(shí)FP2P2口輸出地址信息,口輸出地址信息,F(xiàn)此時(shí)單片機(jī)完成外部的取指操作或?qū)ν獠繑?shù)據(jù)存儲(chǔ)器此時(shí)單片機(jī)完成外部的取指操作或?qū)ν獠繑?shù)據(jù)存儲(chǔ)器1616位地址的讀寫(xiě)操作。位地址的讀寫(xiě)操作。3 3、當(dāng)、當(dāng)P2P2口作為普通口作為普通I/OI/O口使用時(shí)口使用時(shí)F用法和用法和P1P1口類(lèi)似??陬?lèi)似。2 2工作過(guò)程分析工作過(guò)程分析(1 1)P2P2口用作口用作地址總線(xiàn)地址總線(xiàn)(2 2)P2P2口用作口用作通用通用I/OI/O口口 在內(nèi)部控制信號(hào)作用下,在內(nèi)部控制信號(hào)作用下,
41、MUXMUX與鎖存器的與鎖存器的Q Q端接通。端接通。CPUCPU輸出輸出1 1時(shí),時(shí),Q=1Q=1,場(chǎng)效應(yīng)管截止,場(chǎng)效應(yīng)管截止,P2.xP2.x引腳輸出引腳輸出1 1;CPUCPU輸出輸出0 0時(shí),時(shí),Q=0Q=0,場(chǎng)效應(yīng)管導(dǎo)通,場(chǎng)效應(yīng)管導(dǎo)通,P2.xP2.x引腳輸出引腳輸出0 0。P2P2口輸入口輸入時(shí),分時(shí),分 “讀鎖存器讀鎖存器”和和“讀引腳讀引腳”兩種方式兩種方式: :“讀鎖存器讀鎖存器”時(shí)時(shí),Q Q端信號(hào)經(jīng)輸入緩沖器端信號(hào)經(jīng)輸入緩沖器BUF1BUF1進(jìn)入內(nèi)部總線(xiàn)進(jìn)入內(nèi)部總線(xiàn)“讀引腳讀引腳”時(shí)時(shí),先向鎖存器寫(xiě)先向鎖存器寫(xiě)1 1,使場(chǎng)效應(yīng)管截止,使場(chǎng)效應(yīng)管截止,P2.xP2.x引腳上的
42、電引腳上的電平經(jīng)輸入緩沖器平經(jīng)輸入緩沖器BUF2BUF2進(jìn)入內(nèi)部總線(xiàn)。進(jìn)入內(nèi)部總線(xiàn)。說(shuō)明:說(shuō)明:1、做普通端口使用時(shí),第二、做普通端口使用時(shí),第二功能應(yīng)為功能應(yīng)為“1”。2、使用第二功能時(shí),輸出端、使用第二功能時(shí),輸出端口鎖存器應(yīng)為口鎖存器應(yīng)為“1”。3、第二功能(表、第二功能(表2-1) 1輸出輸出I/O口口1讀讀I/O口口11 2.5.4 P32.5.4 P3口口由于由于引腳數(shù)目有限引腳數(shù)目有限,在,在P3P3口口增加了第二功能增加了第二功能。P3P3口口字節(jié)地址為字節(jié)地址為B0HB0H,位地址位地址B0HB0HB7HB7H。2 2工作過(guò)程分析工作過(guò)程分析(1 1)P3P3口用作口用作第二
43、輸入第二輸入/ /輸出功能輸出功能 當(dāng)選擇第二輸入功能時(shí),該位的鎖存器和第二輸出功能端均應(yīng)置當(dāng)選擇第二輸入功能時(shí),該位的鎖存器和第二輸出功能端均應(yīng)置1 1,保證場(chǎng)效應(yīng)管截止,保證場(chǎng)效應(yīng)管截止,P3.xP3.x引腳的信息由輸入緩沖器引腳的信息由輸入緩沖器BUF3BUF3的輸出獲得。的輸出獲得。(2 2)P3P3口用作口用作第一功能第一功能通用通用I/OI/O口口用作用作第一功能通用輸入第一功能通用輸入時(shí),時(shí),P3.xP3.x位的輸出鎖存器和第二輸出功能均應(yīng)位的輸出鎖存器和第二輸出功能均應(yīng)置置1 1,場(chǎng)效應(yīng)管截止,場(chǎng)效應(yīng)管截止,P3.xP3.x引腳信息通過(guò)輸入引腳信息通過(guò)輸入BUF3BUF3和和B
44、UF2BUF2進(jìn)入內(nèi)部總進(jìn)入內(nèi)部總線(xiàn),完成線(xiàn),完成“讀引腳讀引腳”操作。操作。當(dāng)當(dāng)P3P3口口第一功能通用輸入第一功能通用輸入時(shí),也可執(zhí)行時(shí),也可執(zhí)行“讀鎖存器讀鎖存器”操作,此時(shí)操作,此時(shí)Q Q端端信息經(jīng)過(guò)緩沖器信息經(jīng)過(guò)緩沖器BUF1BUF1進(jìn)入內(nèi)部總線(xiàn)。進(jìn)入內(nèi)部總線(xiàn)。503 3P3P3口的特點(diǎn)口的特點(diǎn) P3P3口內(nèi)部口內(nèi)部有上拉電阻有上拉電阻,無(wú)高阻抗輸入態(tài),無(wú)高阻抗輸入態(tài)- -準(zhǔn)雙向口準(zhǔn)雙向口。 P3P3口作為第二功能的輸出口作為第二功能的輸出/ /輸入,或第一功能通用輸入,輸入,或第一功能通用輸入,均須將相應(yīng)位的鎖存器置均須將相應(yīng)位的鎖存器置1 1。 當(dāng)當(dāng)某位不作為第二功能某位不作為第
45、二功能用時(shí),可用時(shí),可作為第一功能通用作為第一功能通用I/OI/O。 引腳輸入部分有兩個(gè)緩沖器,第二功能的輸入信號(hào)取自引腳輸入部分有兩個(gè)緩沖器,第二功能的輸入信號(hào)取自緩沖器緩沖器BUF3BUF3的輸出端,第一功能的輸入信號(hào)取自緩沖器的輸出端,第一功能的輸入信號(hào)取自緩沖器BUF2BUF2的輸出端。的輸出端。512.5.5 P2.5.5 P0 0P3P3口驅(qū)動(dòng)口驅(qū)動(dòng)LEDLED發(fā)光二極管發(fā)光二極管下面討論下面討論P(yáng) P0 0P3P3口與口與LEDLED發(fā)光二極管的驅(qū)動(dòng)連接問(wèn)題。發(fā)光二極管的驅(qū)動(dòng)連接問(wèn)題。 P0P0口與口與P1P1、P2P2、P3P3口相比,口相比,P0P0口的驅(qū)動(dòng)能力較大口的驅(qū)動(dòng)能
46、力較大,每位可驅(qū)動(dòng),每位可驅(qū)動(dòng)8 8個(gè)個(gè)LSTTLLSTTL輸入,而輸入,而P1P1、P2P2、P3P3口口每一位的驅(qū)動(dòng)能力,每一位的驅(qū)動(dòng)能力,只有只有P0P0口口的一半的一半。當(dāng)當(dāng)P0P0口口某位為某位為高電平高電平時(shí),可提供時(shí),可提供400400 A A的電流;的電流;當(dāng)當(dāng)P0P0口某位為口某位為低電平低電平(0.45V0.45V)時(shí),可提供)時(shí),可提供3.2mA3.2mA灌電流。灌電流。如低電平允許提高,灌電流可相應(yīng)加大。如低電平允許提高,灌電流可相應(yīng)加大。所以,所以,任何一個(gè)口要想獲得較大驅(qū)動(dòng)能力,只能用任何一個(gè)口要想獲得較大驅(qū)動(dòng)能力,只能用低電平低電平輸出。輸出。(a)不恰當(dāng)?shù)倪B接:
47、高電平驅(qū)動(dòng)不恰當(dāng)?shù)倪B接:高電平驅(qū)動(dòng) (b)恰當(dāng)恰當(dāng)?shù)倪B接:低電平驅(qū)動(dòng)的連接:低電平驅(qū)動(dòng)圖圖2-122-12 發(fā)光二極管與發(fā)光二極管與AT89S51AT89S51并行口的直接連接并行口的直接連接P0P0P3P3端口功能總結(jié)端口功能總結(jié)使用中應(yīng)注意的問(wèn)題:使用中應(yīng)注意的問(wèn)題: P0P0P3P3口都是并行口都是并行I/OI/O口,但口,但P0P0口和口和P2P2口口還可用來(lái)構(gòu)建數(shù)據(jù)總線(xiàn)和還可用來(lái)構(gòu)建數(shù)據(jù)總線(xiàn)和地址總線(xiàn),所以地址總線(xiàn),所以電路中有一個(gè)電路中有一個(gè)MUXMUX,進(jìn)行轉(zhuǎn)換。,進(jìn)行轉(zhuǎn)換。而而P1P1口和口和P3P3口口無(wú)構(gòu)建系統(tǒng)的數(shù)據(jù)總線(xiàn)和地址總線(xiàn)的功能,因此,無(wú)構(gòu)建系統(tǒng)的數(shù)據(jù)總線(xiàn)和地址總線(xiàn)
48、的功能,因此,無(wú)無(wú)需轉(zhuǎn)接開(kāi)關(guān)需轉(zhuǎn)接開(kāi)關(guān)MUXMUX。只有只有P0P0口口是一個(gè)真正的是一個(gè)真正的雙向口雙向口,P1P1P3P3口口都是都是準(zhǔn)雙向口準(zhǔn)雙向口。 原因原因: :P0P0口作數(shù)據(jù)總線(xiàn)使用時(shí),為保證數(shù)據(jù)正確傳送,需解決芯片內(nèi)外的口作數(shù)據(jù)總線(xiàn)使用時(shí),為保證數(shù)據(jù)正確傳送,需解決芯片內(nèi)外的隔離問(wèn)題,隔離問(wèn)題,即只有在數(shù)據(jù)傳送時(shí)芯片內(nèi)外才接通;否則應(yīng)處于隔離狀態(tài)。即只有在數(shù)據(jù)傳送時(shí)芯片內(nèi)外才接通;否則應(yīng)處于隔離狀態(tài)。為此,為此,P0P0口的輸出緩沖器應(yīng)為三態(tài)門(mén)??诘妮敵鼍彌_器應(yīng)為三態(tài)門(mén)。P3P3口具有口具有第二功能第二功能。因此在。因此在P3P3口電路增加了第二功能控制邏輯。這口電路增加了第二
49、功能控制邏輯。這是是P3P3口與其它各口的不同之處口與其它各口的不同之處。 時(shí)鐘電路產(chǎn)生時(shí)鐘電路產(chǎn)生AT89S51AT89S51工作時(shí)所工作時(shí)所必需的控制信號(hào)必需的控制信號(hào),在時(shí)鐘信,在時(shí)鐘信號(hào)的控制下,嚴(yán)格按時(shí)序執(zhí)行指令。號(hào)的控制下,嚴(yán)格按時(shí)序執(zhí)行指令。 執(zhí)行指令執(zhí)行指令時(shí),時(shí),CPUCPU首先首先到程序存儲(chǔ)器中到程序存儲(chǔ)器中取出取出需要執(zhí)行的指令需要執(zhí)行的指令操作碼,然后操作碼,然后譯碼譯碼,并,并由時(shí)序電路產(chǎn)生一系列控制信號(hào)由時(shí)序電路產(chǎn)生一系列控制信號(hào)完完成指令所規(guī)定的操作。成指令所規(guī)定的操作。 CPUCPU發(fā)的發(fā)的時(shí)序信號(hào)時(shí)序信號(hào)兩類(lèi)兩類(lèi),一類(lèi)一類(lèi)用對(duì)片內(nèi)各個(gè)功能部件控制;用對(duì)片內(nèi)各個(gè)
50、功能部件控制;另一類(lèi)另一類(lèi)用于對(duì)片外存儲(chǔ)器或用于對(duì)片外存儲(chǔ)器或I/OI/O口的控制口的控制,這部分時(shí)序?qū)τ?,這部分時(shí)序?qū)τ诜治?、設(shè)計(jì)硬件接口電路分析、設(shè)計(jì)硬件接口電路至關(guān)重要至關(guān)重要。552.6 2.6 時(shí)鐘電路與時(shí)序時(shí)鐘電路與時(shí)序2.6.1 2.6.1 時(shí)鐘電路設(shè)計(jì)時(shí)鐘電路設(shè)計(jì) 時(shí)鐘頻率時(shí)鐘頻率直接影響單片機(jī)的直接影響單片機(jī)的速度速度,時(shí)鐘電路的質(zhì)量也直接,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。影響單片機(jī)系統(tǒng)的穩(wěn)定性。1 1內(nèi)部時(shí)鐘方式內(nèi)部時(shí)鐘方式 AT89S51 AT89S51內(nèi)部有一個(gè)用于構(gòu)成振蕩器的內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放高增益反相放大器大器,輸入端為芯片引腳,輸入
51、端為芯片引腳XTAL1XTAL1,輸出端為引腳,輸出端為引腳XTAL2XTAL2。 這兩個(gè)引腳跨接石英晶體振蕩器和微調(diào)電容,構(gòu)成一這兩個(gè)引腳跨接石英晶體振蕩器和微調(diào)電容,構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。個(gè)穩(wěn)定的自激振蕩器。56內(nèi)部時(shí)鐘方式電路內(nèi)部時(shí)鐘方式電路C C1 1和和C C2 2的的典型值典型值通常選擇為通常選擇為30pF30pF。電容大小會(huì)影響振蕩器。電容大小會(huì)影響振蕩器頻率高低、振蕩器的穩(wěn)定性和起振的快速性。頻率高低、振蕩器的穩(wěn)定性和起振的快速性。 晶振頻率范圍通常是晶振頻率范圍通常是1.21.212MHz12MHz。晶體頻率越高,。晶體頻率越高,單片機(jī)單片機(jī)速度就越快速度就越快。速度快對(duì)
52、。速度快對(duì)存儲(chǔ)器的速度要求就高存儲(chǔ)器的速度要求就高,印制電路,印制電路板的工藝要求也高,即線(xiàn)間的寄生電容要小。板的工藝要求也高,即線(xiàn)間的寄生電容要小。 晶體和電容應(yīng)盡可能與單片機(jī)靠近,以減少寄生電容,保晶體和電容應(yīng)盡可能與單片機(jī)靠近,以減少寄生電容,保證振蕩器穩(wěn)定、可靠地工作。證振蕩器穩(wěn)定、可靠地工作。 為提高溫度穩(wěn)定性,采用為提高溫度穩(wěn)定性,采用溫度穩(wěn)定性能好溫度穩(wěn)定性能好的電容。的電容。 常選常選6MHz6MHz或或12MHz12MHz的的石英晶體石英晶體。58592 2外部時(shí)鐘方式外部時(shí)鐘方式 用現(xiàn)成的外部振蕩器產(chǎn)生脈沖信號(hào),用現(xiàn)成的外部振蕩器產(chǎn)生脈沖信號(hào),常用于常用于多片多片AT89S
53、51AT89S51同時(shí)同時(shí)工作,以便于多片工作,以便于多片AT89S51AT89S51單片機(jī)之間的同步,一般為低于單片機(jī)之間的同步,一般為低于12MHz12MHz的方波。的方波。 外部時(shí)鐘源外部時(shí)鐘源直接接到直接接到XTAL1XTAL1端端,XTAL2XTAL2端懸空。端懸空。AT89S51AT89S51的外部時(shí)鐘方式電路的外部時(shí)鐘方式電路3 3時(shí)鐘信號(hào)的輸出時(shí)鐘信號(hào)的輸出 當(dāng)使用片內(nèi)振蕩器,當(dāng)使用片內(nèi)振蕩器,XTAL1XTAL1、XTAL2XTAL2引腳還能為應(yīng)用系統(tǒng)中引腳還能為應(yīng)用系統(tǒng)中的其他芯片提供時(shí)鐘,但需增加驅(qū)動(dòng)能力。的其他芯片提供時(shí)鐘,但需增加驅(qū)動(dòng)能力。時(shí)鐘信號(hào)的兩種引出方式時(shí)鐘信
54、號(hào)的兩種引出方式2.6.2 2.6.2 機(jī)器周期、指令周期與指令時(shí)序機(jī)器周期、指令周期與指令時(shí)序各種指令時(shí)序與時(shí)鐘周期相關(guān)。各種指令時(shí)序與時(shí)鐘周期相關(guān)。1 1時(shí)鐘周期時(shí)鐘周期 時(shí)鐘控制信號(hào)的時(shí)鐘控制信號(hào)的基本時(shí)間單位基本時(shí)間單位。若晶振頻率為。若晶振頻率為f foscosc,則時(shí)鐘,則時(shí)鐘周期周期T Toscosc=1/=1/f foscosc。如。如f foscosc=6MHz=6MHz,T Toscosc=166.7ns=166.7ns。2 2機(jī)器周期機(jī)器周期 CPU CPU完成一個(gè)基本操作所需時(shí)間為完成一個(gè)基本操作所需時(shí)間為機(jī)器周期機(jī)器周期。執(zhí)行一條指令執(zhí)行一條指令分為幾個(gè)機(jī)器周期分為幾
55、個(gè)機(jī)器周期。每個(gè)機(jī)器周期完成一個(gè)。每個(gè)機(jī)器周期完成一個(gè)基本操作基本操作,如,如取指令、讀或?qū)憯?shù)據(jù)等。每取指令、讀或?qū)憯?shù)據(jù)等。每1212個(gè)時(shí)鐘周期個(gè)時(shí)鐘周期為為1 1個(gè)機(jī)器周期。個(gè)機(jī)器周期。61 1 1個(gè)機(jī)器周期個(gè)機(jī)器周期包括包括1212個(gè)時(shí)鐘周期個(gè)時(shí)鐘周期,分,分6 6個(gè)狀態(tài)個(gè)狀態(tài):S1S1S6S6。 每個(gè)每個(gè)狀態(tài)又分兩拍狀態(tài)又分兩拍:P1P1和和P2P2。 因此,一個(gè)機(jī)器周期中的因此,一個(gè)機(jī)器周期中的1212個(gè)時(shí)鐘周期個(gè)時(shí)鐘周期表示為表示為S1P1S1P1、S1P2S1P2、S2P1S2P1、S2P2S2P2、S6P2S6P2。62AT89S51AT89S51的機(jī)器周期的機(jī)器周期S1S2S3
56、S4S5S6S1S2P1 P2 P1 P2 P1 P2P1 P2 P1 P2 P1 P2 P1 P2 P1 P2fosc一個(gè)狀態(tài)周期一個(gè)狀態(tài)周期一個(gè)機(jī)器周期一個(gè)機(jī)器周期T=12T=12* *(1/fosc)(1/fosc)X23 3指令周期指令周期執(zhí)行一條指令執(zhí)行一條指令所需的時(shí)間所需的時(shí)間。簡(jiǎn)單的簡(jiǎn)單的單字節(jié)指令單字節(jié)指令,取出指令立即執(zhí)行,取出指令立即執(zhí)行,只需只需一個(gè)機(jī)器周期一個(gè)機(jī)器周期的時(shí)間的時(shí)間。而有些而有些復(fù)雜的指令復(fù)雜的指令,如,如轉(zhuǎn)移、乘、除指令轉(zhuǎn)移、乘、除指令則需則需兩個(gè)兩個(gè)或或多個(gè)多個(gè)機(jī)器周期。機(jī)器周期。從指令執(zhí)行時(shí)間看從指令執(zhí)行時(shí)間看: : 單字節(jié)和雙字節(jié)單字節(jié)和雙字節(jié)指
57、令指令一般為單機(jī)器周期一般為單機(jī)器周期和和雙機(jī)器周期雙機(jī)器周期; ; 三字節(jié)指令三字節(jié)指令都是都是雙機(jī)器周期雙機(jī)器周期; ; 乘、除指令乘、除指令占用占用4 4個(gè)機(jī)器周期個(gè)機(jī)器周期。63 單片機(jī)的單片機(jī)的初始化操作初始化操作,給復(fù)位腳,給復(fù)位腳RSTRST加上加上大于大于2 2個(gè)機(jī)器周期個(gè)機(jī)器周期(即(即2424個(gè)時(shí)鐘振蕩周期)的個(gè)時(shí)鐘振蕩周期)的高電平高電平就使就使AT89S51AT89S51復(fù)位。復(fù)位。2.7.1 2.7.1 復(fù)位操作復(fù)位操作 復(fù)位時(shí),復(fù)位時(shí),PCPC初始化為初始化為0000H0000H,程序從,程序從0000H0000H單元開(kāi)始執(zhí)行。單元開(kāi)始執(zhí)行。 除系統(tǒng)的正常初始化外,
58、當(dāng)除系統(tǒng)的正常初始化外,當(dāng)程序出錯(cuò)程序出錯(cuò)(如程序跑飛)或(如程序跑飛)或操操作錯(cuò)誤作錯(cuò)誤使系統(tǒng)處于使系統(tǒng)處于死鎖死鎖狀態(tài)時(shí),狀態(tài)時(shí),需按復(fù)位鍵需按復(fù)位鍵使使RSTRST腳為高腳為高電平。電平。2.7 2.7 復(fù)位操作和復(fù)位電路復(fù)位操作和復(fù)位電路2.7.2 2.7.2 復(fù)位電路設(shè)計(jì)復(fù)位電路設(shè)計(jì) 復(fù)位引腳復(fù)位引腳RSTRST通過(guò)一個(gè)施密特觸發(fā)器與復(fù)位電路相連,施通過(guò)一個(gè)施密特觸發(fā)器與復(fù)位電路相連,施密特觸發(fā)器用來(lái)抑制噪聲密特觸發(fā)器用來(lái)抑制噪聲 在每個(gè)機(jī)器周期的在每個(gè)機(jī)器周期的S5P2S5P2,施密特觸發(fā)器的輸出電平由復(fù)位,施密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次。電路采樣一次。 復(fù)位電路采用復(fù)位
59、電路采用上電自動(dòng)復(fù)位上電自動(dòng)復(fù)位和和按鍵復(fù)位按鍵復(fù)位兩種方式兩種方式。66圖圖2-172-17 片內(nèi)復(fù)位電路結(jié)構(gòu)片內(nèi)復(fù)位電路結(jié)構(gòu)圖圖2-182-18 上電復(fù)位電路上電復(fù)位電路RSTRST引腳上的引腳上的高電平持續(xù)時(shí)間高電平持續(xù)時(shí)間取決于電容取決于電容C C 充電時(shí)間充電時(shí)間,為保,為保證系統(tǒng)可靠復(fù)位,證系統(tǒng)可靠復(fù)位,RSTRST引腳上高電平必須維持足夠長(zhǎng)的時(shí)間。引腳上高電平必須維持足夠長(zhǎng)的時(shí)間。對(duì)于對(duì)于CMOSCMOS型單片機(jī),型單片機(jī),由于在由于在RSTRST引腳內(nèi)部引腳內(nèi)部有一個(gè)有一個(gè)下拉電阻下拉電阻,可將可將電阻電阻R R去掉去掉,而將,而將電容電容C C選為選為1010 F F。68圖圖2-192-19 按鍵電平復(fù)位電路按鍵電平復(fù)位電路 圖圖2-202-20 按鍵脈沖復(fù)位電路按鍵脈沖復(fù)位電路按鍵手動(dòng)復(fù)位有按鍵手動(dòng)復(fù)位有電平電平和和脈沖脈沖兩種方式兩種方式。 電平復(fù)位電平復(fù)位是通過(guò)是通過(guò)RSTRST端經(jīng)電阻與電源端經(jīng)電阻與電源VccVcc接通實(shí)現(xiàn)接通實(shí)現(xiàn) 脈沖復(fù)位脈沖復(fù)位是利用是利用RC RC 微分電路產(chǎn)生的微分電路產(chǎn)生的正脈沖正脈沖來(lái)實(shí)現(xiàn)來(lái)實(shí)現(xiàn)阻容參數(shù)適于阻容參數(shù)適于6MHz時(shí)鐘時(shí)鐘 空閑模式空閑模式(idle mode)(idle mode) 掉電保持模式掉電保持模式(power down mode)(power down mode),VccVcc可
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年海洋非物質(zhì)文化遺產(chǎn)保護(hù)合同
- 2026年網(wǎng)絡(luò)安全文化建設(shè)服務(wù)合同
- 2026年醫(yī)院古金星模型館共建合同
- 2025年瀏陽(yáng)市金陽(yáng)醫(yī)院第三批公開(kāi)招聘編外合同制人員備考題庫(kù)及一套完整答案詳解
- 2025年上海大學(xué)上海市科創(chuàng)教育研究院招聘行政專(zhuān)員備考題庫(kù)完整參考答案詳解
- 吉林省水利水電勘測(cè)設(shè)計(jì)研究院2026年校園招聘29人備考題庫(kù)及一套完整答案詳解
- 銀聯(lián)企業(yè)服務(wù)(上海)有限公司2026年度招聘?jìng)淇碱}庫(kù)及完整答案詳解一套
- 國(guó)家知識(shí)產(chǎn)權(quán)局專(zhuān)利局專(zhuān)利審查協(xié)作廣東中心2026年度專(zhuān)利審查員公開(kāi)招聘?jìng)淇碱}庫(kù)完整參考答案詳解
- 2025年關(guān)于為山東鐵路檢察機(jī)關(guān)公開(kāi)招聘聘用制書(shū)記員的備考題庫(kù)附答案詳解
- 2024年宣威市教育體育局所屬學(xué)校引進(jìn)教育人才專(zhuān)項(xiàng)考試真題
- 專(zhuān)家講座的協(xié)議書(shū)
- 橋機(jī)安裝拆卸監(jiān)理實(shí)施細(xì)則
- 志愿者服務(wù)品牌建設(shè)方案
- 清潔清掃項(xiàng)目投標(biāo)書(shū)
- 2025年個(gè)人信息保護(hù)專(zhuān)項(xiàng)工作總結(jié)與整改報(bào)告
- 傳遞正能量做好員工
- 2025北京市科學(xué)技術(shù)研究院及所屬事業(yè)單位第三批招聘37人備考題庫(kù)附答案
- 網(wǎng)優(yōu)項(xiàng)目年終總結(jié)
- 2025江蘇鎮(zhèn)江市京口產(chǎn)業(yè)投資發(fā)展集團(tuán)有限公司招聘2人備考題庫(kù)含答案詳解
- 2025年秋季學(xué)期國(guó)家開(kāi)放大學(xué)《人文英語(yǔ)3》形考任務(wù)綜合測(cè)試完整答案(不含聽(tīng)力部分)
- 2025北京國(guó)文人力資源有限責(zé)任公司駐外文化和旅游機(jī)構(gòu)職員招聘5人(第二期)筆試歷年參考題庫(kù)附帶答案詳解
評(píng)論
0/150
提交評(píng)論