![幾種典型的單片機(jī)教材_第1頁(yè)](http://file4.renrendoc.com/view11/M00/0C/16/wKhkGWW-61uACTLoAAD5-CM0gM8887.jpg)
![幾種典型的單片機(jī)教材_第2頁(yè)](http://file4.renrendoc.com/view11/M00/0C/16/wKhkGWW-61uACTLoAAD5-CM0gM88872.jpg)
![幾種典型的單片機(jī)教材_第3頁(yè)](http://file4.renrendoc.com/view11/M00/0C/16/wKhkGWW-61uACTLoAAD5-CM0gM88873.jpg)
![幾種典型的單片機(jī)教材_第4頁(yè)](http://file4.renrendoc.com/view11/M00/0C/16/wKhkGWW-61uACTLoAAD5-CM0gM88874.jpg)
![幾種典型的單片機(jī)教材_第5頁(yè)](http://file4.renrendoc.com/view11/M00/0C/16/wKhkGWW-61uACTLoAAD5-CM0gM88875.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
8.18098單片機(jī)8.2AT89C2051單片機(jī)8.3MC68HC11A8單片機(jī)8.4Motorola32位單片機(jī)
第8章幾種典型的單片機(jī)8.18098單片機(jī)8.1.18098基本結(jié)構(gòu)
Intel8098單片機(jī)包括3種型號(hào):不帶內(nèi)部ROM/EPROM的8098、帶8KB片內(nèi)掩膜ROM的8398及帶8KB片內(nèi)EPROM的8798。1.內(nèi)部結(jié)構(gòu)8098單片機(jī)內(nèi)部結(jié)構(gòu)如圖8―1所示。它包含16位CPU、片內(nèi)8KBROM/EPROM(8398或8798)、高速輸入/輸出(HSI/HSO)口、4個(gè)多用途I/O口、全雙工串行口、4路10位A/D轉(zhuǎn)換器、脈寬調(diào)制(PWM)器、1個(gè)16位監(jiān)視定時(shí)器、2個(gè)16位定時(shí)器、4個(gè)軟件定時(shí)器、存儲(chǔ)器控制器及中斷控制器等主要部件。2.引腳說明8098芯片采用48引腳雙列直插封裝形式,其引腳配置如圖8―2所示。引腳功能如下:·VCC主電源電壓(+5V)?!SS數(shù)字地(0V),兩個(gè)VSS均應(yīng)接地?!PD片內(nèi)RAM備用電源(+5V)。8098正常工作時(shí),必須提供該電源,以便在VCC掉電時(shí),由該電源為片內(nèi)RAM(16個(gè)地址單元00F0H~00FFH)提供維持電源?!REF片內(nèi)A/D轉(zhuǎn)換器的參考電壓(+5V)?!PP片內(nèi)EPROM編程電壓(+12.5V)?!NGND模擬地,應(yīng)與VSS同電位?!TAL1片內(nèi)反相振蕩器輸入端,外接石英晶體?!TAL2片內(nèi)反相振蕩器輸出端,外接石英晶體?!?fù)位輸入端,低電平有效?!ご鎯?chǔ)器選擇輸入端。=0,CPU訪問片外存儲(chǔ)器;=1,訪問片內(nèi)ROM/EPROM。8098無(wú)內(nèi)部ROM,該引腳應(yīng)置為0。該引腳內(nèi)部有下拉作用,無(wú)外部驅(qū)動(dòng)時(shí),它始終保持為低電平。·ALE/
地址鎖存允許(ALE)或地址有效()輸出端。
ALE或由芯片配置寄存器CCR選擇。當(dāng)該引腳有效(ALE=1或=0)時(shí),表明地址/數(shù)據(jù)總線上傳送的是地址信息?!て獯鎯?chǔ)器讀信號(hào),低電平有效輸出端?!て獯鎯?chǔ)器寫信號(hào),低電平有效輸出端?!EADY準(zhǔn)備就緒信號(hào),輸入,高電平有效。當(dāng)外存速度較慢時(shí),發(fā)低電平信號(hào)至該引腳,使CPU處于等待狀態(tài)。對(duì)該引腳,片內(nèi)有弱上拉作用?!SI高速輸入端,包括HSI0、HSI1、HSI2、HSI3,其中HSI2、HSI3與HSO4、HSO5復(fù)用?!SO高速輸出端,包括HSO0、HSO1、HSO2、HSO3、HSO4、HSO5,其中HSO4、HSO5與HSI2、HSI3復(fù)用?!0口4位高輸入阻抗端口,可作為數(shù)字量輸入口(4位P0.4~P0.7),也可作為模擬量輸入口(4路ACH4~ACH7)。無(wú)論用P0口作數(shù)字輸入還是模擬輸入,都應(yīng)通過VREF向P0口提供電源?!2口4位多功能口,可作為數(shù)據(jù)輸入/輸出口(P2.0、P2.1、P2.2、P2.5),還可用作其他控制(P2.0可用作串口發(fā)送端TXD,P2.1可用作串口接收端RXD,P2.2可用作外中斷輸入端EXTINT,P2.5可用作脈寬調(diào)制PWM輸出端)。·P3口8位漏極開路雙向口,其內(nèi)部有很強(qiáng)的上拉作用,可作為8位并行I/O口,也可在系統(tǒng)擴(kuò)展時(shí)作為地址/數(shù)據(jù)復(fù)用總線,傳送低字節(jié)AD0~AD7?!4口8位漏極開路雙向口,其內(nèi)部有很強(qiáng)的上拉作用,可作為8位并行I/O口,也可在系統(tǒng)擴(kuò)展時(shí)作為地址總線,傳送高字節(jié)A8~A15。3.主要特點(diǎn)·CPU在A、B、C3相時(shí)鐘控制下運(yùn)行,工作效率高?!?32字節(jié)的寄存器陣列、24字節(jié)的特殊功能寄存器及結(jié)構(gòu)新穎的RALU使CPU的數(shù)據(jù)處理與I/O操作快捷方便。·高效的指令系統(tǒng)不僅功能強(qiáng)(有16位乘、除指令及符號(hào)擴(kuò)展、數(shù)據(jù)規(guī)格化指令等),而且指令執(zhí)行速度快,如外接晶振為12MHz時(shí),1條指令的最短執(zhí)行時(shí)間為1μs,最長(zhǎng)為95μs?!ね獠靠蓪ぶ反鎯?chǔ)器空間(RAM和ROM)為64KB,采用統(tǒng)一編址方式?!ご薪涌陔娐分С滞?、異步通信方式,便于實(shí)現(xiàn)多機(jī)通信。·內(nèi)含A/D、D/A轉(zhuǎn)換器及多種I/O接口,使得硬件結(jié)構(gòu)更加緊湊,外圍電路更加簡(jiǎn)化,可靠性更高。·監(jiān)視定時(shí)器提供了CPU在發(fā)生軟硬件故障時(shí)的工作能力恢復(fù)功能。·具有掉電保護(hù)功能。4.應(yīng)用范圍8098單片機(jī)特別適用于高速度、高精度的實(shí)時(shí)控制環(huán)境,如工業(yè)控制、機(jī)器人、儀器儀表、航天導(dǎo)航及計(jì)算機(jī)外設(shè)等。8.1.2中央處理器(CPU)8098內(nèi)部CPU主要由寄存器算術(shù)邏輯單元(RALU)、寄存器陣列和特殊功能寄存器(SFR)組成,見圖8―3。1.CPU總線8098單片機(jī)內(nèi)部采用總線結(jié)構(gòu),1個(gè)控制器和2條總線將RALU與寄存器陣列及SFR聯(lián)系起來。其中,16位的數(shù)據(jù)總線(DBUS)只能傳送RALU與寄存器陣列及SFR間的數(shù)據(jù);8位地址總線(ABUS)用來傳送內(nèi)部地址或作為存儲(chǔ)器控制器的地址/數(shù)據(jù)復(fù)用總線。圖8―3寄存器陣列、RALU、存儲(chǔ)器控制器和中斷控制器框圖2.RALURALU主要由算術(shù)邏輯單元(ALU)、程序狀態(tài)字(PSW)、程序計(jì)數(shù)器(PC)、循環(huán)計(jì)數(shù)器及3個(gè)暫存寄存器組成。所有的寄存器都是16位或17位(加符號(hào)擴(kuò)展位)的。
ALU完成基本的算術(shù)邏輯運(yùn)算。產(chǎn)生的16位地址信號(hào)分兩次(先低字節(jié)后高字節(jié))送ABUS;產(chǎn)生的16位數(shù)據(jù)一次送D-BUS。PC是一個(gè)16位計(jì)數(shù)器,用來指示將要執(zhí)行的指令在存儲(chǔ)器中的位置(地址)。PC設(shè)有一增量器,可使其內(nèi)容在CPU每取得1字節(jié)指令后自動(dòng)加1。該P(yáng)C又稱主PC。
CPU工作時(shí),由存儲(chǔ)控制器控制從A-BUS上取得來自片內(nèi)或片外ROM中的指令送入RALU,暫存于指令寄存器中。由指令譯碼器對(duì)指令進(jìn)行譯碼,產(chǎn)生相應(yīng)的控制信號(hào),使RALU等部件依據(jù)控制要求完成指令規(guī)定的功能。3.寄存器陣列寄存器陣列是由232字節(jié)的片內(nèi)RAM單元構(gòu)成的,這些單元可以按字節(jié)、字或雙字操作。
4.特殊功能寄存器(SFR)
片內(nèi)RAM中的00H~17H單元為24個(gè)特殊功能寄存器,它們主要用來實(shí)現(xiàn)8098單片機(jī)的輸入輸出操作。SFR的功能說明見表8―1。
表8―1SFR功能說明一覽表5.時(shí)鐘信號(hào)
CPU的工作是在時(shí)鐘的控制下有序地進(jìn)行的。由外部時(shí)鐘源或外接石英晶體(6~12MHz)與內(nèi)部振蕩電路配合工作先產(chǎn)生1個(gè)振蕩信號(hào),然后經(jīng)3分頻再生成3種不同相位的時(shí)鐘信號(hào)(A相、B相、C相,見圖8―5),該時(shí)鐘信號(hào)最終提供給8098CPU。3相時(shí)鐘的周期T被稱為狀態(tài)周期,也叫機(jī)器周期,簡(jiǎn)稱T狀態(tài),它是8098CPU操作的最小計(jì)時(shí)單位。8098的大部分內(nèi)部操作與A相、B相或C相之一同步,因而運(yùn)行速度大大提高。圖8―58098時(shí)鐘信號(hào)8.1.3存儲(chǔ)器結(jié)構(gòu)1.存儲(chǔ)器空間8098的存儲(chǔ)器空間采用完全統(tǒng)一的編址方式,尋址范圍為64KB,其空間分配見圖8―6。其中0000H~00FFH區(qū)間為片內(nèi)RAM,提供232字節(jié)寄存器陣列與24個(gè)特殊功能寄存器;在同一地址空間還可以覆蓋一個(gè)外部存儲(chǔ)器來存放程序,該區(qū)間保留給開發(fā)系統(tǒng)使用。個(gè)特殊功能寄存器;在同一地址空間還可以覆蓋一個(gè)外部存儲(chǔ)器來存放程序,該區(qū)間保留給開發(fā)系統(tǒng)使用。
圖8―68098存儲(chǔ)器空間分配圖2.存儲(chǔ)控制器(MCR)
存儲(chǔ)控制器的主要任務(wù)是完成對(duì)存儲(chǔ)器(片內(nèi)RAM除外)的訪問。為此,它需要產(chǎn)生總線控制信號(hào)傳輸?shù)刂?數(shù)據(jù)信息(利用P3、P4口)。為了加快程序運(yùn)行速度,在MCR中設(shè)置了從PC。在順序執(zhí)行指令時(shí),每取得1指令字節(jié),從PC自動(dòng)加1,提供程序執(zhí)行的位置;而當(dāng)出現(xiàn)程序跳轉(zhuǎn)時(shí),才將RALU中主PC的內(nèi)容通過A-BUS加載至從PC,這樣就避免了頻繁地從RALU中獲取指令的地址(即主PC值)。此外,MCR中還設(shè)置了1個(gè)4字節(jié)隊(duì)列,以加速程序的執(zhí)行。3.系統(tǒng)總線與時(shí)序當(dāng)需要擴(kuò)展外部存儲(chǔ)器或外設(shè)時(shí),通常用系統(tǒng)總線來實(shí)現(xiàn)8098與擴(kuò)展外存或外設(shè)的連接。
總線信號(hào)包括地址總線、數(shù)據(jù)總線和控制總線??刂瓶偩€信號(hào)可從8098芯片直接獲得,地址、數(shù)據(jù)總線由8098的P3、P4口提供,其中P4口提供高8位地址A8~A15,P3口提供8位地址/數(shù)據(jù)復(fù)用信號(hào)AD0~AD7。為了獲得有效的地址A0~A7與數(shù)據(jù)D0~D7,可利用三態(tài)鎖存器將復(fù)用的地址與數(shù)據(jù)信號(hào)分離(見圖8―7),這樣就可獲得擴(kuò)展外存與外設(shè)所需的全部總線信號(hào)。圖8―78098系統(tǒng)總線形成電路4.芯片配置寄存器CCR
為了使外接電路盡可能簡(jiǎn)化,8098提供了多種總線控制方式與就緒控制方式,以便使用戶可以有選擇地定義總線控制信號(hào)及選擇插入總線周期中等待狀態(tài)周期數(shù)。這些方式的選擇取決于CCR的設(shè)置。
CCR是1個(gè)獨(dú)立于SFR的重要寄存器,它不能直接尋址。當(dāng)系統(tǒng)復(fù)位時(shí),片內(nèi)RAM2018H單元中的芯片配置字節(jié)被自動(dòng)送入到CCR中。CCR的數(shù)據(jù)格式如圖8―9所示。由CCR可確定4種總線控制方式:·標(biāo)準(zhǔn)總線控制方式(CCR.3=1、CCR.2=1)·寫選通方式(CCR.3=1、CCR.2=0)·地址有效選通方式(CCR.3=0、CCR.2=1)·地址有效寫選通方式(CCR.3=0、CCR.2=0)
CCR還可確定4種就緒控制方式:·插入1個(gè)等待狀態(tài)周期(CCR.5=0、CCR.4=0)·插入2個(gè)等待狀態(tài)周期(CCR.5=0、CCR.4=1)·插入3個(gè)等待狀態(tài)周期(CCR.5=1、CCR.4=0)·禁止內(nèi)部就緒控制(CCR.5=1、CCR.4=1)圖8―8總線時(shí)序圖8―9CCR的數(shù)據(jù)格式8.1.4系統(tǒng)復(fù)位與掉電保護(hù)1.系統(tǒng)復(fù)位系統(tǒng)復(fù)位的目的是使系統(tǒng)能夠進(jìn)入一種初始狀態(tài),為系統(tǒng)的正常工作做好準(zhǔn)備。8098系統(tǒng)復(fù)位是通過引腳保持兩個(gè)狀態(tài)周期的低電平、再執(zhí)行10個(gè)狀態(tài)周期的復(fù)位序列來實(shí)現(xiàn)的。兩種常用的復(fù)位電路如圖8―10所示。系統(tǒng)復(fù)位后,一些專用寄存器或引腳的狀態(tài)見表8―2。圖8―10兩種常用的復(fù)位電路(a)上電和手動(dòng)復(fù)位電路;(b)多片復(fù)位電路表8―2專用寄存器或引腳復(fù)位狀態(tài)2.掉電保護(hù)為了在主電源VCC掉電時(shí),有效地保護(hù)系統(tǒng)運(yùn)行中的重要信息,8098對(duì)片內(nèi)RAM高16個(gè)地址單元加載了備用電源VPD(+5V,1mA)。
當(dāng)VCC掉電時(shí),VPD開始為寄存器陣列中的F0H~FFH單元供電,以保持該16單元內(nèi)容不變。為了防止在VCC下降時(shí)對(duì)F0H~FFH單元進(jìn)行寫操作,引腳首先被下拉為低電平,使系統(tǒng)復(fù)位,這樣8098就可安全地進(jìn)入掉電護(hù)狀態(tài)。當(dāng)VCC恢復(fù)并穩(wěn)定后(約1ms),
引腳經(jīng)過保持2個(gè)狀態(tài)周期的低電平而使8098產(chǎn)生了10個(gè)狀態(tài)周期的復(fù)位操作,然后8098從2080H單元開始執(zhí)行程序,進(jìn)入正常的工作狀態(tài)(此時(shí)VPD仍加載在8098芯片上,但F0H~FFH單元由VCC供電)。8.1.5中斷系統(tǒng)1.中斷源圖8―11示出了8098中斷系統(tǒng)中所有的中斷源。它被分為9種類型,每一類中又包含多個(gè)中斷源,實(shí)際的中斷源數(shù)達(dá)20多個(gè),用戶可以使用其中8種類型的中斷源(除軟件中斷外)。8098中斷系統(tǒng)對(duì)中斷源的控制是按類進(jìn)行的,每一類中斷源被賦予相同的優(yōu)先級(jí)與中斷向量地址,不同類中斷源有不同的優(yōu)先級(jí)與中斷向量地址(見表8―3)。同類中的不同中斷源由特殊功能寄存器中的ICO1(I/O控制寄存器1)和HSO-COMMAND(HSO命令寄存器)加以選擇。
圖8―118098中斷源表8―3中斷向量地址表2.中斷控制8098中斷控制系統(tǒng)框圖如圖8―12所示。中斷懸掛寄存器INT-PENDING(09H,讀/寫)用來記錄各中斷源的中斷請(qǐng)求。中斷屏蔽寄存器INT-MASK(08H,讀/寫)用來設(shè)置各中斷源的中斷允許/禁止。兩寄存器具有相同的格式,見圖8―13。圖8―12中斷控制系統(tǒng)框圖圖8―13中斷懸掛寄存器與中斷屏蔽寄存器定義3.應(yīng)用要點(diǎn)在實(shí)現(xiàn)中斷控制時(shí),應(yīng)注意以下問題:(1)每個(gè)中斷源有自己專用的中斷向量地址單元,不可隨意使用中斷向量地址。在中斷發(fā)生前,必須在中斷向量地址中設(shè)置好該中斷源的中斷服務(wù)程序入口地址。(2)在中斷處理程序中,可利用EI指令開中斷(I=1),DI指令關(guān)中斷(I=0)。若中斷處理程序中使用了PUSHF指令,則在狀態(tài)保護(hù)同時(shí)起到了關(guān)中斷作用。該指令將PSW壓棧且自身清零,此時(shí)I=0。(3)中斷懸掛寄存器的內(nèi)容可人為地修改,以產(chǎn)生某中斷請(qǐng)求(相應(yīng)位置1)或清除某中斷請(qǐng)求(相應(yīng)位置0)。修改時(shí),注意不要影響到其他位。(4)應(yīng)正確地設(shè)置IOC1與HSO-COMMAND相應(yīng)位,以確定實(shí)際的中斷源。(5)8098中斷系統(tǒng)只有1個(gè)外部中斷接收端(EXTINT),當(dāng)外部中斷源較多時(shí),可采用Intel公司生產(chǎn)的中斷控制器8259芯片來加以擴(kuò)展。(6)中斷服務(wù)程序必須以RET指令作為結(jié)束。8.1.6定時(shí)器8098單片機(jī)有3個(gè)16位硬件定時(shí)器和4個(gè)16位軟件定時(shí)器。1.定時(shí)器1(T1)T1是16位硬件定時(shí)/計(jì)數(shù)器,它的輸入信號(hào)是系統(tǒng)時(shí)鐘T。當(dāng)8098單片機(jī)加電或復(fù)位時(shí),T1被清零,并以每8T時(shí)間T1內(nèi)容加1的方式開始工作。當(dāng)T1內(nèi)容計(jì)數(shù)為FFFFH時(shí),再加1,T1溢出并置零,重新開始計(jì)數(shù)。在8098處于加電的情況下,T1不受任何干擾而不斷地循環(huán)計(jì)數(shù),因此,它又稱為自由行程定時(shí)器。
T1可以提供準(zhǔn)確的定時(shí)值,其當(dāng)前值可以從TIMER1(地址=0AH)按字讀出。其最長(zhǎng)定時(shí)時(shí)間為式中,fosc為8098外加晶振頻率。T1溢出可以產(chǎn)生定時(shí)器中斷,其中斷服務(wù)程序入口地址存放在中斷矢量2000H中。
(8―1)2.定時(shí)器2(T2)T2也是16位硬件定時(shí)/計(jì)數(shù)器,與T1不同之處是:T2輸入信號(hào)來自高速輸入通道HSI1引入的計(jì)數(shù)脈沖,脈沖的每次跳變(正跳變或負(fù)跳變)都使T2加1。當(dāng)計(jì)數(shù)值為FFFFH時(shí),再加1,T2溢出并置為零,重新開始計(jì)數(shù)。
T2當(dāng)前值可從TIMER2(地址=0CH)按字讀出,為了有效獲取T2值,要求HSI1信號(hào)跳變的間隔大于或等于8T。T2溢出也可產(chǎn)生定時(shí)器中斷(與T1共用中斷矢量)。查詢IOS1寄存器可判斷產(chǎn)生中斷的定時(shí)器,而T1與T2的溢出中斷是否允許則受控于IOC1寄存器。與T1又一個(gè)不同點(diǎn)是T2的復(fù)位方式較靈活,它可采用以下方法使T2清零:·系統(tǒng)復(fù)位:8098加電或引腳為低電平;·軟件復(fù)位:IOC0·1=1或HSO-COMMAND3~0=1110B;·外部復(fù)位:IOC0·3=1且IOC0·5=1時(shí),從HSI0引入由低變高的正脈沖。3.監(jiān)視定時(shí)器(WatchDogTimer)
實(shí)際上監(jiān)視定時(shí)器WDT也是一個(gè)16位定時(shí)/計(jì)數(shù)器,其計(jì)數(shù)脈沖由系統(tǒng)時(shí)鐘T提供,每1個(gè)T狀態(tài)WDT內(nèi)容加1,當(dāng)計(jì)滿64K個(gè)T狀態(tài)時(shí),WDT發(fā)生溢出,此時(shí)引腳強(qiáng)制為低電平(至少維持2T),使8098系統(tǒng)復(fù)位,重新開始工作。4.軟件定時(shí)器8098有4個(gè)16位軟件定時(shí)器,其編號(hào)為0、1、2、3,由HSO-COMMAND3~0指定。適當(dāng)設(shè)置HSO-COMMAND與HSO-TIME寄存器可規(guī)定軟件定時(shí)器的定時(shí)時(shí)間,一旦定時(shí)時(shí)間到,便產(chǎn)生軟件定時(shí)器中斷,其中斷矢量為200AH。查詢IOS1寄存器可確定哪個(gè)軟件定時(shí)器發(fā)出了中斷。
5.相關(guān)寄存器說明1)輸入輸出控制寄存器IOC與狀態(tài)寄存器IOSIOC與IOS共用RAM地址,IOC為只寫寄存器,IOS為只讀寄存器,其定義如圖8―14所示。注意:讀取IOS1時(shí),該寄存器中與時(shí)間有關(guān)的標(biāo)志位(D5~D0)將被清除,因此,讀取IOS1之前應(yīng)注意對(duì)IOS1寄存器相應(yīng)位的保護(hù)。2)HSO-COMMAND與HSO-TIME寄存器請(qǐng)參見818小節(jié)。圖8―14IOC0、IOC1、IOS0、IOS1定義(a)IOC0定義;(b)IOC1定義;(c)IOS1定義;(d)IOS2定義圖8―14IOC0、IOC1、IOS0、IOS1定義(a)IOC0定義;(b)IOC1定義;(c)IOS1定義;(d)IOS2定義圖8―14IOC0、IOC1、IOS0、IOS1定義(a)IOC0定義;(b)IOC1定義;(c)IOS1定義;(d)IOS2定義8.1.7高速輸入HSI1.HIS功能描述
HSI用來記錄某一外部事件的觸發(fā)時(shí)刻與狀態(tài),可記錄多達(dá)8個(gè)事件。
HSI結(jié)構(gòu)如圖8―15所示。在每個(gè)T周期內(nèi),自動(dòng)跳變檢測(cè)器對(duì)4個(gè)通道(HSI0~HSI3)的事件發(fā)生狀態(tài)進(jìn)行檢測(cè),并將檢測(cè)結(jié)果送至HSI-STATUS寄存器奇數(shù)位及FIFO隊(duì)列中。同時(shí),T1的當(dāng)前值(16位)也送到FIFO隊(duì)列中,以記錄事件的觸發(fā)時(shí)刻。
FIFO隊(duì)列是一個(gè)可存放7個(gè)記錄的存儲(chǔ)區(qū),每個(gè)記錄由4位事件狀態(tài)與16位事件觸發(fā)時(shí)刻組成。最先進(jìn)入FIFO的事件記錄首先進(jìn)入保持寄存器,使保持寄存器與FIFO實(shí)際上構(gòu)成了1個(gè)8記錄的隊(duì)列。當(dāng)這個(gè)隊(duì)列滿時(shí),不再記錄新事件信息,而當(dāng)讀取HSI-STATUS(保持寄存器中的4位事件狀態(tài)信息進(jìn)入HSI-STATUS的偶數(shù)位)與HSI-TIME寄存器后,保持寄存器變空,隊(duì)列各項(xiàng)依次前移,可以接收新事件信息。圖8―15HSI結(jié)構(gòu)圖
HSI具有中斷功能。當(dāng)FIFO滿或保持寄存器已裝載時(shí)(由IOC1·7選擇),產(chǎn)生HSI數(shù)據(jù)有效中斷,中斷矢量為2004H。當(dāng)HSI0端有正跳變(由低到高)時(shí),產(chǎn)生HSI0中斷(中斷允許的話),中斷矢量為2008H。HSI0中斷與HSI數(shù)據(jù)有效中斷不同,它不是事件中斷,而是以正跳變觸發(fā)的外中斷。使用HSI時(shí),應(yīng)注意以下幾點(diǎn):(1)因?yàn)樽xHSI-TIME寄存器時(shí),HSI-STATUS寄存器的內(nèi)容會(huì)自動(dòng)消失,所以讀取HSI時(shí),應(yīng)先讀HSI-STATUS寄存器,再讀HSI-TIME寄存器。(2)因?yàn)閺腍SI輸入端觸發(fā)事件產(chǎn)生到記錄在FIFO隊(duì)列并裝載入保持寄存器,需要8T周期,且T1的分辨率也為8T,所以,HSI以8T的分辨率檢測(cè)其輸入引腳的快速跳變,且對(duì)HSI的讀取應(yīng)在保持寄存器有值時(shí)進(jìn)行。(3)HSI0既可以作為高速事件輸入端,也可作為外部中斷輸入端。當(dāng)HSI以中斷方式工作時(shí),為防止混亂,最好不要同時(shí)開放HSI0中斷與HSI數(shù)據(jù)有效中斷(HSI0中斷優(yōu)先級(jí)高,為4;HSI數(shù)據(jù)有效中斷優(yōu)先級(jí)低,為2)。另外,HSI0還用作T2的外部復(fù)位信號(hào)。2.相關(guān)寄存器說明1)HSI-MODE寄存器該寄存器用來確定HSI輸入引腳上事件觸發(fā)的方式,8位,只寫,地址=03H。其定義見圖8―16(a)。2)HSI-STATUS寄存器該寄存器用來記錄HSI輸入引腳上事件觸發(fā)狀態(tài),其中奇數(shù)位記錄的是HSI輸入引腳的當(dāng)前狀態(tài),偶數(shù)位記錄的是經(jīng)過FIFO存儲(chǔ)并進(jìn)入到保持寄存器中的某記錄事件的狀態(tài)。該寄存器8位,只讀,地址=06H。其定義見圖8―16(b)。3)HSI-TIME寄存器該寄存器存放來自保持寄存器的某記錄事件發(fā)生的時(shí)刻(該值即事件發(fā)生時(shí)定時(shí)器T1的當(dāng)前值)。該寄存器16位,只讀,地址=04H.圖8―16HSI-MODE與HSI-STATUS定義(a)HSI-MODE定義;(b)HSI-STATUS定義8.1.8高速輸出HSO1.HSO功能描述
HSO可按程序設(shè)定的時(shí)刻去觸發(fā)1個(gè)或多個(gè)事件。因CPU開銷小,故速度快。
HSO結(jié)構(gòu)如圖8―17所示。當(dāng)保持寄存器為空時(shí),將要輸出事件的命令與觸發(fā)時(shí)刻依次寫入HSO-COMMAND和HSO-TIME寄存器中,并被自動(dòng)加載到23位保持寄存器中(7位命令、16位時(shí)間),此時(shí)若CAM(ContentAddressableMemory內(nèi)容可尋址存儲(chǔ)區(qū))有1個(gè)空寄存器,則保持寄存器的內(nèi)容便存入CAM中。
CAM是由8個(gè)23位寄存器組成的存儲(chǔ)區(qū),最多可存儲(chǔ)8個(gè)輸出事件,當(dāng)CAM滿時(shí),將不再接受新的輸出事件。在每個(gè)T周期,CAM中一事件的觸發(fā)時(shí)間值與來自T1或T2的時(shí)間基準(zhǔn)值在比較器中進(jìn)行比較,比較相等時(shí),表明該事件觸發(fā)時(shí)間到,于是該事件發(fā)生(如啟動(dòng)A/D轉(zhuǎn)換、復(fù)位定時(shí)器T2、PWM輸出、軟件定時(shí)到等)。圖8―17HSO結(jié)構(gòu)圖2.相關(guān)寄存器說明1)HSO-COMMAND寄存器該寄存器用來設(shè)定觸發(fā)事件,7位有效,只寫,地址=06H,定義見圖8―18。2)HSO-TIME寄存器該寄存器用來存放事件的觸發(fā)時(shí)間(相對(duì)于時(shí)間基準(zhǔn)T1或T2),16位,只寫,地址=04H。該寄存器的加載較為獨(dú)特,應(yīng)用ADD指令。例如:ADDHSO-TIME,TIMER1,?!痢痢痢罤表示在HSO-TIME中設(shè)置相對(duì)于T1的時(shí)間值。圖8―18HSO-COMMAND寄存器定義8.1.9模/數(shù)(A/D)轉(zhuǎn)換器1.A/D轉(zhuǎn)換器工作原理8098片內(nèi)集成了模擬采集部件,它由4路模擬開關(guān)、采樣保持器和10位A/D轉(zhuǎn)換器等組成,如圖8―19所示。AD-COMMAND寄存器控制選擇4路模擬開關(guān)的1路接通,使對(duì)應(yīng)連接的模擬信號(hào)(0~5V)通過多路開關(guān)加載到采樣保持器上。采樣保持器為零階保持器,它將某時(shí)刻對(duì)模擬信號(hào)采樣的結(jié)果進(jìn)行保持,以便給A/D轉(zhuǎn)換器提供穩(wěn)定的輸入信號(hào)。A/D轉(zhuǎn)換器為逐位比較型,它將采樣保持器提供的穩(wěn)定信號(hào)(0~5V)轉(zhuǎn)換為10位數(shù)字信號(hào),并將其存入AD-RESULT寄存器中,以便CPU讀取。圖8―19A/D轉(zhuǎn)換器結(jié)構(gòu)從模擬信號(hào)被選通到轉(zhuǎn)換結(jié)果裝入AD-RESULT寄存器,一次A/D轉(zhuǎn)換所需時(shí)間為88T(采用12MHz晶體時(shí),為22μs),轉(zhuǎn)換誤差約為1/210×100%,即千分之一,轉(zhuǎn)換分辨率約為5V/210,即5mV。A/D轉(zhuǎn)換是否正在進(jìn)行可用狀態(tài)位指示,也可在A/D轉(zhuǎn)換結(jié)束時(shí)發(fā)出中斷請(qǐng)求(只有ACH7具備中斷功能),該中斷矢量為2002H。2.相關(guān)寄存器說明1)AD-COMMAND寄存器該寄存器用于選擇模擬通道與啟動(dòng)A/D轉(zhuǎn)換,8位,只寫,地址=02H,其定義如圖8―20(a)所示。2)AD-RESULT寄存器該寄存器用來存放A/D轉(zhuǎn)換狀態(tài)及轉(zhuǎn)換結(jié)果,16位,只讀,地址=02H、03H,其定義見圖8―20(b)。圖8―20AD-COMMAND與AD-RESULT定義(a)AD-COMMAND定義;(b)AD-RESULT定義8.1.10數(shù)模(D/A)轉(zhuǎn)換1.PWM(脈寬調(diào)制)原理8098的D/A轉(zhuǎn)換功能是以PWM信號(hào)輸出來體現(xiàn)的。PWM可以兩種方式提供輸出:第一種方式,由HSO提供周期與占空比均可變、分辨率為1/216(16位)的脈寬調(diào)制信號(hào);第二種方式,由脈寬調(diào)制器提供周期固定、占空比可變、分辨率為1/28(8位)的脈寬調(diào)制信號(hào)。將PWM信號(hào)平滑濾波后,可得到模擬信號(hào)。脈寬調(diào)制器結(jié)構(gòu)如圖8―21所示。在8098加電的情況下,8位循環(huán)計(jì)數(shù)器每接收1個(gè)系統(tǒng)時(shí)鐘脈沖(T)作加1操作,當(dāng)計(jì)數(shù)值為00H或溢出(0FFH再加1)時(shí),R-S觸發(fā)器的S端置0,PWM輸出高電平;當(dāng)計(jì)數(shù)值與PWM-CONTROL寄存器中預(yù)定值相等時(shí),比較器向R-S觸發(fā)器R端送低電平,PWM輸出低電平。這樣,隨著計(jì)數(shù)器的循環(huán)計(jì)數(shù),就可以周期性地輸出PWM波形(PWM周期與計(jì)數(shù)器循環(huán)周期一致,即256T)。圖8―21脈寬調(diào)制器結(jié)構(gòu)2.相關(guān)寄存器說明
PWM-CONTROL寄存器中的設(shè)定值用來確定PWM波形的占空比,8位,只寫,地址=17H。如該寄存器設(shè)定值為19H時(shí),則產(chǎn)生周期為256T、占空比為10%的PWM波形;若設(shè)定值為80H時(shí),則產(chǎn)生周期為256T、占空比為50%的PWM波形。8.1.11串行口8098單片機(jī)串行口與MCS-51系列單片機(jī)串行口兼容。它利用RXD、TXD引腳實(shí)現(xiàn)串行口與外界聯(lián)系,通過特殊功能寄存器——串行口緩沖寄存器(發(fā)送、接收寄存器)訪問串行口。8098單片機(jī)設(shè)有1個(gè)獨(dú)立的波特率發(fā)生器專供串行口使用,用戶使用串行口時(shí),HSI、HSO及定時(shí)器功能均不受影響。8098單片機(jī)也可以利用HSI/HSO構(gòu)成軟件控制的串行口。1.串行口工作方式8098串行口可按4種方式工作。1)方式0——移位寄存器方式這是一種同步方式,常用于并行I/O口的擴(kuò)展。在此方式中,RXD引腳作為串行數(shù)據(jù)發(fā)送/接收端,TXD引腳輸出8個(gè)移位脈沖串。8位數(shù)據(jù)的發(fā)送與接收都是按先低位后高位的順序移動(dòng)的。方式0時(shí)序圖見圖8―22(a)。2)方式1這是一種標(biāo)準(zhǔn)異步通信方式。TXD引腳發(fā)送數(shù)據(jù),RXD接收數(shù)據(jù),移位控制脈沖由8098內(nèi)部時(shí)鐘電路提供。其通信的數(shù)據(jù)幀格式為:1個(gè)起始位(低電平)、8個(gè)數(shù)據(jù)位(先低位,后高位)及1個(gè)停止位(高電平),如圖8―22(b)所示。3)方式2這也是一種數(shù)據(jù)通信方式,其通信的數(shù)據(jù)幀格式為:1個(gè)起始位(低)、8個(gè)數(shù)據(jù)位(D0在前,D7在后)、1個(gè)可編程數(shù)據(jù)位(D8)及1個(gè)停止位(高),見圖8―22(c)。
圖8―22方式0時(shí)序圖與方式1、2、3數(shù)據(jù)格式(a)方式0時(shí)序圖;(b)方式1數(shù)據(jù)格式;(c)方式2/方式3數(shù)據(jù)格式2.相關(guān)寄存器說明1)發(fā)送緩沖器SBUF-TX和接收緩沖器SBUF-RXSBUF-TX與SBUF-RX共用地址07H,8位。從RXD引腳接收的串行數(shù)據(jù)送往SBUF-RX緩沖器(只讀),由CPU從中讀出;而由CPU寫入SBUF-TX緩沖器(只寫)的數(shù)據(jù)從TXD引腳串行輸出。1個(gè)數(shù)據(jù)送入SBUF-RX或從SBUF-TX送出,便產(chǎn)生中斷標(biāo)志。2)BAUD-RATE寄存器該寄存器用于確定串行通信的波特率,16位,只寫,地址=0EH。對(duì)該寄存器設(shè)置16位波特率時(shí),應(yīng)連續(xù)2次向0EH寫入其高低字節(jié)(先低位后高位)。該寄存器最高位D15用來選擇波特率發(fā)生器的供給源,8098恒取D15=1,此時(shí)波特率發(fā)生器的時(shí)鐘為XTAL1。該寄存器的低15位表示無(wú)符號(hào)數(shù)B,由該值可確定不同工作方式下的波特率:方式0:波特率=XTAL1頻率/4(B+1)(B≠0)(8―2)
方式1、2、3:波特率=XTAL1頻率/64(B+1)
(8―3)
當(dāng)采用12MHz晶振、選擇XTAL1時(shí),同步方式的最大波特率為15M波特(BAUD-DATE內(nèi)容8001H),異步方式的最大波特率為1875K波特(BAUD-RATE內(nèi)容8000H)。3)SP-CON寄存器與SP-STAT寄存器
SP-CON(5位,只寫)與SP-STAT(3位,只讀)組成8位串行口控制狀態(tài)寄存器,地址=11H。該寄存器用來設(shè)置對(duì)串行口的控制信息,同時(shí)可提供串行口的基本狀態(tài),其定義如圖8―23所示。圖8―23SP-CON/SP-STAT寄存器定義8.1.128098指令系統(tǒng)1.概述8098指令共有100條指令,采用6種尋址方式和若干種操作數(shù)類型,可實(shí)現(xiàn)8位與16位算術(shù)/邏輯運(yùn)算、移位、傳送、跳轉(zhuǎn)等操作。1)操作數(shù)類型8098允許使用7種操作數(shù)類型:①字節(jié)(BYTE):8位無(wú)符號(hào)數(shù),取值0~255,可存放在存儲(chǔ)空間中任何地址上。②字(WORD):16位無(wú)符號(hào)數(shù),取值0~65535,字按偶地址兩字節(jié)存儲(chǔ)(低8位存于偶地址中,高8位存于奇地址中)。③短整數(shù)(SHORT-INTEGER):8位帶符號(hào)數(shù),取值-128~+127,運(yùn)算結(jié)果超出此范圍產(chǎn)生溢出(V=1)。存儲(chǔ)規(guī)則同字節(jié)(BYTE)。④整數(shù)(INTEGER):16位帶符號(hào)數(shù),取值-32768~+32767,運(yùn)算結(jié)果超出此范圍產(chǎn)生溢出。存儲(chǔ)規(guī)則同字(WORD)。⑤雙字(DOUBLE―WORD):32位無(wú)符號(hào)數(shù),取值0~4294967295(232-1)。⑥長(zhǎng)整數(shù)(LONG-INTEGER):32位帶符號(hào)數(shù),取值-2147483648(-231)~+2147483647(231-1)。它的使用范圍與存儲(chǔ)規(guī)則同DOUBLE-WORD。⑦位(BIT):1位數(shù),取布爾值“真”、“假”。對(duì)8098內(nèi)部寄存器任意位可按字節(jié)或字尋址,按位進(jìn)行測(cè)試。2)尋址方式8098硬件直接支持6種尋址方式,并由此可衍生出兩種十分有用的尋址方式。(1)寄存器直接尋址。采用該方式時(shí),由指令指明存放操作數(shù)的寄存器,而這個(gè)寄存器必須是256字節(jié)的內(nèi)部寄存器陣列(包括特殊功能寄存器)中的任何一個(gè)。例如:
REG2EQU54HREG3EQU56HLDBREG2,REG3(2)間接尋址。采用此方式時(shí),由指令指定的某寄存器(字變量)提供了操作數(shù)地址(即地址指針),操作數(shù)存放在操作數(shù)地址確定的存儲(chǔ)單元(片內(nèi)RAM或片外存儲(chǔ)器)中。例如:
LDAX,[AX];AX為某字類型寄存器。(3)自動(dòng)增量間接尋址。此方式與間接尋址方式的不同之處只是在獲得操作數(shù)后,操作數(shù)地址指針自動(dòng)修改。字節(jié)操作時(shí),指針自動(dòng)加1;字操作時(shí),指針自動(dòng)加2。例如:
LDAX,[BX]+;執(zhí)行后BX內(nèi)容自動(dòng)加2。
LDBAH,[BX]+;執(zhí)行后BX內(nèi)容自動(dòng)加1。
(4)立即尋址。該方式允許指令中直接提供1個(gè)操作數(shù)。例如:
LDBAL,#01H(5)短變址尋址。在采用此方式的指令中,指明了存放操作數(shù)基地址指針(字變量)的寄存器及8位帶符號(hào)數(shù)偏移地址。操作數(shù)的有效地址=基地址+偏移地址,操作數(shù)存放在操作數(shù)有效地址確定的存儲(chǔ)單元中。例如:
LDAX,0A0H[BX]BX中存放操作數(shù)基地址,0A0H為偏移地址。(6)長(zhǎng)變址尋址。該方式與短變址尋址方式類似,唯一不同的是:偏移地址為16位無(wú)符號(hào)數(shù)。例如:
LDBAL,2746H[BX](7)零寄存器尋址。特殊功能寄存器中的頭兩字節(jié)(地址=00H,01H)為零寄存器,其內(nèi)容恒為0。當(dāng)長(zhǎng)變址尋址方式中寄存器采用零寄存器時(shí),就衍生出零寄存器尋址方式。該尋址方式可實(shí)現(xiàn)對(duì)存儲(chǔ)空間中任意單元的直接尋址。例如:
LDBAH,3000H[0](8)堆棧指針寄存器尋址。將堆棧指針寄存器作為間接尋址寄存器,就成為堆棧指針寄存器尋址。例如:
PUSH[SP]
LDAX,04H[SP]
3)程序狀態(tài)字
CPU當(dāng)前的工作狀態(tài)保存于程序狀態(tài)字PSW中,該狀態(tài)字將為用戶程序運(yùn)行提供依據(jù)。PSW格式如圖8―24所示。圖8―24程序狀態(tài)字PSW
PSW的低8位為中斷屏蔽寄存器INT-MASK,地址為08H,可以按字節(jié)訪問它。
PSW提供了6個(gè)條件標(biāo)志位,它們?yōu)椋毫銟?biāo)志Z——若操作結(jié)果為零時(shí),則Z=1;否則,Z=0。
負(fù)標(biāo)志N——若操作結(jié)果為負(fù)時(shí),則N=1;否則,N=0。
溢出標(biāo)志V——若操作結(jié)果超出目的操作數(shù)所能表示的范圍時(shí),則V=1;否則,V=0。溢出陷阱標(biāo)志VT——V標(biāo)志置1時(shí),也使VT=1。只有執(zhí)行CLRVT或JVT指令,才使VT=0。
進(jìn)位標(biāo)志C——運(yùn)算時(shí),若ALU最高位產(chǎn)生算術(shù)進(jìn)位,則C=1,否則,C=0;移位時(shí),雙操作數(shù)移出的最后1位保存在C標(biāo)志位中。粘著標(biāo)志ST——右移操作時(shí),“1”移入C標(biāo)志后又移出,則ST=1。PSW提供了1個(gè)中斷控制位。中斷允許標(biāo)志位I——設(shè)I=1,CPU允許中斷發(fā)生;設(shè)I=0,CPU禁止中斷發(fā)生。2.指令系統(tǒng)簡(jiǎn)介8098單片機(jī)指令系統(tǒng)按功能可分為數(shù)據(jù)傳送指令、算術(shù)運(yùn)算指令、邏輯運(yùn)算指令、堆棧操作指令、無(wú)條件轉(zhuǎn)移與調(diào)用返回指令、條件轉(zhuǎn)移指令、循環(huán)控制指令、單寄存器指令、移位指令及其它專用指令等。所有指令及功能簡(jiǎn)要說明列于表8―4中。8.1.138098與51系列單片機(jī)主要性能對(duì)比8098與51系列單片機(jī)的主要性能對(duì)比見表8―5。表8―48098指令一覽表8.1.14一種典型的8098應(yīng)用系統(tǒng)一個(gè)典型的8098通用應(yīng)用系統(tǒng)示于圖8―25中,其中EPROM(2764)構(gòu)成片外程序存儲(chǔ)器,RAM(6264)構(gòu)成片外數(shù)據(jù)緩沖器,可編程并行接口8255提供并行外設(shè)與系統(tǒng)的連接,再加之8098片內(nèi)功能,這樣,該系統(tǒng)就可滿足大多數(shù)應(yīng)用的需要。必須注意的是,在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),一定要充分利用8098芯片的片內(nèi)功能,以使整個(gè)系統(tǒng)硬件電路盡可能簡(jiǎn)化。另外,當(dāng)某一功能既可用硬件實(shí)現(xiàn)也可用軟件實(shí)現(xiàn)時(shí),要根據(jù)系統(tǒng)設(shè)計(jì)要求、性能價(jià)格比等因素,經(jīng)過全面考慮后再作出方案。圖8―25一種典型的8098通用應(yīng)用系統(tǒng)8.2AT89C2051單片機(jī)
AT89C系列單片機(jī)是ATMEL公司1993年開始研制生產(chǎn)的,優(yōu)越的性能價(jià)格比使其成為頗受歡迎的8位單片機(jī)。
AT89C系列與MCS-51系列單片機(jī)相比有兩大優(yōu)勢(shì):第一,片內(nèi)程序存儲(chǔ)器采用閃速存儲(chǔ)器,使程序的寫入更加方便;第二,提供了更小尺寸的芯片(AT89C2051/1051),使整個(gè)硬件電路的體積更小。
AT89C系列單片機(jī)有4種型號(hào):AT89C51、AT89C52、AT89C1051、AT89C2051,其中AT89C2051/1051是ATMEL公司AT89C系列的新成員。它以較小的體積、良好的性能價(jià)格比倍受青睞,在家電產(chǎn)品、工業(yè)控制、計(jì)算機(jī)產(chǎn)品、醫(yī)療器械、汽車工業(yè)等應(yīng)用方面成為用戶降低成本的首選器件。這里以AT89C2051為代表對(duì)AT89C系列單片機(jī)作一闡述。8.2.1AT89C2051主要性能
AT89C2051是ATMEL公司生產(chǎn)的帶2K字節(jié)閃速可編程可擦除只讀存儲(chǔ)器(PEROM)的8位單片機(jī),它具有如下主要特性:(1)與MCS-51TM兼容;(2)內(nèi)部帶2KB可編程閃速存儲(chǔ)器;(3)壽命為1000次擦/寫循環(huán);(4)數(shù)據(jù)保留時(shí)間為10年;(5)工作電壓范圍為27V~6V;(6)全靜態(tài)工作頻率為0Hz~24MHz;(7)兩級(jí)程序存儲(chǔ)器鎖定;(8)128×8位內(nèi)部RAM;(9)15條可編程I/O線;(10)2個(gè)16位定時(shí)器/計(jì)數(shù)器;(11)5個(gè)兩級(jí)中斷源;(12)可編程全雙工串行UART通道;(13)直接對(duì)LED驅(qū)動(dòng)輸出;(14)片內(nèi)精確的模擬比較器;(15)片內(nèi)振蕩器和時(shí)鐘電路;(16)低功耗的休眠和掉電模式。8.2.2AT89C2051結(jié)構(gòu)
AT89C2051是一個(gè)有20個(gè)引腳的芯片,引腳配置如圖8―26所示,內(nèi)部結(jié)構(gòu)如圖8―27所示。與8051內(nèi)部結(jié)構(gòu)進(jìn)行對(duì)比后可發(fā)現(xiàn),AT89C2051減少了兩個(gè)對(duì)外端口(即P0、P2口),使它最大可能地減少了對(duì)外引腳,因而芯片尺寸有所減小。AT89C2051芯片的20個(gè)引腳功能為:
VCC
電源電壓。
GND
接地。
RST復(fù)位輸入。當(dāng)RST變?yōu)楦唠娖讲⒈3?個(gè)機(jī)器周期時(shí),所有I/O引腳復(fù)位至“1”。
圖8―26AT89C2051引腳配置圖8―27AT89C2051內(nèi)部結(jié)構(gòu)
XTAL1反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。
XTAL2來自反向振蕩放大器的輸出。
P1口8位雙向I/O口。引腳P1.2~P1.7提供內(nèi)部上拉,當(dāng)作為輸入并被外部下拉為低電平時(shí),它們將輸出電流(IIL),這是因內(nèi)部上拉的緣故。
P3口引腳P3.0~P3.5與P3.7為7個(gè)帶內(nèi)部上拉的雙向I/O引腳。P3.6在內(nèi)部已與片內(nèi)比較器輸出相連,不能作為通用I/O引腳訪問。表8―6P3口特殊功能8.2.3特殊功能寄存器(SFR)AT89C2051中特殊功能寄存器描述在表8―7中,它們共占用了19字節(jié),其功能與8051SFR功能相對(duì)應(yīng)。8.2.4程序存儲(chǔ)器的加密
AT89C2051片內(nèi)有2個(gè)鎖定位,可以編程(P),也可以不編程(U),從而得到3種鎖定位保護(hù)模式,見表8―8。表8―7AT89C2051的SFR及復(fù)位值表8―83種鎖定位保護(hù)模式8.2.5低功耗工作方式
AT89C2051有兩種低功耗工作方式:空閑方式與掉電方式。1)空閑方式(休眠方式)當(dāng)利用軟件使空閑方式位IDL(PCON.0)=1時(shí),單片機(jī)進(jìn)入空閑方式。此時(shí),CPU處于休眠狀態(tài),而片內(nèi)所有其他外圍設(shè)備保持工作狀態(tài),片內(nèi)RAM和所有特殊功能寄存器內(nèi)容保持不變。在空閑方式下,當(dāng)晶振fosc=12MHz、電源電壓VCC=6V時(shí),電源電流ICC從20mA降至5mA,而VCC=3V時(shí),ICC由5.5mA降至1mA。中斷或硬件復(fù)位可以終止空閑方式。當(dāng)空閑方式由硬件復(fù)位終止時(shí),CPU要從休眠處恢復(fù)程序的執(zhí)行,執(zhí)行2個(gè)機(jī)器周期后,內(nèi)部復(fù)位算法才起作用。此時(shí),硬件禁止訪問內(nèi)部RAM,但允許訪問端口引腳。為了防止休眠被復(fù)位終止時(shí)對(duì)端口引腳意外寫入的可能性,在生成空閑方式的指令后不應(yīng)緊跟對(duì)端口引腳的寫指令。如果不采用外部上拉,P1.0和P1.1應(yīng)置“0”;如果采用外部上拉,則應(yīng)置“1”。2)掉電方式掉電方式由掉電方式位PD(PCON.1)=1設(shè)置。此時(shí),振蕩器停止工作,設(shè)置掉電方式的指令成為最后執(zhí)行的1條指令,片內(nèi)RAM和特殊功能寄存器內(nèi)容保持不變。在掉電方式下,VCCmin=2V。當(dāng)VCC=6V時(shí),ICCmax=100μA;當(dāng)VCC=3V時(shí),ICCmax=20μA。退出掉電方式的唯一方法是硬件復(fù)位。硬件復(fù)位將重新定義特殊功能寄存器,但不影響片內(nèi)RAM。復(fù)位的保持時(shí)間應(yīng)足夠長(zhǎng),以便振蕩器能重新開始工作并穩(wěn)定下來。在VCC沒有恢復(fù)到正常工作電壓之前,不應(yīng)進(jìn)行復(fù)位。如果不采用外部上拉,P1.0和P1.1應(yīng)置“0”,否則置“1”。8.2.6閃速存儲(chǔ)器的編程一片新的AT89C2051,其片內(nèi)2KB的PEROM存儲(chǔ)陣列處于擦除狀態(tài)(即為FFH),此時(shí)可對(duì)其編程。存儲(chǔ)陣列一次編程1字節(jié),若編程任何非空字節(jié)時(shí),需對(duì)整個(gè)存儲(chǔ)陣列進(jìn)行片擦除。編程時(shí),AT89C2051利用內(nèi)部PEROM地址計(jì)數(shù)器提供尋址存儲(chǔ)陣列的地址信號(hào),該地址計(jì)數(shù)器在RST上升沿復(fù)位至000H,引腳XTAL1所施加的正向連續(xù)脈沖使地址計(jì)數(shù)器不斷加1。RST上出現(xiàn)12V(編程電源VPP)高電壓時(shí),預(yù)示著1字節(jié)的編程操作開始。這時(shí)P3口提供編程所需的控制與狀態(tài)信號(hào),P1口為數(shù)據(jù)通道,如圖8―28所示。對(duì)這些端口或引腳按圖8―29時(shí)序施加正確的控制組合就可通過P1口將數(shù)據(jù)編程到PEROM中。圖8―28編程閃速存儲(chǔ)器
AT89C2051根據(jù)引腳RST與P3.2~P3.7的狀態(tài)組合可以產(chǎn)生5種編程模式,見表8―9。1.編程(寫代碼數(shù)據(jù))
AT89C2051編程按下述步驟進(jìn)行:(1)上電過程:VCC加電,置RST為′L′(低電平),XTAL1為′L′,其他所有引腳懸空,等待10ms以上;(2)置RST為′H′(高電平),P3.2為′H′;(3)在引腳P3.3、P3.4、P3.5、P3.7上施加相應(yīng)的邏輯電平,選定某種編程模式;
表8―95種編程模式(4)地址信號(hào)由內(nèi)部地址計(jì)數(shù)器提供(初始值為000H),欲寫入該地址中的數(shù)據(jù)加至引腳P1.0~P1.7上;(5)將RST電平升至12V啟動(dòng)編程;(6)給P3.2施加一負(fù)脈沖,則編程PEROM存儲(chǔ)陣列或鎖定位的1字節(jié),字節(jié)寫周期采用自定時(shí),通常為12ms;(7)若要校驗(yàn)已編程數(shù)據(jù),將RST從12V降至邏輯電平′H′,并置引腳P3.3~P3.7為校驗(yàn)?zāi)J诫娖?,輸出?shù)據(jù)即可在P1口讀??;(8)編程下一個(gè)地址字節(jié),對(duì)XTAL1施加一正脈沖,內(nèi)部地址計(jì)數(shù)器加1,然后在P1口上加載欲寫入的新數(shù)據(jù);(9)重復(fù)步驟(5)~(8),改變數(shù)據(jù),遞增地址計(jì)數(shù)器直到2KB存儲(chǔ)陣列全部編程或目標(biāo)文件結(jié)束;(10)下電過程:置XTAL1為′L′,RST為′L′,其他I/O引腳懸空,VCC下電。當(dāng)前次編程未結(jié)束時(shí),不允許開始下一次編程。如何確定一次編程操作是否結(jié)束,AT89C2051提供了以下兩種方法。1)數(shù)據(jù)查詢特性
AT89C2051具有通過數(shù)據(jù)查詢來檢測(cè)寫周期結(jié)束的特性。2)準(zhǔn)備好/忙信號(hào)在編程期間,引腳P3.1(RDY/
)提供了編程狀態(tài)。2.校驗(yàn)(讀代碼數(shù)據(jù))進(jìn)行編程校驗(yàn)時(shí),AT89C2051芯片各引腳作用如圖8―30所示。如果鎖定位LB1和LB2未被編程,則可通過下述步驟進(jìn)行校驗(yàn):(1)使RST從′L′變?yōu)椤銱′,地址計(jì)數(shù)器復(fù)位到000H;
(2)提供適當(dāng)?shù)目刂菩盘?hào)(見圖8―29時(shí)序),從P1口讀取數(shù)據(jù)與編程寫入數(shù)據(jù)作比較;(3)給XTAL1施加正脈沖,地址計(jì)數(shù)器加1;(4)從P1口讀1個(gè)代碼數(shù)據(jù)與編程寫入數(shù)據(jù)作比較;(5)重復(fù)步驟(3)、(4)直至整個(gè)存儲(chǔ)陣列校驗(yàn)完畢。圖8―30校驗(yàn)閃速存儲(chǔ)器3.寫鎖定位寫鎖定位完成對(duì)閃速存儲(chǔ)器加密。按前述編程模式表操作:先選擇寫鎖定位模式,然后將RST升至12V,P3.2施加編程脈沖,即可將鎖定位寫入(改變模式選擇輸入P3.3、P3.4、P3.5、P3.7的輸入組合來實(shí)現(xiàn)鎖定位LB1、LB2的寫入)。不能直接校驗(yàn)鎖定位,鎖定位的校驗(yàn)要通過觀察其特性是否被允許來完成。4.芯片擦除當(dāng)編程模式選擇為芯片擦除模式并使P3.2引腳上施加10ms的脈沖后,整個(gè)PEROM(2KB)和2個(gè)鎖定位即可被擦除。擦除后,存儲(chǔ)陣列全為FFH。5.讀特征字節(jié)特征字節(jié)表示AT89C系列芯片的基本特性,由3或4字節(jié)組成,存儲(chǔ)于程序存儲(chǔ)區(qū)的低端。AT89C2051芯片的特征字節(jié)位于地址000H、001H、002H中,當(dāng)選擇讀特征字節(jié)模式(P3.3=P3.4=P3.5=P3.7=“L”)并采用類似校驗(yàn)步驟讀取數(shù)據(jù)時(shí),即可獲得AT89C2051芯片的特征字:(000H)=1EH表示該產(chǎn)品由ATMEL生產(chǎn);(001H)=21H表示是89C1051/89C2051;(002H)=FFH表示12V編程。8.2.7在線與遠(yuǎn)程編程
AT89C2051除了可以按前述脫機(jī)編程外,還可以實(shí)現(xiàn)在線編程與遠(yuǎn)程編程。1.在線編程由于AT89C2051編程時(shí)需要利用RST、XTAL1、P1口、P3口提供控制信號(hào)與加載編程數(shù)據(jù),而這一要求又常與用戶系統(tǒng)對(duì)這些引腳的要求或操作沖突,因此,在線編程不能直接在用戶工作電路中進(jìn)行,而需要通過特殊電路處理才能實(shí)現(xiàn)。圖8―31為AT89C2051實(shí)現(xiàn)在線編程的示例,該示例采用2選1的方法實(shí)現(xiàn)連接線路的切換,達(dá)到在線編程目的。圖8―31AT89C2051在線編程示例2.遠(yuǎn)程編程圖8―32為利用電話線實(shí)現(xiàn)遠(yuǎn)程編程的示意圖。從圖8―32中可看出,為了實(shí)現(xiàn)遠(yuǎn)程編程,首先需要設(shè)計(jì)一個(gè)編程器。該編程器由CPU控制,不僅能實(shí)現(xiàn)對(duì)用戶系統(tǒng)中AT89C2051(或其它AT89C單片機(jī))進(jìn)行編程,而且能通過內(nèi)置的調(diào)制解調(diào)器(MODEM)實(shí)現(xiàn)遠(yuǎn)程通信。圖8―32通過電話線遙控編程8.3MC68HC11A8單片機(jī)8.3.1MC68HC11A8MCU概述
Motorola公司自1974年推出MC6800微處理器(MPU)后,便不斷地發(fā)展自己系列的微計(jì)算機(jī)產(chǎn)品與單片機(jī)(又稱微控制器MCU)產(chǎn)品。在MC6800的基礎(chǔ)上,Motorola公司先后開發(fā)出M6801、M6805系列單片機(jī),并通過對(duì)M6801進(jìn)行更新?lián)Q代,于1986年開始生產(chǎn)M68HC11系列單片機(jī)。M68HC11系列單片機(jī)是目前功能較強(qiáng)的8位MCU,它采用先進(jìn)的15微米HCMOS工藝,具有高速度、高密度、低功耗等特點(diǎn),其典型代表為MC68HC11A8MCU。
MC68HC11A8是具有先進(jìn)的片內(nèi)外圍能力的增強(qiáng)型8位MCU,利用新的設(shè)計(jì)技術(shù)使正??偩€速度達(dá)到2MHz;利用全靜態(tài)設(shè)計(jì)允許以低至直流的頻率工作,進(jìn)而減小功耗;HCMOS技術(shù)使MC68HC11A8的尺寸更小、速度更高、功耗更低及抗干擾能力更強(qiáng)。
MC68HC11A8的片內(nèi)存儲(chǔ)器系統(tǒng)包括8KBROM、512字節(jié)EEPROM、256字節(jié)RAM;片內(nèi)提供的主要外圍功能有8通道8位A/D轉(zhuǎn)換器、異步串行通信接口(SCI)、同步串行外圍接口(SPI)、16位自由運(yùn)行定時(shí)器系統(tǒng)(具有3條輸入捕捉線、5條輸出比較線和實(shí)時(shí)中斷功能)及8位脈沖累加器子系統(tǒng)(能計(jì)數(shù)外部事件或測(cè)量外部事件周期)。圖8―33MC68HC11A8MCU框圖
MC68HC11A8的片內(nèi)存儲(chǔ)器系統(tǒng)包括8KBROM、512字節(jié)EEPROM、256字節(jié)RAM;片內(nèi)提供的主要外圍功能有8通道8位A/D轉(zhuǎn)換器、異步串行通信接口(SCI)、同步串行外圍接口(SPI)、16位自由運(yùn)行定時(shí)器系統(tǒng)(具有3條輸入捕捉線、5條輸出比較線和實(shí)時(shí)中斷功能)及8位脈沖累加器子系統(tǒng)(能計(jì)數(shù)外部事件或測(cè)量外部事件周期)。表8―10M68HC11系列單片機(jī)8.3.2MC68HC11A8引腳與連接1.引腳功能
MC68HC11A8有52條引腳PLCC與48條引腳DIP兩種封裝,圖8―34說明了MC68HC11A8的引腳配置。1)電源引腳(VDD和VSS)VDD為正電源(5V)輸入,VSS為地線。為了防止MCU引腳在電平轉(zhuǎn)換時(shí)可能引起較大的電流尖峰,典型的擴(kuò)展模式系統(tǒng)應(yīng)該在電源與地線之間加1μF與001μF的旁路電容。2)模式選擇引腳(MODB/VSTBY和MODA/)MODB/VSTBY是模式選擇輸入與提供備用RAM電源的雙功能引腳,MODA/
是另一個(gè)模式選擇輸入與提供指令裝入狀態(tài)輸出的雙功能引腳。MCU復(fù)位時(shí),由硬件模式選擇機(jī)構(gòu)根據(jù)MODA和MODB引腳狀態(tài)確定MCU工作模式,表8―11概述了模式引腳的作用及有關(guān)的模式控制位。在備用狀態(tài)或VDD低于規(guī)定工作電壓時(shí),VSTBY取代VDD為RAM提供電源,既可以保持片內(nèi)RAM內(nèi)容,又可以有效地降低功耗。在每條指令執(zhí)行的第一個(gè)E周期內(nèi),漏極開路的輸出有效的低電平,指示每條指令執(zhí)行的開始,該信號(hào)可以作為診斷輸出信號(hào)使用。圖8―34MC68HC11A8引腳配置表8―11硬件模式選擇3)晶振和時(shí)鐘引腳(EXTAL、XTAL和E)
振蕩器引腳能與外部晶體或外部CMOS兼容時(shí)鐘源相連,所加頻率應(yīng)大于所需要的總線頻率(E時(shí)鐘速率)的4倍。E時(shí)鐘為總線頻率時(shí)鐘輸出,它是基本的定時(shí)參考信號(hào)。只要振蕩器工作,E時(shí)鐘便以四分之一晶體頻率自由運(yùn)行(STOP停止所有時(shí)鐘)。當(dāng)使用外部時(shí)鐘時(shí),時(shí)鐘信號(hào)輸入到EXTAL。在XTAL端與地之間接1個(gè)10~100kΩ負(fù)載電阻,以減少無(wú)線電頻率干擾(RFI)噪聲的散射。
Rf=1~20MΩC1=5~25pFC2=5~25pF圖8―35晶體連接方法4)復(fù)位引腳()
在低電平時(shí)有效,屬雙向控制信號(hào):作為輸入,它將MC68HC11A8初始化到啟動(dòng)狀態(tài);作為輸出,它指示由時(shí)鐘監(jiān)視電路或計(jì)算機(jī)正常工作(COP)看門狗電路檢測(cè)出的內(nèi)部故障。該信號(hào)與早期MCU使用的信號(hào)有很大的不同。一種簡(jiǎn)單、廉價(jià)、低電壓禁止(LVI)器件MC34064或MC34164用在的自動(dòng)控制中。MC34064的漏極開路輸出可直接驅(qū)動(dòng)MC68HC11A8的引腳。圖8―36是一個(gè)典型的復(fù)位電路。圖8―36一種典型的復(fù)位電路5)中斷引腳()
引腳提供了在復(fù)位初始化后請(qǐng)求非屏蔽中斷的手段。復(fù)位期間,條件碼寄存器(CCR)中的X位置位,所有中斷在MCU軟件允許之前為屏蔽狀態(tài)。因?yàn)檩斎霝殡娖接行В运梢杂?個(gè)外部上拉電阻連接到多中斷源線或網(wǎng)絡(luò)上。經(jīng)常用作電源丟失檢測(cè)中斷。6)A/D參考電壓和口E引腳(VREFL,VREFH,PE7~PE0)VREFH和VREFL引腳為A/D轉(zhuǎn)換器電路提供參考電壓,它們一般通過低通濾波網(wǎng)絡(luò)連接到VDD和VSS上,以便使邏輯電源上的噪聲與敏感的模擬測(cè)量隔離。為使A/D足夠準(zhǔn)確,VREFL和VREFH之間的電壓差至少為25V,低于該值將產(chǎn)生較大誤差,但轉(zhuǎn)換器仍繼續(xù)工作。7)定時(shí)器口A引腳口A包括3個(gè)輸入引腳、4個(gè)輸出引腳和1個(gè)雙向引腳。其中輸入引腳(PA0/IC3、PA1/IC2、PA2/IC1)能作為邊沿觸發(fā)的定時(shí)器輸入捕捉引腳;4個(gè)輸出引腳(PA3/OC5/OC1、PA4/OC4/OC1、PA5/OC3/OC1、PA6/OC2/OC1)可作為主定時(shí)器輸出比較引腳,當(dāng)使輸出比較功能允許時(shí),相應(yīng)引腳不能用于通用輸出,輸出比較1(OC1)和/或另一個(gè)輸出比較控制這4個(gè)輸出引腳。PA7/PAI/OC1可以作為通用I/O引腳、脈沖累加器輸入或OC1輸出引腳。8)串行口D引腳口D包括6個(gè)能獨(dú)立設(shè)置I/O方向的通用雙向I/O引腳。當(dāng)使串行通信接口(SCI)接收器允許時(shí),PD0/RXD變?yōu)閷S糜赗XD功能的輸入引腳。當(dāng)使SCI發(fā)送器允許時(shí),PD1/TXD變?yōu)閷S糜赥XD功能的輸出引腳。當(dāng)使串行外圍接口(SPI)系統(tǒng)允許時(shí),PD2/MISO、PD3/MOSI、PD4/SCK和PD5/
變?yōu)閷S糜赟PI功能的引腳,但PD5/SS
引腳仍能通過設(shè)置相應(yīng)的DDRD5位作為通用輸出使用。9)口B、口C、STRA、STRB引腳當(dāng)MCU以單片模式工作時(shí),這18個(gè)引腳用于通用I/O;當(dāng)采用擴(kuò)展模式時(shí),這18個(gè)引腳變?yōu)榫哂蠥S和讀/寫(R/)控制線的復(fù)用地址/數(shù)據(jù)總線。表8―12總結(jié)了這些引腳的功能。表8―12口B、口C、STRA、STRB引腳2.不用引腳的處理因?yàn)镸C68HC11A8為CMOS器件,所以不用的輸入引腳必須要連接上拉或下拉電阻,以確保操作的正確和可靠。3.典型的單片模式系統(tǒng)連接圖8―37是一個(gè)簡(jiǎn)單的單片模式系統(tǒng)原理圖,它能工作于正常單片模式或特殊引導(dǎo)模式。該電路可作為任何單片模式應(yīng)用的基礎(chǔ),所有未用的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)境藝術(shù)對(duì)商業(yè)空間氛圍的影響及室內(nèi)規(guī)劃
- 環(huán)境應(yīng)急響應(yīng)中的實(shí)時(shí)監(jiān)測(cè)與預(yù)警系統(tǒng)
- 湖北省其他酒制造行業(yè)企業(yè)排名統(tǒng)計(jì)報(bào)告
- 兒科護(hù)理模考試題(附參考答案)
- 深圳職業(yè)技術(shù)大學(xué)《簡(jiǎn)筆畫》2023-2024學(xué)年第二學(xué)期期末試卷
- 德宏師范高等??茖W(xué)?!犊谇徽麑W(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 大慶師范學(xué)院《生物制藥綜合實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 用創(chuàng)意重塑辦公空間的金融服務(wù)體驗(yàn)
- 薪酬管理模擬題與參考答案
- 知識(shí)產(chǎn)權(quán)保護(hù)在文化創(chuàng)意產(chǎn)業(yè)中的地位
- 幼兒園隊(duì)列隊(duì)形訓(xùn)練培訓(xùn)
- 《汽車電氣設(shè)備構(gòu)造與維修》 (第4版) 課件 第四章 發(fā)動(dòng)機(jī)電器
- 部編版語(yǔ)文六年級(jí)下冊(cè)第五單元大單元教學(xué)設(shè)計(jì)核心素養(yǎng)目標(biāo)
- 智能環(huán)境設(shè)備的智能監(jiān)測(cè)與環(huán)境保護(hù)
- T-SDASTC 006-2023 眩暈病中西醫(yī)結(jié)合基層診療指南
- 魯濱遜漂流記荒島生活的冒險(xiǎn)與探索人性的真實(shí)展現(xiàn)
- 2024年全國(guó)小學(xué)生英語(yǔ)競(jìng)賽初賽(低年級(jí)組)試題及參考答案
- 醫(yī)院電梯引導(dǎo)服務(wù)方案
- 嶺南膏方規(guī)范
- 懷孕期間體重管理課件
- 2023黑龍江氣象局所屬事業(yè)單位招聘畢業(yè)生5名筆試參考題庫(kù)(共500題)答案詳解版
評(píng)論
0/150
提交評(píng)論