




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
MCS-51單片機(jī)系統(tǒng)組成及擴(kuò)展應(yīng)用5.1MCS-51單片機(jī)最小應(yīng)用系統(tǒng)的構(gòu)成最小應(yīng)用系統(tǒng)是指能維持單片機(jī)運(yùn)行的最簡(jiǎn)單配置系統(tǒng)。它常用作一些簡(jiǎn)單的控制系統(tǒng),如開關(guān)狀態(tài)的輸入/輸出控制、時(shí)序控制等。這種應(yīng)用系統(tǒng)的硬體組成十分簡(jiǎn)單,對(duì)於片內(nèi)有ROM的單片機(jī)(如8051),只要配上時(shí)鐘電路、複位電路和電源就可以構(gòu)成最小應(yīng)用系統(tǒng),如圖5-1所示。對(duì)於片內(nèi)無(wú)ROM的單片機(jī)(如8031),除了外加時(shí)鐘電路、複位電路和電源外,還必須擴(kuò)展外部程式記憶體(ROM或EPROM),關(guān)於外部記憶體的擴(kuò)展問(wèn)題,將在下節(jié)詳細(xì)介紹。電路連接原理如圖5-2所示。下一頁(yè)返回5.1MCS-51單片機(jī)最小應(yīng)用系統(tǒng)的構(gòu)成5.1.1單片機(jī)的時(shí)鐘電路時(shí)鐘電路提供時(shí)鐘給電腦的各個(gè)部件,使各個(gè)部件按照一定的時(shí)序有條不紊的工作。時(shí)鐘的快慢決定著電腦的工作節(jié)奏。下麵以8051為例,介紹MCS-5l系列單片機(jī)的時(shí)鐘電路組成形式。8051內(nèi)部有一個(gè)用於構(gòu)成振盪器的高增益反相放大器,如圖5-3a所示。引腳XTAL1為反相器的輸入端,引腳XTAL2為反相器的輸出端,它們均在晶片的外部。當(dāng)引腳XTAL1和XTAL2之間跨接晶振和微調(diào)電容,可以和晶片內(nèi)部的放大器構(gòu)成一個(gè)穩(wěn)定的自激振盪電路,在引腳XTAL2上可以輸出3V左右的高頻正弦波,於是形成了單片機(jī)的時(shí)鐘信號(hào),這種連接方式稱為內(nèi)部時(shí)鐘源方式。電容器C1和C2的主要作用是幫助晶振起振,其大小對(duì)振盪頻率有微調(diào)作用,在實(shí)際電路中,C1與C2常取30pF。振盪頻率(fosc)主要由石英晶振的頻率確定,晶體的振盪頻率範(fàn)圍是1.2~12MHz,其典型值為12MHz和11.0592MHz。上一頁(yè)下一頁(yè)返回5.1MCS-51單片機(jī)最小應(yīng)用系統(tǒng)的構(gòu)成8051內(nèi)部工作時(shí),也可由外部時(shí)鐘信號(hào)提供,這種連接方式稱為外部時(shí)鐘源方式。原理如圖5-3b所示。此時(shí)外部的時(shí)鐘信號(hào)由XTAL2引腳引入,由於XTAL2端邏輯電平不是TTL型的,故需外接一上拉電阻。另外,外接信號(hào)應(yīng)為時(shí)鐘頻率低於12MHz的方波信號(hào)。對(duì)於80C51的外部時(shí)鐘接法與8051不同,其外部時(shí)鐘信號(hào)由XTALl腳引入,而XTAL2腳懸空。其結(jié)構(gòu)如圖5-4所示。
在多片單片機(jī)組成的系統(tǒng)中,為了各單片機(jī)之間時(shí)鐘信號(hào)的同步,應(yīng)當(dāng)引入唯一的公用外部脈衝信號(hào)作為各單片機(jī)的時(shí)鐘信號(hào)。上一頁(yè)下一頁(yè)返回5.1MCS-51單片機(jī)最小應(yīng)用系統(tǒng)的構(gòu)成5.1.2單片機(jī)的複位電路在單片機(jī)應(yīng)用系統(tǒng)中,除單片機(jī)晶片本身需要複位、外部擴(kuò)展的I/O介面電路等需要複位外,對(duì)於單片機(jī)程式也必須初試化後才能執(zhí)行。因此一個(gè)單片機(jī)系統(tǒng)需要同步複位信號(hào),即單片機(jī)複位後,CPU開始工作,此時(shí)片外的有關(guān)擴(kuò)展晶片外部時(shí)鐘也要完成複位操作,以保證CPU有效地對(duì)外圍晶片進(jìn)行初始化編程。單片機(jī)的複位方式有上電複位和手動(dòng)按鈕複位兩種,如圖5-5所示。上一頁(yè)下一頁(yè)返回5.1MCS-51單片機(jī)最小應(yīng)用系統(tǒng)的構(gòu)成其中圖5-5a是最簡(jiǎn)單的複位電路,在VCC和RST之間連接一容量為22μF左右的電容,利用RST內(nèi)部複位下拉電阻RRST(40∽220KΩ)就構(gòu)成了複位電路。當(dāng)電源接通瞬間,由於電容C上無(wú)存儲(chǔ)電量,因此電容端電壓極小,複位電阻RRST上的電壓接近電源電壓,即RST端口為高電平。在電容充電過(guò)程中,RST端電壓逐漸下降,當(dāng)RST端電位小於某一數(shù)值後,CPU脫離複位狀態(tài),進(jìn)入程式執(zhí)行狀態(tài)。只要電容C容量足夠大,保證RST高電平有效時(shí)間大於24個(gè)振盪週期,CPU就能可靠複位。上一頁(yè)下一頁(yè)返回5.1MCS-51單片機(jī)最小應(yīng)用系統(tǒng)的構(gòu)成圖5-5b複位電路與圖5-5a類似,只是增加了外接電阻R和二極體VD。二極體VD的作用在於停電後,給出電容C提供了迅速放電通路,保證再上電時(shí)RST為高電平,使CPU可靠複位。正常工作時(shí),二極體VD反偏,對(duì)電路沒(méi)有影響,而斷電後,VCC逐漸下降,當(dāng)VCC=0時(shí),相當(dāng)於VCC端與地等電位,這時(shí)電容C通過(guò)VD迅速放電,放電通路為C正極—電源VCC端(此時(shí)與地等電位)—二極體VD正極—二極體VD負(fù)極—C負(fù)極,電容恢復(fù)到無(wú)電量的初始狀態(tài),為下次上電複位做好準(zhǔn)備。上一頁(yè)下一頁(yè)返回5.1MCS-51單片機(jī)最小應(yīng)用系統(tǒng)的構(gòu)成圖5-5c增加了手動(dòng)複位按鈕,以便死機(jī)時(shí)通過(guò)複位按鈕人工複位,即我們常說(shuō)的“重新起動(dòng)”,簡(jiǎn)稱“重起”。複位按鈕按下後,電容C通過(guò)R2放電,當(dāng)電容C放電結(jié)束後,RST端的電位由R2、R1分壓比決定,由於R2R1,因此RST為高電平,CPU進(jìn)入複位狀態(tài),鬆手後,電容充電,RST端電壓下降,經(jīng)過(guò)一定的延時(shí),CPU脫離複位狀態(tài)。R2的作用在於限制按鈕按下時(shí)電容C的瞬間放電電流,避免產(chǎn)生火花,以保護(hù)按鈕的觸點(diǎn)。MCS-51系列單片機(jī)受到管腳的限制,沒(méi)有對(duì)外專用的地址匯流排和數(shù)據(jù)匯流排。當(dāng)系統(tǒng)擴(kuò)展記憶體、I/O口及所需的週邊晶片時(shí),需要將單片機(jī)的相關(guān)端口的外部連線變?yōu)橐话阄C(jī)所具有的三匯流排結(jié)構(gòu)形式。本節(jié)主要介紹記憶體的擴(kuò)展。上一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展5.2.1MCS-5l系列單片機(jī)的片外匯流排結(jié)構(gòu)當(dāng)系統(tǒng)要求擴(kuò)展時(shí),為了便於與各種晶片相連接,應(yīng)把單片機(jī)外部連線變?yōu)橐话阄C(jī)所具有的三匯流排結(jié)構(gòu)形式,即地址匯流排、數(shù)據(jù)匯流排、控制匯流排。MCS-5l系列單片機(jī)的片外引腳可構(gòu)成如圖5-6所示的三匯流排結(jié)構(gòu),所有的週邊晶片都將通過(guò)這三匯流排進(jìn)行擴(kuò)展。1.?dāng)?shù)據(jù)匯流排(DB)數(shù)據(jù)匯流排由P0口提供,其寬度為一個(gè)位元組(8位)。該口是三態(tài)雙向口,是應(yīng)用系統(tǒng)中使用最頻繁的通道,它不僅傳送數(shù)據(jù)資訊,而且還與控制信號(hào)配合,傳送低位位元組地址資訊。數(shù)據(jù)匯流排要連到多個(gè)週邊晶片上,在某一時(shí)刻只有端口地址與單片機(jī)發(fā)出的地址相符的晶片才能與P0口通信。下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展2.地址匯流排(AB)地址匯流排由P0口和P2口提供,其寬度為兩個(gè)位元組(16位),故可尋址範(fàn)圍為216B=64KB。其中地址匯流排的低8位A7~A0由P0口經(jīng)地址鎖存器提供,P2口直接提供地址匯流排的高8位A15~A8。由於P0口是數(shù)據(jù)、地址分時(shí)複用的,P0口先輸出低8位地址資訊,待地址資訊穩(wěn)定並可靠鎖存後,P0口再做數(shù)據(jù)匯流排使用。所以P0口輸出的低8位地址必須用鎖存器進(jìn)行鎖存。由於P2口一直提供高8位地址,故不需要外加地址鎖存器。P0、P2口在系統(tǒng)擴(kuò)展中用作地址線後,便不能再作為一般I/O口使用。上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展3.控制匯流排(CB)控制匯流排包括片外系統(tǒng)擴(kuò)展用控制線和片外信號(hào)對(duì)單片機(jī)的控制線。系統(tǒng)擴(kuò)展用控制線有、、、和ALE。(1)、用於片外數(shù)據(jù)記憶體的讀/寫控制。當(dāng)執(zhí)行片外數(shù)據(jù)記憶體操作指令MOVX時(shí),這兩個(gè)信號(hào)分別自動(dòng)生成。(2)用於片外程式記憶體的讀控制。執(zhí)行片外程式記憶體讀操作指令(查表指令)MOVC時(shí)(=O),該信號(hào)自動(dòng)生成。
上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展(3)ALE用於鎖存P0口輸出的低8位地址的控制線。通常ALE在P0口輸出地址期間,用下降沿控制鎖存器對(duì)地址進(jìn)行鎖存。(4)用於選擇片內(nèi)或片外程式記憶體。當(dāng)=O時(shí),只訪問(wèn)片外程式記憶體。=1時(shí),將訪問(wèn)片內(nèi)程式記憶體,當(dāng)片內(nèi)程式記憶體容量不夠存儲(chǔ)時(shí),才會(huì)訪問(wèn)外部記憶體。MCS-5l系列單片機(jī)中的8031片內(nèi)無(wú)程式記憶體,在實(shí)際應(yīng)用中,其通常接地,以便訪問(wèn)外部記憶體。上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展5.2.2MCS-5l系列單片機(jī)的系統(tǒng)擴(kuò)展能力如前所述,單片機(jī)地址線為16位,因此在片外可擴(kuò)展的記憶體最大容量為64KB,地址為0000H~FFFFH。由於對(duì)片外數(shù)據(jù)記憶體和程式記憶體的訪問(wèn)使用不同的指令及控制信號(hào),所以允許兩者地址重合,即對(duì)於8051系列單片機(jī)來(lái)說(shuō),片外可擴(kuò)展的程式記憶體與數(shù)據(jù)記憶體的最大容量均為64KB。片外數(shù)據(jù)記憶體地址為0000H~FFFFH。當(dāng)片內(nèi)程式記憶體與片外程式記憶體的訪問(wèn)使用相同的操作指令,對(duì)兩者的選擇則靠系統(tǒng)控制線來(lái)實(shí)現(xiàn)。當(dāng)=O時(shí),選擇片外程式記憶體,即無(wú)論片內(nèi)有無(wú)程式記憶體,片外程式記憶體的地址可從0000H開始進(jìn)行編址。當(dāng)=1時(shí),選片內(nèi)程式記憶體,若片內(nèi)程式記憶體容量為4KB,則其地址為0000H~0FFFH,片外程式記憶體地址只能從1000H開始編址。上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展5.2.3MCS-5l系列單片機(jī)常用記憶體擴(kuò)展晶片1.程式記憶體程式記憶體是用來(lái)存放程式代碼的,也存放程式常數(shù)。由於單片機(jī)的應(yīng)用系統(tǒng)通常是專用的微機(jī)系統(tǒng),一經(jīng)開發(fā)完畢,其軟體就不再改變,所以常用半導(dǎo)體只讀記憶體EPROM和EEPROM作為單片機(jī)的程式記憶體。程式記憶體通??捎肦OM來(lái)表示。(1)EPROM通常均採(cǎi)用標(biāo)準(zhǔn)晶片:2716(2K×8),2732(4K×8),2764(8K×8),27128(16K×8),27256(32K×8),以及27512(64K×8)。其中以2716為例,2K×8代表晶片存儲(chǔ)單元為2K個(gè),每個(gè)存儲(chǔ)單元可儲(chǔ)存一個(gè)位元組。其餘依此類推。常用的EPROM電路有2716、2732、2764、27128、27256、27512等,圖5-7給出它們的引腳圖。上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展圖中涉及的引腳符號(hào)功能如下:Ai~A0為地址輸入線,i=15~10;D7~D0為三態(tài)數(shù)據(jù)匯流排,讀時(shí)為數(shù)據(jù)輸出線,寫時(shí)為數(shù)據(jù)輸入線,維持或禁止編程時(shí)為高阻態(tài);為片選信號(hào)端,低電平有效;為編程脈衝輸入線,通常為高電平;為讀選通(輸出允許)信號(hào)輸入線,低電平有效;Vpp為編程電源輸入線,其值因晶片型號(hào)和製造廠商而異;Vcc為主電源輸入線,一般為+5V;GND為接地線。(2)EEPROM常用的有兩種類型晶片。1)+21V電壓寫入:2816(2K×8),2817(2K×8)。2)+5V電壓寫入:2816A(2K×8),2817A(2K×8),2864(8K×8)。EEPROM晶片常用的EEPROM有2817、2864等,圖5-8是2817A和2864A的引腳圖。上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展圖中所涉及的引腳符號(hào)的功能如下:Ai~A0為地址輸入線,i=10/12(2817A/2864A);D7~DO為雙向三態(tài)數(shù)據(jù)線;為片選信號(hào)輸入線,低電平有效;為讀選通信號(hào)輸入線,低電平有效;為寫選通信號(hào)輸入線,低電平有效;RDY/為2817A的狀態(tài)輸出線,在寫操作時(shí),其為低電平表示“忙”,寫入完畢該線為高電平,表示“準(zhǔn)備好”;Vcc為主電源+5V端口;GND為接地端。EPROM、EEPROM等都可作為單片機(jī)的片外程式記憶體,但由於EPROM價(jià)格較低,性能穩(wěn)定,所以應(yīng)用得最為普遍。上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展2.?dāng)?shù)據(jù)記憶體數(shù)據(jù)記憶體用於存儲(chǔ)現(xiàn)場(chǎng)採(cǎi)集的原始數(shù)據(jù)、運(yùn)算結(jié)果等,所以,通常採(cǎi)用半導(dǎo)體RAM作為片外數(shù)據(jù)記憶體,由於EEPROM可進(jìn)行改寫,它也可用作片外數(shù)據(jù)記憶體。常見(jiàn)的半導(dǎo)體RAM有:(1)SRAM常用的有6116(2K×8),6264(8K×8),62256(32K×8)。(2)DRAM常用的有2164(64K×1)。(3)iRAM常用的有2186。上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展
目前,常用的SRAM電路有6116、6264、62256等,它們的引腳排列如圖5-9所示,圖中涉及的引腳符號(hào)功能如下:Ai~A0為地址輸入線,i=10/12/14(6116/6264/62256);D7~D0:三態(tài)雙向數(shù)據(jù)線;()為片選信號(hào)輸入線,低電平有效;為讀選通信號(hào)(允許讀)輸入線,低電平有效;為寫選通信號(hào)(允許寫)輸入線,低電平有效;Vcc為工作電源+5V端口;GND為接地端;CE2:6264的片選信號(hào)輸入線,高電平有效,可用於掉電保護(hù)。上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展雖然DRAM及EEPROM也可用作片外數(shù)據(jù)記憶體,但DRAM需要定時(shí)刷新,EEPROM價(jià)格高,速度慢,因此使用上受到很大的限制。所以,通常數(shù)據(jù)記憶體可用RAM來(lái)表示。3.地址鎖存器地址鎖存器一般可選用帶三態(tài)緩衝輸出的8位鎖存器74LS373和8282。圖5-10示了這兩種鎖存器的引腳圖。74LS373和8282都可簡(jiǎn)化成圖5-11所示的結(jié)構(gòu),引腳符號(hào)功能如下:D7~D0為三態(tài)門輸入端;Q7~Q0為三態(tài)門輸出端;GND為接地端;Vcc為電源端;為三態(tài)門使能端,=0,三態(tài)門正常輸出,=1,三態(tài)門輸出高阻態(tài);G(STB)為8位鎖存器的控制端,當(dāng)G(STB)=1,則輸出跟隨輸入(即鎖存器透明),當(dāng)G(STB)=0,則輸出保持不變,即將D7~D0的狀態(tài)存入Q7~Q0。表5-1列出這兩種鎖存器的功能表。上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展5.2.4記憶體的擴(kuò)展5.2.4.1記憶體擴(kuò)展的基本方式在MCS-51系列單片機(jī)應(yīng)用系統(tǒng)的擴(kuò)展中,最重要的是確定記憶體三匯流排與單片機(jī)三匯流排之間的連接方式,即確定記憶體地址匯流排與單片機(jī)地址匯流排的連接方式,記憶體數(shù)據(jù)匯流排與單片機(jī)數(shù)據(jù)匯流排的連接方式,記憶體控制線(讀/寫控制信號(hào)、片選信號(hào)、輸出允許信號(hào))與單片機(jī)相應(yīng)控制線的連接方式。其中,根據(jù)單片機(jī)地址匯流排與記憶體的不同連接方式,將記憶體的擴(kuò)展方式分為高位地址解碼法和線選法。在高位地址解碼法中,又可分為全解碼法和部分解碼法兩種。上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展1.全解碼法當(dāng)系統(tǒng)中記憶體的晶片不只一個(gè)時(shí),常採(cǎi)用高位地址解碼法,即將單片機(jī)地址匯流排的低位地址作為記憶體的片內(nèi)地址信號(hào),與記憶體的地址匯流排直接相連。單片機(jī)的高位地址線經(jīng)過(guò)解碼器解碼後產(chǎn)生的信號(hào)作為不同記憶體晶片的片選信號(hào)或擴(kuò)展I/O口的選通信號(hào)。如果單片機(jī)上所有的地址線均參與地址解碼,系統(tǒng)中任一記憶體晶片的任一存儲(chǔ)單元將有唯一的地址編碼,那麼這種高位地址解碼法稱為全解碼法,如圖5-13所示。上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展在圖5-13所示的電路中,單片機(jī)的地址匯流排寬度為16位,最大尋址範(fàn)圍為64KB。記憶體IC1及IC2的地址線A13~A0分別連接到CPU的低14位地址線A13~A0上,IC1及IC2的片選信號(hào)分別連接到IC3的解碼器輸出端和。IC1及IC2的輸出允許與單片機(jī)的程式記憶體選通信號(hào)相連。IC3的解碼允許端接地,使IC3處?kù)督獯a輸出允許狀態(tài)。根據(jù)74LS139解碼器的真值表可知:當(dāng)A15、A14為低電平時(shí),輸出低電平,而其他輸出端為高電平,即IC1被選中。因此,IC1的地址範(fàn)圍是0000H~3FFFH。當(dāng)A15為低電平,A14為高電平時(shí),輸出低電平,而其他輸出端為高電平,即IC2被選中。因此,IC2的地址範(fàn)圍是4000H~7FFFH。顯然,在圖5-13中,IC1和IC2的任一存儲(chǔ)單元均有唯一的地址編碼,不存在地址重疊現(xiàn)象,這是全解碼法的主要特徵之一。上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展2.部分解碼法部分解碼法與全解碼法相似,區(qū)別僅在於:在部分解碼電路中,有些地址線不參與解碼。記憶體中某一存儲(chǔ)單元的地址編碼不唯一,有兩個(gè)或兩個(gè)以上的地址空間與之對(duì)應(yīng),如圖5-14所示。在圖5-14所示的電路中,當(dāng)A14為低電平時(shí),IC1的片選信號(hào)輸入端為低電平,即IC1被選中。但是A15未參與解碼,所以不論A15是高電平,還是低電平,IC1片選信號(hào)均有效。因此,IC1的地址範(fàn)圍是0000H~3FFFH(A15為低電平時(shí))或8000H~BFFFH(A15為高電平)。換句話說(shuō),在這種情況下,IC1中任一存儲(chǔ)單元均有兩個(gè)地址編碼與之對(duì)應(yīng),如0000H和8000H實(shí)際上均指向IC1中編號(hào)為0000H的存儲(chǔ)單元。上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展高位地址線A14經(jīng)IC3A反相器接IC2的引腳,當(dāng)A14為高電平時(shí),IC2的片選信號(hào)輸入端有效。因此,IC2的地址範(fàn)圍是4000H~7FFFH(A15是低電平)或C000H~FFFFH(A15是高電平)。3.線選法當(dāng)單片機(jī)尋址能力較大,系統(tǒng)實(shí)際需要的記憶體容量較小時(shí),為簡(jiǎn)化電路,也可以直接採(cǎi)用單片機(jī)的高位地址線作為記憶體晶片的片選信號(hào),如圖5-15所示。在上圖中,IC1、IC2低電平有效片選信號(hào)連在一起並與單片機(jī)地址線A15相連,IC1高電平有效片選信號(hào)CS2直接與單片機(jī)的地址線A13相連,IC2高電平有效片選信號(hào)CS2直接與單片機(jī)的地址線A14相連。上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展當(dāng)A15為低電平,A14為低電平,而A13為高電平時(shí),IC1片選信號(hào)、CS2有效,因此IC1存儲(chǔ)單元的地址編碼為2000H~3FFFH;反之,當(dāng)A15為低電平,A14為高電平,而A13為低電平時(shí),IC2的片選信號(hào)、CS2有效,因此IC2存儲(chǔ)單元的地址編碼為4000H~5FFFH。然而當(dāng)A15為低電平,A14、A13均為高電平時(shí),IC1和IC2將同時(shí)被選中,在這種情況下,會(huì)造成混亂。所以,在圖5-15所示的電路中,將不允許使用6000H~7FFFH的地址空間。可見(jiàn),線選法會(huì)出現(xiàn)兩個(gè)晶片被同時(shí)選中的現(xiàn)象,從而造成部分地址空間不能使用。當(dāng)用該法連接記憶體時(shí),如果禁用存儲(chǔ)空間正好包含程式計(jì)數(shù)器PC複位後的初值,則不宜採(cǎi)用線選法方式連接。上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展5.2.4.2程式記憶體EPROM的擴(kuò)展方法圖5-16給出了MCS一51系列單片機(jī)中8031與片外程式記憶體的介面邏輯電路。由於8031無(wú)片內(nèi)程式記憶體,故應(yīng)接地,方可使用片外程式記憶體。1.用一片2732A擴(kuò)展4KB程式記憶體圖5-17為採(cǎi)用線選法擴(kuò)展4KB程式記憶體的電路。8031的端口P0作為低8位地址及數(shù)據(jù)匯流排的分時(shí)複用引腳,需接地址鎖存器,將低8位的地址鎖存後再接到2732A的A7~A0上。該電路採(cǎi)用8282作為地址鎖存器,也可選用74LS373代替。8031的地址鎖存控制信號(hào)線ALE接鎖存器控制端STB,當(dāng)ALE發(fā)生負(fù)跳變時(shí),8282將低8位地址鎖存,P0口方可作為數(shù)據(jù)線使用。上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展2732A的高位地址線只有4條:A8~A11,直接接到P2口的P2.0~P2.3即可,地址編碼為0000H~0FFFH。2732A的輸出允許信號(hào)由8031的片外程式記憶體讀選通信號(hào)提供。由於是單片EPROM擴(kuò)展,故無(wú)需考慮片選問(wèn)題,2732A的片選端可直接接地。2.用一片27256擴(kuò)展32KB程式記憶體隨著集成製造工藝技術(shù)的發(fā)展,EPROM的單片容量已做到很大,如27256為32K×8,27512為64K×8等。由於晶片的產(chǎn)量很大,有的大容量的晶片價(jià)格反而低,故在應(yīng)用程式容量較大時(shí),可擴(kuò)展一片大容量的EPROM。此外,EPROM的引腳設(shè)計(jì)是向下相容的,只需連一下電源線Vcc,就可以方便地將小容量的EPROM插入大容量的EPROM插座上使用。圖5-18為32KB程式記憶體的擴(kuò)展電路,該電路同樣採(cǎi)用線選法,其地址鎖存器採(cǎi)用了74LS373,其引腳接線與使用8282相同。地址編碼為0000H~7FFFH。上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展3.用多片EPROM擴(kuò)展的程式記憶體使用多片EPROM擴(kuò)展片外程式記憶體也是一種常用的設(shè)計(jì)方法,其優(yōu)點(diǎn)是:可靈活地應(yīng)用於不同程式量要求的場(chǎng)合。另外,當(dāng)僅需修改一部分程式時(shí),只要重新固化,就可替換該片EPROM即可。如對(duì)2片EPROM擴(kuò)展系統(tǒng)而言,一片可存放鍵盤、顯示及監(jiān)控程序,另一片可存放應(yīng)用程式,當(dāng)應(yīng)用程式需要修改時(shí),只需更換固化應(yīng)用程式的那一片EPROM。此外,在實(shí)際應(yīng)用中經(jīng)常會(huì)遇到原系統(tǒng)因控制功能的增加而需要增大記憶體的容量。這時(shí),也可採(cǎi)用此法,即不改變?cè)到y(tǒng)結(jié)構(gòu),再並聯(lián)一片或數(shù)片程式記憶體晶片以擴(kuò)充系統(tǒng)的容量。圖5-19為用2片27256擴(kuò)展的片外程式記憶體。此電路為全解碼電路,多片記憶體的擴(kuò)展與單片記憶體的擴(kuò)展電路基本相同,只是要注意片選問(wèn)題。圖中高位地址線P2.7接(1)號(hào)片27256的片選端,P2.7經(jīng)反相後接(2)號(hào)片27256的片選端。因此,(1)號(hào)片27256的地址為0000H~7FFFH,(2)號(hào)片27256的地址為8000H~0FFFFH。上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展5.2.4.3數(shù)據(jù)記憶體擴(kuò)展方法數(shù)據(jù)記憶體與程式記憶體地址重疊,但使用不同的控制信號(hào)和指令,且與I/0、A/D、D/A轉(zhuǎn)換電路、擴(kuò)展定時(shí)/計(jì)數(shù)器及其它週邊晶片統(tǒng)一編址。兩者的地址匯流排和數(shù)據(jù)匯流排可公用,但控制線不能公用,數(shù)據(jù)記憶體用和控制線,而不用。圖5-20給出了MCS-51系列單片機(jī)與片外數(shù)據(jù)記憶體的介面邏輯,對(duì)片外數(shù)據(jù)記憶體的片選可採(cǎi)用線選法或解碼法。1.用6116擴(kuò)展2KB的數(shù)據(jù)記憶體擴(kuò)展單片記憶體時(shí),片選端可直接接地,因?yàn)橄到y(tǒng)中不會(huì)再用其他程式記憶體晶片。但在擴(kuò)展單片數(shù)據(jù)記憶體時(shí),其片選端能否直接接地,還應(yīng)考慮應(yīng)用系統(tǒng)中有無(wú)I/O及外設(shè)擴(kuò)展,如果有則要統(tǒng)一編址。上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展2.用6264擴(kuò)展8KB的數(shù)據(jù)記憶體圖5-22是用6264擴(kuò)展SRAM電路。與6116擴(kuò)展電路相比,地址線增加了2根,故片外數(shù)據(jù)記憶體的地址為0000H~1FFFH。片選線CE2接高電平,保持一直有效狀態(tài),並進(jìn)行斷電保護(hù)。5.2.4.4程式記憶體EEPROM的擴(kuò)展方法EEPROM兼有程式記憶體與數(shù)據(jù)記憶體的特點(diǎn),故在單片機(jī)應(yīng)用系統(tǒng)中,既可作為程式記憶體,也可作為數(shù)據(jù)記憶體。用EEPROM2816A擴(kuò)展2K程式記憶體2816A屬於+5V電擦除可編程只讀記憶體,因此擴(kuò)展電路不需要專門配置寫入電源,擴(kuò)展電路如圖5-23所示。上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展EEPROM作為程式記憶體時(shí),它與單片機(jī)的連接方法和EPROM作為程式記憶體與單片機(jī)的連接方法幾乎完全相同,圖中片選信號(hào)端與P2.7相連,故2816A的地址為0000H~07FFH,端可直接接地。當(dāng)系統(tǒng)中有其他程式記憶體時(shí),要統(tǒng)盤考慮編址。2.用EEPROM2817A擴(kuò)展數(shù)據(jù)記憶體圖5-24是用2817A晶片的擴(kuò)展記憶體電路,由於8031內(nèi)部無(wú)程式記憶體,因此該電路採(cǎi)用了將片外程式記憶體和片外數(shù)據(jù)記憶體合併的方法,使2817A同時(shí)兼作片外程式記憶體和片外數(shù)據(jù)記憶體。上一頁(yè)下一頁(yè)返回5.2MCS-51單片機(jī)的外部記憶體的擴(kuò)展2817A的讀操作與普通EEPROM相同,而寫操作有所不同。下圖中RDY/與8031的通信是採(cǎi)用查詢方式,通過(guò)P1.0來(lái)查詢RDY/狀態(tài),當(dāng)一次位元組寫入完畢,RDY/線變?yōu)楦唠娖剑源伺袛嘣撐辉M是否擦寫完畢。也可採(cǎi)用中斷方式,RDY/引腳可與(或)相連,這樣,每當(dāng)2817A擦寫完一個(gè)位元組便可向8031提出中斷請(qǐng)求。由於RDY/引腳在RDY有效期間為高電平,故應(yīng)該接一上拉電阻到+5V電源上,以保持高電平。上一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展輸入/輸出(I/O)電路是單片機(jī)應(yīng)用系統(tǒng)中必不可少的單元電路之一,它涉及數(shù)據(jù)輸入電路及經(jīng)過(guò)單片機(jī)處理後的數(shù)據(jù)輸出電路。單片機(jī)應(yīng)用系統(tǒng)要對(duì)輸入信號(hào)進(jìn)行比較、判斷或運(yùn)算處理後,輸出適當(dāng)?shù)目刂菩盘?hào)去控制外部設(shè)備。輸入/輸出量可以是模擬信號(hào),也可以是開關(guān)信號(hào)。對(duì)於模擬輸入信號(hào),要經(jīng)過(guò)放大、限幅、低通濾波電路後,再經(jīng)過(guò)模/數(shù)(A/D)轉(zhuǎn)換電路變換成數(shù)字信號(hào)後,單片機(jī)才能處理。同樣,單片機(jī)的處理結(jié)果也需要經(jīng)過(guò)數(shù)/模(D/A)電路轉(zhuǎn)換、平滑濾波後,才能控制外部模擬設(shè)備。有關(guān)單片機(jī)模擬與數(shù)字信號(hào)的處理問(wèn)題,後面的章節(jié)將做以詳細(xì)說(shuō)明,本節(jié)主要介紹數(shù)字信號(hào)的輸入/輸出(I/O)介面電路。下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展MCS-5l單片機(jī)共有4個(gè)8位並行I/O口,但這些I/0口不可能完全提供給用戶使用。只有對(duì)於片內(nèi)有ROM/EPR0M的805l單片機(jī),在不使用外部記憶體擴(kuò)展時(shí)才允許這4個(gè)I/O口作為用戶I/O口使用。然而對(duì)於大多數(shù)8051而言,當(dāng)需外部記憶體擴(kuò)展時(shí),MCS-5l單片機(jī)可提供給用戶使用的I/O口只有Pl口和部分P3口線。總之,在大部分的MCS-5l單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)中都不可避免地要進(jìn)行I/O口的擴(kuò)展。在MCS-51單片機(jī)中,擴(kuò)展的I/O口採(cǎi)取與數(shù)據(jù)記憶體相同的尋址方法。所有擴(kuò)展I/O口以及通過(guò)擴(kuò)展I/O口連接的外設(shè)均與片外數(shù)據(jù)記憶體統(tǒng)一編址,所以對(duì)片外I/O口的輸入/輸出指令就是訪問(wèn)片外RAM的指令。
上一頁(yè)下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展擴(kuò)展I/O口所用晶片主要有通用可編程I/O晶片和TTL、CMOS鎖存器、緩衝器電路晶片兩大類,本節(jié)將做重點(diǎn)講解。I/O擴(kuò)展方式主要有匯流排並行擴(kuò)展法和串行口擴(kuò)展法,串行口擴(kuò)展法在下面的章節(jié)中具體介紹,本節(jié)將介紹幾種匯流排並行擴(kuò)展法的具體電路。5.3.1通過(guò)鎖存器、觸發(fā)器的I/O口擴(kuò)展電路1.I/O介面電路的功能單片機(jī)與週邊設(shè)備之間的數(shù)據(jù)傳送稱為輸入/輸出(Input/Output)。實(shí)現(xiàn)輸入輸出既需要有把週邊設(shè)備與電腦連接起來(lái)的硬體電路—輸入/輸出(I/O)介面電路,又需要編制控制輸入/輸出介面電路工作的程式。上一頁(yè)下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展輸入/輸出介面電路的種類很多,某些通用積體電路晶片可以用作I/O介面,但更大量的是專門為電腦設(shè)計(jì)的I/O介面電路晶片。一般地說(shuō),I/O介面電路有以下的功能:(1)鎖存數(shù)據(jù)由於週邊設(shè)備的工作速度與電腦不同,傳送數(shù)據(jù)的過(guò)程中常常需要等待。為此,I/O介面電路中要設(shè)置鎖存器,用以暫存數(shù)據(jù)。例如,當(dāng)按鍵按下時(shí),按鍵的代碼要送人I/O電路中的鎖存器鎖存,待電腦空閒時(shí)讀取。(2)資訊轉(zhuǎn)換單片機(jī)通信時(shí),為了節(jié)省傳輸線,資訊常以串行方式逐位傳送;而在單片機(jī)內(nèi)部,為加快運(yùn)行速度,資訊卻以並行方式傳送。為此,單片機(jī)發(fā)送數(shù)據(jù)時(shí),I/O介面電路要將並行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù);而接收數(shù)據(jù)時(shí),要將串行數(shù)據(jù)轉(zhuǎn)換成並行數(shù)據(jù)。上一頁(yè)下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展(3)電平轉(zhuǎn)換電腦輸入/輸出的資訊大多採(cǎi)用TTL電平,高電平+5v代表“1”,低電平0V代表“0”。如某週邊設(shè)備的資訊不是TTL電平,那麼在這些週邊設(shè)備與單片機(jī)連接時(shí),I/O介面電路要完成電平轉(zhuǎn)換的工作。(4)三態(tài)緩衝在數(shù)據(jù)匯流排上常接有多個(gè)數(shù)據(jù)源,它們公用匯流排的系統(tǒng)數(shù)據(jù)通道,但在同一時(shí)刻只能有一個(gè)數(shù)據(jù)源的數(shù)據(jù)使用匯流排,因此必須讓其他數(shù)據(jù)源暫時(shí)隔離,這就需要介面電路具有供數(shù)據(jù)輸入三態(tài)緩衝的功能。(5)地址解碼單片機(jī)通常具有多個(gè)週邊設(shè)備,每個(gè)週邊設(shè)備應(yīng)賦予一個(gè)唯一的地址,以便單片機(jī)識(shí)別。I/O介面電路中的地址解碼器能根據(jù)單片機(jī)送出的地址找到指定的週邊設(shè)備。(6)傳送聯(lián)絡(luò)信號(hào)許多週邊設(shè)備與電腦間要傳送狀態(tài)資訊和控制資訊,這需要由I/O介面電路連接。
上一頁(yè)下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展2.通過(guò)鎖存器74LS244作擴(kuò)展輸入、74LS273作擴(kuò)展輸出的I/O電路採(cǎi)用TTL電路或CMOS電路鎖存器、三態(tài)門電路作為I/O口擴(kuò)展晶片,是單片機(jī)應(yīng)用系統(tǒng)中較常採(cǎi)用的方法。這種I/O口一般都是通過(guò)PO口擴(kuò)展,具有電路簡(jiǎn)單、成本低、配置靈活的優(yōu)點(diǎn)。一般在擴(kuò)展單個(gè)8位輸出或輸入口時(shí),十分方便。可以作為I/O擴(kuò)展晶片使用的TTL晶片有:373、377、244、245、273、367等。在實(shí)際應(yīng)用中可根據(jù)系統(tǒng)對(duì)輸入、輸出的要求,選擇合適的擴(kuò)展晶片。圖5-25為採(cǎi)用74LS244作擴(kuò)展輸入、74LS273作擴(kuò)展輸出的簡(jiǎn)單I/O電路。上一頁(yè)下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展上圖中,P0口為雙向數(shù)據(jù)線,既能從74LS244輸人數(shù)據(jù),又能將數(shù)據(jù)傳送給74LS273輸出。輸出控制信號(hào)由P2.0和合成,當(dāng)二者同時(shí)為0電平時(shí),“或”門輸出為0,將P0口的數(shù)據(jù)鎖存到74LS273,其輸出控制著發(fā)光二極體LED。當(dāng)某線輸出0電平時(shí),該線上的LED發(fā)光。輸入控制信號(hào)由P2.0和合成,當(dāng)二者同時(shí)為0電平時(shí),“或”門輸出0,選通74LS244,將外部資訊輸入到匯流排。當(dāng)與244相連的按鍵開關(guān)無(wú)鍵按下時(shí),輸入全為1,若按下某鍵,則所在線輸人為O??梢?jiàn),輸入和輸出都是在P2.0為0時(shí)有效,因此,它們的端口地址都為FEFFH(實(shí)際只要保證P2.0=0,其他地址位無(wú)關(guān),假定全為1),即佔(zhàn)有相同的地址空間,但由於分別用和信號(hào)控制,因而在邏輯上不會(huì)發(fā)生衝突。系統(tǒng)中若有其他擴(kuò)展RAM,或其他輸入/輸出介面,則可用線選法或解碼法將地址空間區(qū)分開。上一頁(yè)下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展5.3.2利用串入並出及併入串出晶片擴(kuò)展I/O口在速率要求不高的情況下,可利用74LSl64、74HC594、74HC595等“串入並出”晶片擴(kuò)展輸出口;利用74LSl65、74HC597等“併入串出”晶片擴(kuò)展輸入口,也是一種簡(jiǎn)單、實(shí)用的I/O口擴(kuò)展方式。例如在圖5-26中使用8051晶片三根I/O線,借助兩片74HC595即可獲得16根輸出線。假設(shè)擴(kuò)展輸出引腳D7~D0輸出資訊在單片機(jī)記憶體中的映象地址為DATAl,Dl5~D8輸出資訊在單片機(jī)記憶體中的映像地址為DATA2,則可通過(guò)以下程式段將數(shù)據(jù)串行輸出到Dl5~DO引腳。
上一頁(yè)下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展DATA1DATA48H;說(shuō)明假設(shè)輸出數(shù)據(jù)存放在48H、49H單元中SDIBITP1.0;說(shuō)明串行數(shù)據(jù)輸入接P1.0引腳SRCLKBITP1.1;說(shuō)明串行移位脈衝接P1.1引腳RCLKBITP1.2;說(shuō)明並行輸出鎖存脈衝接P1.2引腳;----串行數(shù)據(jù)輸出程式段----CLRRCLK;並行輸出鎖存脈衝置為低電平MOVR0,#DATA1;將48H單元內(nèi)容送入記憶體MOVR2,#02H;定義輸出位元組數(shù)為兩次上一頁(yè)下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展LOOP1:MOVA,@R0;取數(shù)據(jù)
MOVR3,#08H;右移八次LOOP2:CLRSRCLK;串行移位脈衝初始值為低電平
RRCA;帶進(jìn)位迴圈右移,最低位數(shù)據(jù)送入CyMOVSDI,C;Cy內(nèi)容送入SDINOP;等待
SETBSRCLK;允許串行輸出
DJNZR3,LOOP2;迴圈,依次輸出低8位
INCR0;RO加1,指向高8位
DJNZR2,LOOP1;迴圈,依次輸出高8位
SETBRCLK;並行輸出兩個(gè)位元組數(shù)據(jù)上一頁(yè)下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展5.3.3利用8155/8156可編程I/O晶片擴(kuò)展MCS-51的I/O口可編程I/O介面是指其功能可由單片機(jī)的指令來(lái)加以改變的介面晶片,可使一個(gè)介面晶片執(zhí)行多種不同的介面功能,因此使用十分靈活,當(dāng)它連接單片機(jī)和外設(shè)時(shí),只需要很少的外加硬體。目前,MCS-51單片機(jī)中常用的可編程介面晶片有兩種:一種是通用的可編程I/O介面8255晶片,一種是含256個(gè)位元組的RAM和14位定時(shí)/計(jì)數(shù)器的可編程I/O介面8155/8166晶片。由於8155/8166晶片功能強(qiáng)大,下麵做以詳細(xì)介紹。上一頁(yè)下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展8155/8156為單一+5V工作電源。如上所述,8155/8156可編程I/O擴(kuò)展晶片除了可提供三個(gè)可編程的I/O端口(A、B均為8位I/O口,C口為6位I/O端口)外,還提供了256位元組的SRAM存儲(chǔ)單元和一個(gè)14位可編程定時(shí)/計(jì)數(shù)器,並內(nèi)置了地址鎖存器,地址線可直接與MCS-5l系列單片機(jī)的P0口相連,無(wú)需使用74LS373作地址鎖存器。當(dāng)系統(tǒng)所需外部數(shù)據(jù)記憶體容量不大時(shí),由1片單片機(jī)和1片8155即可構(gòu)成較多I/O端口的單片機(jī)應(yīng)用系統(tǒng)。1.內(nèi)部結(jié)構(gòu)及引腳功能8155/8156晶片內(nèi)部結(jié)構(gòu)及引腳排列如圖5-27所示。上一頁(yè)下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展引腳功能如下:ALE—
地址鎖存信號(hào),在ALE信號(hào)下降沿將AD7~ADO地址信號(hào)鎖存到8155/8166內(nèi)部的地址鎖存器中,以便將AD7~ADO作為數(shù)據(jù)線使用(輸入或輸出)。ALE信號(hào)可直接與MCS-51單片機(jī)的地址鎖存信號(hào)ALE相連。AD7~ADO—
地址/數(shù)據(jù)匯流排,雙向,可直接與MCS-5l系列單片機(jī)的P0口相連。
—
片選信號(hào),對(duì)於8155晶片來(lái)說(shuō),低電平有效;對(duì)於8156晶片來(lái)說(shuō),高電平有效。這是8155晶片與8156晶片的唯一區(qū)別。IO/—I/O端口、命令/狀態(tài)寄存器及內(nèi)部RAM選擇信號(hào)。當(dāng)IO/=0,即低電平時(shí),讀寫對(duì)象是8155/8156內(nèi)部256位元組的SRAM;當(dāng)IO/=1,即高電平時(shí),操作對(duì)象是I/O口或內(nèi)部寄存器(包括命令/狀態(tài)寄存器及定時(shí)/計(jì)數(shù)器的高6位或低8位)。上一頁(yè)下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展
—
讀I/O口或內(nèi)部RAM選通信號(hào),輸入低電平有效。
—
寫I/O口、命令及狀態(tài)寄存器、內(nèi)部RAM選通信號(hào),輸入低電平有效。PA7~PA0—A口I/O引腳,雙向,輸出時(shí)具有鎖存功能,但輸入不鎖存。PB7~PB0—B口I/O引腳,雙向,輸出時(shí)具有鎖存功能,但輸入不鎖存。PC5~PC0—C口I/O引腳,雙向,輸出時(shí)具有鎖存功能,但輸入不鎖存。TMRIN—
定時(shí)/計(jì)數(shù)器輸入端。用來(lái)外部計(jì)數(shù)脈衝的輸入。
—
定時(shí)/計(jì)數(shù)器輸出引腳,輸出信號(hào)形式(方波或脈衝信號(hào))由其內(nèi)部定時(shí)/計(jì)數(shù)器工作方式?jīng)Q定。RESET—
複位信號(hào)輸入引腳,高電平有效。只要RESET引腳保持5s高電平信號(hào),即可使8155/8166晶片進(jìn)入複位狀態(tài),複位後,各端口均置為輸入方式。上一頁(yè)下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展2.8155/8166的工作方式與基本操作由於8155/8166晶片結(jié)構(gòu)極其相似,它們的工作方式和基本操作完全相同,我們以8155為例,詳盡介紹它們的功能和操作。8155可作為通用I/O口,也可作為片外256位元組RAM及定時(shí)/計(jì)數(shù)器使用,具體情況如下。(1)作片外256位元組RAM在這種工作狀態(tài)使用時(shí),將IO/引腳置低電平,這時(shí)8155只能作片外RAM使用,其尋址範(fàn)圍由片選線(高位地址解碼)和AD0~AD7決定,與應(yīng)用系統(tǒng)中的其他數(shù)據(jù)記憶體統(tǒng)一編址。使用片外RAM的讀/寫操作指令“MOVX”。上一頁(yè)下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展(2)作擴(kuò)展I/O使用8155作擴(kuò)展I/O口時(shí),IO/引腳必須為高電平,這時(shí)PA、PB、PC口的口地址低8位分別為1、2、3(假設(shè)地址無(wú)關(guān)位為0)。8155的I/O口工作方式選擇是通過(guò)對(duì)8155內(nèi)部命令寄存器送命令字來(lái)實(shí)現(xiàn)的。命令寄存器由8位鎖存器組成,只能寫入而不能讀出。命令字每位定義如圖5-28所示。8155的工作狀態(tài)由狀態(tài)寄存器指示,與命令寄存器屬同一地址,只能讀出不能寫入。狀態(tài)字格式如圖5-29所示。上一頁(yè)下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展端口操作:A口寄存器和B口寄存器有完全相同的功能,可工作於基本I/O方式或選通I/O方式。C口可工作於基本I/O方式,也可作為A口、B口選通方式工作時(shí)的狀態(tài)控制信號(hào)線。當(dāng)8155設(shè)定為方式1和方式2時(shí),A口、B口、C口均工作於基本輸入/輸出方式,由“MOVX”類指令進(jìn)行輸入/輸出操作;設(shè)定為方式3時(shí),A口定義為選通輸入/輸出,由C口低3位作A口聯(lián)絡(luò)線,C口其餘位作I/O線;設(shè)定為方式4時(shí),A口、B口均定義為選通輸入/輸出方式,由C口作為A口、B口的聯(lián)絡(luò)線,其邏輯組態(tài)如圖5-30所示。C口工作方式與其各位的關(guān)係見(jiàn)表5-3。上一頁(yè)下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展AINTR、BINTR為中斷請(qǐng)求輸出線,作為單片機(jī)的中斷源,高電平有效。當(dāng)8155的A口或B口緩衝器接收到設(shè)備打入的數(shù)據(jù)或設(shè)備從緩衝器中取走數(shù)據(jù)時(shí),中斷請(qǐng)求輸出線升高(僅當(dāng)命令寄存器相應(yīng)中斷允許位為1),向單片機(jī)請(qǐng)求中斷,單片機(jī)對(duì)8155的相應(yīng)I/O口進(jìn)行一次讀/寫操作後,中斷請(qǐng)求輸出線自動(dòng)變?yōu)榈碗娖健F為I/O口緩衝器標(biāo)誌輸出線。緩衝器存有數(shù)據(jù)時(shí),BF為高電平,否則為低電平。為設(shè)備選通信號(hào)輸入線,低電平有效。上一頁(yè)下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展在I/O口設(shè)定為輸出口時(shí),仍可用對(duì)應(yīng)的口地址執(zhí)行讀操作,讀取輸出口的內(nèi)容;設(shè)定為輸入口時(shí),輸出鎖存器被清除,無(wú)法將數(shù)據(jù)寫入輸出鎖存器。所以每次通道由輸入方式轉(zhuǎn)為輸出方式時(shí),輸出端總是低電平。8155複位時(shí),清除所有輸出寄存器,3個(gè)端口都為輸入方式。圖5-31為8051與8155介面的一種方案。根據(jù)圖中IO/和等連接方法,P2.1=0,P2.0=0時(shí),選中RAM單元,地址為0000H~00FFH;當(dāng)P2.1=0,P2.0=1時(shí),選中I/O口,這時(shí)的地址分佈為:上一頁(yè)下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展0100H命令/狀態(tài)字0101HA口0102HB口0103HC口0104H計(jì)數(shù)值低8位0105H計(jì)數(shù)值高6位和方式寄存器若該8155擔(dān)任某鍵盤顯示介面,A口可為基本輸出,B口為基本輸入,C口為輸出,則命令字為00001101B=0DH,方式設(shè)定如下:MOVDPTR,#0100H;選中命令寄存器MOVA,#0DH;命令字MOVX@DPTR,A;命令字寫入命令寄存器上一頁(yè)下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展3.作定時(shí)/計(jì)數(shù)器用8155的可編程定時(shí)/計(jì)數(shù)器實(shí)際上是一個(gè)14位減法計(jì)數(shù)器,在TMRIN端輸入計(jì)數(shù)脈衝,計(jì)滿溢出時(shí),由輸出脈衝和方波。當(dāng)TMRIN接外脈衝時(shí)為計(jì)數(shù)方式,接系統(tǒng)時(shí)鐘時(shí),可作為定時(shí)方式,但需要注意晶片允許的最高計(jì)數(shù)頻率。定時(shí)/計(jì)數(shù)器由兩位元組組成,初值占14位,其餘2位定義輸出方式,格式如下圖5-32所示:
上一頁(yè)下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展其中,M2、M1位輸出方式如表5-4:使用時(shí),先把計(jì)數(shù)長(zhǎng)度和輸出方式裝入定時(shí)器的兩個(gè)位元組。計(jì)數(shù)長(zhǎng)度為2~3FFFH之間的任意值。然後通過(guò)命令寄存器的最高2位控制計(jì)數(shù)器的啟動(dòng)和停止。以計(jì)數(shù)值是是8為例,所謂單次方波,是從啟動(dòng)計(jì)數(shù)開始,前4個(gè)計(jì)數(shù)輸出高電平“1”,後4個(gè)計(jì)數(shù)輸出低電平“0”。若計(jì)數(shù)值是奇數(shù),則高電平比低電平多一個(gè)計(jì)數(shù)值。如果要使8155的定時(shí)/計(jì)數(shù)器作為方波發(fā)生器,輸出方波的頻率為TMRIN輸入時(shí)鐘頻率的24分頻,則相應(yīng)的初始化程式如下:上一頁(yè)下一頁(yè)返回5.3MCS-51單片機(jī)並行I/O介面的擴(kuò)展MOVDPTR,#0104H;指向定時(shí)/計(jì)數(shù)器低位元組寄存器MOVA,#18H;給低位元組寄存器賦定時(shí)初值MOVX@DPTR,AINCDPTR;指向定時(shí)/計(jì)數(shù)器高位元組寄存器MOVA,#40H;設(shè)定時(shí)/計(jì)數(shù)器為方式1MOVX@DPTR,AMOVDPTR,#0100H;指向8155命令寄存器MOVA,#0C2H;啟動(dòng)開始計(jì)數(shù),PB口為輸出,PA、PC為輸入MOVX@DPTR,A上一頁(yè)返回5.4MCS-51單片機(jī)的串行介面單片機(jī)與外界的資訊交換稱為通信?;镜耐ㄐ欧绞接袃煞N:並行通信和串行通信。前者傳送數(shù)據(jù)的特點(diǎn)是各位同時(shí)發(fā)送或接收,而後者傳送數(shù)據(jù)的特點(diǎn)是各位按順序一位一位地發(fā)送或接收。在並行通信中,一個(gè)並行數(shù)據(jù)占多少位二進(jìn)位數(shù),就要多少根傳輸線。這種方式的特點(diǎn)是通信速度快,但傳輸線多,價(jià)格較貴,適合近距離傳輸,前面關(guān)於記憶體的擴(kuò)展、匯流排法擴(kuò)展I/O口電路的通訊方式均為並行傳送。而串行通信僅需一到兩根傳輸線即可。故在長(zhǎng)距離傳送數(shù)據(jù)時(shí),比較經(jīng)濟(jì)。但由於它每次只能傳送一位,所以傳送速度較慢。圖5-33(a)和(b)分別為單片機(jī)與外設(shè)之間的並行通信及串行通信的連接方法。本節(jié)將介紹串行口的概念、原理及MCS-51串行介面的結(jié)構(gòu)、原理及應(yīng)用。下一頁(yè)返回5.4MCS-51單片機(jī)的串行介面5.4.1串行通信概念下麵介紹串行通信中的幾個(gè)概念。5.4.1.1傳送編碼因?yàn)閱胃ㄐ啪€僅能表示0和l兩種狀態(tài),而需傳送的資訊中有字母、數(shù)字和字元等,種類很多,這就要用二進(jìn)位數(shù)對(duì)傳送字元編碼。編碼的種類很多,常用的主要有美國(guó)標(biāo)準(zhǔn)資訊交換碼ASCII和擴(kuò)展的BCD碼EBCDIC(Extended。BinaryCodedDecimalInterchangeCode)。後一種是8位編碼,較常用在同步通信中。上一頁(yè)下一頁(yè)返回5.4MCS-51單片機(jī)的串行介面5.4.1.2同步和非同步方式串行通信分同步和非同步兩種方式。1.非同步通信ASYNC(AsynchronousDataCommunication)t
在非同步通信中數(shù)據(jù)或字元是分為一幀一幀地傳送,在幀格式中先用一個(gè)起始位“0”表示字元的開始,然後是5~8位數(shù)據(jù),規(guī)定低位在前,高位在後,接下來(lái)是奇偶校驗(yàn)位(可省略),最後一個(gè)停止位“1”表示字元的結(jié)束,構(gòu)成一幀。由於非同步通信每傳送一幀有固定格式,通信雙方只需按約定的幀格式來(lái)發(fā)送和接收數(shù)據(jù),所以硬體結(jié)構(gòu)比同步通信方式簡(jiǎn)單;此外它還能利用校驗(yàn)位檢測(cè)錯(cuò)誤,所以這種通信方式應(yīng)用較廣泛。上一頁(yè)下一頁(yè)返回5.4MCS-51單片機(jī)的串行介面2.同步通信在同步通信中,在數(shù)據(jù)或字元開始處就用一同步字元來(lái)指示(常約定1~2個(gè)),由時(shí)鐘來(lái)實(shí)現(xiàn)發(fā)送端和接收端同步,一旦檢測(cè)到與規(guī)定的同步字元符合,下麵就連續(xù)按順序傳送數(shù)據(jù)。因?yàn)橥酵ㄐ艛?shù)據(jù)塊傳送時(shí)去掉了字元開始和結(jié)束的標(biāo)誌,所以其速度高於非同步傳送,但這種方式對(duì)硬體結(jié)構(gòu)要求較高。5.4.1.3串列傳輸速率(Baudrate)串列傳輸速率是非同步通信中對(duì)數(shù)據(jù)傳送速率的規(guī)定。其意義是每秒鐘傳送多少位二進(jìn)位數(shù)。假如數(shù)據(jù)傳送的速率每秒為120個(gè)字元,每個(gè)字元由1個(gè)起始位、8個(gè)數(shù)據(jù)位和1個(gè)停止位組成,則其傳送串列傳輸速率為:10×120=1200b/s=1200波特每一位的傳送時(shí)間即為串列傳輸速率的倒數(shù):Td=1/1200=0.833ms非同步通信的傳送速度一般在50到9600波特之間,常用於單片機(jī)雙機(jī)或多機(jī)之間的通信等。上一頁(yè)下一頁(yè)返回5.4MCS-51單片機(jī)的串行介面5.4.1.4通信方向在串行通信中,如果單片機(jī)的通信介面只能發(fā)送或接收,這種單向傳送的方法稱單工傳送。而通常數(shù)據(jù)需在兩機(jī)之間雙向傳送,這種方式稱雙工傳送。在雙工傳送方式中,如果接收和發(fā)送不能同時(shí)進(jìn)行,只能分時(shí)接收和發(fā)送,這種傳送稱為半雙工傳送;若兩機(jī)的發(fā)送和接收可以同時(shí)進(jìn)行,則為全雙工傳送,如圖5-34所示。5.4.1.5串行通信介面種類根據(jù)串行通信格式及約定(如同步方式、通信速率、數(shù)據(jù)幀格式等)的不同,形成了許多串行通信介面標(biāo)準(zhǔn),如常見(jiàn)的UART(通用串行非同步通信介面)、USB(通用串行匯流排介面)、I2C匯流排、SPI匯流排(同步通信)、485匯流排、CAN匯流排介面等。下麵結(jié)合MCS-51單片機(jī)介紹常用UART介面。上一頁(yè)下一頁(yè)返回5.4MCS-51單片機(jī)的串行介面1.RS-232C通信介面(1)介面信號(hào)
RS-232C通信介面又稱RS-232C匯流排標(biāo)準(zhǔn)。它向外部的連接器有25針和9針兩種“D”型插頭,各針的功能及排列如圖5-35(a)、(b)所示。(2)電平轉(zhuǎn)換單片機(jī)電平通常是TTL電平,它與RS232C電平不相容,必須進(jìn)行電平轉(zhuǎn)換。RS-232C與TTL的電平轉(zhuǎn)換的晶片有MCl488傳輸線驅(qū)動(dòng)器和MCl489傳輸線接收器。由於MCl488和MCl489需要±15v或±12V供電,造成了使用不便,現(xiàn)常用+5v單電源供電的轉(zhuǎn)換晶片,如MAXIM公司的MAX232晶片,它可以實(shí)現(xiàn)RS-232C與TTL/CMOS電平之間的轉(zhuǎn)換。MAX232的組成及引腳圖如圖5-36所示。上一頁(yè)下一頁(yè)返回5.4MCS-51單片機(jī)的串行介面2.RS-422A通信介面
(1)介面信號(hào)RS-422A通信介面是對(duì)RS-232C通信介面的改進(jìn),它採(cǎi)用平衡傳輸電氣標(biāo)準(zhǔn),輸人/輸出均採(cǎi)用差分驅(qū)動(dòng),因此具有更強(qiáng)的抗干擾能力,傳送速率也大大提高。它向外部的連接器常採(cǎi)用9針“D”型插頭,各針的功能及排列如圖5-37所示。(2)電平轉(zhuǎn)換能夠?qū)TL電平轉(zhuǎn)換為RS-422A電平的常用晶片有SN5174、MC3487等。能夠?qū)S-422A電平轉(zhuǎn)換為TTL電平的常用晶片有SN75175、MC3486等。SN75174、SN75175分別具有三態(tài)輸出的單片差分驅(qū)動(dòng)器和接收器,符合E認(rèn)標(biāo)準(zhǔn)的RS-422A規(guī)範(fàn),它採(cǎi)用+5V單電源供電,功能上分別可以與MC3487、MC3486互換。圖5-38是用SN75174、SN75175實(shí)現(xiàn)的電平轉(zhuǎn)換電路圖。
上一頁(yè)下一頁(yè)返回5.4MCS-51單片機(jī)的串行介面5.4.2MCS-51單片機(jī)串行通信口控制及初始化MCS-51系列單片機(jī)內(nèi)部有一個(gè)功能很強(qiáng)的全雙工串行非同步通信介面,它既可以作為UART使用,能方便地構(gòu)成雙機(jī)或多機(jī)通信系統(tǒng),也可以在外接移位寄存器後用來(lái)擴(kuò)展並行I/0口。5.4.2.1串行口的結(jié)構(gòu)與控制圖5-39所示為MCS-51系列單片機(jī)的串行口結(jié)構(gòu)示意圖。它主要由兩個(gè)串行數(shù)據(jù)緩衝器(SBUF)、發(fā)送控制器、發(fā)送端口、接收控制器和接收端口等組成。串行口的工作方式和串列傳輸速率由專用寄存器SCON和PCON控制。上一頁(yè)下一頁(yè)返回5.4MCS-51單片機(jī)的串行介面1.串行數(shù)據(jù)緩衝器(SBUF)MCS-51系列單片機(jī)串行口有兩個(gè)串行數(shù)據(jù)緩衝器,一個(gè)用於發(fā)送數(shù)據(jù),另一個(gè)用於接收數(shù)據(jù),可以同時(shí)用來(lái)發(fā)送和接收數(shù)據(jù)。發(fā)送緩衝器只能寫入,不能讀出。接收緩衝器只能讀出,不能寫入。兩個(gè)緩衝器使用同一符號(hào)SBUF,共用一個(gè)地址99H,根據(jù)讀、寫指令來(lái)確定訪問(wèn)其中哪一個(gè)。
發(fā)送數(shù)據(jù)時(shí),執(zhí)行一條將數(shù)據(jù)寫入SBUF的傳送指令,即可將要發(fā)送的數(shù)據(jù)按事先設(shè)置的方式和串列傳輸速率從TXD端串行輸出。一個(gè)數(shù)據(jù)發(fā)送完畢後,串行口能向單片機(jī)提出中斷請(qǐng)求,發(fā)送下一個(gè)數(shù)據(jù)。接收數(shù)據(jù)時(shí),當(dāng)一幀數(shù)據(jù)從RXD端經(jīng)過(guò)接收端口(移位寄存器)全部進(jìn)入SBUF後,串行口發(fā)出中斷請(qǐng)求,通知單片機(jī)接收這一數(shù)據(jù)。CPU執(zhí)行一條讀SBUF的指令,就能將接收的數(shù)據(jù)送人某個(gè)寄存器或存儲(chǔ)單元。與此同時(shí),接收端口接收下一幀數(shù)據(jù)。為了避免前後兩幀數(shù)據(jù)的重疊,接收器通常是雙緩衝的。上一頁(yè)下一頁(yè)返回5.4MCS-51單片機(jī)的串行介面
2.串行口控制寄存器(SCON)SCON用於控制串行口的工作方式,同時(shí)還包含要發(fā)送和接收到的第9位數(shù)據(jù)及串行口中斷標(biāo)誌位。該寄存器的位元組地址為98H。各位的定義如下:上一頁(yè)下一頁(yè)返回SM0SM1SM2RENTB8RB8TIRISCON(98H)9FH9EH9DH9CH9BH9AH99H98H5.4MCS-51單片機(jī)的串行介面SM0、SM1:串行口工作方式選擇位,由軟體設(shè)定。共為4種方式,見(jiàn)表5-5。其中fOSC是MCS-51的振盪頻率。SM2:多機(jī)通信控制位,由軟體設(shè)定。串行口的方式2和方式3適用於多機(jī)通信。在方式2或方式3中,當(dāng)SM2=1時(shí),若接收到的第9位數(shù)據(jù)(RB8)為0,則不能置位RI;只有收到RB8=1,才能置位RI,SM2=1用於多機(jī)通信中,只接收地址幀,不接收數(shù)據(jù)幀。當(dāng)SM2=0時(shí),只要接收到一幀資訊(無(wú)論是地址還是數(shù)據(jù)),RI都被置位。雙機(jī)通信時(shí),通常使SM2=0。在方式0中,SM2必須為0。上一頁(yè)下一頁(yè)返回5.4MCS-51單片機(jī)的串行介面REN:允許接收控制位,由軟體設(shè)定。REN=1時(shí)允許接收,REN:0時(shí)禁止接收。TB8:方式2和方式3中要發(fā)送的第9位數(shù)據(jù),由軟體設(shè)定,用作奇偶校驗(yàn)位或地址/數(shù)據(jù)標(biāo)誌位,作後者使用時(shí)多用於多機(jī)通信。RB8:方式2和方式3中接收到的第9位數(shù)據(jù),在方式1中,如果SM2:0,則RB8為收到的停止位;方式0不使用RB8。3.電源控制寄存器(PCON)PCON主要用於CMOS型單片機(jī)的低功耗電源控制,其格式如下:低四位用於電源控制,與串行介面無(wú)關(guān)。最高位SMOD用於對(duì)串行口串列傳輸速率的控制,當(dāng)SMOD=1時(shí)串列傳輸速率增大一倍,複位時(shí),SMOD=0。PCON各位的格式如下:上一頁(yè)下一頁(yè)返回SMOD——————GF1GF0PDIDLPCON
(87H)D7D6D5D4D3D2D1D05.4MCS-51單片機(jī)的串行介面5.4.3串行口工作方式及應(yīng)用5.4.3.1串行口的工作方式如前所述,MCS-5l單片機(jī)的串行口有4種工作方式—方式0、方式1、方式2和方式3。5.4.3.1.1方式0當(dāng)SM0=0、SMl=0時(shí),串行口工作於方式0(移位寄存器方式),此時(shí)為同步通信。在方式0下,RXD(P3.0)為數(shù)據(jù)輸入/輸出端,TXD為(P3.1)同步脈衝輸出端。發(fā)送或接收數(shù)據(jù)的長(zhǎng)度為8位,低位在前,高位在後。方式0的串列傳輸速率固定為fOSC/12,也就是每個(gè)機(jī)器週期傳送一位數(shù)據(jù)。圖5-40為MCS-51單片機(jī)串行口同步通信方式0的工作原理圖。上一頁(yè)下一頁(yè)返回5.4MCS-51單片機(jī)的串行介面1.發(fā)送過(guò)程當(dāng)CPU執(zhí)行了任何一條以SBUF為目標(biāo)運(yùn)算元的指令(如MOVSBUF,A)後,就啟動(dòng)了發(fā)送過(guò)程。當(dāng)把要發(fā)送的數(shù)據(jù)寫入串行口發(fā)送緩衝器SBUF後,串行口即將此8位數(shù)據(jù)以fOSC/12的串列傳輸速率從RXD引腳輸出(低位在前,高位在後)。發(fā)送完8位數(shù)據(jù)後,由硬體將TI標(biāo)誌置位。再次發(fā)送數(shù)據(jù)之前,必須由軟體將TI清零。從寫SBUF到TI置位,相隔9個(gè)機(jī)器週期,這期間完成了發(fā)送1幀數(shù)據(jù)的全過(guò)程。方式0的發(fā)送時(shí)序如圖5-41所示。2.接收過(guò)程在允許接收位REN為1和RI為0時(shí),可啟動(dòng)接收過(guò)程。此時(shí)RXD為數(shù)據(jù)輸人端,TXD為同步信號(hào)輸出端。串行輸入的串列傳輸速率為fOSC/12。當(dāng)接收完8位數(shù)據(jù)後,由硬體將RI標(biāo)誌置位。要再次接收時(shí),必須由軟體將RI標(biāo)誌清零。從啟動(dòng)接收到RI置位,相隔9個(gè)機(jī)器週期,這期間完成了接收1幀數(shù)據(jù)的全過(guò)程。方式0的接收時(shí)序如圖5-42所示。
上一頁(yè)下一頁(yè)返回5.4MCS-51單片機(jī)的串行介面
5.4.3.1.2方式1當(dāng)SM0=0、SMl=1時(shí),串行口工作於方式1。方式l為串列傳輸速率可變的8位非同步通信方式,由TXD發(fā)送,RXD接收。一幀數(shù)據(jù)為10位:1位起始位(低電平)、8位數(shù)據(jù)位(低位在前)和1位停止位(高電平)。串行口非同步通信的工作原理見(jiàn)圖5-43。
1.發(fā)送過(guò)程當(dāng)單片機(jī)執(zhí)行了一條將數(shù)據(jù)寫入發(fā)送緩衝器SBUF的指令後,就啟動(dòng)了發(fā)送過(guò)程。當(dāng)發(fā)送完一幀數(shù)據(jù)時(shí),發(fā)送中斷標(biāo)誌TI被置位。串行口方式1發(fā)送時(shí)序如圖5-44所示。上一頁(yè)下一頁(yè)返回5.4MCS-51單片機(jī)的串行介面2.接收過(guò)程當(dāng)REN=l時(shí)為允許接收。接收器開始檢測(cè)RXD引腳的信號(hào),採(cǎi)樣頻率為串列傳輸速率的16倍。當(dāng)檢測(cè)到RXD引腳上有從“1”到“0”的跳變時(shí),就啟動(dòng)接收器接收。先接收起始位,然後接收一幀的其餘資訊。如果接收不到有效的起始位,則重新檢測(cè)負(fù)跳變。為了保證接收數(shù)據(jù)的正確無(wú)誤,對(duì)每一位數(shù)據(jù)的檢測(cè)採(cǎi)用“測(cè)三取二”的方法。即把一個(gè)位週期分為16個(gè)狀態(tài),在第7、8、9狀態(tài)時(shí)檢測(cè)RXD引腳上的電平,取其大於等於2次的相同值作為測(cè)得值。此檢測(cè)方法是在每位數(shù)據(jù)的中間位置採(cǎi)樣,這樣即使接收端的串列傳輸速率有些差別,也不致發(fā)生錯(cuò)碼或漏碼。上一頁(yè)下一頁(yè)返回5.4MCS-51單片機(jī)的串行介面若採(cǎi)用方式1接收時(shí),必須滿足以下兩個(gè)條件:一是RI=0,即沒(méi)有中斷請(qǐng)求或上幀數(shù)據(jù)接收完成時(shí)發(fā)出的中斷請(qǐng)求已被回應(yīng),SBUF中存放的上一幀數(shù)據(jù)已被取走;二是SM2=0或接收到的停止位為1,則接收數(shù)據(jù)有效。將8位數(shù)據(jù)送入SBUF,停止位送RB8,RI置位。如果上述兩個(gè)條件不滿足,則接收到的這一幀數(shù)據(jù)就會(huì)丟失,接收器會(huì)重新開始檢測(cè)RXD引腳上的負(fù)跳變。方式1的接收時(shí)序如圖5-45所示。5.4.3.1.3方式2和方式3當(dāng)SMO=l、SMl=0時(shí),串行口工作於方式2;當(dāng)SMO=1、SMl=1時(shí),串行口工作於方式3。這兩種方式都是9位非同步通信方式,適用於多機(jī)通信,它們的區(qū)別僅在於串列傳輸速率不同。在方式2或方式3下,數(shù)據(jù)由TXD發(fā)送,由RXD接收。一幀數(shù)據(jù)為1l位:1位起始位(低電平)、8位數(shù)據(jù)位(低位在前)、l位可編程位(第9位數(shù)據(jù),用做奇偶校驗(yàn)或地址/數(shù)據(jù)選擇)和l位停止位。與方式l相比,這兩種方式多了一位可編程位。發(fā)送時(shí),第9位數(shù)據(jù)為TB8;接收時(shí),第9位數(shù)據(jù)送人RB8。上一頁(yè)下一頁(yè)返回5.4MCS-51單片機(jī)的串行介面1.發(fā)送過(guò)程當(dāng)CPU執(zhí)行一條寫入發(fā)送緩衝器SBUF的指令後,便立即啟動(dòng)發(fā)送。發(fā)送的數(shù)據(jù)由TXD端輸出,第9位數(shù)據(jù)為SCON中的TB8。發(fā)送完一幀資訊後,中斷標(biāo)誌TI被置位。在發(fā)送下一幀資訊之前,TI必須由軟體清零。第9位數(shù)據(jù)可作為數(shù)據(jù)的奇偶校驗(yàn)位,也可作為多機(jī)通信中的地址/數(shù)據(jù)資訊標(biāo)誌位。2.接收過(guò)程當(dāng)REN=1時(shí),允許接收接收器開始檢測(cè)RXD引腳的信號(hào),檢測(cè)和接收數(shù)據(jù)的方法與方式1相似。當(dāng)接收器收到第9位數(shù)據(jù)後,若同時(shí)滿足以下兩個(gè)條件:一是RI=0,二是接收到的第9位數(shù)據(jù)為l,則接收數(shù)據(jù)有效,8位數(shù)據(jù)裝人SBUF,第9位數(shù)據(jù)裝入RB8,並由硬體將RI置位。若不滿足這兩個(gè)條件,則接收到的這一幀數(shù)據(jù)將丟失,接收器將重新開始檢測(cè)起始位。方式2或方式3的發(fā)送與接收時(shí)序與方式1相似,僅僅是多了一位數(shù)據(jù)TB8或TB8。上一頁(yè)下一頁(yè)返回5.4MCS-51單片機(jī)的串行介面5.4.3.1.4串列傳輸速率的設(shè)置MCS-5l系列單片機(jī)串行通信的串列傳輸速率取決於串行口的工作方式。方式O的串列傳輸速率是固定的,為fOSC/12。方式2的串列傳輸速率有兩種,它取決於SMOD(PCON.7),當(dāng)SMOD=1時(shí)串列傳輸速率為fOSC/32,當(dāng)SMOD=0時(shí)為fOSC/64。由於PCON無(wú)位尋址功能,所以通常通過(guò)以下指令清零或置l。ANLPCON,#7FH;使SMOD=OORLPCON,#80H;使SMOD=1當(dāng)串行口工作於方式l和方式3時(shí),串列傳輸速率取決於定時(shí)器/計(jì)數(shù)器l的溢出率及SMOD,並有如下關(guān)係式:串列傳輸速率=2SMOD×T1溢出率/32
上一頁(yè)下一頁(yè)返回5.4MCS-51單片機(jī)的串行介面式中Tl溢出率=l/T1溢出週期,而溢出週期即為T1的定時(shí)時(shí)間。在應(yīng)用時(shí),往往根據(jù)所需的串列傳輸速率,先選取SMOD,並計(jì)算出T1的溢出率或溢出週期,然後計(jì)算T1的時(shí)間常數(shù)。T1可以工作在方式0、方式1和方式2。但由於方式2為自動(dòng)裝入時(shí)間常數(shù)的8位定時(shí)器,所以使用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 白芍收購(gòu)合同范本
- Unit 5 Topic 1 China attracts millions of tourists from all over the world.Section D 教學(xué)設(shè)計(jì) -2024-2025學(xué)年仁愛(ài)科普版九年級(jí)英語(yǔ)下冊(cè)
- 13《人物描寫一組·兩莖燈草》教學(xué)設(shè)計(jì)-2023-2024學(xué)年五年級(jí)語(yǔ)文下冊(cè)統(tǒng)編版
- 2025年眼鏡邊框項(xiàng)目可行性研究報(bào)告
- 2025至2030年中國(guó)雨刷刮片數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年立體人頭金屬紐扣項(xiàng)目可行性研究報(bào)告
- python選擇結(jié)構(gòu)教學(xué)設(shè)計(jì)
- 2025年特種電阻器項(xiàng)目可行性研究報(bào)告
- 項(xiàng)目質(zhì)量合同范本
- 2025年海鮮豆腐干項(xiàng)目可行性研究報(bào)告
- 會(huì)展服務(wù)與管理課件
- 安全風(fēng)險(xiǎn)隱患舉報(bào)獎(jiǎng)勵(lì)制度
- 護(hù)理中級(jí)競(jìng)聘報(bào)告
- 《肩袖損傷護(hù)理》課件
- 維修保養(yǎng)協(xié)議書范本
- 河南省鄭州市外國(guó)語(yǔ)高中2025屆高考?jí)狠S卷英語(yǔ)試卷含解析
- TDT1075-2023光伏發(fā)電站工程項(xiàng)目用地控制指標(biāo)
- 新版第三類醫(yī)療器械分類目錄
- 2024全新血液透析培訓(xùn)
- 護(hù)校隊(duì)工作職責(zé)及管理制度
- 2024年湖南省公務(wù)員考試《行測(cè)》真題及答案解析
評(píng)論
0/150
提交評(píng)論