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

下載本文檔

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

文檔簡(jiǎn)介

1、第第9 9章章 常用外圍設(shè)備接口電路常用外圍設(shè)備接口電路本章要點(diǎn)本章要點(diǎn): LEDLED數(shù)碼管及編碼方式數(shù)碼管及編碼方式 靜態(tài)顯示方式及其典型應(yīng)用電路靜態(tài)顯示方式及其典型應(yīng)用電路 動(dòng)態(tài)顯示方式及其典型應(yīng)用電路動(dòng)態(tài)顯示方式及其典型應(yīng)用電路 虛擬虛擬I I2 2C C總線(xiàn)串行顯示電路總線(xiàn)串行顯示電路 鍵盤(pán)去抖動(dòng)和連接、控制方式鍵盤(pán)去抖動(dòng)和連接、控制方式 獨(dú)立式按鍵及其接口電路獨(dú)立式按鍵及其接口電路 矩陣式鍵盤(pán)及其接口電路矩陣式鍵盤(pán)及其接口電路 并行并行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)用電路 開(kāi)關(guān)量驅(qū)動(dòng)輸出接口電路開(kāi)關(guān)量驅(qū)動(dòng)輸出接口電路0 0 開(kāi)關(guān)量驅(qū)動(dòng)輸出接口電路開(kāi)關(guān)量驅(qū)動(dòng)輸出接口電路一、一、驅(qū)動(dòng)發(fā)光二極管驅(qū)動(dòng)發(fā)光二極管二、二、 驅(qū)動(dòng)繼電器驅(qū)動(dòng)繼電器三、三、光電隔離接口光電隔離接口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):共陽(yáng)與共陰共陽(yáng)與共陰 單片機(jī)系統(tǒng)擴(kuò)

3、展單片機(jī)系統(tǒng)擴(kuò)展LEDLED數(shù)碼管時(shí)數(shù)碼管時(shí)多用多用共陽(yáng)共陽(yáng)LEDLED: :共陽(yáng)數(shù)碼管每個(gè)段筆畫(huà)是用低電平共陽(yáng)數(shù)碼管每個(gè)段筆畫(huà)是用低電平(“0”)(“0”)點(diǎn)亮的點(diǎn)亮的, ,要求驅(qū)要求驅(qū)動(dòng)功率很?。欢碴帞?shù)碼管段筆畫(huà)是用高電平動(dòng)功率很??;而共陰數(shù)碼管段筆畫(huà)是用高電平(“0”)(“0”)點(diǎn)亮點(diǎn)亮的,要求驅(qū)動(dòng)功率較大。的,要求驅(qū)動(dòng)功率較大。 通常每個(gè)段筆畫(huà)要串一個(gè)數(shù)百歐姆的通常每個(gè)段筆畫(huà)要串一個(gè)數(shù)百歐姆的降壓電阻降壓電阻。公共公共陽(yáng)陽(yáng)極極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ù)碼管段代碼編碼表段代碼編碼表( (連線(xiàn)不同可有多種表連線(xiàn)不同可有多種表):):公共陽(yáng)極公共陽(yáng)極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ù)碼管分類(lèi):數(shù)碼管分類(lèi):按按其內(nèi)部結(jié)構(gòu)可分為其內(nèi)部結(jié)構(gòu)可分為共陰型共陰型和和共陽(yáng)型共陽(yáng)型; 按按其外形尺寸有多種形式,使用較多的其外形尺寸有多種形式,使用較多的是是0.50.5和和0.80.8; 按按顯示顏色也有多種形式,主要有顯示顏色也有多種形式,主要有紅色紅色和和綠色綠色; 正向壓降一般為正向壓降一般為1.51.52V2V,額定電流為,額定電流為10mA10mA,最大電流為,最大電流為40mA40mA。靜態(tài)顯示靜態(tài)顯示時(shí)取時(shí)取10mA10mA為宜,為宜,動(dòng)態(tài)掃描顯示動(dòng)態(tài)掃描顯示,可加大脈沖電流,但,可加大脈沖電流,但一般不超

6、過(guò)一般不超過(guò)40mA40mA。 按按亮度強(qiáng)弱可分為亮度強(qiáng)弱可分為超亮超亮、高亮高亮和和普亮普亮。二、二、LEDLED數(shù)碼管編碼方式數(shù)碼管編碼方式 表表9-1 9-1 共陰和共陽(yáng)共陰和共陽(yáng)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 ; ;置萬(wàn)位置萬(wàn)位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,萬(wàn)位商存萬(wàn)位商存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 ; ;讀個(gè)

10、位數(shù)讀個(gè)位數(shù) INC R0 INC R0 ; ;指向個(gè)位間址指向個(gè)位間址(34H)(34H) MOV R0,A MOV R0,A ; ;個(gè)位存?zhèn)€位存34H34H RET RET ; ;解:連續(xù)調(diào)用下列二個(gè)子程序即可。解:連續(xù)調(diào)用下列二個(gè)子程序即可。 分離顯示數(shù)字子程序分離顯示數(shù)字子程序說(shuō)明說(shuō)明: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個(gè)顯示數(shù)字轉(zhuǎn)換完否個(gè)顯示數(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)用電路 動(dòng)態(tài)顯示方式動(dòng)態(tài)顯示方式,在某一瞬時(shí)顯示一位,依次循環(huán),在某一瞬時(shí)顯示一位,依次循環(huán)掃描,輪流顯示,由于人的視覺(jué)滯留效應(yīng),人們看掃描,輪流顯示,由于人的視覺(jué)滯留效應(yīng),人們看到的是多位同時(shí)穩(wěn)定顯示。到的是多位同時(shí)穩(wěn)定顯示。 特點(diǎn)特點(diǎn):占

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

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

15、到送顯信號(hào),與各數(shù)碼管接口的的I/OI/O口線(xiàn)口線(xiàn)是是專(zhuān)用專(zhuān)用的。的。動(dòng)態(tài)顯示動(dòng)態(tài)顯示: : 各數(shù)碼管在顯示過(guò)程中各數(shù)碼管在顯示過(guò)程中輪流輪流得到送顯信號(hào),與各數(shù)碼管接口得到送顯信號(hào),與各數(shù)碼管接口的的I/OI/O口線(xiàn)口線(xiàn)是是共用共用的。的。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 ; ;置共陽(yáng)字段碼表首址置共陽(yáng)字段碼表首址 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 ; ;讀個(gè)位顯示數(shù)字讀個(gè)位顯示數(shù)字 MOV DPTR,#TAB MOV DPTR,#TAB ; ;置共陽(yáng)字段碼表首址置共陽(yáng)字段碼表首址 MOVC A,A+DPTR MOVC A,A+DPTR ; ;讀個(gè)位顯示符讀個(gè)位

18、顯示符 MOV DPTR,#7FFFH MOV DPTR,#7FFFH ; ;置置74377(74377(個(gè)位個(gè)位) )地址地址 MOVX DPTR,A MOVX DPTR,A ; ;輸出個(gè)位顯示符輸出個(gè)位顯示符 RET RET ; ;TAB: DB 0C0H,0F9H,0A4H,0B0H,99HTAB: DB 0C0H,0F9H,0A4H,0B0H,99H; ;共陽(yáng)字段碼表共陽(yáng)字段碼表 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 ;“;“與與”門(mén)開(kāi)門(mén)開(kāi), ,允許允許TXDTXD發(fā)移位脈沖發(fā)移位脈沖 MOV SBUF,30H MOV SBUF,30H ; ;串行輸出個(gè)位顯示字段碼串行輸出個(gè)位顯示字段碼 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 ;“;“與與”門(mén)關(guān)門(mén)關(guān), ,禁止禁止TXDTXD發(fā)移位脈沖發(fā)移位脈沖 RET RET ; ;【例例9-39-3】按圖】按圖9-49-4編制顯示子程序,顯示字段碼已分別存編制顯示子程序,顯示字段碼已分別存在在32H32H30

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

22、H #30H ; ;待顯數(shù)據(jù)緩沖區(qū)的待顯數(shù)據(jù)緩沖區(qū)的個(gè)位個(gè)位地址地址REDOREDO:MOV AMOV A, R0 R0 ; ;通過(guò)通過(guò)R0R0實(shí)現(xiàn)寄存器實(shí)現(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, $ ; ;查詢(xún)查詢(xún)送完一個(gè)字節(jié)的第送完一個(gè)字節(jié)的第8 8位?位? CLR TI CLR TI ; ;為下一字節(jié)發(fā)送為下一字節(jié)發(fā)送作準(zhǔn)備作準(zhǔn)備 INC R0 INC R0 ;R0;R0指向下一個(gè)指

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

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

25、根;根;二二是是不需專(zhuān)用驅(qū)動(dòng)電路,可直接輸出;不需專(zhuān)用驅(qū)動(dòng)電路,可直接輸出;三是三是不需譯不需譯碼,直接輸出二進(jìn)制數(shù),編程簡(jiǎn)單;碼,直接輸出二進(jìn)制數(shù),編程簡(jiǎn)單;缺點(diǎn)是缺點(diǎn)是只能只能顯示數(shù)字,不能顯示各種符號(hào)。顯示數(shù)字,不能顯示各種符號(hào)。 解:編程如下:解:編程如下:DIR3: MOV P1,#111DIR3: MOV P1,#1110 00000B 0000B ; ;選通個(gè)位選通個(gè)位 ORL P1,30H ORL P1,30H ; ;輸出個(gè)位顯示數(shù)輸出個(gè)位顯示數(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中。中。動(dòng)態(tài)顯示電路動(dòng)態(tài)顯示電路連結(jié)形式:連結(jié)形式: 顯示各位的所有顯示各位的所有相同字段線(xiàn)連在一起,相同字段線(xiàn)連在一起,共共8 8段,由一個(gè)段,由一個(gè)8 8

27、位位I/OI/O口控制;口控制; 每一位的公共端每一位的公共端(共陽(yáng)或共陰(共陽(yáng)或共陰COMCOM)由另一個(gè)由另一個(gè)I/OI/O口控制??诳刂?。四、四、動(dòng)態(tài)顯示方式動(dòng)態(tài)顯示方式及其典型應(yīng)用電路及其典型應(yīng)用電路LEDLED數(shù)碼管數(shù)碼管動(dòng)態(tài)動(dòng)態(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門(mén)門(mén) X 3X 3上拉上拉電阻電阻1414+5V+5VAT8

28、9C51工作原理工作原理:從從P0P0口送段代碼口送段代碼,P1,P1口送位選信號(hào)口送位選信號(hào)。段碼雖同時(shí)。段碼雖同時(shí)到達(dá)到達(dá) 6 6個(gè)個(gè)LEDLED,但,但一次僅一個(gè)一次僅一個(gè)LEDLED被選中被選中。利用。利用“視覺(jué)暫視覺(jué)暫留留”,每送一個(gè)字符并選中相應(yīng)位線(xiàn),延時(shí)一會(huì)兒,每送一個(gè)字符并選中相應(yīng)位線(xiàn),延時(shí)一會(huì)兒, ,再送再送/ /選下一個(gè)選下一個(gè)循環(huán)掃描循環(huán)掃描即可。即可。共陰共陰 數(shù)碼管數(shù)碼管位位選選線(xiàn)線(xiàn)段段代代碼碼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門(mén)門(mén) X 3X 3+5V+5VAT89C51位位選選線(xiàn)線(xiàn)段段代代碼碼要求要求:此處為共陰數(shù)碼管,此處為共陰數(shù)碼管,P0P0口送段代碼,口送段代碼,P1P1口送位選信號(hào)??谒臀贿x信號(hào)。通過(guò)查表實(shí)現(xiàn)動(dòng)態(tài)顯示。通過(guò)查表實(shí)現(xiàn)動(dòng)態(tài)顯示。條件條件:待顯數(shù)據(jù)待顯數(shù)據(jù)(00H09H)(00H09H)已放在已放在: : 7FH7AH7FH7AH單元中單元中( (分別對(duì)分別對(duì)應(yīng)應(yīng)十萬(wàn)位十萬(wàn)位個(gè)位個(gè)位) )說(shuō)明說(shuō)明:由于用了由于用了反相驅(qū)動(dòng)器反相驅(qū)動(dòng)器74067406,要用共陽(yáng)譯碼表。,要用共陽(yáng)譯碼表。共陰共

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

31、譯碼表首址表首址 MOV R0MOV R0,#7AH #7AH ; ;待顯緩沖區(qū)待顯緩沖區(qū)個(gè)位個(gè)位地址地址 MOV R3MOV R3,#01H #01H ; ;個(gè)位的個(gè)位的位選信號(hào)位選信號(hào)=01H=01HLD1LD1: MOV AMOV A, R0 R0 ; ;通過(guò)通過(guò)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)延時(shí)調(diào)延時(shí)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個(gè)數(shù)?個(gè)數(shù)? RL A RL A ;R1;R1指向下一個(gè)位指向下一個(gè)位 MOV R3MOV R3,A A ; ;位選信號(hào)存回位選信號(hào)存回R1R1 SJMP SJMP LD1LD1 ; ;跳去再顯示下一個(gè)數(shù)跳去再顯示下一個(gè)數(shù)LD2LD2: RET RET ; ;發(fā)完發(fā)完6 6個(gè)數(shù)就個(gè)數(shù)就返回返回DSEGDSEG:DB 0C0H,0F9H,0A4H,0B0H,99HDB 0C0H,0F9H,0A4H

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

34、是0DCH0DCH; ; 一個(gè)送位選信號(hào)一個(gè)送位選信號(hào)( (字位置字位置) ),地址是,地址是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 ; ;從最高位開(kāi)始從最高位開(kāi)始LEDO:LEDO: MOVX MOVX R1,AR1,A

35、 ; ;輸出字位代碼輸出字位代碼 ACALL DEYS ACALL DEYS ; ;調(diào)延時(shí)子程序調(diào)延時(shí)子程序 RR A RR A ; ;右移一位右移一位 SJMP LEDO SJMP LEDO ; ;循環(huán)顯示循環(huán)顯示“8”8”1 1、共陰型共陰型8 8位動(dòng)態(tài)顯示電路位動(dòng)態(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)用延時(shí)調(diào)用延時(shí)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、共陽(yáng)型共陽(yáng)型3 3位動(dòng)態(tài)顯示電路位動(dòng)態(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 ; ;取個(gè)位字段碼取個(gè)位字段碼 MOVX DPTR,A MOVX DPTR,A ; ;輸出個(gè)位字段碼輸出個(gè)位字段碼 CLR P1.0 CLR P1

39、.0 ; ;個(gè)位顯示個(gè)位顯示 LCALL DY2ms LCALL DY2ms ; ;調(diào)用延時(shí)調(diào)用延時(shí)2ms2ms子程序子程序( (參閱例參閱例4.13)4.13)DIR51: SETB P1.0 DIR51: SETB P1.0 ; ;個(gè)位停顯示個(gè)位停顯示 MOV A,41H MOV A,41H ; ;取十位字段碼取十位字段碼 MOVX DPTR,A MOVX DPTR,A ; ;輸出十位字段碼輸出十位字段碼 CLR P1.1 CLR P1.1 ; ;十位顯示十位顯示 LCALL DY2ms LCALL DY2ms ; ;延時(shí)延時(shí)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 ; ;延時(shí)延時(shí)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位動(dòng)態(tài)掃描顯示程序位動(dòng)態(tài)掃描顯示程序( (循環(huán)循環(huán)100100次次),),已知顯示字段碼存在以已知顯示字段碼存在以40H(40H(低位低位) )為首址的為首址的3 3字節(jié)內(nèi)字節(jié)內(nèi)RAMRAM中。中。解:編程如下:解:編程如下:1、SAA1064SAA1064引腳功能引腳功能 五、五、虛擬虛擬I I2 2C C總線(xiàn)串行顯示電路總線(xiàn)串行顯示電路 V VDDDD、V VEEEE:電源、接地端。電源:電源、接地端。電源4.54.515V15V; P1P1P16P16:段驅(qū)動(dòng)輸出端。分為兩個(gè):段驅(qū)動(dòng)輸出端。分為兩個(gè)8 8位口:位口:P1P1P8P8;P

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

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

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

45、、C5C5、C6C6分別為分別為1 1時(shí),驅(qū)動(dòng)時(shí),驅(qū)動(dòng)電流分別為電流分別為3mA3mA、6mA6mA、12mA12mA;C4C4、C5C5、C6C6全為全為1 1時(shí),驅(qū)動(dòng)電流時(shí),驅(qū)動(dòng)電流最大,可達(dá)最大,可達(dá)21mA21mA。 寫(xiě)數(shù)據(jù)操作格式寫(xiě)數(shù)據(jù)操作格式 紅色紅色部分由部分由80C5180C51發(fā)送,發(fā)送,SAA1064SAA1064接收;接收; 黑色部分由黑色部分由SAA1064SAA1064發(fā)送,發(fā)送,80C5180C51接收。接收。SLASLAW W為寫(xiě)為寫(xiě)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;置控制命令字置控制命令字, ,動(dòng)態(tài)顯示動(dòng)態(tài)顯示, ,驅(qū)動(dòng)電流驅(qū)動(dòng)電流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)寫(xiě)尋址字節(jié)寫(xiě)尋址字節(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個(gè)數(shù)據(jù)移完否個(gè)數(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)動(dòng)態(tài)顯示動(dòng)態(tài)顯示, ,驅(qū)動(dòng)電流為驅(qū)動(dòng)電流為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è)計(jì)程序設(shè)計(jì)1 1、按鍵開(kāi)關(guān)去抖動(dòng)問(wèn)題按鍵開(kāi)關(guān)去抖動(dòng)問(wèn)題 2 2 鍵盤(pán)接口鍵盤(pán)接口一、一、鍵盤(pán)接口概述鍵盤(pán)接口概述鍵盤(pán)的抖動(dòng)時(shí)間一般為鍵盤(pán)的抖動(dòng)時(shí)間一般為5 510ms10ms,抖動(dòng)現(xiàn)象會(huì)引起抖動(dòng)現(xiàn)象會(huì)引起CPUCPU對(duì)一次鍵操作進(jìn)行多次處理,從而可能產(chǎn)生錯(cuò)誤對(duì)一次鍵操作進(jìn)行多次處理,從而可能產(chǎn)生錯(cuò)誤。 硬件去抖動(dòng)硬件去抖動(dòng) 消除抖動(dòng)不良后果的方法:消除抖動(dòng)不良后果的方法:其中其中RCRC濾波電路去抖動(dòng)電路簡(jiǎn)單實(shí)用,效果較好濾波電路去抖動(dòng)電路簡(jiǎn)單實(shí)用,效果較好。 軟件去抖動(dòng)軟件去抖動(dòng) 檢測(cè)到按鍵按下后,執(zhí)行檢測(cè)到按鍵按下后,執(zhí)行延時(shí)延時(shí)10ms1

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

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

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

55、式是利用外部中斷源,響應(yīng)鍵輸入信號(hào)。 特點(diǎn)特點(diǎn):克服了前兩種控制方式可能產(chǎn)生的空掃描和不能及時(shí):克服了前兩種控制方式可能產(chǎn)生的空掃描和不能及時(shí)響應(yīng)鍵輸入的缺點(diǎn),既能及時(shí)處理鍵輸入,又能提高響應(yīng)鍵輸入的缺點(diǎn),既能及時(shí)處理鍵輸入,又能提高CPUCPU運(yùn)行效運(yùn)行效率,但要占用一個(gè)寶貴的中斷資源。率,但要占用一個(gè)寶貴的中斷資源。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,無(wú)鍵閉合無(wú)鍵閉合, ,返回返回 LCALL DY10ms LCALL DY

57、10ms ; ;非全非全0,0,有鍵閉合有鍵閉合, ,延時(shí)延時(shí)10ms,10ms,軟件去抖動(dòng)軟件去抖動(dòng) 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,無(wú)鍵閉合無(wú)鍵閉合, ,返回返回; ;非全非全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,無(wú)鍵閉合無(wú)鍵閉合, ,返回返回 LCALL DY10ms LCALL

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

評(píng)論

0/150

提交評(píng)論