單片機(jī)的擴(kuò)展設(shè)計(jì)課件_第1頁(yè)
單片機(jī)的擴(kuò)展設(shè)計(jì)課件_第2頁(yè)
單片機(jī)的擴(kuò)展設(shè)計(jì)課件_第3頁(yè)
單片機(jī)的擴(kuò)展設(shè)計(jì)課件_第4頁(yè)
單片機(jī)的擴(kuò)展設(shè)計(jì)課件_第5頁(yè)
已閱讀5頁(yè),還剩83頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

單片機(jī)的擴(kuò)展設(shè)計(jì)8.1外部程序存儲(chǔ)器擴(kuò)展NEXTHOME在使用MCS-51系列單片機(jī)時(shí),當(dāng)單片機(jī)無(wú)片內(nèi)ROM或應(yīng)用程序大于片內(nèi)程序存儲(chǔ)器時(shí),必須通過(guò)外接ROM來(lái)構(gòu)成、擴(kuò)充系統(tǒng)的程序存儲(chǔ)區(qū)。當(dāng)使用外部存儲(chǔ)器來(lái)擴(kuò)展系統(tǒng)時(shí),必須占用單片機(jī)的P0、P2口作為外部電路的數(shù)據(jù)、地址總線。此時(shí),P0、P2口就不能作為通用的I/O端口。在系統(tǒng)擴(kuò)展時(shí),外部電路與單片機(jī)連接的依據(jù)是單片機(jī)訪問(wèn)外部存儲(chǔ)器的時(shí)序,所以正確的理解時(shí)序是硬件電路設(shè)計(jì)的關(guān)鍵。在訪問(wèn)外部程序存儲(chǔ)器時(shí),由單片機(jī)的ALE/PRO引腳將低8位地址鎖存到地址總線上,/PSEN引腳自動(dòng)輸出外部程序存儲(chǔ)器的選通信號(hào),并讀取相應(yīng)的指令。BACKNEXTHOME8.1.1常用外部程序存儲(chǔ)器擴(kuò)展的外部程序存儲(chǔ)器需要具有存儲(chǔ)數(shù)據(jù)非易失的特性,所以需要采用EPROM或E2PROM。1、可擦除程序存儲(chǔ)器EPROM用戶可以多次編程。編程加寫脈沖后,某些存儲(chǔ)單元的PN結(jié)表面形成浮動(dòng)?xùn)?,阻擋通路,?shí)現(xiàn)信息寫入。用紫外線照射可驅(qū)散浮動(dòng)?xùn)?,原有信息全部擦除,便可再次改寫?、電可改寫程序存儲(chǔ)器E2PROM既可全片擦除也可字節(jié)擦除,可在線擦除信息,又能失電保存信息,同時(shí)具備RAM、ROM的優(yōu)點(diǎn)。但寫入時(shí)間較長(zhǎng)。BACKNEXTHOMEP2.7:::P2.0P0.7:::P0.0ALE/EAPsenCEA14::A8A7O7::::::A0O0OED7Q7

D0Q0CP2725632KROMMCS-51/CE=P2.7(A15)完整的地址信號(hào)MCS-51與32KROM的連接BACKNEXTHOME外部ROM的狀態(tài)與地址線A15的關(guān)系表ROM引腳/CEA14~A8A7~A0地址范圍ROM工作狀態(tài)單片機(jī)引腳A15P2口P0口00000000001111111100000000111111110000H~07FFH選中11000000001111111100000000111111118000HFFFFH未選中BACKNEXTHOME下圖是E2PROM2816的管腳示意圖,與MCS-51單片機(jī)的連接同27256。BACKNEXTHOME8.1.2訪問(wèn)外部程序存儲(chǔ)器的時(shí)序A15-A8(PC)A7-A0OPA7-A0常數(shù)存儲(chǔ)器數(shù)據(jù)輸出控制/Psen地址總線(高八位)P2口地址數(shù)據(jù)總線(低8位)P0口S1S2S6S5S4S3373地址鎖存信號(hào)ALEA15-A8(DPTR+A)ABBACKNEXTHOME

P0、P2口作地址和數(shù)據(jù)總線。其中P0口作為地址和數(shù)據(jù)復(fù)用總線,前半部(A段)作地址總線,后半部(B段)作為數(shù)據(jù)總線。外部程序存儲(chǔ)器ROM的操作步驟如下:

1,單片機(jī)必須為其提供完整的地址信息;

2,ROM芯片的/CE端=0,選中該芯片;

3,在滿足上述條件的基礎(chǔ)上,當(dāng)ROM的/OE=0時(shí)(B時(shí)間段),存儲(chǔ)器輸出數(shù)據(jù)的三態(tài)門打開,并將與輸入地址相對(duì)應(yīng)的存儲(chǔ)單元中的指令(數(shù)據(jù))向外輸出,單片機(jī)通過(guò)P0口將指令送至CPU內(nèi)部。

74LS373鎖存器:將A時(shí)間段P0口輸出的低位地址進(jìn)行保存,使ROM在B時(shí)間段仍然可以得到完整的地址信號(hào)。片外存儲(chǔ)器訪問(wèn)時(shí)序說(shuō)明(以27256位例)8.1.3外部程序存儲(chǔ)器的容量擴(kuò)展當(dāng)一片ROM芯片的容量不夠,需要使用2片以上的芯片進(jìn)行容量擴(kuò)展時(shí),可以通過(guò)譯碼電路實(shí)現(xiàn)。BACKNEXTHOMEP2.7P2.6P2.5P2.4P2.0P0口ALEPsen/CE0A12A8A78K×8A0/OE1O0~O774LS373Cy7BA

0y/CE1A12A8A78K×8A0/OE1O0~O7/CE7A12A8A78K×8A0/OE1O0~O7MCS–5174LS138P2.7~P2.5138輸出選中ROMP2.4~P0.0有效地址范圍000Y0=0第1片0000H~1FFFH0000H~1FFFH001Y1=0第2片0000H~1FFFH2000H~3FFFH010Y2=0第3片0000H~1FFFH4000H~5FFFH011Y3=0第4片0000H~1FFFH6000H~7FFFH100Y4=0第5片0000H~1FFFH8000H~9FFFH101Y5=0第6片0000H~1FFFHA000H~BFFFH110Y6=0第7片0000H~1FFFHC000H~DFFFH111Y7=0第8片0000H~1FFFHE000H~FFFFH采用LS138譯碼器實(shí)現(xiàn)ROM擴(kuò)展示意表BACKNEXTHOME【小結(jié)】:1,單片機(jī)的P0、P2口作為地址數(shù)據(jù)總線;2,P0口為數(shù)據(jù)、地址復(fù)用總線,所以必須加入八位鎖存器74LS373來(lái)鎖存P0口的低八位地址。3,外接ROM是靠Psen信號(hào)來(lái)打開數(shù)據(jù)三態(tài)門,使ROM中的指令通過(guò)P0口送入單片機(jī)內(nèi)部。4,存儲(chǔ)器的容量M與其地址線條數(shù)n的關(guān)系:M=2n5,當(dāng)使用兩片ROM擴(kuò)展時(shí),可以使用一個(gè)反向器實(shí)現(xiàn)容量的擴(kuò)展,通過(guò)ROM芯片的/CE端實(shí)現(xiàn)。6,當(dāng)使用2片以上的ROM芯片擴(kuò)展時(shí),就要使用譯碼器實(shí)現(xiàn)存儲(chǔ)容量的擴(kuò)展,譯碼器的輸入與高位地址相連接,輸出端分別與各ROM芯片的/CE連接(如前圖所示)。7,當(dāng)外接ROM的高八位地址線與P2口高八位線沒(méi)有完全用足時(shí),要注意外存儲(chǔ)的地址重疊問(wèn)題。BACKNEXTHOME8.2外部數(shù)據(jù)存儲(chǔ)器的擴(kuò)展存儲(chǔ)器中的信息可讀可寫,但失電后會(huì)丟失信息。雙極型:由TTL電路組成基本存儲(chǔ)單元,存取速度快。

MOS型:由CMOS電路組成基本存儲(chǔ)單元,集成度高、功耗低。

SRAM:靜態(tài)RAM。存儲(chǔ)單元使用雙穩(wěn)態(tài)觸發(fā)器。

DRAM動(dòng)態(tài)RAM:使用電容作存儲(chǔ)元件,需要刷新電路。集成度高,反應(yīng)快,功耗低,但需要刷新電路。8.2.1常用外部數(shù)據(jù)存儲(chǔ)器1、分類BACKNEXTHOME2、結(jié)構(gòu)外部數(shù)據(jù)存儲(chǔ)器(RAM)的內(nèi)部結(jié)構(gòu)如下圖所示,其引腳與ROM大致相同,增加了R/W(OE/WE)讀寫允許線,用于打開數(shù)據(jù)通道,決定數(shù)據(jù)的傳送方向和傳送時(shí)刻。工作方式CSOER/WDi讀001DOUT寫010DIN禁止1××ZBACKNEXTHOMEBACKNEXTHOMEBACKNEXTHOMEMCS-51與32KRAM的連接示意圖62648KRAMP2.5P2.4::P2.0P0.7:::P0.0ALERDWRCEA12::A8A7O7::::::A0O0OEWED7Q7

D0Q0CPMCS-51/CE=P2.5(A12)3、連接8.2.2訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器的時(shí)序與程序存儲(chǔ)器擴(kuò)展原理相同,數(shù)據(jù)存儲(chǔ)器的擴(kuò)展也是使用P0、P2口作為地址、數(shù)據(jù)總線。

1,當(dāng)使用MOVX@Ri指令時(shí),系統(tǒng)使用P0口輸出低8位地址信號(hào),高8位地址信號(hào)由P2口輸出;

2,當(dāng)使用MOVX@DPTR指令時(shí),P0口輸出DPTR提供的低八位地址信號(hào),P2口自動(dòng)輸出DPTR提供的高八位地址信號(hào)。

3,不論哪種情況,P0口都是地址/數(shù)據(jù)復(fù)用總線,因此仍要使用74LS373來(lái)鎖存P0口的地位地址信號(hào)。與ROM擴(kuò)展不同:使用訪問(wèn)外部RAM指令MOVX時(shí),在時(shí)序中將產(chǎn)生/RD或/WR信號(hào),因此將此信號(hào)與外RAM的讀(/RD)、寫(/WR)控制端相連接就實(shí)現(xiàn)系統(tǒng)對(duì)外RAM的讀寫控制。BACKNEXTHOME設(shè)外部RAM2000H單元中有一個(gè)數(shù)x,且DPTR中已存有該數(shù)地址2000H.則CPU執(zhí)行外部ROM中的指令: MOVX A,@DPTR ;將外RAM的X送ABACKNEXTHOMES1S2S6S5S4S3S1S2S6S5S4S3ALEA15-A8(PC)A15-A8(DPH)A7-A0指令A(yù)7-A0(DPL)數(shù)據(jù)RDP2口P0口選中外部RAMWR選中外部RAMPsen8.2.3多片外部數(shù)據(jù)存儲(chǔ)器的擴(kuò)展P2.7P2.6P2.5P2.4P2.0ALEP0口/WR/RD/CEA12A8A76264A0/WE/OEO0~O774LS373Cy7BA

0y/CEA12A8A76264A0/WE/OEO0~O7/CEA12A8A76264A0/WE/OEO0~O7MCS–5174LS138需要使用多片RAM進(jìn)行容量擴(kuò)展時(shí),同樣可以通過(guò)譯碼電路實(shí)現(xiàn)。BACKNEXTHOME8.3I/O接口擴(kuò)展設(shè)計(jì)及應(yīng)用如果系統(tǒng)使用了外部存儲(chǔ)器時(shí),P0、P2口和P3口都被外存儲(chǔ)器占用,留給用戶的只有P1口。因此I/O端口的擴(kuò)展是使用MCS-51作為嵌入式控制器進(jìn)行硬件設(shè)計(jì)中經(jīng)常遇到的問(wèn)題:8.3.1可編程并行I/O接口芯片8255A1,8255A的內(nèi)部結(jié)構(gòu)和引腳功能

8255A是Intel公司生產(chǎn)的標(biāo)準(zhǔn)外圍接口芯片,它采用NMOS工藝制造,用單一+5V供電,有40根引腳;具有A、B、C三個(gè)端口共24條I/O線,可以通過(guò)編程的方法來(lái)設(shè)定端口的各種功能;由于8255A的功能強(qiáng),又能方便地與各種微機(jī)系統(tǒng)連接,同時(shí)不需要附加外部電路,因而得到了廣泛的應(yīng)用。BACKNEXTHOMEA口C口高四位B口C口低四位A組控制器B組控制器數(shù)緩沖據(jù)器讀制寫邏控輯PA7-0PB7-0PC7-4PC3-0D7-D0/RD/WRA0A1RESET/CSBACKNEXTHOME8255的內(nèi)部結(jié)構(gòu)圖(一):內(nèi)部結(jié)構(gòu):由四部分組成。1,A口,B口和C口:

A口:8位數(shù)據(jù)輸出緩沖/鎖存,輸入緩沖/鎖存的I/O端口。

B,C口:8位數(shù)據(jù)輸出緩沖/鎖存,輸入緩沖的I/O端口。2,A組控制器,B組控制器接收CPU發(fā)送的控制字并確定8255的工作模式,其中A組控制器控制A口和C口的高4位;B組控制器控制B口和C口的低4位。3,數(shù)據(jù)緩沖器:雙向8位,用于傳送CPU與8255之間的數(shù)據(jù)和控制字。4,讀寫控制器:接收CPU送來(lái)的讀(/RD),寫(/WR)和片選(/CS)等信號(hào),用于對(duì)8255的讀寫控制。BACKNEXTHOME(二)引腳功能:40腳DIP封裝。1,數(shù)據(jù)總線D7~D0,與內(nèi)部數(shù)據(jù)緩沖器連接,用來(lái)傳送CPU與8255之間的數(shù)據(jù)字、控制字。2,控制總線: RESET:復(fù)位線,高電平有效; /CS:片選信號(hào),低電平有效; /RD,/WR讀寫命令線:低電平有效; A0,A1:地址輸入線,用于選中A口,B口,C口和控制寄存器。3,并行I/O總線(24條): PA7~PA0:雙向I/O總線,可由控制字設(shè)定為輸入、輸出或輸入輸出雙向方式; PB7~PB0:雙向I/O總線,可由控制字設(shè)定為輸入或輸出方式; PC7~PC0:雙向I/O總線,可以設(shè)定為傳送I/O數(shù)據(jù)(模式0)或控制/狀態(tài)信息(模式1,2);4,電源線: Vcc和GND.BACKNEXTHOME未選中XXXXXX1寫控制字控制口C3H01110寫C口C2H01100讀C口C口C2H10100寫B(tài)口C1H01010讀B口B口C1H10010寫A口C0H01000讀A口A口C0H10000功能端口端口地址/WR/RDA1A0/CS8255控制信號(hào)功能、地址表(設(shè)/CS=C0H)BACKNEXTHOME2,8255A的工作方式及設(shè)置BACKNEXTHOME8255A有三種工作模式:模式0,模式1,和模式2。用戶可以通過(guò)“8255A工作方式選擇控制字”來(lái)設(shè)定所需的工作模式。(1)模式0:基本的輸入/輸出方式(2)模式1:選通輸入、選通輸出方式:A口、B口作為輸入或輸出,C口做聯(lián)絡(luò)線(3)模式2:A口的雙向選通(輸入/輸出)方式(一)工作方式的設(shè)置8255有兩個(gè)控制字:“方式控制字”和“C口置復(fù)位控制字”。兩者以控制字的D7=1或D7=0來(lái)區(qū)別?!肮ぷ鞣绞竭x擇控制字”:用于確定三個(gè)端口的輸入或輸出等;D7:控制字標(biāo)志位。1表明為“方式控制字”,0表明為C口置復(fù)位控制字;D6,D5:A組方式選擇位。00:模式0,01:模式1,1X:模式2。D4:A口輸入/輸出控制位。=0時(shí)A口用于輸出;=1時(shí)A口用于輸入。D3:C口高4位輸入/輸出控制位。=0時(shí)C口高4位用于輸出;=1用于輸入。BACKNEXTHOMED2:B組方式選擇位。D2=0時(shí),B組設(shè)定為模式0;=1時(shí),設(shè)定為模式1。D1:B口輸入/輸出控制。D1=0時(shí),B口用于輸出;=1時(shí),B口用于輸入。D0:C口低4位輸入/輸出控制。=0時(shí)用于輸出;=1時(shí),用于輸入。D0D1D2D3D4D5D6D7=1標(biāo)志位A組方式選擇A口、C口高4B組方式B口、C口低4“C口單一置位復(fù)位控制字”:

使C口各位在模式1,2時(shí)單獨(dú)置位或復(fù)位,以實(shí)現(xiàn)某些控制功能。如:設(shè)置或清除A口、B口的中斷允許位等。D7:控制字標(biāo)志位。=0表明為“C口單一支復(fù)位控制字”。D6~D4:不用。D3~D1:C口選擇位。三位二進(jìn)制數(shù)(000~111),確定C口中8個(gè)位(D7~D0)中的某一位。D0:置復(fù)位控制位。D0=0時(shí),復(fù)位;D0=1時(shí),置位。BACKNEXTHOMED0D1D2D3XXXD7=0標(biāo)志位=0D6-D4位不用C口位選擇位置復(fù)位控制位(二)模式0:基本的輸入/輸出方式在模式0時(shí),CPU可以對(duì)8255A無(wú)條件的進(jìn)行I/O數(shù)據(jù)傳送,數(shù)據(jù)可以在8255A對(duì)應(yīng)的鎖存器中鎖存。同樣,外設(shè)的I/O數(shù)據(jù)同樣可以送到各端口得到鎖存或緩沖。也可以將某些位設(shè)定為外設(shè)的狀態(tài)輸入位,CPU通過(guò)查詢狀態(tài)與外設(shè)進(jìn)行異步I/O數(shù)據(jù)傳送?!咀⒁狻浚寒?dāng)端口的輸入/輸出特性設(shè)定后,數(shù)據(jù)流是單向的; 作為輸入端口時(shí),只有A口的數(shù)據(jù)能夠鎖存; C口雖分為上、下四位,但操作時(shí)必須作為一個(gè)整體。BACKNEXTHOME【例】:設(shè)8255A的基本地址為0FFF8H,試編程將A口和C口的高4位設(shè)定為模式0的輸出方式,B口和C口的低4位設(shè)定為模式0的輸入方式?!窘狻浚?MOV DPTR,#0FFFBH ;控制寄存器地址送DPTR MOV A,#10000011B ;方式控制字83H送A MOV @DPTR,A ;控制字83H送控制寄存器(三)模式1:選通輸入、選通輸出方式A口、B口均可獨(dú)立的設(shè)置為這種工作模式;在這種模式下,A口、B口通常用于傳送與它們相連外設(shè)的I/O數(shù)據(jù)。而此時(shí),C口作為A口、B口與外設(shè)之間的聯(lián)絡(luò)握手信號(hào),可以實(shí)現(xiàn)CPU與外設(shè)之間以“中斷”的方式進(jìn)行異步I/O數(shù)據(jù)傳送;在這種模式下,A口和B口的數(shù)據(jù)都能被鎖存。模式1下C口各位定義如下:C口各位模式1模式2輸入方式輸出方式雙向I/O方式PC7I/O/OBFa/OBFaPC6I/O/ACKa/ACKaPC5IBFaI/OIBFaPC4/STBaI/O/STBaPC3INTRaINTRaINTRaPC2STBb/ACKb由B口模式?jīng)Q定PC1IBFb/OBFb由B口模式?jīng)Q定PC0INTRbINTRb由B口模式?jīng)Q定BACKNEXTHOMEBACKNEXTHOMEINTR:8255A發(fā)出的中斷請(qǐng)求信號(hào),經(jīng)反相后送單片機(jī)。IBF:8255A發(fā)出“輸入緩沖器滿”信號(hào)。/OBF:輸出緩沖器滿信號(hào)/STB:外設(shè)發(fā)出的“選通信號(hào)”,用于8255A的數(shù)據(jù)鎖存用。/ACK:外設(shè)發(fā)出通知8255A的“已接收到數(shù)據(jù)”的應(yīng)答信號(hào)?!纠浚?255的模式1:選通輸入方式(A口)P08031/INT0D7-D0PAPC4PC5PC3D7-D0輸入設(shè)備INTEa/STBaIBFaINTRa12BACKNEXTHOME1,當(dāng)外設(shè)輸入數(shù)據(jù)到PA口時(shí),自動(dòng)的向/STBa發(fā)出一個(gè)低電平選通信號(hào);2,8255A收到/STBa上的負(fù)脈沖后作兩件事:一是將數(shù)據(jù)存入A口輸入緩沖/鎖存器中;二是輸入“緩沖器滿”的IBFa高電平信號(hào),通知外設(shè)已收到數(shù)據(jù)。3,8255A檢測(cè)到/STBa變?yōu)楦唠姇r(shí),將INTRa變高向CPU申請(qǐng)中斷。4,CPU響應(yīng)中斷后,從A口讀取數(shù)據(jù),并在讀走數(shù)據(jù)后8255A撤掉INTRa信號(hào),并使IBFa變低通知外設(shè)送下一個(gè)字節(jié)的數(shù)據(jù)。(四)模式2:A口的雙向(輸入/輸出)方式只有A口具有模式2方式。此時(shí),PA口為雙向I/O總線。

1,當(dāng)PA作輸入口時(shí),由/STBa和IBFa信號(hào)控制,過(guò)程同模式1的輸入操作。

2,當(dāng)PA作輸出口時(shí),由/OBFa和/ACKa控制,工作過(guò)程同模式1的輸出操作。模式2非常適應(yīng)像終端一類的外設(shè),如鍵盤、顯示器等設(shè)備。BACKNEXTHOMEP08031/INT0D7-D0PAD7-D0輸入設(shè)備PC7INTE1/OBFa/ACKaINTRaPC6PC4PC5PC3IBFa/STBa+INTE23,8255A的應(yīng)用舉例設(shè)計(jì)要求:A口設(shè)為輸入口,輸入數(shù)據(jù)存入DATA0中;B口和C口設(shè)為輸出口,分別從DATA1和DATA2取數(shù)據(jù)輸出。/RD/WRP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0ALE89C51

D7Q7D6Q6D5Q5D4Q4D3Q3D2Q2D1Q1D0Q074LS373G/E/RD/WRRESET/CS

PC口

8255AA1A0

PB口D7D6D5D4D3D2PA口D1D0/CS=FF7XHA口:FF70HB口:FF71H,C口:FF72H,控制口:FF73HBACKNEXTHOMEBACKNEXTHOME程序清單: ORG 0100HSTART: MOV A,#90H ;方式0,A輸入,B、C 輸出 MOV DPTR,#0FF73H ;8255A控制口地址送指針 MOVX @DPTR,A ;控制字送8255A控制寄存器 MOV DPTR,#0FF70H ;A口地址送指針 MOVX A,@DPTR ;從A口輸入數(shù)據(jù)到A MOV DATA0,A ;輸入數(shù)據(jù)存入DATA1單元 MOV DPTR,#0FF71H ;B口地址送指針 MOV A,DATA1 ;從內(nèi)存DATA1單元中取數(shù) MOVX @DPTR,A ;數(shù)據(jù)從B口輸出 MOV DPTR,#0FF72H ;C口地址送指針 MOV A,DATA2 ;從內(nèi)存DATA2單元中取數(shù) MOVX @DPTR,A ;數(shù)據(jù)從C口輸出00001001標(biāo)志位A組方式選擇A口、C口高4B組方式B口、C口低48.3.2可編程RAM及并行I/O接口芯片8155H

8155H是Intel公司生產(chǎn)的可編程多功能接口芯片,它采用NMOS工藝制造,用單一+5V供電,有40根引腳;內(nèi)部具有兩個(gè)可編程的8位并行I/O口、一個(gè)6位并行I/O口、一個(gè)14位定時(shí)器以及256字節(jié)的RAM存儲(chǔ)器;由于8155H的功能強(qiáng),可以直接與MCS-51系列單片機(jī)連接,同時(shí)不需要附加外部電路,因而單片機(jī)應(yīng)用系統(tǒng)中最常用的一種接口芯片。1,8155H的邏輯結(jié)構(gòu)及引腳BACKNEXTHOMEBACKNEXTHOMEBACKNEXTHOMEBACKNEXTHOMEBACKNEXTHOME2,8155H中RAM和I/O端口的編址

8155共有256個(gè)字節(jié)RAM,可以安排在64k字節(jié)外RAM空間的任一區(qū)域中,具體由CE、IO/M與MCS-51單片機(jī)的高位地址線的連接方法確定。單片機(jī)訪問(wèn)時(shí)應(yīng)使CE=0,IO/M=0;片內(nèi)單元由AD0~AD7確定。

8155的I/O部分有7個(gè)可編程程序寄存器,如圖所示。單片機(jī)要訪問(wèn)這些寄存器必須使CE=0、IO/M=1。其命令寄存器(只寫)、狀態(tài)寄存器(只讀),合用一個(gè)地址,所以8155安排了6個(gè)端口,由AD2~AD0三位編碼確定,BACKNEXTHOME3,8155H的編程設(shè)置及工作方式PAPBPC1PC2IEAIEBTM1TM2D7D6D5D4D3D2D1D0對(duì)8155H的設(shè)置是通過(guò)寫入控制命令寄存器的命令字來(lái)實(shí)現(xiàn)的。命令寄存器只能寫入,不能讀出,其具體格式及定義如下:BACKNEXTHOME0:A口輸入;1:A口輸出0:B口輸入;1:B口輸出00(ALT1):基本I/O方式,C口為輸入01(ALT2):基本I/O方式,C口為輸出02(ALT3):A口選通I/O,B口基本I/O,C口高三位輸出,低三位為聯(lián)絡(luò)信號(hào)03(ALT4):選通方式,C口為聯(lián)絡(luò)信號(hào)命令字和狀態(tài)字PAPBPC1PC2IEAIEBTM1TM2D7D6D5D4D3D2D1D0A口中斷:0禁止,1允許B口中斷:0禁止,1允許定時(shí)器工作方式:00=無(wú)操作01=停止計(jì)數(shù)10=計(jì)滿后停止11=開始計(jì)數(shù)BACKNEXTHOME關(guān)于定時(shí)器控制位(TM1,TM2)的補(bǔ)充說(shuō)明:當(dāng)TM1,TM2=11時(shí),裝入計(jì)數(shù)長(zhǎng)度和方式后立即開始計(jì)數(shù),若計(jì)數(shù)器正在計(jì)數(shù),則待計(jì)數(shù)器溢出后以新裝入的計(jì)數(shù)長(zhǎng)度和方式進(jìn)行計(jì)數(shù)。INTRAABFINTEAINTRBBBFINTEBTIMER×D7D6D5D4D3D2D1D0在8155H中,其狀態(tài)寄存器是與命令寄存器共用一個(gè)地址,只能讀出,不能寫入,讀出的數(shù)據(jù)為表示8155H當(dāng)前狀態(tài)的狀態(tài)字A口中斷請(qǐng)求A口緩沖器滿/空A口中斷允許B口中斷請(qǐng)求B口緩沖器滿/空B口中斷允許定時(shí)器中斷BACKNEXTHOME8155H的工作方式(1)存儲(chǔ)器方式此方式下8155H相當(dāng)于一個(gè)256字節(jié)的外部RAM,此時(shí)要求I/M=0,CE=0,單片機(jī)通過(guò)AD0~AD7對(duì)其尋址并進(jìn)行讀寫操作。BACKNEXTHOMEP0口AD0~AD7ALEALEP2.0I/MCERDRDWRWRP2.7(2)I/O方式BACKNEXTHOME基本I/O方式:當(dāng)命令字中的PC1、PC2設(shè)置為00或01時(shí),選擇的工作方式為方式1或方式2,即基本I/O方式,這時(shí)不用聯(lián)絡(luò)信號(hào),C口可以做為輸入(方式1)或輸出(方式2)。選通I/O方式:當(dāng)命令字中的PC1、PC2設(shè)置為10或11時(shí),選擇的工作方式為方式3或方式4,即選通I/O方式:方式3:規(guī)定A口為選通I/O口,B口為基本I/O口,C口高3位為數(shù)據(jù)輸出線,C口的低3位作為A口的聯(lián)絡(luò)線

PC0→AINTR PC1→ABF PC2←ASTB

方式4:規(guī)定A口、B口均為選通I/O、C口的低3位作為A口的聯(lián)絡(luò)線(與方式3相同),C口的高3位作為B口的聯(lián)絡(luò)線。

PC3→BINTR PC4→BBF PC5←BSTBBACKNEXTHOMEC口在兩種I/O工作方式下的定義BSTB(B口選通)輸出輸出輸入PC5BBF(B口緩沖器滿)輸出輸出輸入PC4BINTR(B口中斷)輸出輸出輸入PC3ASTB(A口選通)ASTB(A口選通)輸出輸入PC2ABF(A口緩沖器滿)ABF(A口緩沖器滿)輸出輸入PC1AINTR(A口中斷)AINTR(A口中斷)輸出輸入PC0ALT4ALT3ALT2ALT1選通I/O方式通用I/O方式C口(3)計(jì)數(shù)器/定時(shí)器方式

8155H中有一個(gè)14位減1計(jì)數(shù)器,可對(duì)從Tin端輸入的脈沖進(jìn)行減法計(jì)數(shù),計(jì)數(shù)終值為0。設(shè)置了兩個(gè)8位寄存器,其中14位用于存放計(jì)數(shù)值,最高兩位規(guī)定定時(shí)器的輸出方式。對(duì)定時(shí)器的編程:首先將計(jì)數(shù)常數(shù)及定時(shí)器輸出方式寫入定時(shí)器寄存器中,對(duì)定時(shí)器的啟??刂苿t是通過(guò)命令寄存器實(shí)現(xiàn)的。BACKNEXTHOMET0T1T2T3T4T5T6T7D7D6D5D4D3D2D1D0T8T9T10T11T12T13M1M2D7D6D5D4D3D2D1D0低8位高8位兩個(gè)8位寄存器數(shù)據(jù)格式M1M2方式00011011定時(shí)器輸出波形單個(gè)方波連續(xù)方波單個(gè)脈沖連續(xù)脈沖BACKNEXTHOME8155H的定時(shí)器/計(jì)數(shù)器與MCS-51單片機(jī)內(nèi)部的定時(shí)器/計(jì)數(shù)器在功能上是相同的,都有計(jì)數(shù)和定時(shí)兩種功能,本質(zhì)都是計(jì)數(shù),溢出后發(fā)出信號(hào)并可觸發(fā)中斷。在兩個(gè)寄存器中,低14位組成計(jì)數(shù)器,高兩位決定TMROUT的輸出方式,如下表所示。8155H中的計(jì)數(shù)/定時(shí)器與MCS-51單片機(jī)內(nèi)部計(jì)數(shù)/定時(shí)器的比較BACKNEXTHOME

8155H的計(jì)數(shù)/定時(shí)器為減法計(jì)數(shù),而MCS-51單片機(jī)內(nèi)部計(jì)數(shù)/定時(shí)器為加法計(jì)數(shù),因此二者確定計(jì)數(shù)初值的方法是不同的。

MCS-51單片機(jī)內(nèi)部的計(jì)數(shù)/定時(shí)器有多種工作方式,而8155H的計(jì)數(shù)/定時(shí)器只有一種固定的工作方式,即14位計(jì)數(shù)。

MCS-51單片機(jī)內(nèi)部的計(jì)數(shù)/定時(shí)器有兩種計(jì)數(shù)脈沖,當(dāng)定時(shí)工作時(shí)由芯片內(nèi)部提供固定頻率的計(jì)數(shù)脈沖;當(dāng)計(jì)數(shù)工作時(shí)由芯片外部引入計(jì)數(shù)脈沖。而8155H的計(jì)數(shù)/定時(shí)器不論定時(shí)還是計(jì)數(shù),必須由外部提供計(jì)數(shù)脈沖到TMRIN引腳。

MCS-51單片機(jī)內(nèi)部的計(jì)數(shù)/定時(shí)器,在計(jì)數(shù)溢出時(shí)自動(dòng)置位TCON中的TF位,以供用戶查詢或觸發(fā)中斷;而8155H的計(jì)數(shù)/定時(shí)器在計(jì)數(shù)溢出時(shí)卻是通過(guò)TMROUT引腳向外部發(fā)出一個(gè)脈沖信號(hào)。【注意】:8155H的計(jì)數(shù)/定時(shí)器在計(jì)數(shù)過(guò)程中,寄存器中的數(shù)值并不直接表示外部輸入的脈沖數(shù)。4,8155H與MCS-51系列單片機(jī)的連接BACKNEXTHOMEP0口AD0~AD7ALEALEP2.0I/MCERDRDWRWRP2.7TINTOUT【注意】:若要使用8155H的計(jì)數(shù)/定時(shí)器時(shí),需在其輸入(TMRIN)和輸出(TMROUT)引腳接入適當(dāng)連接信號(hào)。8.3.3使用普通TTL芯片擴(kuò)展并行I/O接口BACKNEXTHOME當(dāng)需要擴(kuò)展的I/O口要求不高,且地址線被占用不多時(shí),可采用普通的TTl芯片進(jìn)行擴(kuò)展,通常用74LS244(8位三態(tài)緩沖器及總線驅(qū)動(dòng)器)擴(kuò)展輸入口,用74LS373(8D鎖存器)擴(kuò)展輸出口,如圖所示。在使用TTL芯片擴(kuò)展接口時(shí),還應(yīng)注意兩點(diǎn):(1)I/O地址的安排,如果擴(kuò)展的接口不多,則可用線選尋址,在如下圖中P2.0來(lái)選擇一個(gè)輸入口和一個(gè)輸出口。線選法未能使地址空間得到充分利用,對(duì)于RAM和I/O口容量較大的系統(tǒng),可用74LS138作為地址譯碼器,譯碼出的信號(hào)作為片選信號(hào)。(2)總線負(fù)載能力的擴(kuò)大:P0口作地址/數(shù)據(jù)總線時(shí),其負(fù)載能力為8個(gè)LSTTL電路,P2口作為地址總線時(shí),其負(fù)載能力為4個(gè)LSTTL電路,如果超過(guò)必須增加總線驅(qū)動(dòng)器,如:74LS244(單向)、74LS245(雙向)等。BACKNEXTHOME8.4A/D、D/A的接口設(shè)計(jì)在單片機(jī)應(yīng)用系統(tǒng)中,經(jīng)常要用到模擬量/數(shù)字量(A/D)、數(shù)字量/模擬量(D/A)轉(zhuǎn)換器,因此本節(jié)介紹A/D、D/A轉(zhuǎn)換器的工作原理及與單片機(jī)的接口方法。8.4.1D/A轉(zhuǎn)換器的原理及應(yīng)用1,D/A轉(zhuǎn)換器的轉(zhuǎn)換原理BACKNEXTHOMED/A轉(zhuǎn)換器D7:D0tV數(shù)字量輸入模擬量輸出D/A轉(zhuǎn)換器就是將數(shù)字量轉(zhuǎn)換成模擬量輸出,其工作過(guò)程如下圖所示:T型電阻網(wǎng)絡(luò)構(gòu)成的D/A轉(zhuǎn)換器:T型網(wǎng)絡(luò)如下圖所示:Iout=I3+I2+I1+I0RRRRR2R2R2R2RVR3210I3I2I1I0Iout分析0,1,2,3各點(diǎn)對(duì)地的電阻(=R)分析各點(diǎn)電壓和I3,I2,I1,I0電流:因?yàn)?I3=I總×1/2所以I3=VR/(2×R)= U2=VR/2所以I2=VR/(2×2R)= U1=U2/2=VR/4所以I1=VR/(4×2R)= U0=U1/2=VR/8所以I0=VR/(8×2R)=BACKNEXTHOMERRRRR2R2R2R2RVREFI3I2I1I0b3b2b1b0四位DAC寄存器-+RfIRfIout1Vout電流/電壓變換Vout=-Iout×RfIout2BACKNEXTHOME2,DAC0832芯片介紹8位輸入寄存器8位DAC寄存器8位T型電阻網(wǎng)絡(luò)DI7DI6DI5DI4DI3DI2DI1DI0ILE/CS/WR1/WR2/XFERM1M3VREFIout2Iout1RfbGNDRf=1允許輸入=0鎖存數(shù)據(jù)阻斷新數(shù)據(jù)=1允許輸入進(jìn)行轉(zhuǎn)換=0鎖存數(shù)據(jù)阻斷新數(shù)據(jù)DAC0832內(nèi)部結(jié)構(gòu)示意圖BACKNEXTHOMEBACKNEXTHOME8位輸入數(shù)據(jù)寄存器:存放CPU送來(lái)得數(shù)據(jù),由M1控制;8位DAC寄存器:存放待轉(zhuǎn)換的數(shù)據(jù),由M3控制;帶有開關(guān)的8位T型電阻網(wǎng)絡(luò):輸出與數(shù)字量對(duì)應(yīng)的模擬電流。DAC0832芯片引腳介紹:數(shù)字量輸入線DI7~DI0:第1級(jí)緩沖控制線:

ILE:允許數(shù)字量輸入線,高電平有效。

/CS:片選線,低電平有效。

/WR1:寫命令控制線,低電平有效。

ILE=1,/CS,/WR1=0時(shí),M1為1,數(shù)據(jù)進(jìn)入輸入寄存器。反之,條件不滿足時(shí),M1=0,鎖存器鎖存數(shù)據(jù)。第2級(jí)緩沖控制線(控制DAC轉(zhuǎn)換時(shí)間):

/WR2:寫命令控制線,低電平有效。

/XFER:輸入傳送控制線,低電平有效。

/WR2=0,/XFER=0時(shí),M3為1,數(shù)據(jù)進(jìn)入DAC寄存器,通過(guò)T型電阻網(wǎng)絡(luò)實(shí)現(xiàn)DAC轉(zhuǎn)換。反之,條件不滿足時(shí),M3=0,鎖存器鎖存數(shù)據(jù)。

DAC寄存器不接收前面輸入寄存器的數(shù)據(jù)。BACKNEXTHOME輸出線:

Rfb:與外接運(yùn)算放大器的輸出端相連。

Iout1、Iout2:模擬電流輸出線,分別與運(yùn)算放大器的反相端、同相端連接。電源線:

VCC:電源輸入線,+5V~+15V之間。

VREF:參考電壓輸入線,-10V~+10V范圍內(nèi),由基準(zhǔn)電源提供。

DGND:數(shù)字電源地。

AGND:模擬電源地。-+I(xiàn)RfVout電流/電壓變換DAC0832Iout1Iout2RfbMCS-51單片機(jī)與DAC0832芯片的連接:實(shí)際電路中常將DAC0832內(nèi)部?jī)蓚€(gè)緩沖器中的一個(gè)接成直通方式,如將后級(jí)的DAC寄存器直通(/XFER,/WR2=0),用單片機(jī)的/WR與DAC0832的/WR1連接。這樣,一旦數(shù)據(jù)進(jìn)入輸入寄存器DAC就開始進(jìn)行轉(zhuǎn)換。使用: MOVR0,#0FEH ;來(lái)選定DAC0832的片選/CS MOVX@R0,A;指令產(chǎn)生/WR信號(hào)使數(shù)據(jù)進(jìn)入0832進(jìn)行轉(zhuǎn)換(A中為待轉(zhuǎn)換的數(shù)字N)。/WRP0口ALE/WR1/WR2/XFERRfb/CSIout1ILEIout2DI7~DI0鎖存器譯碼器+5V-+VoutFEHBACKNEXTHOMEBACKNEXTHOME【例】:使用DAC0832作波形發(fā)生器,分別輸出鋸齒波、三角波和方波。Voutt/WR1/WR2/XFERRfb/CSIout1ILEIout2DI7~DI0-+Vout1,鋸齒波發(fā)生器程序: ORG 1000HSTART:MOV R0,#0FEH MOVX @R0,A INC A SJMP START END【說(shuō)明】:?jiǎn)螛O性輸出VoutVoutt/WR1/WR2/XFERRfb/CSIout1ILEIout2DI7~DI0-+VoutBACKNEXTHOME2,三角波發(fā)生器程序: ORG 1000HSTART:CLR A MOV R0,#0FEHDOWN: MOVX @R0,A INC A JNZ DOWNUP: MOVX @R0,A DEC A JNZ UP SJMP DOWN END【說(shuō)明】:?jiǎn)螛O性輸出VoutBACKNEXTHOME3,方波發(fā)生器程序: ORG 1000HSTART:MOV R0,#0FEHLOOP:MOV A,#00H MOVX @R0,A ACALL DELAY MOV A,#0FFH MOVX @R0,A ACALLDELAY SJMP LOOPDELAY:: END【說(shuō)明】:?jiǎn)螛O性輸出VoutVoutt/WR1/WR2/XFERRfb/CSIout1ILEIout2DI7~DI0-+Vout8.4.2A/D轉(zhuǎn)換器的原理及應(yīng)用A/D轉(zhuǎn)換器用于實(shí)現(xiàn)模擬量向數(shù)字量的轉(zhuǎn)換。按轉(zhuǎn)換原理可分為四種:計(jì)數(shù)式、雙積分式、逐次比較式及并行式,目前最常用的是雙積分式和逐次比較式。1,A/D轉(zhuǎn)換器的轉(zhuǎn)換原理逐次比較式A/D轉(zhuǎn)換器原理控制電路N位D/A轉(zhuǎn)換網(wǎng)絡(luò)N位寄存器SAR模擬電壓輸入VXA/D轉(zhuǎn)換數(shù)據(jù)輸出啟動(dòng)時(shí)鐘狀態(tài)+-比較器VXVSBACKNEXTHOMEBACKNEXTHOME工作過(guò)程如下:1,N位寄存器首先形成10000000;經(jīng)DAC轉(zhuǎn)換后送比較器與VX相比較;2,若VX>VS時(shí),比較器通知N位寄存器保留最高位“1”。若VX<VS時(shí),比較器通過(guò)控制器將最高位“1”清除(因?yàn)閂X小于量程的一半127)。3,N位寄存器對(duì)次高位置1,再重復(fù)上面的過(guò)程,確定該位是“1”或“0”。4,經(jīng)過(guò)8次比較確定了N位計(jì)數(shù)器從D7~D0的8位數(shù)據(jù)。整個(gè)過(guò)程由輸入一個(gè)“啟動(dòng)”信號(hào)開始,到“狀態(tài)”端輸出一個(gè)標(biāo)志信號(hào)結(jié)束。雙積分式A/D轉(zhuǎn)換器原理電子開關(guān)計(jì)數(shù)器控制邏輯數(shù)據(jù)輸出標(biāo)準(zhǔn)時(shí)鐘比較器積分器VXVREF0VRVXABtT1正比于輸入電壓固定積分時(shí)間T0固定斜率反向積分BACKNEXTHOME工作過(guò)程如下:1,首先對(duì)輸入電壓VX進(jìn)行固定時(shí)間(T0)積分;2,對(duì)經(jīng)過(guò)反向后的基準(zhǔn)電壓VR進(jìn)行積分,直至比較器輸出翻轉(zhuǎn)。3,在對(duì)基準(zhǔn)電壓進(jìn)行積分時(shí),內(nèi)部計(jì)數(shù)器開始對(duì)標(biāo)準(zhǔn)時(shí)鐘進(jìn)行計(jì)數(shù)。4,電壓比較器輸出翻轉(zhuǎn)后停止計(jì)數(shù),這時(shí)計(jì)數(shù)器中的數(shù)據(jù)即為A/D轉(zhuǎn)換的數(shù)據(jù)。特點(diǎn)及常用型號(hào):

逐次比較式A/D轉(zhuǎn)換器的優(yōu)點(diǎn)是速度快,轉(zhuǎn)換精度較高;但抗干擾能力差且價(jià)格較高,其轉(zhuǎn)換時(shí)間大約在幾微秒到幾百微秒之間。常用的型號(hào)有ADC08系列和AD574系列等。雙積分式A/D轉(zhuǎn)換器的優(yōu)點(diǎn)是轉(zhuǎn)換精度高,抗干擾能力強(qiáng),價(jià)格便宜;缺點(diǎn)是轉(zhuǎn)換速度慢,大約每秒幾十次左右,因此常用于速度要求不高的場(chǎng)合。常用的型號(hào)有ICL71系列等。BACKNEXTHOME【注】:本課程以講授逐次比較式A/D轉(zhuǎn)換器為主。2,逐次比較式8位A/D轉(zhuǎn)換器ADC0809ADC0809是典型的8位8通道逐次比較式A/D轉(zhuǎn)換器,采用CMOS工藝制造。ADC0809的內(nèi)部邏輯結(jié)構(gòu)ADC0809的內(nèi)部邏輯結(jié)構(gòu)圖BACKNEXTHOME八路模擬開關(guān)地址鎖存IN026IN127IN228IN31IN42IN53IN64IN75A25B24C23ALE22+-比較器VXVS控制電路逐次比較寄存器SAR樹狀開關(guān)256電阻網(wǎng)絡(luò)三態(tài)輸出寄存器VccGNDVR(+)VR(-)11131216EOC7D721D620D519D418D38D215D114D017START6CLOCK10OE9BACKNEXTHOMEADC0809的引腳IN0~I(xiàn)N7:八路模擬電壓輸入端;ALE: 地址鎖存控制信號(hào);A~

C: 地址輸入線,A為低位;START: 啟動(dòng)脈沖輸入端,其中上升沿清SAR,下降沿啟動(dòng)ADC工作;EOC: 轉(zhuǎn)換結(jié)束標(biāo)志。此線輸出高電平時(shí)表明轉(zhuǎn)換完成。D7~D0: 數(shù)字量輸出線。OE: 輸出三態(tài)控制線。輸入高電平時(shí),引腳D7~D0上輸出轉(zhuǎn)換后的8位數(shù)字量。CLOCK: 時(shí)鐘輸入端。為ADC提供640KH的逐次比較脈沖時(shí)序。Vref(+)、

Vref(-):參考電壓輸入,為電阻網(wǎng)絡(luò)提供電壓。Vref(+)、

Vref(-)可以與Vcc和GND連接。Vcc、GND:電源和地。BACKNEXTHOME/RD/WRP0口MCS-51ALE/INT1OESTARTALEADC0809CBAD7~D0CLOCKEOC地址鎖存器地址譯碼器++P0.2P0.1P0.0分頻器F0HMCS-51單片機(jī)與ADC0809的連接使用MOVX@Ri,A指令啟動(dòng)ADC,A中為通道代碼,Ri=F0H(/WR)使用MOVXA,@Ri

指令來(lái)讀ADC的數(shù)據(jù),Ri=F0H,(/RD)使用中斷方式為ADC0809服務(wù)?!纠浚涸嚲幊虒?duì)IN0-IN7上的模擬電壓采集并送到內(nèi)部RAM30H開始的單元,設(shè)ADC地址為0F0H。 ORG 0A00H ;主程序START: MOV R1,#30H ;數(shù)據(jù)區(qū)指針R1賦初值30H MOV R4,#08H ;計(jì)數(shù)器R4賦初值08H MOV R2,#00H ;通道代碼送R2 SETB EA SETB EX1 ;開/INT1中斷 SETB IT1 ;設(shè)/INT1為邊沿觸發(fā) MOV R0,#0F0H ;ADC地址送間址寄存器R0 MOV A,R2 ;通道代碼送累加器A MOVX @R0,A ;送通道代碼并啟動(dòng)ADC SJMP $ ;等待中斷。。。。

ORG 0013H LJMP CINT1BACKNEXTHOME ORG 0100HCINT1: MOV R0,#0F0H ;中斷服務(wù)程序 MOVXA,@R0 ;讀入ADC數(shù)據(jù) MOV @R1,A ;存入轉(zhuǎn)換的數(shù)據(jù) INC R1 ;修改數(shù)據(jù)區(qū)指針R1 INC R2 ;修改通道代碼寄存器R2 MOV A,R2 ;通道代碼送累加器A MOVX@R0,A ;送下一個(gè)通道代碼并啟動(dòng)ADC DJNZ R4,LOOP ;若未采集完轉(zhuǎn)LOOP CLR EX1 ;采集完時(shí),關(guān)中斷LOOP: RETI ;中斷返回 ENDBACKHOME8.5鍵盤與顯示接口設(shè)計(jì)8.5.1鍵盤接口BACKNEXTHOME鍵盤按其結(jié)構(gòu)形式可分為編碼式鍵盤和非編碼式鍵盤兩大類。編碼式鍵盤是由其內(nèi)部硬件邏輯電路自動(dòng)產(chǎn)生被按鍵的編碼。這種鍵盤使用方便,但價(jià)格較貴。單片機(jī)系統(tǒng)中普遍使用非編碼式鍵盤。這類鍵盤應(yīng)主要解決以下幾個(gè)問(wèn)題:(1)鍵的識(shí)別;(2)如何消除鍵的抖動(dòng);(3)鍵的保護(hù)。在以上幾個(gè)問(wèn)題中,最主要的是鍵的識(shí)別。非編碼式鍵盤的連接與工作原理1.非編碼式鍵盤的連接非編碼式鍵盤一般采用獨(dú)立連接式和矩陣排列式,如下圖所示。BACKNEXTHOME+5V+5V獨(dú)立連接式矩陣排列式行01232.非編碼式鍵盤的工作原理對(duì)于獨(dú)立連接式,只要不斷掃描輸入口,當(dāng)輸入數(shù)據(jù)全為“1”時(shí),則無(wú)鍵盤按下。而對(duì)于矩陣排列式,則通常采用行掃描法。所謂行掃描法,就是通過(guò)行線發(fā)出低電平信號(hào),如果該行線所連接的鍵沒(méi)有按下的話,則列線所連接的輸出端口得到的是全“1”信號(hào);如果有鍵按下的話,則得到的是非全“1”信號(hào)。BACKNEXTHOME3.如何消除鍵的抖動(dòng)由于按鍵為機(jī)械開關(guān)結(jié)構(gòu),因此機(jī)械觸點(diǎn)的彈性及電壓突跳等原因,往往在觸點(diǎn)閉合或斷開的瞬間會(huì)出現(xiàn)電壓抖動(dòng),如下圖所示。人按鍵的時(shí)間最快大約為20毫秒。4.鍵的保護(hù)鍵的保護(hù)是指當(dāng)有雙鍵或多鍵同時(shí)按下時(shí)會(huì)出現(xiàn)什么問(wèn)題以及如何加以解決。以上圖所示為例,若在同一行上有兩個(gè)鍵同時(shí)按下,從硬件上來(lái)說(shuō),不會(huì)出現(xiàn)什么問(wèn)題;從軟件上來(lái)說(shuō),由于這時(shí)讀入的列代碼中出現(xiàn)了兩個(gè)0,由此代碼與行值組合成的鍵特征值就超出了原設(shè)定鍵的范圍,因此也就查不出有效的鍵值來(lái)。一旦出現(xiàn)這樣情況,一般作為廢鍵處理。BACKNEXTHOME鍵盤接口電路1、獨(dú)立連接式由于獨(dú)立連接式的按鍵數(shù)量一般較少,因而可以直接連接到單片機(jī)的I/O口上,通過(guò)讀I/O口指令來(lái)查詢是否又按鍵被按下。BACKNEXTHOME2、矩陣排列式在一般情況下,單片機(jī)本身的I/O口會(huì)用作其它目的,則通常通過(guò)外擴(kuò)I/O接口芯片來(lái)構(gòu)成鍵盤接口電路,較常用的是8155、8255A等接口芯片。下圖是采用8155接口芯片構(gòu)成8×4鍵盤的接口電路,其中A口為輸入,作為列線;C口為輸出,作為行線(只用了PC0~PC3四根口線)。具體過(guò)程如下:首先,為了提高效率,一般先快速檢查整個(gè)鍵盤中是否有鍵按下;然后,再確定按下的是哪一個(gè)鍵。其次,再用逐行掃描的方法來(lái)確定閉合鍵的具體位置。方法是:先掃描第0行,即輸出1110(第0行為“0”,其余7行為“1”),然后讀入列信號(hào),判斷是否為全“1”,是則掃描第1行。再次,若發(fā)現(xiàn)有鍵被按下,則延時(shí)一段時(shí)間后再次讀入數(shù)據(jù),若數(shù)據(jù)不為全“1”,且位置與上次讀入數(shù)據(jù)相同,則可確定有鍵被按下,轉(zhuǎn)去執(zhí)行相應(yīng)的服務(wù)程序。最后,重新開始第一步驟。采用8155的鍵盤接口電路BACKNEXTHOMEBACKNEXTHOME8.5.2LED

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論