版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
12.1MCS-51系列單片機(jī)簡(jiǎn)介2.280C51的內(nèi)部總體結(jié)構(gòu)2.389C51的引腳功能2.480C51單片機(jī)存儲(chǔ)器結(jié)構(gòu)2.5單片機(jī)的時(shí)鐘和復(fù)位電路2.5.1時(shí)鐘電路2.5.2時(shí)序2.5.3復(fù)位電路2.6單片機(jī)的低功耗模式2.6.1待機(jī)方式設(shè)計(jì)2.6.2掉電方式設(shè)計(jì)22.1MCS-51系列單片機(jī)簡(jiǎn)介MCS-51系列單片機(jī)是美國(guó)Intel公司于1980年推出8位單片機(jī),由51和52兩個(gè)子系列組成。51子系列主要包含8031、8051、8751三個(gè)品種,有相同的指令系統(tǒng)與芯片引腳,只是片內(nèi)ROM不同,其中8031芯片不帶片內(nèi)ROM,8051芯片帶4KBROM,8751芯片帶4KBEPROM。52子系列主要包括8032、8052、8752三種機(jī)型,與51子系列相比,片內(nèi)RAM增至256B;8032不帶ROM,8052帶8KBROM,8752帶8KBEPROM;片內(nèi)定時(shí)器/計(jì)數(shù)器增加至3個(gè)16位;中斷源增至6個(gè)。32.280C51的內(nèi)部總體結(jié)構(gòu)80C51片內(nèi)主要硬件結(jié)構(gòu)如圖2-1所示,由片內(nèi)單一總線連接各功能部件,其CPU通過(guò)特殊功能寄存器對(duì)各功能部件進(jìn)行集中控制。80C51主要內(nèi)包含下列部件。(1)8位CPU。(2)片內(nèi)振蕩器(頻率1.2~12MHZ)。(3)片內(nèi)RAM(128B)。(4)片內(nèi)ROM(4KB)。(5)程序存儲(chǔ)器(64KB)。(6)片外RAM(64KB)。圖2-180C51片內(nèi)硬件結(jié)構(gòu)5(7)位尋址空間(128bit)。(8)特殊功能寄存器(51子系列21個(gè))。(9)4個(gè)8位可編程并口(P0、P1、P2、P3)。(10)2個(gè)可編程的16位定時(shí)器/計(jì)數(shù)器(T0、T1)。(11)5個(gè)中斷源(2個(gè)優(yōu)先級(jí)別)。(12)1個(gè)全雙工的串行I/O接口。(13)111條指令(含乘法和除法指令)。(14)片內(nèi)單總線結(jié)構(gòu)。(15)較強(qiáng)位處理能力。(16)+5V電源供電。介紹圖2-1中片內(nèi)各功能部件。(1)8位CPU80C51具有8位數(shù)據(jù)寬度的CPU,CPU由運(yùn)算器和控制器兩大部分構(gòu)成,其中,運(yùn)算器以算術(shù)邏輯運(yùn)算單元ALU為核心,包含累加器ACC(簡(jiǎn)稱(chēng)A)、B寄存器、暫存器、程序狀態(tài)字寄存器PSW、以進(jìn)位標(biāo)志位C為累加器的布爾處理器等,實(shí)現(xiàn)算術(shù)運(yùn)算、邏輯運(yùn)算、位運(yùn)算(置1、清0、取反、轉(zhuǎn)移、邏輯與、或以及位傳送等)和數(shù)據(jù)傳輸?shù)???刂破魍ㄟ^(guò)控制指令的讀入、譯碼和執(zhí)行,從而對(duì)各功能部件進(jìn)行定時(shí)和邏輯控制。6(2)片內(nèi)振蕩器及時(shí)鐘電路80C51(增強(qiáng)型)內(nèi)置時(shí)鐘電路可外接最高頻率達(dá)33MHz晶振,產(chǎn)生系統(tǒng)工作脈沖時(shí)序。(3)4KBROM程序存儲(chǔ)器80C51片內(nèi)有4KBFlashROM,用于存放用戶(hù)程序、原始數(shù)據(jù)或表格。(4)128B片內(nèi)RAM和SFR80C51片內(nèi)有128BRAM和128BSFR,它們是統(tǒng)一編址的,用戶(hù)能使用的RAM只有128個(gè),用來(lái)存放讀寫(xiě)數(shù)據(jù)、中間結(jié)果等用戶(hù)數(shù)據(jù),SFR則用來(lái)存放控制指令數(shù)據(jù)。7(5)2個(gè)16位定時(shí)器/計(jì)數(shù)器
80C51有兩個(gè)16位的可編程增計(jì)數(shù)定時(shí)器/計(jì)數(shù)器,實(shí)現(xiàn)對(duì)內(nèi)部定時(shí)或?qū)ν獠棵}沖計(jì)數(shù)功能,可控制程序中斷轉(zhuǎn)向。(6)64KB外部數(shù)據(jù)存儲(chǔ)器和64KB外部程序存儲(chǔ)器
80C51是采用哈佛結(jié)構(gòu)的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,具有最大尋址64KB數(shù)據(jù)和64KB程序存儲(chǔ)器空間的控制電路。(7)32個(gè)I/O線(4個(gè)6位并行I/O端口)
80C51共有4組8位I/O口(P0、P1、P2或P3),提供對(duì)外的三總線傳輸。8(8)一個(gè)可編程全雙工串行口
80C51內(nèi)置一個(gè)全雙工串行通信口,既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。(9)5個(gè)中斷源、兩個(gè)優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)
80C51有2個(gè)外部中斷源、2個(gè)定時(shí)器/計(jì)數(shù)器中斷源和一個(gè)串行中斷源,并具有2級(jí)的優(yōu)先級(jí)別選擇。
此外,80C51還具有低功耗模式,由兩種軟件可選擇的低功耗節(jié)電工作模式。在空閑模式下,凍結(jié)CPU而RAM定時(shí)器、串行口和中斷系統(tǒng)維持其功能。掉電模式下,保存RAM數(shù)據(jù),時(shí)鐘振蕩停止,同時(shí)停止芯片內(nèi)其他功能。92.389C51的引腳功能
先了解引腳,牢記各引腳功能。AT89S51與各種8051芯片的引腳兼容。目前多采用40只引腳雙列直插,如圖2-2。此外,還有44引腳的PLCC和TQFP封裝方式的芯片。
引腳按其功能可分為如下3類(lèi):(1)電源及時(shí)鐘引腳—VCC、VSS;XTAL1、XTAL2。(2)控制引腳—PSEN*、ALE/PROG*、EA*/VPP、RST(RESET)(3)I/O口引腳——P0、P1、P2、P3,為4個(gè)8位I/O口102.389C51的引腳功能
單片機(jī)應(yīng)用是軟硬件結(jié)合的設(shè)計(jì),首先應(yīng)當(dāng)熟悉各引腳的功能。80C51單片機(jī)主要有兩種封裝形式:40引腳的雙列DIP(DualIn-linePackage)封裝和44引腳的方PLCC(PlasticLeadedChipCarrier)封裝。這兩種封裝的引腳配置如圖2-2所示。其中,44腳PLCC封裝中比DIP封裝多出的4只引腳沒(méi)有使用。
11
12(a)DIP封裝
(b)PLCC封裝圖2-280C51單片機(jī)引腳配置
引腳按其功能可分為如下3類(lèi):(1)電源及時(shí)鐘引腳—VCC、VSS;XTAL1、XTAL2。(2)控制引腳—PSEN*、ALE/PROG*、EA*/VPP、RST(RESET)(3)I/O口引腳——P0、P1、P2、P3,為4個(gè)8位I/O口132.2.1電源及時(shí)鐘引腳1.電源引腳(1)VCC(40腳):+5V電源。(2)VSS(20腳):數(shù)字地。14圖2-2AT89S51雙列直插封裝方式的引腳2.時(shí)鐘引腳
(1)XTAL1(19腳):片內(nèi)振蕩器反相放大器和時(shí)鐘發(fā)生器電路輸入端。用片內(nèi)振蕩器時(shí),該腳接外部石英晶體和微調(diào)電容。外接時(shí)鐘源時(shí),該腳接來(lái)自外部時(shí)鐘振蕩器的信號(hào)。
(2)XTAL2(18腳):片內(nèi)振蕩器反相放大器的輸出端。當(dāng)使用片內(nèi)振蕩器,該腳接外部石英晶體和微調(diào)電容。當(dāng)使用外部時(shí)鐘源時(shí),本腳懸空。2.2.2控制引腳(1)RST(RESET,9腳)
復(fù)位信號(hào)輸入,在引腳加上持續(xù)時(shí)間大于2個(gè)機(jī)器周期的高電平,可使單片機(jī)復(fù)位。正常工作,此腳電平應(yīng)≤0.5V。15
當(dāng)看門(mén)狗溢出時(shí),該腳將輸出96個(gè)時(shí)鐘振蕩周期的高電平。(2)EA*/VPP(EnableAddress/VoltagePulseofPrograming,31腳)EA*:第一功能:外部程序存儲(chǔ)器訪問(wèn)允許控制端。EA*=1,在PC值≤0FFFH(不超出片內(nèi)4KBFlash存儲(chǔ)器地址范圍)時(shí),單片機(jī)讀片內(nèi)Flash存儲(chǔ)器(4KB)中的程序,但PC值>0FFFH(超出片內(nèi)4KBFlash地址范圍)時(shí),將自動(dòng)轉(zhuǎn)向讀取片外60KB(1000H-FFFFH)程序存儲(chǔ)器空間中的程序。EA*=0,只讀取片外程序存儲(chǔ)器中內(nèi)容,讀取地址范圍為0000H~FFFFH,片內(nèi)的4KBFlash程序存儲(chǔ)器不起作用。VPP:引腳第二功能,對(duì)片內(nèi)Flash編程,接編程電壓。(3)ALE/PROG*(AddressLatchEnable/PROGramming,30腳)ALE:為CPU訪問(wèn)外部程序存儲(chǔ)器或外部數(shù)據(jù)存儲(chǔ)器提供地址鎖存控制信號(hào),將低8位地址鎖存在片外的地址鎖存器中。此外,單片機(jī)正常運(yùn)行時(shí),ALE端一直有正脈沖信號(hào)輸出,此頻率為fosc的1/6。該信號(hào)可作外部定時(shí)或觸發(fā)信號(hào)使用。
注意:每當(dāng)AT89S51訪問(wèn)外部RAM或I/O時(shí),要丟失一個(gè)ALE脈沖,所以ALE引腳的輸出信號(hào)頻率并不是準(zhǔn)確的1/6
fosc。17
如不需要ALE端輸出脈沖信號(hào),可將特殊功能寄存器AUXR(地址8EH,本章后面介紹)的第0位(ALE禁止位)置1,來(lái)禁止ALE操作,但在執(zhí)行訪問(wèn)外部程序存儲(chǔ)器或外部數(shù)據(jù)存儲(chǔ)器操作時(shí),ALE仍然有效,即ALE禁止位不影響對(duì)單片機(jī)對(duì)外部存儲(chǔ)器的訪問(wèn)。PROG*:引腳第二功能,對(duì)片內(nèi)Flash編程,加編程脈沖輸入。18(4)PSEN*
(ProgramStrobeENable,29腳)
片外程序存儲(chǔ)器讀選通信號(hào),低有效。2.2.3并行I/O口引腳(1)P0口:P0.7~P0.0腳,8位,漏極開(kāi)路的雙向I/O口
當(dāng)外擴(kuò)存儲(chǔ)器及I/O接口芯片時(shí),P0口作為低8位地址總線及數(shù)據(jù)總線的分時(shí)復(fù)用端口。P0口也可作通用的I/O口用,需加上拉電阻,這時(shí)為準(zhǔn)雙向口。如作輸入,應(yīng)先向端口寫(xiě)1??沈?qū)動(dòng)8個(gè)LS型TTL負(fù)載。(2)P1口:P1.7~P1.0腳,8位,準(zhǔn)雙向I/O口,內(nèi)有上拉電阻。
準(zhǔn)雙向I/O口,作通用I/O輸入時(shí),應(yīng)先向端口鎖存器寫(xiě)1,19P1口可驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。P1.5/MOSI、P1.6/MISO和P1.7/SCK也可用于對(duì)片內(nèi)Flash存儲(chǔ)器串行編程和校驗(yàn),分別是串行數(shù)據(jù)輸入、輸出和移位脈沖引腳。(3)P2口:P2.7~P2.0腳,8位,準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻。
當(dāng)AT89S51擴(kuò)展外部存儲(chǔ)器及I/O口時(shí),P2口作為高8位地址總線輸出高8位地址。P2口也可作普通I/O使用。當(dāng)作通用I/O輸入時(shí),應(yīng)先向端口輸出鎖存器寫(xiě)1。可驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。(4)P3口:P3.7~P3.0腳,8位,準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻。
可作為通用的I/O口使用。作為通用I/O輸入,應(yīng)先向端口輸出鎖存器寫(xiě)入1。可驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。P3口還可提供第二功能。第二功能定義如表2-1,應(yīng)熟記。
綜上所述,P0口作為總線口時(shí),為雙向口,作通用I/O用時(shí),為準(zhǔn)雙向口,需加上拉電阻。P1、P2、P3口均為準(zhǔn)雙向口。2122注意:準(zhǔn)雙向口與雙向口的差別。準(zhǔn)雙向口僅有兩個(gè)狀態(tài)。而P0口作為總線使用,口線內(nèi)無(wú)上拉電阻,處于高阻“懸浮”態(tài)。故為雙向三態(tài)I/O口。為什么P0口要有高阻“懸浮”態(tài)?因?yàn)镻0口作為數(shù)據(jù)總線用時(shí),多個(gè)數(shù)據(jù)源都掛在數(shù)據(jù)總線上,當(dāng)P0口不需要讀寫(xiě)其他數(shù)據(jù)源時(shí),需要與數(shù)據(jù)總線高阻“懸浮”隔離。準(zhǔn)雙向I/O口則無(wú)高阻“懸浮”態(tài)。另外,準(zhǔn)雙向口作通用I/O輸入使用時(shí),需先向該口先寫(xiě)入“1”。準(zhǔn)雙向口與雙向口的差別,學(xué)習(xí)2.5節(jié)的P0~P3口內(nèi)部結(jié)構(gòu)后,會(huì)有更深入了解。
232.480C51單片機(jī)存儲(chǔ)器結(jié)構(gòu)80C51單片機(jī)是哈佛結(jié)構(gòu)的單片機(jī),程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器有獨(dú)立的尋址空間、控制信號(hào)和功能。從邏輯上看,80C51劃分為3個(gè)存儲(chǔ)器地址空間:64KB程序存儲(chǔ)器地址空間(片內(nèi)、片外統(tǒng)一編址),256B的內(nèi)部數(shù)據(jù)存儲(chǔ)器地址空間和64KB的外部數(shù)據(jù)存儲(chǔ)器地址空間。從物理地址空間看,80C51有5個(gè)存儲(chǔ)器地址空間:4KB片內(nèi)程序存儲(chǔ)器、60KB片外程序存儲(chǔ)器(不使用片內(nèi)ROM時(shí)可達(dá)64KB)、64kB片外數(shù)據(jù)存儲(chǔ)器和I/O接口、128B片內(nèi)數(shù)據(jù)存儲(chǔ)器、128B特殊功能寄存器。80C51單片機(jī)的存儲(chǔ)器配置如圖2-3所示。下面分別敘述各存儲(chǔ)器的配置特點(diǎn)。2425圖2-380C51存儲(chǔ)器的配置261.程序存儲(chǔ)器
程序存儲(chǔ)器用來(lái)存放編程好的固定程序和表格常數(shù),其以16位程序計(jì)數(shù)器PC作下一條指令的地址指針,通過(guò)地址總線,可尋址地址空間64KB。在程序存儲(chǔ)器空間應(yīng)用中有以下說(shuō)明。(1)80C51單片機(jī)中,片內(nèi)集成有4KB的Flash存儲(chǔ)器(AT89S52則為8KB;AT89C55片內(nèi)20KB),片外可外擴(kuò)至64KB。64KB程序存儲(chǔ)器的地址空間是統(tǒng)一的。是否使用片內(nèi)4KBFlashROM,取決于引腳的連接方式。27①在正常運(yùn)行時(shí),應(yīng)把引腳接+5V電源,使程序從片內(nèi)ROM開(kāi)始執(zhí)行。當(dāng)PC值超出4K時(shí),會(huì)自動(dòng)轉(zhuǎn)向外部程序存儲(chǔ)器空間。因此,外部程序存儲(chǔ)器地址空間為1000H~FFFFH。②若直接將接地(如調(diào)試程序時(shí)),單片機(jī)系統(tǒng)根據(jù)PC指針從0000H~FFFFH空間變化,只從外部程序存儲(chǔ)器中取指、譯碼并執(zhí)行,此時(shí)80C51單片機(jī)將忽略片內(nèi)0000H~FFFH的4KBFlash存儲(chǔ)器中的程序代碼。28(2)80C51單片機(jī)程序存儲(chǔ)器的低地址單元被固定用于5個(gè)中斷源(80C52為6個(gè))的中斷服務(wù)程序的入口地址(中斷向量),5個(gè)中斷源對(duì)應(yīng)的中斷向量如表2-2所示(表中最后一列是80C52定時(shí)器T2的中斷向量)。由于每個(gè)中斷服務(wù)程序只占8個(gè)字節(jié)單元,所以一般中斷向量處存放一條絕對(duì)跳轉(zhuǎn)指令,實(shí)際中斷服務(wù)程序在轉(zhuǎn)移地址處存放。29(3)從物理角度看,PC在80C51的內(nèi)部是獨(dú)立的。PC始終存放CPU下一條要執(zhí)行的指令地址(程序存儲(chǔ)器地址),由于它是一個(gè)16位的寄存器,因此80C51單片機(jī)的尋址范圍為0~65535(64KB)。執(zhí)行指令時(shí),PC內(nèi)容的低8位經(jīng)P0口輸出,高8位經(jīng)P2口輸出。復(fù)位后程序計(jì)數(shù)器PC內(nèi)容為0000H,因此系統(tǒng)從0000H單元開(kāi)始取指執(zhí)行,這是系統(tǒng)執(zhí)行程序的起始地址,通常在該單元中存放一條跳轉(zhuǎn)指令,使程序跳轉(zhuǎn)到用戶(hù)程序存放地址。302.?dāng)?shù)據(jù)存儲(chǔ)器80C51單片機(jī)的數(shù)據(jù)存儲(chǔ)器分為片內(nèi)和片外兩個(gè)地址空間。片內(nèi)為128B(52子系列為256B),片外最多可擴(kuò)64KB。(1)片外數(shù)據(jù)存儲(chǔ)器當(dāng)片內(nèi)128BRAM不夠用時(shí),最多可擴(kuò)展64KB外部數(shù)據(jù)存儲(chǔ)器,地址范圍為0000H—0FFFFH,使用時(shí)注意,單片機(jī)I/O接口與片外數(shù)據(jù)存儲(chǔ)器采用統(tǒng)一編址方式,即片外數(shù)據(jù)存儲(chǔ)器連同I/O口一起總的擴(kuò)展容量是64KB,且采用相同控制線、指令和尋址空間。(2)片內(nèi)數(shù)據(jù)存儲(chǔ)器圖2-4(a)所示是80C51單片機(jī)內(nèi)部數(shù)據(jù)存儲(chǔ)器的配置。內(nèi)部數(shù)據(jù)存儲(chǔ)器是最靈活的地址空間,它分成物理上獨(dú)立的且性質(zhì)不同的3個(gè)區(qū)。31①00H~7FH(0~127)單元組成低128B地址空間的RAM區(qū)片內(nèi)數(shù)據(jù)存儲(chǔ)器按功能分成3個(gè)部分:工作寄存器區(qū)、位尋址區(qū)、用戶(hù)RAM區(qū),還包含堆棧區(qū)。工作寄存器區(qū)包括0區(qū)~3區(qū)4個(gè)通用工作寄存器區(qū),占地址為00H~1FH的32個(gè)單元,每個(gè)區(qū)有8個(gè)工作寄存器,編號(hào)分別為R0~R7,各區(qū)中R0~R7地址如圖2-4(b)所示。4個(gè)工作寄存器區(qū)的切換可通過(guò)程序中改變程序狀態(tài)字特殊功能寄存器PSW的RS1和RS0的四種組合狀態(tài)實(shí)現(xiàn)。如表2-3所示。32②80H~FFH的128B地址空間的SFR映射在片內(nèi)RAM區(qū)SFR實(shí)質(zhì)是各外圍部件的控制寄存器及狀態(tài)寄存器。由于SFR內(nèi)容較重要,下面將專(zhuān)設(shè)一小節(jié)詳細(xì)介紹。③8052/80C52單片機(jī)80H~FFH單元組成的高128B的數(shù)據(jù)RAM區(qū)8052/80C52單片機(jī)的片內(nèi)高128B的RAM與SFR是不同的物理空間,但是具有相同的字節(jié)地址(統(tǒng)一編址),C51訪問(wèn)這2個(gè)不同區(qū)域時(shí),通過(guò)不同的關(guān)鍵字區(qū)分。3334353.SFR
80C51單片機(jī)內(nèi)的累加器ACC、I/O口、定時(shí)器、串行口、中斷等各種控制寄存器和狀態(tài)寄存器都是以SFR的形式出現(xiàn)的,它們映射在內(nèi)部RAM80H~FFH地址空間,表2-5列出了SFR的助記標(biāo)識(shí)符、名稱(chēng)及地址。其中字節(jié)地址可以被8整除的SFR均可位尋址。3637(1)SFR分類(lèi)SFR分為以下5類(lèi)。①CPU專(zhuān)用寄存器:累加器A(E0H),寄存器B(F0H),程序狀態(tài)寄存器PSW(D0H),堆棧指針SP(81H),數(shù)據(jù)指針DPTR(82H、83H)。②并行接口:P0~P3(80H、90H、A0H、B0H)。③串行接口:串口控制寄存器SCON(98H),串口數(shù)據(jù)緩沖器SBUF(99H),電源控制寄存器PCON(87H)。④定時(shí)/計(jì)數(shù)器:方式寄存器TMOD(89H),控制寄存器TCON(88H),初值寄存器TH0(8CH)和TL0(8AH)、TH1(8DH)TL1(8BH)。定時(shí)/計(jì)數(shù)器T2相關(guān)寄存器(僅52子系列有):定時(shí)/計(jì)數(shù)器2控制寄存器T2CON(C8H),定時(shí)/計(jì)數(shù)器2自動(dòng)重裝寄存器RCAP2H(CBH)和RCAP2L(CAH),定時(shí)/計(jì)數(shù)器2初值寄存器TH2(CDH)和TL2(CCH)。⑤中斷系統(tǒng):中斷允許寄存器IE(A8H),中斷優(yōu)先級(jí)寄存器IP(B8H)。38(2)SFR介紹下面簡(jiǎn)單介紹部分SFR。1)累加器ACC累加器是最常用的SFR。大部分單操作數(shù)指令和多數(shù)雙操作數(shù)指令的一個(gè)操作數(shù)取自累加器。加、減、乘、除算術(shù)運(yùn)算指令的運(yùn)算結(jié)果都存放在累加器A中。2)B寄存器80C51單片機(jī)在乘法和除法指令中用到B寄存器。乘法指令的兩個(gè)操作數(shù)分別取自A和B,其結(jié)果高8位和低8位分別存放在B、A寄存器中。除法指令中,被除數(shù)取自A,除數(shù)取自B,商數(shù)存放于A,余數(shù)存放于B。在其他指令中,B寄存器可作為RAM中的一個(gè)單元來(lái)使用。393)PSWPSW包含了程序運(yùn)行狀態(tài)的各種信息,其各位的含義如表2-6所示。其中PSW.1未用,其他各位說(shuō)明如下。①CY(PSW.7)進(jìn)位標(biāo)志在布爾處理機(jī)中,C被認(rèn)為是位累加器。在執(zhí)行某些算術(shù)和邏輯指令時(shí),可以被硬件或軟件置1或清0。如算術(shù)運(yùn)算中,若最高位有進(jìn)位或借位時(shí)CY=1,否則CY=0;②AC(PSW.6)輔助進(jìn)位標(biāo)志當(dāng)進(jìn)行加法或減法操作而產(chǎn)生由D3位向D4位(低4位數(shù)向高4位數(shù))進(jìn)位或借位時(shí),AC將被硬件置1,否則被清0。AC被用于十進(jìn)制調(diào)整,詳見(jiàn)DAA指令。③F0(PSW.5)標(biāo)志0用戶(hù)可定義的一個(gè)狀態(tài)標(biāo)記,可以用軟件來(lái)設(shè)置該位,例如用軟件測(cè)試F0以控制程序的流向。40④RS1、RS0(PSW.4,PSW.3)寄存器區(qū)選擇控制位1和0四個(gè)通用寄存器組的選擇位,該兩位的四種組合狀態(tài)用來(lái)選擇工作寄存器區(qū)的0~3區(qū)。可以用軟件來(lái)置1或清0。⑤OV(PSW.2)溢出標(biāo)志當(dāng)執(zhí)行算術(shù)指令時(shí),由硬件置1或清0,以指示溢出狀態(tài)。當(dāng)帶符號(hào)數(shù)運(yùn)算結(jié)果超出-128~+127范圍時(shí)OV=1,否則OV=0。當(dāng)無(wú)符號(hào)數(shù)乘法結(jié)果超過(guò)255時(shí),或當(dāng)無(wú)符號(hào)數(shù)除法的除數(shù)為0時(shí)OV=1。當(dāng)執(zhí)行加法時(shí),若用C6‘表示D6位向D7位有進(jìn)位,用C7’表示D7向CY有進(jìn)位,則有OV=C6‘⊕C7’。即當(dāng)D6向D7有進(jìn)位而D7不向CY進(jìn)位時(shí),或D6不向D7進(jìn)位而D7向CY有進(jìn)位時(shí),溢出標(biāo)志OV置1。否則清0。同樣,在執(zhí)行減法指令時(shí),若C6'和C7'表示D6有借位和D7有借位,溢出計(jì)算公式相同。41⑥P(PSW.0)奇偶標(biāo)志奇偶校驗(yàn)標(biāo)志。每條指令執(zhí)行完,若A中“1”的個(gè)數(shù)為奇數(shù)時(shí),P=1,否則P=0,即偶校驗(yàn)方式。此標(biāo)志位對(duì)串行通信中的數(shù)據(jù)傳輸有重要的意義。在串行通信中常用奇偶校驗(yàn)的辦法來(lái)檢驗(yàn)數(shù)據(jù)傳輸?shù)目煽啃?。在發(fā)送端可根據(jù)P的值對(duì)數(shù)據(jù)的奇偶位置1或清0。若通信協(xié)議中規(guī)定使用奇校驗(yàn)的辦法,則P=0時(shí),應(yīng)對(duì)數(shù)據(jù)(假定由A取得)的奇偶位置1,否則就清0。424)棧指針SP棧指針SP指示堆棧頂部在內(nèi)部RAM中的位置。系統(tǒng)復(fù)位后,SP初始化為07H,使得堆棧事實(shí)上由08H單元開(kāi)始。由于08H~lFH空間屬于工作寄存器區(qū)1~3,20H~2FH空間為位尋址區(qū),而程序設(shè)計(jì)中常用到這些區(qū),在具體使用時(shí)應(yīng)避開(kāi)工作寄存器、位尋址區(qū),一般設(shè)在2FH以后的單元,如工作寄存器和位尋址區(qū)未用,也可開(kāi)辟為堆棧。堆棧是按先入后出、后入先出的原則進(jìn)行管理的一段存儲(chǔ)區(qū)域,主要作為子程序調(diào)用、中斷響應(yīng)、子程序返回(RET)和中斷返回(RETI)等操作時(shí),保護(hù)斷點(diǎn)和現(xiàn)場(chǎng)。43①保護(hù)斷點(diǎn)預(yù)先把主程序的斷點(diǎn)(PC值)保存在堆棧中,為程序能夠正確返回。②現(xiàn)場(chǎng)保護(hù)在子程序或者中斷服務(wù)程序入口處,將用到的寄存器單元的內(nèi)容壓入堆棧,以便程序退出前出棧。MCS-51單片機(jī)是一種滿(mǎn)遞增的堆棧,即執(zhí)行兩種操作:數(shù)據(jù)壓入(PUSH)堆棧時(shí),SP先自動(dòng)加1,再壓入數(shù)據(jù);數(shù)據(jù)彈出堆棧時(shí),數(shù)據(jù)先出棧,SP再自動(dòng)減1。447)串行數(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ù)。5)數(shù)據(jù)指針DPTR數(shù)據(jù)指針DPTR是一個(gè)16位特殊功能寄存器,高位字節(jié)寄存器用DPH表示,低位字節(jié)寄存器用DPL表示。DPTR既可以作為一個(gè)16位寄存器DPTR來(lái)處理,也可作為兩個(gè)獨(dú)立的8位寄存器DPH和DPL來(lái)處理。DPTR主要用來(lái)存放16位地址,以間址寄存器形式訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器、I/O接口和程序存儲(chǔ)器。6)端口P0~P3專(zhuān)用寄存器P0、P1、P2和P3分別是I/O端口P0~P3的鎖存器。458)定時(shí)器/計(jì)數(shù)器80C51系列中有兩個(gè)16位定時(shí)器/計(jì)數(shù)器T0和T1,各由兩個(gè)獨(dú)立的8位寄存器組成,共有4個(gè)獨(dú)立的寄存器:TH0、TL0、TH1、TL1。不能將T0、T1當(dāng)作一個(gè)16位寄存器來(lái)尋址。9)其他控制寄存器IP、IE、TMOD、TCON、SCON和PCON等SFR包含有中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器、串行口和供電方式的控制和狀態(tài)位,這些寄存器將在有關(guān)章節(jié)中敘述。462.5單片機(jī)的時(shí)鐘和復(fù)位電路在單片機(jī)的設(shè)計(jì)和應(yīng)用中,對(duì)振蕩器、時(shí)鐘電路、CPU工作時(shí)序以及復(fù)位電路的了解是最基本的??煽康臅r(shí)鐘電路和復(fù)位電路的設(shè)計(jì)能有效地保證單片機(jī)工作的穩(wěn)定。472.5.1時(shí)鐘電路時(shí)鐘電路主要用于產(chǎn)生80C51執(zhí)行指令時(shí)所必需的控制信號(hào)的各個(gè)節(jié)拍,單片機(jī)執(zhí)行指令是在統(tǒng)一的時(shí)鐘脈沖控制下一拍一拍地進(jìn)行的。時(shí)鐘電路發(fā)出的時(shí)序信號(hào)有兩類(lèi),一類(lèi)用于對(duì)片內(nèi)定時(shí)器、中斷系統(tǒng)等各個(gè)功能部件控制;另一類(lèi)用于對(duì)片外存儲(chǔ)器或I/O接口的控制。執(zhí)行指令時(shí),CPU首先到程序存儲(chǔ)器中取指、譯碼并執(zhí)行,所有過(guò)程都是以時(shí)鐘控制信號(hào)為基準(zhǔn)。為保證各部件間的同步工作,單片機(jī)內(nèi)部電路需在唯一的時(shí)鐘信號(hào)下嚴(yán)格地按照時(shí)序工作。因此時(shí)鐘電路的設(shè)計(jì)很重要,時(shí)鐘頻率直接決定著80C51單片機(jī)的速度,設(shè)計(jì)質(zhì)量也影響單片機(jī)應(yīng)用系統(tǒng)的可靠性。481.內(nèi)部時(shí)鐘方式內(nèi)部時(shí)鐘方式是由單片機(jī)內(nèi)部時(shí)鐘電路自身產(chǎn)生時(shí)鐘脈沖信號(hào),如圖2-5所示。利用單片機(jī)內(nèi)部的高增益反相放大器可構(gòu)成振蕩器,在反向放大器的輸入引腳XTAL1和輸出引腳XTAL2兩端外接晶振和微調(diào)電容,就構(gòu)成穩(wěn)定的自激振蕩器,其發(fā)出的脈沖直接送入內(nèi)部時(shí)鐘電路,電路兩端電容C1和C2對(duì)單片機(jī)頻率有微調(diào)作用,電容通常為30pF。晶振頻率通常選擇12MHz,在串口通信應(yīng)用中,為得到準(zhǔn)確的通信波特率,晶振頻率一般選擇11.0592MHz。為了減少寄生電容,保證振蕩器穩(wěn)定工作,晶振和電容安裝時(shí),應(yīng)盡量靠近單片機(jī)芯片。圖2-5內(nèi)部時(shí)鐘電路49圖2-6外部時(shí)鐘電路2.外部時(shí)鐘方式外部時(shí)鐘方式是由外部振蕩器產(chǎn)生時(shí)鐘脈沖信號(hào)送給單片機(jī),如圖2-6所示。在多片80C51同時(shí)工作,需要多片單片機(jī)之間保持時(shí)鐘同步時(shí),需要共同的外部時(shí)鐘時(shí)使用。因內(nèi)部時(shí)鐘發(fā)生器的信號(hào)取自反相器的輸入端,80C51采用外部時(shí)鐘源時(shí),外接時(shí)鐘源直接接到XTAL1端,XTAL2端懸空。503.時(shí)鐘信號(hào)的輸出當(dāng)需要為外部其它芯片提供時(shí)鐘時(shí),可先使用內(nèi)部時(shí)鐘方式產(chǎn)生時(shí)鐘信號(hào),再通過(guò)XTAL1或XTAL2提供時(shí)鐘信號(hào)輸出,此時(shí)需外部擴(kuò)充電路增加驅(qū)動(dòng)能力。常用的輸出形式有2種,如圖2-7(a)和(b)所示。圖2-7時(shí)鐘信號(hào)的輸出511.振蕩周期振蕩周期是單片機(jī)時(shí)鐘控制信號(hào)的基本時(shí)間單位,指為單片機(jī)提供時(shí)鐘信號(hào)的振蕩源的周期。若晶體振蕩頻率為fosc,則振蕩周期Tosc=1/fosc。如外接晶振12MHz時(shí),振蕩周期=1/12MHz=1/12μs=0.0833μs。2.狀態(tài)周期又稱(chēng)S周期,是振蕩源信號(hào)經(jīng)二分頻后形成的周期脈沖信號(hào),是振蕩周期兩倍。如外接晶振12MHz時(shí),狀態(tài)周期=1/6μs=0.167μs2.5.2指令時(shí)序80C51單片機(jī)執(zhí)行指令時(shí),各條指令可分解為若干基本微操作,這些微操作所對(duì)應(yīng)的脈沖信號(hào),在時(shí)間上有嚴(yán)格的先后次序,稱(chēng)作單片機(jī)指令時(shí)序,如圖2-8所示,描述單片機(jī)執(zhí)行指令快慢程度的時(shí)間單位主要有振蕩周期、狀態(tài)周期、機(jī)器周期和指令周期4種。523.機(jī)器周期通常將單片機(jī)完成一個(gè)基本操作所需的時(shí)間稱(chēng)為機(jī)器周期,每個(gè)機(jī)器周期可完成取指令、讀或?qū)憯?shù)據(jù)等基本操作。1個(gè)機(jī)器周期固定為12個(gè)振蕩周期。如外接晶振12MHz時(shí),機(jī)器周期=1μs。4.指令周期指令周期是指單片機(jī)執(zhí)行一條指令所需要的時(shí)間。80C51典型的指令周期是一個(gè)機(jī)器周期,一個(gè)機(jī)器周期由6個(gè)狀態(tài)(12個(gè)振蕩周期)組成。每個(gè)狀態(tài)又分成兩拍:P1和P2。所以,一個(gè)機(jī)器周期的12個(gè)振蕩周期依次表示為S1P1、S1P2、…、S6P1、S6P2。53由圖2-8可知,ALE在每個(gè)機(jī)器周期中兩次有效:一次在S1P2與S2P1期間,另一次在S4P2與S5P1期間。單片機(jī)指令周期一般需要含有1個(gè)、2個(gè)或者4個(gè)機(jī)器周期;其中大多數(shù)單字節(jié)指令和雙字節(jié)指令,取出指令立即執(zhí)行,需一個(gè)機(jī)器周期。三字節(jié)指令和部分雙字節(jié)指令都是雙機(jī)器周期,而乘、除法指令需要占用4個(gè)機(jī)器周期。所以,外接晶振12MHz時(shí),指令周期=1~4μs。541.復(fù)位過(guò)程復(fù)位信號(hào)如圖2-9所示,復(fù)位期間不產(chǎn)生ALE及信號(hào),ALE及被配置為輸入狀態(tài),即ALE=1和=1。直至RST端電平變低,結(jié)束復(fù)位。復(fù)位后,各內(nèi)部寄存器狀態(tài)如表2-7所示,PC=0000H,SP為07H,P0~P3口的內(nèi)容均為0FFH,其他SFR有效位均為0,復(fù)位操作不影響RAM的狀態(tài),內(nèi)部RAM不斷電(上電復(fù)位除外,上電時(shí)RAM內(nèi)容不確定),其中數(shù)據(jù)信息不丟失。當(dāng)RST引腳返回低電平后,CPU從0地址開(kāi)始執(zhí)行程序。2.5.3復(fù)位電路復(fù)位是單片機(jī)片內(nèi)寄存器的初始化過(guò)程。只要給RST引腳保持至少兩個(gè)機(jī)器周期(24個(gè)振蕩器周期)的高電平,80C51單片機(jī)將實(shí)現(xiàn)復(fù)位。55圖2-980C51復(fù)位信號(hào)562.復(fù)位電路80C51單片機(jī)的復(fù)位是由外部復(fù)位電路實(shí)現(xiàn)的,在復(fù)位電路設(shè)計(jì)時(shí),要考慮兼顧上電復(fù)位和人工按鍵復(fù)位功能。圖2-10給出了80C51單片機(jī)常用于實(shí)際應(yīng)用中的RC外部復(fù)位電路。除了這些復(fù)位電路,還有一些電路設(shè)計(jì)會(huì)采用專(zhuān)用的電壓監(jiān)控和復(fù)位芯片來(lái)構(gòu)成復(fù)位電路。(a)上電復(fù)位(b)按鍵脈沖復(fù)位(c)按鍵電平復(fù)位57(1)上電自動(dòng)復(fù)位電路原理單片機(jī)上電后,+5V電源(VCC)通過(guò)電容C和電阻R回路,給電容C充電,并加在RST引腳一個(gè)短暫的高電平復(fù)位信號(hào),隨著充電進(jìn)行,復(fù)位信號(hào)逐漸降低,此復(fù)位信號(hào)高電平持續(xù)時(shí)間取決于電容C的充電時(shí)間,即充電時(shí)間越長(zhǎng),復(fù)位時(shí)間越長(zhǎng)。增大電容或者增大電阻都可以增加復(fù)位時(shí)間。(2)人工按鍵復(fù)位電路原理按壓按鍵后,接通了+5V電源(VCC),通過(guò)兩個(gè)電阻的分壓回路,RST端分壓后產(chǎn)生高電平信號(hào),按鍵按下的時(shí)間決定了復(fù)位時(shí)間。當(dāng)時(shí)鐘頻率選用6MHz時(shí),電容C的典型取值為22uF,兩個(gè)電阻R1和R2的典型值分別為220Ω和1kΩ。582.6單片機(jī)的低功耗節(jié)電方式CHMOS型單片機(jī)屬于低功耗器件,具有空閑模式和掉電模式2種節(jié)電模式,80C51單片機(jī)正常工作時(shí)電流是11~20mA,空閑模式電流是1.7~5mA,掉電模式電流為5~50μA。表2-8列出了單片機(jī)的3種工作模式下消耗電流情況。
低功耗節(jié)電原則是:讓運(yùn)行模式比空閑、掉電模式占用時(shí)間大大減少,從而減少消耗的能量,主要通過(guò)以下方法實(shí)現(xiàn):(1)在開(kāi)機(jī)狀態(tài)下,靠中斷喚醒CPU,在短暫的時(shí)間內(nèi)工作在運(yùn)行模式,處理相應(yīng)的事件,然后進(jìn)入空閑(或掉電)模式;(2)在關(guān)機(jī)狀態(tài)下,完全進(jìn)入掉電模式。59
80C51單片機(jī)的空閑模式和掉電模式都是通過(guò)對(duì)特殊功能寄存器PCON中相關(guān)的位進(jìn)行控制的,PCON各位定義如表2-9所示。其中,IDL為空閑控制位,IDL=1,單片機(jī)進(jìn)入空閑模式;PD為掉電控制位,PD=1,單片機(jī)進(jìn)入掉電模式。602.6.1空閑模式設(shè)計(jì)1.進(jìn)入空閑模式80C51單片機(jī)執(zhí)行如下指令使IDL=1,進(jìn)入空閑模式。PCON=0x01;//IDL空閑控制位置1通過(guò)程序設(shè)計(jì)使待機(jī)方式位PCON.0或IDL置1時(shí),單片機(jī)進(jìn)入空閑模式。此時(shí),CPU處于休眠狀態(tài),而片內(nèi)其時(shí)鐘電路、中斷、串口、定時(shí)/計(jì)數(shù)器等都保持工作狀態(tài),片內(nèi)RAM和所有SFR內(nèi)容保持不變,由于CPU耗電占單片機(jī)耗電的80%~90%,因此大大降低了系統(tǒng)的功耗。612.退出空閑模式中斷或硬件復(fù)位2種方法都可以終止空閑模式。在空閑模式下,中斷系統(tǒng)仍在工作,當(dāng)中斷請(qǐng)求被響應(yīng)后,硬件使得IDL=0,從而退出空閑模式,進(jìn)入中斷服務(wù)程序。在空閑模式時(shí),硬件復(fù)位,各個(gè)SFR恢復(fù)默認(rèn)狀態(tài),PCON=0,IDL=0,退出空閑模式。為了防止休眠被復(fù)位終止時(shí)對(duì)端口引腳意外寫(xiě)入的可能性,在生成待機(jī)模式的
溫馨提示
- 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年鄭州西亞斯學(xué)院?jiǎn)握新殬I(yè)技能考試題庫(kù)附答案解析
- 2026年遼寧廣告職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試模擬測(cè)試卷附答案解析
- 江蘇省公務(wù)員考試大綱試題及答案
- 廣州中醫(yī)藥大學(xué)動(dòng)物實(shí)驗(yàn)中心招聘2名自聘合同制工作人員備考題庫(kù)附答案解析
- 監(jiān)所檢察考試題及答案
- 彌渡縣緊密型醫(yī)共體總醫(yī)院關(guān)于招聘編制外衛(wèi)生專(zhuān)業(yè)技術(shù)人員參考題庫(kù)附答案解析
- 2026年重慶城市科技學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)附答案解析
- 課件樣板教學(xué)課件
- 課件標(biāo)題教學(xué)課件
- 員工安全心理建設(shè)講解
- 2026年內(nèi)蒙古白音華鋁電有限公司招聘?jìng)淇碱}庫(kù)帶答案詳解
- 2026年涉縣輔警招聘考試備考題庫(kù)附答案
- 2026湖南株洲市蘆淞區(qū)人民政府征兵辦公室兵役登記參考考試題庫(kù)及答案解析
- 2026年高考語(yǔ)文備考之18道病句修改專(zhuān)練含答案
- 私域流量課件
- 2025年杭州余杭水務(wù)有限公司招聘36人筆試備考試題及答案解析
- GB/T 7251.5-2025低壓成套開(kāi)關(guān)設(shè)備和控制設(shè)備第5部分:公用電網(wǎng)電力配電成套設(shè)備
- 機(jī)器人手術(shù)術(shù)后引流管管理的最佳實(shí)踐方案
- 2025年產(chǎn)品質(zhì)量復(fù)盤(pán)與2026年品控升級(jí)指南
- 2025有色金屬行業(yè)市場(chǎng)發(fā)展深度分析及未來(lái)趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 2026年廣東省第一次普通高中學(xué)業(yè)水平合格性考試化學(xué)仿真模擬卷01(全解全析)
評(píng)論
0/150
提交評(píng)論