單片機(jī)常用外圍設(shè)備接口電路_第1頁
單片機(jī)常用外圍設(shè)備接口電路_第2頁
單片機(jī)常用外圍設(shè)備接口電路_第3頁
單片機(jī)常用外圍設(shè)備接口電路_第4頁
單片機(jī)常用外圍設(shè)備接口電路_第5頁
已閱讀5頁,還剩80頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第9 9章章 常用外圍設(shè)備接口電路常用外圍設(shè)備接口電路本章要點(diǎn)本章要點(diǎn): LEDLED數(shù)碼管及編碼方式數(shù)碼管及編碼方式 靜態(tài)顯示方式及其典型應(yīng)用電路靜態(tài)顯示方式及其典型應(yīng)用電路 動態(tài)顯示方式及其典型應(yīng)用電路動態(tài)顯示方式及其典型應(yīng)用電路 虛擬虛擬I I2 2C C總線串行顯示電路總線串行顯示電路 鍵盤去抖動和連接、控制方式鍵盤去抖動和連接、控制方式 獨(dú)立式按鍵及其接口電路獨(dú)立式按鍵及其接口電路 矩陣式鍵盤及其接口電路矩陣式鍵盤及其接口電路 并行并行A/D ADC0809A/D ADC0809及其接口電路及其接口電路 串行串行A/D ADC0832A/D ADC0832及其接口電路及其接口電路

2、I I2 2C C串行串行A/DA/D典型應(yīng)用電路典型應(yīng)用電路 DAC0832DAC0832及其接口電路及其接口電路 I I2 2C C串行串行D/AD/A典型應(yīng)用電路典型應(yīng)用電路 開關(guān)量驅(qū)動輸出接口電路開關(guān)量驅(qū)動輸出接口電路0 0 開關(guān)量驅(qū)動輸出接口電路開關(guān)量驅(qū)動輸出接口電路一、一、驅(qū)動發(fā)光二極管驅(qū)動發(fā)光二極管二、二、 驅(qū)動繼電器驅(qū)動繼電器三、三、光電隔離接口光電隔離接口LED輸出電路1 LED1 LED數(shù)碼管顯示接口數(shù)碼管顯示接口一、一、LEDLED數(shù)碼管數(shù)碼管LEDLED顯示器的擴(kuò)展顯示器的擴(kuò)展( (結(jié)構(gòu)結(jié)構(gòu)) ) LEDLED數(shù)碼管的數(shù)碼管的結(jié)構(gòu)結(jié)構(gòu):共陽與共陰共陽與共陰 單片機(jī)系統(tǒng)擴(kuò)

3、展單片機(jī)系統(tǒng)擴(kuò)展LEDLED數(shù)碼管時數(shù)碼管時多用多用共陽共陽LEDLED: :共陽數(shù)碼管每個段筆畫是用低電平共陽數(shù)碼管每個段筆畫是用低電平(“0”)(“0”)點(diǎn)亮的點(diǎn)亮的, ,要求驅(qū)要求驅(qū)動功率很??;而共陰數(shù)碼管段筆畫是用高電平動功率很?。欢碴帞?shù)碼管段筆畫是用高電平(“0”)(“0”)點(diǎn)亮點(diǎn)亮的,要求驅(qū)動功率較大。的,要求驅(qū)動功率較大。 通常每個段筆畫要串一個數(shù)百歐姆的通常每個段筆畫要串一個數(shù)百歐姆的降壓電阻降壓電阻。公共公共陽陽極極h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh h公共公共陰陰極極h g f e d c b ah g

4、 f e d c b aa ab bc cd dg ge ef fh hh g f ah g f a高電平點(diǎn)亮高電平點(diǎn)亮低電平點(diǎn)亮低電平點(diǎn)亮接高電平接高電平接地接地LEDLED數(shù)碼管的軟件譯碼數(shù)碼管的軟件譯碼八段八段LEDLED數(shù)碼管數(shù)碼管段代碼編碼表段代碼編碼表( (連線不同可有多種表連線不同可有多種表):):公共陽極公共陽極h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh h公共陰極公共陰極h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh hh g f ah g f a高電平點(diǎn)亮

5、高電平點(diǎn)亮低電平點(diǎn)亮低電平點(diǎn)亮接高電平接高電平接地接地LEDLED數(shù)碼管分類:數(shù)碼管分類:按按其內(nèi)部結(jié)構(gòu)可分為其內(nèi)部結(jié)構(gòu)可分為共陰型共陰型和和共陽型共陽型; 按按其外形尺寸有多種形式,使用較多的其外形尺寸有多種形式,使用較多的是是0.50.5和和0.80.8; 按按顯示顏色也有多種形式,主要有顯示顏色也有多種形式,主要有紅色紅色和和綠色綠色; 正向壓降一般為正向壓降一般為1.51.52V2V,額定電流為,額定電流為10mA10mA,最大電流為,最大電流為40mA40mA。靜態(tài)顯示靜態(tài)顯示時取時取10mA10mA為宜,為宜,動態(tài)掃描顯示動態(tài)掃描顯示,可加大脈沖電流,但,可加大脈沖電流,但一般不超

6、過一般不超過40mA40mA。 按按亮度強(qiáng)弱可分為亮度強(qiáng)弱可分為超亮超亮、高亮高亮和和普亮普亮。二、二、LEDLED數(shù)碼管編碼方式數(shù)碼管編碼方式 表表9-1 9-1 共陰和共陽共陰和共陽LEDLED數(shù)碼管幾種八段編碼表數(shù)碼管幾種八段編碼表 【例【例9-19-1】已知顯示數(shù)存在內(nèi)】已知顯示數(shù)存在內(nèi)RAM 30HRAM 30H(高位)、(高位)、31H31H中,試將其轉(zhuǎn)換為中,試將其轉(zhuǎn)換為5 5位共陰字段碼(順序),位共陰字段碼(順序),存在以存在以30H30H(高位)為首址的內(nèi)(高位)為首址的內(nèi)RAMRAM中。中。 從顯示數(shù)中分離出顯示的每一位數(shù)字從顯示數(shù)中分離出顯示的每一位數(shù)字 方法是將顯示數(shù)

7、除以十進(jìn)制的權(quán)方法是將顯示數(shù)除以十進(jìn)制的權(quán)顯示數(shù)顯示數(shù)轉(zhuǎn)換轉(zhuǎn)換為顯示字段碼的為顯示字段碼的步驟步驟: 將分離出的顯示數(shù)字轉(zhuǎn)換為顯示字段將分離出的顯示數(shù)字轉(zhuǎn)換為顯示字段碼碼 方法是查表方法是查表SPRT: MOV R0,#30H SPRT: MOV R0,#30H ; ;置萬位置萬位BCDBCD碼間址碼間址 MOV A,30H MOV A,30H ; ;置被除數(shù)置被除數(shù) MOV B,31H MOV B,31H ; ; MOV R6,#27H MOV R6,#27H ; ;置除數(shù)置除數(shù)10000 = 2710H10000 = 2710H MOV R5,#10H MOV R5,#10H ; ; LC

8、ALL SUM LCALL SUM ; ;除以除以10000,10000,萬位商存萬位商存30H,30H,余數(shù)存余數(shù)存A A、B B MOV R6,#03H MOV R6,#03H ; ;置除數(shù)置除數(shù)1000 = 03E8H1000 = 03E8H MOV R5,#0E8H ; MOV R5,#0E8H ; INC R0 INC R0 ; ;指向千位商間址指向千位商間址(31H)(31H) LCALL SUM LCALL SUM ; ;除以除以1000,1000,千位商存千位商存31H,31H,余數(shù)存余數(shù)存A A、B B MOV R6,#0 MOV R6,#0 ; ;置除數(shù)置除數(shù)100100

9、MOV R5,#100 MOV R5,#100 ; ; INC R0 INC R0 ; ;指向百位商間址指向百位商間址(32H) (32H) LCALL SUM LCALL SUM ; ;除以除以100,100,百位商存百位商存32H,32H,余數(shù)存余數(shù)存A(B=0)A(B=0) MOV B,#10 MOV B,#10 ; ;置除數(shù)置除數(shù)1010 DIV AB DIV AB ; ;除以除以1010 INC R0 INC R0 ; ;指向十位商間址指向十位商間址(33H)(33H) MOV R0,A MOV R0,A ; ;十位商存十位商存33H33H XCH A,B XCH A,B ; ;讀個

10、位數(shù)讀個位數(shù) INC R0 INC R0 ; ;指向個位間址指向個位間址(34H)(34H) MOV R0,A MOV R0,A ; ;個位存?zhèn)€位存34H34H RET RET ; ;解:連續(xù)調(diào)用下列二個子程序即可。解:連續(xù)調(diào)用下列二個子程序即可。 分離顯示數(shù)字子程序分離顯示數(shù)字子程序說明說明:SUMSUM是是1616位除以位除以1616位子程序位子程序:(A:(A、B)B)(R6(R6、R5)=R5)=商商R0,R0,余數(shù)余數(shù)(A(A、B)B)。( (參閱例參閱例4-9)4-9) 轉(zhuǎn)換顯示字段碼子程序轉(zhuǎn)換顯示字段碼子程序CHAG: MOV DPTR,#TAB CHAG: MOV DPTR,#

11、TAB ; ;置共陰字段碼表首址置共陰字段碼表首址 MOV R0,#30H MOV R0,#30H ; ;置顯示數(shù)據(jù)區(qū)首址置顯示數(shù)據(jù)區(qū)首址CGLP: MOV A,R0 CGLP: MOV A,R0 ; ;取顯示數(shù)字取顯示數(shù)字 MOVC A,A+DPTR MOVC A,A+DPTR ; ;讀相應(yīng)顯示字段碼讀相應(yīng)顯示字段碼 MOV R0,A MOV R0,A ; ;存顯示字段碼存顯示字段碼 INC R0 INC R0 ; ;指向下一顯示數(shù)字指向下一顯示數(shù)字 CJNE R0,#35H,CGLP CJNE R0,#35H,CGLP ; ;判判5 5個顯示數(shù)字轉(zhuǎn)換完否個顯示數(shù)字轉(zhuǎn)換完否? ?未完繼續(xù)未完

12、繼續(xù) RET RET ; ;轉(zhuǎn)換完畢轉(zhuǎn)換完畢, ,結(jié)束結(jié)束TAB: DB 3FH,06H,5BH,4FH,66H TAB: DB 3FH,06H,5BH,4FH,66H ; ;共陰字段碼表共陰字段碼表 DB 6DH,7DH,07H,7FH,6FH DB 6DH,7DH,07H,7FH,6FH ; ;三、三、靜態(tài)顯示方式及其典型應(yīng)用電路靜態(tài)顯示方式及其典型應(yīng)用電路 動態(tài)顯示方式動態(tài)顯示方式,在某一瞬時顯示一位,依次循環(huán),在某一瞬時顯示一位,依次循環(huán)掃描,輪流顯示,由于人的視覺滯留效應(yīng),人們看掃描,輪流顯示,由于人的視覺滯留效應(yīng),人們看到的是多位同時穩(wěn)定顯示。到的是多位同時穩(wěn)定顯示。 特點(diǎn)特點(diǎn):占

13、用:占用I/OI/O端線少,電路較簡單,編程較復(fù)端線少,電路較簡單,編程較復(fù)雜,雜,CPUCPU要定時掃描刷新顯示。一般適用于顯示位數(shù)要定時掃描刷新顯示。一般適用于顯示位數(shù)較多的場合。較多的場合。LEDLED數(shù)碼管顯示分類:靜態(tài)顯示方式和動態(tài)顯示方式。數(shù)碼管顯示分類:靜態(tài)顯示方式和動態(tài)顯示方式。 靜態(tài)顯示方式靜態(tài)顯示方式,每一位字段碼分別從,每一位字段碼分別從I/OI/O控制口輸控制口輸出,保持不變直至出,保持不變直至CPUCPU刷新。刷新。 特點(diǎn)特點(diǎn):編程較簡單,但占用:編程較簡單,但占用I/OI/O口線多,一般適用口線多,一般適用于顯示位數(shù)較少的場合。于顯示位數(shù)較少的場合。LEDLED顯示

14、器的擴(kuò)展顯示器的擴(kuò)展( (顯示方式顯示方式) ) LEDLED數(shù)碼管的數(shù)碼管的顯示方式顯示方式:靜態(tài)與動態(tài)靜態(tài)與動態(tài)動態(tài)顯示特點(diǎn)動態(tài)顯示特點(diǎn): : 有閃爍有閃爍,用,用元器件少元器件少,占占I/OI/O線少線少,必須掃描必須掃描,花費(fèi)花費(fèi)CPUCPU時間時間,編程復(fù)雜。編程復(fù)雜。( (有多個有多個LEDLED時尤為突出)時尤為突出)靜態(tài)顯示特點(diǎn)靜態(tài)顯示特點(diǎn): : 無閃爍無閃爍,用,用元器件多元器件多,占占I/OI/O線多線多,無須掃描無須掃描,節(jié)省節(jié)省CPUCPU時間時間,編程簡單。編程簡單。靜態(tài)顯示靜態(tài)顯示: : 各數(shù)碼管在顯示過程中各數(shù)碼管在顯示過程中持續(xù)持續(xù)得到送顯信號,與各數(shù)碼管接口得

15、到送顯信號,與各數(shù)碼管接口的的I/OI/O口線口線是是專用專用的。的。動態(tài)顯示動態(tài)顯示: : 各數(shù)碼管在顯示過程中各數(shù)碼管在顯示過程中輪流輪流得到送顯信號,與各數(shù)碼管接口得到送顯信號,與各數(shù)碼管接口的的I/OI/O口線口線是是共用共用的。的。1 1、并行擴(kuò)展靜態(tài)顯示電路并行擴(kuò)展靜態(tài)顯示電路 【例【例9-29-2】按圖】按圖9-39-3編制顯示子程序,顯示數(shù)(編制顯示子程序,顯示數(shù)(255255)存在)存在內(nèi)內(nèi)RAM 30HRAM 30H中。中。解:解:DIR1: MOV A,30H DIR1: MOV A,30H ; ;讀顯示數(shù)讀顯示數(shù) MOV B,#100 MOV B,#100 ; ;置除數(shù)

16、置除數(shù) DIV AB DIV AB ; ;產(chǎn)生百位顯示數(shù)字產(chǎn)生百位顯示數(shù)字 MOVC A,A+DPTR MOVC A,A+DPTR ; ;讀百位顯示符讀百位顯示符 MOV DPTR,#0DFFFH MOV DPTR,#0DFFFH ; ;置置74377(74377(百位百位) )地址地址 MOVX DPTR,A MOVX DPTR,A ; ;輸出百位顯示符輸出百位顯示符 MOV A,B MOV A,B ; ;讀余數(shù)讀余數(shù) MOV B,#10 MOV B,#10 ; ;置除數(shù)置除數(shù) DIV AB DIV AB ; ;產(chǎn)生十位顯示數(shù)字產(chǎn)生十位顯示數(shù)字 MOV DPTR,#TAB MOV DPTR,

17、#TAB ; ;置共陽字段碼表首址置共陽字段碼表首址 MOVC A,A+DPTR MOVC A,A+DPTR ; ;讀十位顯示符讀十位顯示符 MOV DPTR,#0BFFFH MOV DPTR,#0BFFFH ; ;置置74377(74377(十位十位) )地址地址 MOVX DPTR,A MOVX DPTR,A ; ;輸出十位顯示符輸出十位顯示符 MOV A,B MOV A,B ; ;讀個位顯示數(shù)字讀個位顯示數(shù)字 MOV DPTR,#TAB MOV DPTR,#TAB ; ;置共陽字段碼表首址置共陽字段碼表首址 MOVC A,A+DPTR MOVC A,A+DPTR ; ;讀個位顯示符讀個位

18、顯示符 MOV DPTR,#7FFFH MOV DPTR,#7FFFH ; ;置置74377(74377(個位個位) )地址地址 MOVX DPTR,A MOVX DPTR,A ; ;輸出個位顯示符輸出個位顯示符 RET RET ; ;TAB: DB 0C0H,0F9H,0A4H,0B0H,99HTAB: DB 0C0H,0F9H,0A4H,0B0H,99H; ;共陽字段碼表共陽字段碼表 DB 92H,82H,0F8H,80H,90H;DB 92H,82H,0F8H,80H,90H;2、串行串行擴(kuò)展靜態(tài)顯示電路擴(kuò)展靜態(tài)顯示電路 DIR2: MOV SCON,#00H DIR2: MOV SCO

19、N,#00H ; ;置串口方式置串口方式0 0 CLR ES CLR ES ; ;串口禁中串口禁中 SETB P1.0 SETB P1.0 ;“;“與與”門開門開, ,允許允許TXDTXD發(fā)移位脈沖發(fā)移位脈沖 MOV SBUF,30H MOV SBUF,30H ; ;串行輸出個位顯示字段碼串行輸出個位顯示字段碼 JNB TI,$ JNB TI,$ ; ;等待串行發(fā)送完畢等待串行發(fā)送完畢 CLR TI CLR TI ; ;清串行中斷標(biāo)志清串行中斷標(biāo)志 MOV SBUF,31H MOV SBUF,31H ; ;串行輸出十位顯示字段碼串行輸出十位顯示字段碼 JNB TI,$ JNB TI,$ ; ;

20、等待串行發(fā)送完畢等待串行發(fā)送完畢 CLR TI CLR TI ; ;清串行中斷標(biāo)志清串行中斷標(biāo)志 MOV SBUF,32H MOV SBUF,32H ; ;串行輸出百位顯示字段碼串行輸出百位顯示字段碼 JNB TI,$ JNB TI,$ ; ;等待串行發(fā)送完畢等待串行發(fā)送完畢 CLR TI CLR TI ; ;清串行中斷標(biāo)志清串行中斷標(biāo)志 CLR P1.0 CLR P1.0 ;“;“與與”門關(guān)門關(guān), ,禁止禁止TXDTXD發(fā)移位脈沖發(fā)移位脈沖 RET RET ; ;【例例9-39-3】按圖】按圖9-49-4編制顯示子程序,顯示字段碼已分別存編制顯示子程序,顯示字段碼已分別存在在32H32H30

21、H30H內(nèi)內(nèi)RAMRAM中。中。解:解:要求:要求:根據(jù)上圖編寫通過串行口和根據(jù)上圖編寫通過串行口和74LS16474LS164驅(qū)動驅(qū)動共共 陽陽LEDLED數(shù)碼管數(shù)碼管查表顯示的子程序。查表顯示的子程序。條件:條件:系統(tǒng)有系統(tǒng)有6 6個個LEDLED數(shù)碼管數(shù)碼管, ,待顯數(shù)據(jù)待顯數(shù)據(jù)(00H09H)(00H09H)已放在已放在35H30H35H30H單元中單元中( (分別對應(yīng)分別對應(yīng)十萬位十萬位個位個位) ),DSPLYDSPLY:MOV DPTR, #TABLE :MOV DPTR, #TABLE ; ;共陽共陽LEDLED數(shù)碼管譯碼數(shù)碼管譯碼表首址表首址 MOV R0MOV R0,#30

22、H #30H ; ;待顯數(shù)據(jù)緩沖區(qū)的待顯數(shù)據(jù)緩沖區(qū)的個位個位地址地址REDOREDO:MOV AMOV A, R0 R0 ; ;通過通過R0R0實現(xiàn)寄存器實現(xiàn)寄存器間接尋址間接尋址 MOVC A, A+DPTR MOVC A, A+DPTR ; ;查表查表 MOV SBUF, A MOV SBUF, A ; ;經(jīng)串行口經(jīng)串行口發(fā)送發(fā)送到到74LS16474LS164 JNB TI, $ JNB TI, $ ; ;查詢查詢送完一個字節(jié)的第送完一個字節(jié)的第8 8位?位? CLR TI CLR TI ; ;為下一字節(jié)發(fā)送為下一字節(jié)發(fā)送作準(zhǔn)備作準(zhǔn)備 INC R0 INC R0 ;R0;R0指向下一個指

23、向下一個數(shù)據(jù)緩沖單元數(shù)據(jù)緩沖單元 CJNE R0CJNE R0,#36H#36H,REDO REDO ; ;判斷判斷是否發(fā)完是否發(fā)完6 6個數(shù)?個數(shù)? RET RET ; ;發(fā)完發(fā)完6 6個數(shù)就個數(shù)就返回返回TABLETABLE:DB 0C0H,0F9H,0A4H,0B0H,99H DB 0C0H,0F9H,0A4H,0B0H,99H ; ;共陽共陽LEDLED譯碼表譯碼表 DB 92H, 82H, 0F8H, 80H,90HDB 92H, 82H, 0F8H, 80H,90H3 3、BCDBCD碼輸出靜態(tài)顯示電路碼輸出靜態(tài)顯示電路 CD4511CD4511是是“BCDBCD碼碼七段共陰譯碼七

24、段共陰譯碼/ /驅(qū)動驅(qū)動”IC; IC; 4511是是4線線-7段鎖存段鎖存/譯碼譯碼/驅(qū)動電路,能將驅(qū)動電路,能將BCD碼譯成碼譯成7段顯段顯示符輸出。圖中:示符輸出。圖中:4511 ABCD為為09二進(jìn)制數(shù)輸入端二進(jìn)制數(shù)輸入端(A是低位是低位),abcdefgabcdefg為顯示段碼輸出端,為顯示段碼輸出端,LELE為輸入信號鎖存為輸入信號鎖存控制控制( (低電平有效低電平有效) ),數(shù)碼管為共陰數(shù)碼數(shù)碼管為共陰數(shù)碼管。管。 利用利用45114511實現(xiàn)靜態(tài)顯示與一般靜態(tài)顯示電路實現(xiàn)靜態(tài)顯示與一般靜態(tài)顯示電路不同,不同,一是一是節(jié)省節(jié)省I I0 0端線,段碼輸出只需端線,段碼輸出只需4 4

25、根;根;二二是是不需專用驅(qū)動電路,可直接輸出;不需專用驅(qū)動電路,可直接輸出;三是三是不需譯不需譯碼,直接輸出二進(jìn)制數(shù),編程簡單;碼,直接輸出二進(jìn)制數(shù),編程簡單;缺點(diǎn)是缺點(diǎn)是只能只能顯示數(shù)字,不能顯示各種符號。顯示數(shù)字,不能顯示各種符號。 解:編程如下:解:編程如下:DIR3: MOV P1,#111DIR3: MOV P1,#1110 00000B 0000B ; ;選通個位選通個位 ORL P1,30H ORL P1,30H ; ;輸出個位顯示數(shù)輸出個位顯示數(shù) MOV P1,#11MOV P1,#110 010000B 10000B ; ;選通十位選通十位 ORL P1,31H ORL P1

26、,31H ; ;輸出十位顯示數(shù)輸出十位顯示數(shù) MOV P1,#1MOV P1,#10 0110000B 110000B ; ;選通百位選通百位 ORL P1,32H ORL P1,32H ; ;輸出百位顯示數(shù)輸出百位顯示數(shù) RET RET ; ;【例【例9-49-4】按圖】按圖9-59-5試編制顯示子程序(小數(shù)點(diǎn)固試編制顯示子程序(小數(shù)點(diǎn)固定在第二位),已知顯示數(shù)存在內(nèi)定在第二位),已知顯示數(shù)存在內(nèi)RAM 30HRAM 30H32H32H中。中。動態(tài)顯示電路動態(tài)顯示電路連結(jié)形式:連結(jié)形式: 顯示各位的所有顯示各位的所有相同字段線連在一起,相同字段線連在一起,共共8 8段,由一個段,由一個8 8

27、位位I/OI/O口控制;口控制; 每一位的公共端每一位的公共端(共陽或共陰(共陽或共陰COMCOM)由另一個由另一個I/OI/O口控制??诳刂?。四、四、動態(tài)顯示方式動態(tài)顯示方式及其典型應(yīng)用電路及其典型應(yīng)用電路LEDLED數(shù)碼管數(shù)碼管動態(tài)動態(tài)顯示舉例顯示舉例P1.5 P1.5 P1.4P1.4P1.3P1.3P1.2P1.2P1.2P1.2P1.0P1.0P0.7 P0.7 P0.6 P0.6 P0.5 P0.5 P0.4 P0.4 P0.3 P0.3 P0.2 P0.2 P0.1 P0.1 P0.0P0.07406 OC7406 OC門門 X 3X 3上拉上拉電阻電阻1414+5V+5VAT8

28、9C51工作原理工作原理:從從P0P0口送段代碼口送段代碼,P1,P1口送位選信號口送位選信號。段碼雖同時。段碼雖同時到達(dá)到達(dá) 6 6個個LEDLED,但,但一次僅一個一次僅一個LEDLED被選中被選中。利用。利用“視覺暫視覺暫留留”,每送一個字符并選中相應(yīng)位線,延時一會兒,每送一個字符并選中相應(yīng)位線,延時一會兒, ,再送再送/ /選下一個選下一個循環(huán)掃描循環(huán)掃描即可。即可。共陰共陰 數(shù)碼管數(shù)碼管位位選選線線段段代代碼碼P1.5 P1.5 P1.4P1.4P1.3P1.3P1.2P1.2P1.2P1.2P1.0P1.0P0.7 P0.7 P0.6 P0.6 P0.5 P0.5 P0.4 P0.

29、4 P0.3 P0.3 P0.2 P0.2 P0.1 P0.1 P0.0P0.07406 OC7406 OC門門 X 3X 3+5V+5VAT89C51位位選選線線段段代代碼碼要求要求:此處為共陰數(shù)碼管,此處為共陰數(shù)碼管,P0P0口送段代碼,口送段代碼,P1P1口送位選信號??谒臀贿x信號。通過查表實現(xiàn)動態(tài)顯示。通過查表實現(xiàn)動態(tài)顯示。條件條件:待顯數(shù)據(jù)待顯數(shù)據(jù)(00H09H)(00H09H)已放在已放在: : 7FH7AH7FH7AH單元中單元中( (分別對分別對應(yīng)應(yīng)十萬位十萬位個位個位) )說明說明:由于用了由于用了反相驅(qū)動器反相驅(qū)動器74067406,要用共陽譯碼表。,要用共陽譯碼表。共陰共

30、陰 數(shù)碼管數(shù)碼管上拉上拉電阻電阻14147406 OC7406 OC門門 X 3X 3+5V+5V(7FH) (7EH) (7DH) (7CH) (7BH) (7AH)十萬十萬 萬位萬位 千位千位 百位百位 十位十位 個位個位數(shù)據(jù)緩沖區(qū)數(shù)據(jù)緩沖區(qū) / / 顯示緩沖區(qū)顯示緩沖區(qū)P0P0口口送段送段代碼,代碼,P1P1口口送位選送位選信號。信號。待顯數(shù)據(jù)待顯數(shù)據(jù)已經(jīng)放在已經(jīng)放在: : 7FH7AH7FH7AH單元單元( (分別分別對應(yīng)對應(yīng)十萬十萬位位個位個位) )使用共陽使用共陽譯碼表譯碼表。DIRDIR: MOV DPTR, : MOV DPTR, #DSEG #DSEG ; ;數(shù)碼管譯碼數(shù)碼管

31、譯碼表首址表首址 MOV R0MOV R0,#7AH #7AH ; ;待顯緩沖區(qū)待顯緩沖區(qū)個位個位地址地址 MOV R3MOV R3,#01H #01H ; ;個位的個位的位選信號位選信號=01H=01HLD1LD1: MOV AMOV A, R0 R0 ; ;通過通過R0R0間接尋址間接尋址 MOVC A, A+DPTRMOVC A, A+DPTR ; ;查表查表 MOV P0, A MOV P0, A ; ;字段碼送到字段碼送到P0P0口口 MOV P1MOV P1,R3 R3 ; ;字位選擇送到字位選擇送到P1P1口口 LCALL DELYLCALL DELY ; ;調(diào)延時調(diào)延時1ms1

32、ms子程序子程序 INC R0 INC R0 ;R0 ;R0 指向下一字節(jié)指向下一字節(jié) MOV AMOV A,R3R3 JB ACC.5 JB ACC.5,LD2LD2 ; ;判判是否發(fā)完是否發(fā)完6 6個數(shù)?個數(shù)? RL A RL A ;R1;R1指向下一個位指向下一個位 MOV R3MOV R3,A A ; ;位選信號存回位選信號存回R1R1 SJMP SJMP LD1LD1 ; ;跳去再顯示下一個數(shù)跳去再顯示下一個數(shù)LD2LD2: RET RET ; ;發(fā)完發(fā)完6 6個數(shù)就個數(shù)就返回返回DSEGDSEG:DB 0C0H,0F9H,0A4H,0B0H,99HDB 0C0H,0F9H,0A4H

33、,0B0H,99H; ;共陽譯碼表共陽譯碼表 DB 92H, 82H, 0F8H, DB 92H, 82H, 0F8H, 80H80H,90H,90HP0P0口口送段送段代碼,代碼,P1P1口口送位選送位選信號。信號。待顯數(shù)據(jù)待顯數(shù)據(jù)已經(jīng)放在已經(jīng)放在: : 7FH7AH7FH7AH單元單元( (分別分別對應(yīng)對應(yīng)十萬十萬位位個位個位) )使用共陽使用共陽譯碼表譯碼表。動態(tài)動態(tài)顯示舉例顯示舉例 ( (循環(huán)顯示循環(huán)顯示“8”8”的實驗的實驗) )實驗箱實驗箱從從P0P0口擴(kuò)展了兩個口擴(kuò)展了兩個8 8位的簡單位的簡單I/OI/O口口: : 一個送段代碼一個送段代碼( (字形狀字形狀) ),地址是,地址

34、是0DCH0DCH; ; 一個送位選信號一個送位選信號( (字位置字位置) ),地址是,地址是0DDH0DDH。 ORG 0000HORG 0000H MOV R0,# MOV R0,#0DCH0DCH ; ;指向指向字形口字形口 MOV A, #80H ;MOV A, #80H ;送送“8”8”的字形代碼的字形代碼 MOVX MOVX R0,AR0,A ; ;輸出字形代碼輸出字形代碼 MOV R1,# MOV R1,#0DDH0DDH ; ;指向指向字位口字位口 MOV A,#20HMOV A,#20H ; ;從最高位開始從最高位開始LEDO:LEDO: MOVX MOVX R1,AR1,A

35、 ; ;輸出字位代碼輸出字位代碼 ACALL DEYS ACALL DEYS ; ;調(diào)延時子程序調(diào)延時子程序 RR A RR A ; ;右移一位右移一位 SJMP LEDO SJMP LEDO ; ;循環(huán)顯示循環(huán)顯示“8”8”1 1、共陰型共陰型8 8位動態(tài)顯示電路位動態(tài)顯示電路DIR4:MOV R2,#10 DIR4:MOV R2,#10 ; ;置循環(huán)掃描次數(shù)置循環(huán)掃描次數(shù) MOV DPTR,#7FFFH MOV DPTR,#7FFFH ; ;置置7437774377口地址口地址DLP1:ANL P1,#11111000B DLP1:ANL P1,#11111000B ; ;第第0 0位先顯

36、示位先顯示 MOV R0,#30H MOV R0,#30H ; ;置顯示字段碼首址置顯示字段碼首址DLP2:MOV A,R0 DLP2:MOV A,R0 ; ;讀顯示字段碼讀顯示字段碼 MOVX DPTR,A MOVX DPTR,A ; ;輸出顯示字段碼輸出顯示字段碼 LCALL DY2ms LCALL DY2ms ; ;調(diào)用延時調(diào)用延時2ms2ms子程序子程序( (參閱例參閱例4.13)4.13) INC R0 INC R0 ; ;指向下一位字段碼指向下一位字段碼 INC P1 INC P1 ; ;選通下一位顯示選通下一位顯示 CJNE R0,#38H,DLP2 CJNE R0,#38H,D

37、LP2 ; ;判判8 8位掃描顯示完否位掃描顯示完否? ?未完繼續(xù)未完繼續(xù) DJNZ R2,DLP1 DJNZ R2,DLP1 ;8;8位掃描顯示完畢位掃描顯示完畢, ,判判1010次循環(huán)完否次循環(huán)完否? ? CLR A CLR A ;10;10次循環(huán)完畢次循環(huán)完畢, ,顯示暗顯示暗 MOVX DPTR,A MOVX DPTR,A ; ; RET RET ; ;子程序返回子程序返回【例【例9-59-5】按圖】按圖9-79-7,試編制循環(huán)掃描(,試編制循環(huán)掃描(1010次)顯示子程序,已次)顯示子程序,已知顯示字段碼存在以知顯示字段碼存在以30H30H(低位)為首址的(低位)為首址的8 8字節(jié)內(nèi)

38、字節(jié)內(nèi)RAMRAM中。中。解:編程如下:解:編程如下:2、共陽型共陽型3 3位動態(tài)顯示電路位動態(tài)顯示電路DIR5: MOV DPTR,#0BFFFH DIR5: MOV DPTR,#0BFFFH ; ;置置7437774377地址地址 MOV R2,#100 MOV R2,#100 ; ;置循環(huán)顯示次數(shù)置循環(huán)顯示次數(shù)DIR50: SETB P1.2 DIR50: SETB P1.2 ; ;百位停顯示百位停顯示 MOV A,40H MOV A,40H ; ;取個位字段碼取個位字段碼 MOVX DPTR,A MOVX DPTR,A ; ;輸出個位字段碼輸出個位字段碼 CLR P1.0 CLR P1

39、.0 ; ;個位顯示個位顯示 LCALL DY2ms LCALL DY2ms ; ;調(diào)用延時調(diào)用延時2ms2ms子程序子程序( (參閱例參閱例4.13)4.13)DIR51: SETB P1.0 DIR51: SETB P1.0 ; ;個位停顯示個位停顯示 MOV A,41H MOV A,41H ; ;取十位字段碼取十位字段碼 MOVX DPTR,A MOVX DPTR,A ; ;輸出十位字段碼輸出十位字段碼 CLR P1.1 CLR P1.1 ; ;十位顯示十位顯示 LCALL DY2ms LCALL DY2ms ; ;延時延時2ms2msDIR52: SETB P1.1 DIR52: SE

40、TB P1.1 ; ;十位停顯示十位停顯示 MOV A,42H MOV A,42H ; ;取百位字段碼取百位字段碼 MOVX DPTR,A MOVX DPTR,A ; ;輸出百位字段碼輸出百位字段碼 CLR P1.2 CLR P1.2 ; ;百位顯示百位顯示 LCALL DY2ms LCALL DY2ms ; ;延時延時2ms2ms DJNZ R2,DIR50 DJNZ R2,DIR50 ; ;判循環(huán)顯示結(jié)束否判循環(huán)顯示結(jié)束否? ?未完繼續(xù)未完繼續(xù) ORL P1,#00000111B ORL P1,#00000111B ;3;3位滅顯示位滅顯示 RET RET ; ;【例【例9-69-6】根據(jù)

41、圖】根據(jù)圖9-89-8電路,試編制電路,試編制3 3位動態(tài)掃描顯示程序位動態(tài)掃描顯示程序( (循環(huán)循環(huán)100100次次),),已知顯示字段碼存在以已知顯示字段碼存在以40H(40H(低位低位) )為首址的為首址的3 3字節(jié)內(nèi)字節(jié)內(nèi)RAMRAM中。中。解:編程如下:解:編程如下:1、SAA1064SAA1064引腳功能引腳功能 五、五、虛擬虛擬I I2 2C C總線串行顯示電路總線串行顯示電路 V VDDDD、V VEEEE:電源、接地端。電源:電源、接地端。電源4.54.515V15V; P1P1P16P16:段驅(qū)動輸出端。分為兩個:段驅(qū)動輸出端。分為兩個8 8位口:位口:P1P1P8P8;P

42、9P9P16P16。P8P8、P16P16為高位??阪i存器具有反相功為高位。口鎖存器具有反相功能,置能,置1 1時,端口輸出時,端口輸出0 0。 MX1MX1、MX2MX2:位碼驅(qū)動端。靜態(tài)顯示驅(qū)動時,一片:位碼驅(qū)動端。靜態(tài)顯示驅(qū)動時,一片SAA1064SAA1064可驅(qū)動二位可驅(qū)動二位LEDLED數(shù)碼管;動態(tài)顯示驅(qū)動時,按圖數(shù)碼管;動態(tài)顯示驅(qū)動時,按圖9-109-10連接方式,一片連接方式,一片SAA1064SAA1064可驅(qū)動四位可驅(qū)動四位LEDLED數(shù)碼管;數(shù)碼管; SDASDA、SCLSCL:I I2 2C C總線數(shù)據(jù)端、時鐘端;總線數(shù)據(jù)端、時鐘端; C CEXTEXT:時鐘振蕩器外接

43、電容,典型值:時鐘振蕩器外接電容,典型值2700pF2700pF ADRADR:地址引腳端。:地址引腳端。SAA1064SAA1064引腳地址引腳地址A1A1、A0A0采用采用ADRADR模模擬電壓比較編址。當(dāng)擬電壓比較編址。當(dāng)ADRADR引腳電平為引腳電平為0 0、3VDD/83VDD/8,5VDD/85VDD/8、VDDVDD時,相應(yīng)引腳地址時,相應(yīng)引腳地址A2A2、A1A1、A0 A0 分別為分別為000000、001001、010010、011011;2 2、硬件電路設(shè)計硬件電路設(shè)計 片內(nèi)寄存器片內(nèi)寄存器 3 3、片內(nèi)可編程功能片內(nèi)可編程功能 控制命令控制命令COMCOMCOCO: :

44、 靜動態(tài)控制,靜動態(tài)控制,C0=1C0=1,動態(tài)顯示,動態(tài)顯示時,動態(tài)顯示,動態(tài)顯示時,data1data1、data2data2輪流從輪流從P8P8P1P1輸出,輸出,data3data3、data4data4輪流從輪流從P16P16P9P9輸出;輸出;C1C1: : 顯示位顯示位1 1、3 3亮暗選擇,亮暗選擇,C1=1C1=1,選擇亮;,選擇亮;C2C2: : 顯示位顯示位2 2、4 4亮暗選擇,亮暗選擇,C2=1C2=1,選擇亮;,選擇亮;C3C3: : 測試位,測試位,C3=1C3=1,所有段亮;,所有段亮;C4C4、C5C5、C6C6: : 驅(qū)動電流控制位,驅(qū)動電流控制位,C4C4

45、、C5C5、C6C6分別為分別為1 1時,驅(qū)動時,驅(qū)動電流分別為電流分別為3mA3mA、6mA6mA、12mA12mA;C4C4、C5C5、C6C6全為全為1 1時,驅(qū)動電流時,驅(qū)動電流最大,可達(dá)最大,可達(dá)21mA21mA。 寫數(shù)據(jù)操作格式寫數(shù)據(jù)操作格式 紅色紅色部分由部分由80C5180C51發(fā)送,發(fā)送,SAA1064SAA1064接收;接收; 黑色部分由黑色部分由SAA1064SAA1064發(fā)送,發(fā)送,80C5180C51接收。接收。SLASLAW W為寫為寫SAA1064SAA1064尋址字節(jié),尋址字節(jié), 按圖按圖9-109-10所示連接電路所示連接電路:SAA1064:SAA1064(

46、1 1)SLASLAW W=01110000B;=01110000B; SAA1064 SAA1064(2 2)SLASLAW W=01110110B=01110110B。 其中其中01110111(D7D74 4)為)為SAA1064SAA1064器件地址,器件地址, D3D31 1為為A2A1A0A2A1A0尋址字節(jié),尋址字節(jié), 末位末位D0D0為為R/WR/W;SADRSADR為片內(nèi)寄存器地址;為片內(nèi)寄存器地址;COMCOM為控制命令。為控制命令。解解:VSAA: MOV MTD,#00H ;VSAA: MOV MTD,#00H ;置置SAA1064SAA1064控制命令寄存器控制命令寄

47、存器COMCOM片內(nèi)子地址片內(nèi)子地址 MOV 31H,#01000111B;MOV 31H,#01000111B;置控制命令字置控制命令字, ,動態(tài)顯示動態(tài)顯示, ,驅(qū)動電流驅(qū)動電流12mA12mA MOV NUMB,#6 ; MOV NUMB,#6 ;置發(fā)送數(shù)據(jù)數(shù)置發(fā)送數(shù)據(jù)數(shù):SADR+COM+data1:SADR+COM+data14=64=6SAA1: MOV RO,#51H ;SAA1: MOV RO,#51H ;將將51H51H54H54H顯示符數(shù)據(jù)移至顯示符數(shù)據(jù)移至32H32H35H35H LCALL MOVB ; LCALL MOVB ; MOV SLA,#01110000B;

48、MOV SLA,#01110000B;置置SAA1064(1)SAA1064(1)寫尋址字節(jié)寫尋址字節(jié)SLASLAW W LCALL WRNB ; LCALL WRNB ;發(fā)送給發(fā)送給SAA1064(1)SAA1064(1)SAA2: MOV R0,#55H ;SAA2: MOV R0,#55H ;將將55H55H58H58H顯示符數(shù)據(jù)移至顯示符數(shù)據(jù)移至32H32H35H35H LCALL MOVB ; LCALL MOVB ; MOV SLA,#01110110B; MOV SLA,#01110110B;置置SAA1064(2)SAA1064(2)尋址字節(jié)尋址字節(jié)SLASLAW W LCAL

49、L WRNB ; LCALL WRNB ;發(fā)送給發(fā)送給SAA1064(2)SAA1064(2) RET ; RET ;MOVB: MOV R1,#32H ;MOVB: MOV R1,#32H ;顯示符數(shù)據(jù)移至顯示符數(shù)據(jù)移至32H32H35H35H子程序子程序MOVB1:MOV A,R0 ;MOVB1:MOV A,R0 ;讀出讀出 MOV R1,A ;MOV R1,A ;存入存入 INC RO ;INC RO ;指向下一讀出單元指向下一讀出單元 INC R1 ;INC R1 ;指向下一存入單元指向下一存入單元 CJNE R1,#36H,MOVB1 ;CJNE R1,#36H,MOVB1 ;判判4

50、 4個數(shù)據(jù)移完否個數(shù)據(jù)移完否? ?未完繼續(xù)未完繼續(xù) RET ;RET ;【例例9-79-7】已知】已知8 8位顯示符位顯示符( (共陰編碼共陰編碼) )已依次存入內(nèi)已依次存入內(nèi)RAM 51HRAM 51H58H58H中中, ,試按圖試按圖9-9-1010編程將其輸入編程將其輸入SAA1064(1),(2)SAA1064(1),(2)動態(tài)顯示動態(tài)顯示, ,驅(qū)動電流為驅(qū)動電流為12mA12mA。設(shè)。設(shè)VIICVIIC軟件包已軟件包已裝入裝入ROM,VSDA.VSCL.SLA.NUMB.MTD.MRDROM,VSDA.VSCL.SLA.NUMB.MTD.MRD均已按均已按8.3.28.3.2軟件包小

51、結(jié)中協(xié)議定義。軟件包小結(jié)中協(xié)議定義。4 4、程序設(shè)計程序設(shè)計1 1、按鍵開關(guān)去抖動問題按鍵開關(guān)去抖動問題 2 2 鍵盤接口鍵盤接口一、一、鍵盤接口概述鍵盤接口概述鍵盤的抖動時間一般為鍵盤的抖動時間一般為5 510ms10ms,抖動現(xiàn)象會引起抖動現(xiàn)象會引起CPUCPU對一次鍵操作進(jìn)行多次處理,從而可能產(chǎn)生錯誤對一次鍵操作進(jìn)行多次處理,從而可能產(chǎn)生錯誤。 硬件去抖動硬件去抖動 消除抖動不良后果的方法:消除抖動不良后果的方法:其中其中RCRC濾波電路去抖動電路簡單實用,效果較好濾波電路去抖動電路簡單實用,效果較好。 軟件去抖動軟件去抖動 檢測到按鍵按下后,執(zhí)行檢測到按鍵按下后,執(zhí)行延時延時10ms1

52、0ms子程序后再確認(rèn)子程序后再確認(rèn)該鍵該鍵是否確實按下,消除抖動影響。是否確實按下,消除抖動影響。2 2、按鍵連接方式按鍵連接方式 獨(dú)立式按鍵獨(dú)立式按鍵 獨(dú)立式按鍵是每個按鍵占用一根獨(dú)立式按鍵是每個按鍵占用一根I/OI/O端線端線。 特點(diǎn):特點(diǎn): 各按鍵相互獨(dú)立,電路配置靈活;各按鍵相互獨(dú)立,電路配置靈活; 按鍵數(shù)量較多時,按鍵數(shù)量較多時,I/OI/O端線耗費(fèi)較多,電路結(jié)構(gòu)繁雜;端線耗費(fèi)較多,電路結(jié)構(gòu)繁雜; 軟件結(jié)構(gòu)簡單。軟件結(jié)構(gòu)簡單。 適用于按鍵數(shù)量較少的場合適用于按鍵數(shù)量較少的場合。 矩陣式鍵盤矩陣式鍵盤 I/OI/O端線分為行線和列線,按鍵跨接在行線和列線上,按端線分為行線和列線,按鍵跨

53、接在行線和列線上,按鍵按下時,行線與列線發(fā)生短路鍵按下時,行線與列線發(fā)生短路。 特點(diǎn):特點(diǎn): 占用占用I/OI/O端線較少;端線較少; 軟件結(jié)構(gòu)教復(fù)雜。軟件結(jié)構(gòu)教復(fù)雜。 適用于按鍵較多的場合適用于按鍵較多的場合。3 3、鍵盤掃描控制方式鍵盤掃描控制方式 程序控制掃描方式程序控制掃描方式 鍵處理程序固定在主程序的某個程序段。鍵處理程序固定在主程序的某個程序段。 特點(diǎn)特點(diǎn):對:對CPUCPU工作影響小,但應(yīng)考慮鍵盤處理程序的運(yùn)行間隔工作影響小,但應(yīng)考慮鍵盤處理程序的運(yùn)行間隔周期不能太長,否則會影響對鍵輸入響應(yīng)的及時性。周期不能太長,否則會影響對鍵輸入響應(yīng)的及時性。 定時控制掃描方式定時控制掃描方式

54、 利用定時利用定時/ /計數(shù)器每隔一段時間產(chǎn)生定時中斷,計數(shù)器每隔一段時間產(chǎn)生定時中斷,CPUCPU響應(yīng)響應(yīng)中斷后對鍵盤進(jìn)行掃描。中斷后對鍵盤進(jìn)行掃描。 特點(diǎn)特點(diǎn):與程序控制掃描方式的區(qū)別是,在掃描間隔時間內(nèi),:與程序控制掃描方式的區(qū)別是,在掃描間隔時間內(nèi),前者用前者用CPUCPU工作程序填充,后者用定時工作程序填充,后者用定時/ /計數(shù)器定時控制。定時計數(shù)器定時控制。定時控制掃描方式也應(yīng)考慮定時時間不能太長,否則會影響對鍵輸控制掃描方式也應(yīng)考慮定時時間不能太長,否則會影響對鍵輸入響應(yīng)的及時性。入響應(yīng)的及時性。 中斷控制方式中斷控制方式 中斷控制方式是利用外部中斷源,響應(yīng)鍵輸入信號。中斷控制方

55、式是利用外部中斷源,響應(yīng)鍵輸入信號。 特點(diǎn)特點(diǎn):克服了前兩種控制方式可能產(chǎn)生的空掃描和不能及時:克服了前兩種控制方式可能產(chǎn)生的空掃描和不能及時響應(yīng)鍵輸入的缺點(diǎn),既能及時處理鍵輸入,又能提高響應(yīng)鍵輸入的缺點(diǎn),既能及時處理鍵輸入,又能提高CPUCPU運(yùn)行效運(yùn)行效率,但要占用一個寶貴的中斷資源。率,但要占用一個寶貴的中斷資源。1 1、按鍵直接與按鍵直接與I/OI/O口連接口連接 二、二、獨(dú)立式按鍵及其接口電路獨(dú)立式按鍵及其接口電路【例【例9-89-8】按圖】按圖9-13(a)9-13(a)、(b)(b),試分別編制按鍵掃描子程序。,試分別編制按鍵掃描子程序。解:按圖解:按圖9-13(a)9-13(a

56、)編程如下:編程如下: KEYA:ORL P1,#07H KEYA:ORL P1,#07H ; ;置置P1.0P1.0P1.2P1.2為輸入態(tài)為輸入態(tài) MOV A,P1 MOV A,P1 ; ;讀鍵值讀鍵值, ,鍵閉合相應(yīng)位為鍵閉合相應(yīng)位為0 0 CPL A CPL A ; ;取反取反, ,鍵閉合相應(yīng)位為鍵閉合相應(yīng)位為1 1 ANL A,#00000111B ANL A,#00000111B; ;屏蔽高屏蔽高5 5位位, ,保留有鍵值信息的低保留有鍵值信息的低3 3位位 JZ GRET JZ GRET ; ;全全0,0,無鍵閉合無鍵閉合, ,返回返回 LCALL DY10ms LCALL DY

57、10ms ; ;非全非全0,0,有鍵閉合有鍵閉合, ,延時延時10ms,10ms,軟件去抖動軟件去抖動 MOV A,P1 MOV A,P1 ; ;重讀鍵值重讀鍵值, ,鍵閉合相應(yīng)位為鍵閉合相應(yīng)位為0 0 CPL A CPL A ; ;取反取反, ,鍵閉合相應(yīng)位為鍵閉合相應(yīng)位為1 1 ANL A,#00000111B ANL A,#00000111B; ;屏蔽高屏蔽高5 5位位, ,保留有鍵值信息的低保留有鍵值信息的低3 3位位 JZ GRET JZ GRET ; ;全全0,0,無鍵閉合無鍵閉合, ,返回返回; ;非全非全0,0,確認(rèn)有鍵閉合確認(rèn)有鍵閉合 JB Acc.0,KA0 JB Acc.

58、0,KA0 ; ;轉(zhuǎn)轉(zhuǎn)0#0#鍵功能程序鍵功能程序 JB Acc.1,KA1 JB Acc.1,KA1 ; ;轉(zhuǎn)轉(zhuǎn)1#1#鍵功能程序鍵功能程序 JB Acc.2,KA2 JB Acc.2,KA2 ; ;轉(zhuǎn)轉(zhuǎn)2#2#鍵功能程序鍵功能程序GRET:RETGRET:RETKA0: LCALL WORK0 KA0: LCALL WORK0 ; ;執(zhí)行執(zhí)行0#0#鍵功能子程序鍵功能子程序 RETRETKA1: LCALL WORK1 KA1: LCALL WORK1 ; ;執(zhí)行執(zhí)行1#1#鍵功能子程序鍵功能子程序 RETRETKA2: LCALL WORK2 KA2: LCALL WORK2 ; ;執(zhí)行

59、執(zhí)行2#2#鍵功能子程序鍵功能子程序 RETRET按圖按圖9-13(b)9-13(b)編程如下編程如下: KEYB:ORL P1,#07H KEYB:ORL P1,#07H ; ;置置P1.0P1.0P1.2P1.2為輸入態(tài)為輸入態(tài) MOV A,P1 MOV A,P1 ; ;讀鍵值讀鍵值, ,鍵閉合相應(yīng)位為鍵閉合相應(yīng)位為1 1 ANL A,#00000111B ANL A,#00000111B ; ;屏蔽高屏蔽高5 5位位, ,保留有鍵值信息的低保留有鍵值信息的低3 3位位 JZ GRET JZ GRET ; ;全全0,0,無鍵閉合無鍵閉合, ,返回返回 LCALL DY10ms LCALL

60、DY10ms ; ;非全非全0,0,有鍵閉合有鍵閉合, ,延時延時10ms,10ms,軟件去抖動軟件去抖動 MOV A,P1 MOV A,P1 ; ;重讀鍵值重讀鍵值, ,鍵閉合相應(yīng)位為鍵閉合相應(yīng)位為1 1 ANL A,#00000111B ANL A,#00000111B ; ;屏蔽高屏蔽高5 5位位, ,保留有鍵值信息的低保留有鍵值信息的低3 3位位 JZ GRET JZ GRET ; ;全全0,0,無鍵閉合無鍵閉合, ,返回返回; ;非全非全0,0,確認(rèn)有鍵閉合確認(rèn)有鍵閉合 JB Acc.0,KB0 JB Acc.0,KB0 ; ;轉(zhuǎn)轉(zhuǎn)0#0#鍵功能程序鍵功能程序 JB Acc.1,KB

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論