版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第9章常用外圍設(shè)備接口電路本章要點(diǎn):LED數(shù)碼管及編碼方式靜態(tài)顯示方式及其典型應(yīng)用電路動(dòng)態(tài)顯示方式及其典型應(yīng)用電路虛擬I2C總線串行顯示電路鍵盤去抖動(dòng)和連接、控制方式獨(dú)立式按鍵及其接口電路矩陣式鍵盤及其接口電路并行A/DADC0809及其接口電路串行A/DADC0832及其接口電路I2C串行A/D典型應(yīng)用電路DAC0832及其接口電路I2C串行D/A典型應(yīng)用電路開關(guān)量驅(qū)動(dòng)輸出接口電路§0開關(guān)量驅(qū)動(dòng)輸出接口電路一、驅(qū)動(dòng)發(fā)光二極管二、
驅(qū)動(dòng)繼電器三、光電隔離接口LED輸出電路§1LED數(shù)碼管顯示接口一、LED數(shù)碼管LED顯示器的擴(kuò)展(結(jié)構(gòu))LED數(shù)碼管的結(jié)構(gòu):①共陽(yáng)與共陰@
單片機(jī)系統(tǒng)擴(kuò)展LED數(shù)碼管時(shí)多用共陽(yáng)LED:共陽(yáng)數(shù)碼管每個(gè)段筆畫是用低電平(“0”)點(diǎn)亮的,要求驅(qū)動(dòng)功率很?。欢碴帞?shù)碼管段筆畫是用高電平(“0”)點(diǎn)亮的,要求驅(qū)動(dòng)功率較大。@
通常每個(gè)段筆畫要串一個(gè)數(shù)百歐姆的降壓電阻。公共陽(yáng)極hgfedcbaabcdgefh公共陰極hgfedcbaabcdgefhhgf……ahgf……a高電平點(diǎn)亮低電平點(diǎn)亮接高電平接地LED數(shù)碼管的軟件譯碼八段LED數(shù)碼管段代碼編碼表(連線不同可有多種表):公共陽(yáng)極hgfedcbaabcdgefh公共陰極hgfedcbaabcdgefhhgf……ahgf……a高電平點(diǎn)亮低電平點(diǎn)亮接高電平接地字形0123456789黑共陽(yáng)0C00F90A40B09992820F880900FF共陰3F065B4F666D7D077F6F00LED數(shù)碼管分類:按其內(nèi)部結(jié)構(gòu)可分為共陰型和共陽(yáng)型;
按其外形尺寸有多種形式,使用較多的是0.5"和0.8";
按顯示顏色也有多種形式,主要有紅色和綠色;
正向壓降一般為1.5~2V,額定電流為10mA,最大電流為40mA。靜態(tài)顯示時(shí)取10mA為宜,動(dòng)態(tài)掃描顯示,可加大脈沖電流,但一般不超過(guò)40mA。
按亮度強(qiáng)弱可分為超亮、高亮和普亮。二、LED數(shù)碼管編碼方式
表9-1共陰和共陽(yáng)LED數(shù)碼管幾種八段編碼表
顯示數(shù)字共陰順序小數(shù)點(diǎn)暗共陰逆序小數(shù)點(diǎn)暗共陽(yáng)順序小數(shù)點(diǎn)亮共陽(yáng)順序小數(shù)點(diǎn)暗
Dpgfedcba16進(jìn)制abcdefgDp16進(jìn)制0001111113FH11111100FCH40HC0H10000011006H0110000060H79HF9H2010110115BH11011010DAH24HA4H3010011114FH11110010F2H30HB0H40110011066H0110011066H19H99H5011011016DH10110110B6H12H92H6011111017DH10111110BEH02H82H70000011107H11100000E0H78HF8H8011111117FH11111110FEH00H80H9011011116FH11110110F6H10H90H【例9-1】已知顯示數(shù)存在內(nèi)RAM30H(高位)、31H中,試將其轉(zhuǎn)換為5位共陰字段碼(順序),存在以30H(高位)為首址的內(nèi)RAM中。⑴從顯示數(shù)中分離出顯示的每一位數(shù)字
方法是將顯示數(shù)除以十進(jìn)制的權(quán)顯示數(shù)轉(zhuǎn)換為顯示字段碼的步驟:⑵將分離出的顯示數(shù)字轉(zhuǎn)換為顯示字段碼
方法是查表SPRT:MOVR0,#30H;置萬(wàn)位BCD碼間址
MOVA,30H;置被除數(shù)
MOVB,31H;MOVR6,#27H;置除數(shù)10000=2710HMOVR5,#10H;LCALLSUM;除以10000,萬(wàn)位商存30H,余數(shù)存A、BMOVR6,#03H;置除數(shù)1000=03E8HMOVR5,#0E8H;INCR0;指向千位商間址(31H)LCALLSUM;除以1000,千位商存31H,余數(shù)存A、BMOVR6,#0;置除數(shù)100
MOVR5,#100;INCR0;指向百位商間址(32H)LCALLSUM;除以100,百位商存32H,余數(shù)存A(B=0)MOVB,#10;置除數(shù)10DIVAB;除以10INCR0;指向十位商間址(33H)MOV@R0,A;十位商存33HXCHA,B;讀個(gè)位數(shù)
INCR0;指向個(gè)位間址(34H)MOV@R0,A;個(gè)位存34HRET;解:連續(xù)調(diào)用下列二個(gè)子程序即可。⑴分離顯示數(shù)字子程序說(shuō)明:SUM是16位除以16位子程序:(A、B)÷(R6、R5)=商@R0,余數(shù)(A、B)。(參閱例4-9)⑵轉(zhuǎn)換顯示字段碼子程序CHAG:MOVDPTR,#TAB
;置共陰字段碼表首址
MOVR0,#30H
;置顯示數(shù)據(jù)區(qū)首址CGLP:MOVA,@R0
;取顯示數(shù)字
MOVCA,@A+DPTR
;讀相應(yīng)顯示字段碼
MOV@R0,A
;存顯示字段碼
INCR0
;指向下一顯示數(shù)字
CJNER0,#35H,CGLP;判5個(gè)顯示數(shù)字轉(zhuǎn)換完否?未完繼續(xù)
RET;轉(zhuǎn)換完畢,結(jié)束TAB:DB3FH,06H,5BH,4FH,66H;共陰字段碼表
DB6DH,7DH,07H,7FH,6FH;三、靜態(tài)顯示方式及其典型應(yīng)用電路⑵動(dòng)態(tài)顯示方式,在某一瞬時(shí)顯示一位,依次循環(huán)掃描,輪流顯示,由于人的視覺滯留效應(yīng),人們看到的是多位同時(shí)穩(wěn)定顯示。
特點(diǎn):占用I/O端線少,電路較簡(jiǎn)單,編程較復(fù)雜,CPU要定時(shí)掃描刷新顯示。一般適用于顯示位數(shù)較多的場(chǎng)合。LED數(shù)碼管顯示分類:靜態(tài)顯示方式和動(dòng)態(tài)顯示方式。⑴靜態(tài)顯示方式,每一位字段碼分別從I/O控制口輸出,保持不變直至CPU刷新。
特點(diǎn):編程較簡(jiǎn)單,但占用I/O口線多,一般適用于顯示位數(shù)較少的場(chǎng)合。LED顯示器的擴(kuò)展(顯示方式)LED數(shù)碼管的顯示方式:③靜態(tài)與動(dòng)態(tài)動(dòng)態(tài)顯示特點(diǎn):有閃爍,用元器件少,占I/O線少,必須掃描,花費(fèi)CPU時(shí)間,編程復(fù)雜。(有多個(gè)LED時(shí)尤為突出)靜態(tài)顯示特點(diǎn):無(wú)閃爍,用元器件多,占I/O線多,無(wú)須掃描,節(jié)省CPU時(shí)間,編程簡(jiǎn)單。靜態(tài)顯示:各數(shù)碼管在顯示過(guò)程中持續(xù)得到送顯信號(hào),與各數(shù)碼管接口的I/O口線是專用的。動(dòng)態(tài)顯示:各數(shù)碼管在顯示過(guò)程中輪流得到送顯信號(hào),與各數(shù)碼管接口的I/O口線是共用的。1、并行擴(kuò)展靜態(tài)顯示電路
【例9-2】按圖9-3編制顯示子程序,顯示數(shù)(≤255)存在內(nèi)RAM30H中。
解:DIR1:MOVA,30H;讀顯示數(shù)
MOVB,#100;置除數(shù)
DIVAB;產(chǎn)生百位顯示數(shù)字
MOVCA,@A+DPTR;讀百位顯示符
MOVDPTR,#0DFFFH;置74377(百位)地址
MOVX@DPTR,A;輸出百位顯示符
MOVA,B;讀余數(shù)
MOVB,#10;置除數(shù)
DIVAB;產(chǎn)生十位顯示數(shù)字
MOVDPTR,#TAB;置共陽(yáng)字段碼表首址
MOVCA,@A+DPTR;讀十位顯示符
MOVDPTR,#0BFFFH;置74377(十位)地址
MOVX@DPTR,A;輸出十位顯示符
MOVA,B;讀個(gè)位顯示數(shù)字
MOVDPTR,#TAB;置共陽(yáng)字段碼表首址
MOVCA,@A+DPTR;讀個(gè)位顯示符
MOVDPTR,#7FFFH;置74377(個(gè)位)地址
MOVX@DPTR,A;輸出個(gè)位顯示符
RET;TAB:DB0C0H,0F9H,0A4H,0B0H,99H;共陽(yáng)字段碼表
DB92H,82H,0F8H,80H,90H;2、串行擴(kuò)展靜態(tài)顯示電路DIR2:MOVSCON,#00H;置串口方式0
CLRES;串口禁中
SETBP1.0;“與”門開,允許TXD發(fā)移位脈沖
MOVSBUF,30H;串行輸出個(gè)位顯示字段碼
JNBTI,$;等待串行發(fā)送完畢
CLRTI;清串行中斷標(biāo)志
MOVSBUF,31H;串行輸出十位顯示字段碼
JNBTI,$;等待串行發(fā)送完畢
CLRTI;清串行中斷標(biāo)志
MOVSBUF,32H;串行輸出百位顯示字段碼
JNBTI,$;等待串行發(fā)送完畢
CLRTI;清串行中斷標(biāo)志
CLRP1.0;“與”門關(guān),禁止TXD發(fā)移位脈沖
RET;【例9-3】按圖9-4編制顯示子程序,顯示字段碼已分別存在32H~30H內(nèi)RAM中。解:要求:根據(jù)上圖編寫通過(guò)串行口和74LS164驅(qū)動(dòng)共陽(yáng)LED數(shù)碼管查表顯示的子程序。條件:系統(tǒng)有6個(gè)LED數(shù)碼管,待顯數(shù)據(jù)(00H—09H)已放在35H—30H單元中(分別對(duì)應(yīng)十萬(wàn)位→個(gè)位),DSPLY:MOVDPTR,#TABLE;共陽(yáng)LED數(shù)碼管譯碼表首址
MOVR0,#30H;待顯數(shù)據(jù)緩沖區(qū)的個(gè)位地址REDO:MOVA,@R0;通過(guò)R0實(shí)現(xiàn)寄存器間接尋址
MOVCA,@A+DPTR;查表
MOVSBUF,A;經(jīng)串行口發(fā)送到74LS164JNBTI,$;查詢送完一個(gè)字節(jié)的第8位?
CLRTI;為下一字節(jié)發(fā)送作準(zhǔn)備
INCR0;R0指向下一個(gè)數(shù)據(jù)緩沖單元
CJNER0,#36H,REDO;判斷是否發(fā)完6個(gè)數(shù)?
RET;發(fā)完6個(gè)數(shù)就返回TABLE:DB0C0H,0F9H,0A4H,0B0H,99H;共陽(yáng)LED譯碼表
DB92H,82H,0F8H,80H,90H3、BCD碼輸出靜態(tài)顯示電路CD4511是“BCD碼→七段共陰譯碼/驅(qū)動(dòng)”IC;4511是4線-7段鎖存/譯碼/驅(qū)動(dòng)電路,能將BCD碼譯成7段顯示符輸出。圖中:4511ABCD為0~9二進(jìn)制數(shù)輸入端(A是低位),abcdefg為顯示段碼輸出端,LE為輸入信號(hào)鎖存控制(低電平有效),數(shù)碼管為共陰數(shù)碼管。
利用4511實(shí)現(xiàn)靜態(tài)顯示與一般靜態(tài)顯示電路不同,一是節(jié)省I/0端線,段碼輸出只需4根;二是不需專用驅(qū)動(dòng)電路,可直接輸出;三是不需譯碼,直接輸出二進(jìn)制數(shù),編程簡(jiǎn)單;缺點(diǎn)是只能顯示數(shù)字,不能顯示各種符號(hào)。
解:編程如下:DIR3:MOVP1,#11100000B;選通個(gè)位
ORLP1,30H;輸出個(gè)位顯示數(shù)
MOVP1,#11010000B;選通十位
ORLP1,31H;輸出十位顯示數(shù)
MOVP1,#10110000B;選通百位
ORLP1,32H;輸出百位顯示數(shù)
RET;【例9-4】按圖9-5試編制顯示子程序(小數(shù)點(diǎn)固定在第二位),已知顯示數(shù)存在內(nèi)RAM30H~32H中。動(dòng)態(tài)顯示電路連結(jié)形式:①顯示各位的所有相同字段線連在一起,共8段,由一個(gè)8位I/O口控制;②每一位的公共端(共陽(yáng)或共陰COM)由另一個(gè)I/O口控制。四、動(dòng)態(tài)顯示方式及其典型應(yīng)用電路LED數(shù)碼管動(dòng)態(tài)顯示舉例P1.5P1.4P1.3P1.2P1.2P1.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.07406OC門X3上拉電阻×14+5VAT89C51工作原理:從P0口送段代碼,P1口送位選信號(hào)。段碼雖同時(shí)到達(dá)6個(gè)LED,但一次僅一個(gè)LED被選中。利用“視覺暫留”,每送一個(gè)字符并選中相應(yīng)位線,延時(shí)一會(huì)兒,再送/選下一個(gè)……循環(huán)掃描即可。共陰數(shù)碼管位選線段代碼P1.5P1.4P1.3P1.2P1.2P1.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.07406OC門X3+5VAT89C51位選線段代碼要求:此處為共陰數(shù)碼管,P0口送段代碼,P1口送位選信號(hào)。通過(guò)查表實(shí)現(xiàn)動(dòng)態(tài)顯示。條件:待顯數(shù)據(jù)(00H—09H)已放在:7FH—7AH單元中(分別對(duì)應(yīng)十萬(wàn)位~個(gè)位)說(shuō)明:由于用了反相驅(qū)動(dòng)器7406,要用共陽(yáng)譯碼表。共陰數(shù)碼管上拉電阻×147406OC門X3+5V(7FH)(7EH)(7DH)(7CH)(7BH)(7AH)十萬(wàn)萬(wàn)位千位百位十位個(gè)位數(shù)據(jù)緩沖區(qū)/顯示緩沖區(qū)P0口送段代碼,P1口送位選信號(hào)。待顯數(shù)據(jù)已經(jīng)放在:7FH—7AH單元(分別對(duì)應(yīng)十萬(wàn)位→個(gè)位)使用共陽(yáng)譯碼表。DIR:MOVDPTR,#DSEG
;數(shù)碼管譯碼表首址
MOVR0,#7AH;待顯緩沖區(qū)個(gè)位地址
MOVR3,#01H;個(gè)位的位選信號(hào)=01HLD1:MOVA,@R0;通過(guò)R0間接尋址
MOVCA,@A+DPTR
;查表
MOVP0,A
;字段碼送到P0口
MOVP1,R3;字位選擇送到P1口
LCALLDELY
;調(diào)延時(shí)1ms子程序
INCR0;R0指向下一字節(jié)
MOVA,R3JBACC.5,LD2
;判是否發(fā)完6個(gè)數(shù)?
RLA;R1指向下一個(gè)位
MOVR3,A;位選信號(hào)存回R1SJMPLD1
;跳去再顯示下一個(gè)數(shù)LD2:
RET;發(fā)完6個(gè)數(shù)就返回DSEG:DB0C0H,0F9H,0A4H,0B0H,99H;共陽(yáng)譯碼表
DB92H,82H,0F8H,80H,90HP0口送段代碼,P1口送位選信號(hào)。待顯數(shù)據(jù)已經(jīng)放在:7FH—7AH單元(分別對(duì)應(yīng)十萬(wàn)位→個(gè)位)使用共陽(yáng)譯碼表。動(dòng)態(tài)顯示舉例(循環(huán)顯示“8”的實(shí)驗(yàn))實(shí)驗(yàn)箱從P0口擴(kuò)展了兩個(gè)8位的簡(jiǎn)單I/O口:
一個(gè)送段代碼(字形狀),地址是0DCH;
一個(gè)送位選信號(hào)(字位置),地址是0DDH。
ORG0000H
MOVR0,#0DCH;指向字形口
MOVA,#80H;送“8”的字形代碼
MOVX@R0,A;輸出字形代碼
MOVR1,#0DDH
;指向字位口
MOVA,#20H
;從最高位開始
LEDO:
MOVX@R1,A
;輸出字位代碼
ACALLDEYS
;調(diào)延時(shí)子程序
RRA
;右移一位
SJMPLEDO
;循環(huán)顯示“8”1、共陰型8位動(dòng)態(tài)顯示電路DIR4:MOVR2,#10;置循環(huán)掃描次數(shù)
MOVDPTR,#7FFFH;置74377口地址DLP1:ANLP1,#11111000B;第0位先顯示
MOVR0,#30H;置顯示字段碼首址DLP2:MOVA,@R0;讀顯示字段碼
MOVX@DPTR,A;輸出顯示字段碼
LCALLDY2ms;調(diào)用延時(shí)2ms子程序(參閱例4.13)
INCR0;指向下一位字段碼
INCP1;選通下一位顯示
CJNER0,#38H,DLP2;判8位掃描顯示完否?未完繼續(xù)
DJNZR2,DLP1;8位掃描顯示完畢,判10次循環(huán)完否?
CLRA;10次循環(huán)完畢,顯示暗
MOVX@DPTR,A;RET;子程序返回【例9-5】按圖9-7,試編制循環(huán)掃描(10次)顯示子程序,已知顯示字段碼存在以30H(低位)為首址的8字節(jié)內(nèi)RAM中。解:編程如下:2、共陽(yáng)型3位動(dòng)態(tài)顯示電路DIR5:MOVDPTR,#0BFFFH;置74377地址
MOVR2,#100;置循環(huán)顯示次數(shù)DIR50:SETBP1.2;百位停顯示
MOVA,40H;取個(gè)位字段碼
MOVX@DPTR,A;輸出個(gè)位字段碼
CLRP1.0;個(gè)位顯示
LCALLDY2ms;調(diào)用延時(shí)2ms子程序(參閱例4.13)DIR51:SETBP1.0;個(gè)位停顯示
MOVA,41H;取十位字段碼
MOVX@DPTR,A;輸出十位字段碼
CLRP1.1;十位顯示
LCALLDY2ms;延時(shí)2msDIR52:SETBP1.1;十位停顯示
MOVA,42H;取百位字段碼
MOVX@DPTR,A;輸出百位字段碼
CLRP1.2;百位顯示
LCALLDY2ms;延時(shí)2msDJNZR2,DIR50;判循環(huán)顯示結(jié)束否?未完繼續(xù)
ORLP1,#00000111B;3位滅顯示
RET;【例9-6】根據(jù)圖9-8電路,試編制3位動(dòng)態(tài)掃描顯示程序(循環(huán)100次),已知顯示字段碼存在以40H(低位)為首址的3字節(jié)內(nèi)RAM中。解:編程如下:1、SAA1064引腳功能五、虛擬I2C總線串行顯示電路①VDD、VEE:電源、接地端。電源4.5~15V;②P1~P16:段驅(qū)動(dòng)輸出端。分為兩個(gè)8位口:P1~P8;P9~P16。P8、P16為高位??阪i存器具有反相功能,置1時(shí),端口輸出0。③MX1、MX2:位碼驅(qū)動(dòng)端。靜態(tài)顯示驅(qū)動(dòng)時(shí),一片SAA1064可驅(qū)動(dòng)二位LED數(shù)碼管;動(dòng)態(tài)顯示驅(qū)動(dòng)時(shí),按圖9-10連接方式,一片SAA1064可驅(qū)動(dòng)四位LED數(shù)碼管;④SDA、SCL:I2C總線數(shù)據(jù)端、時(shí)鐘端;⑤CEXT:時(shí)鐘振蕩器外接電容,典型值2700pF⑥ADR:地址引腳端。SAA1064引腳地址A1、A0采用ADR模擬電壓比較編址。當(dāng)ADR引腳電平為0、3VDD/8,5VDD/8、VDD時(shí),相應(yīng)引腳地址A2、A1、A0分別為000、001、010、011;2、硬件電路設(shè)計(jì)
⑴片內(nèi)寄存器
符號(hào)COMdata1data2data3data4裝載內(nèi)容控制命令顯示段碼1顯示段碼2顯示段碼3顯示段碼4片內(nèi)地址00H01H02H03H04H3、片內(nèi)可編程功能⑵控制命令COMCOMD7D6D5D4D3D2D1D000H—C6C5C4C3C2C1C0CO:靜動(dòng)態(tài)控制,C0=1,動(dòng)態(tài)顯示,動(dòng)態(tài)顯示時(shí),data1、data2輪流從P8~P1輸出,data3、data4輪流從P16~P9輸出;C1:顯示位1、3亮暗選擇,C1=1,選擇亮;C2:顯示位2、4亮暗選擇,C2=1,選擇亮;C3:測(cè)試位,C3=1,所有段亮;C4、C5、C6:驅(qū)動(dòng)電流控制位,C4、C5、C6分別為1時(shí),驅(qū)動(dòng)電流分別為3mA、6mA、12mA;C4、C5、C6全為1時(shí),驅(qū)動(dòng)電流最大,可達(dá)21mA。⑶寫數(shù)據(jù)操作格式
SSLAWASADRACOMAdata1Adata2Adata3Adata4AP
紅色部分由80C51發(fā)送,SAA1064接收;黑色部分由SAA1064發(fā)送,80C51接收。SLAW為寫SAA1064尋址字節(jié),按圖9-10所示連接電路:SAA1064(1)SLAW=01110000B;SAA1064(2)SLAW=01110110B。其中0111(D7~4)為SAA1064器件地址,
D3~1為A2A1A0尋址字節(jié),末位D0為R/W;SADR為片內(nèi)寄存器地址;COM為控制命令。解:VSAA:MOVMTD,#00H;置SAA1064控制命令寄存器COM片內(nèi)子地址
MOV31H,#01000111B;置控制命令字,動(dòng)態(tài)顯示,驅(qū)動(dòng)電流12mAMOVNUMB,#6;置發(fā)送數(shù)據(jù)數(shù):SADR+COM+data1~4=6SAA1:MOVRO,#51H;將51H~54H顯示符數(shù)據(jù)移至32H~35HLCALLMOVB;MOVSLA,#01110000B;置SAA1064(1)寫尋址字節(jié)SLAWLCALLWRNB;發(fā)送給SAA1064(1)SAA2:MOVR0,#55H;將55H~58H顯示符數(shù)據(jù)移至32H~35H
LCALLMOVB;MOVSLA,#01110110B;置SAA1064(2)尋址字節(jié)SLAWLCALLWRNB;發(fā)送給SAA1064(2)RET;MOVB:MOVR1,#32H;顯示符數(shù)據(jù)移至32H~35H子程序MOVB1:MOVA,@R0;讀出
MOV@R1,A;存入
INCRO;指向下一讀出單元
INCR1;指向下一存入單元
CJNER1,#36H,MOVB1;判4個(gè)數(shù)據(jù)移完否?未完繼續(xù)
RET;【例9-7】已知8位顯示符(共陰編碼)已依次存入內(nèi)RAM51H~58H中,試按圖9-10編程將其輸入SAA1064(1),(2)動(dòng)態(tài)顯示,驅(qū)動(dòng)電流為12mA。設(shè)VIIC軟件包已裝入ROM,VSDA.VSCL.SLA.NUMB.MTD.MRD均已按8.3.2軟件包小結(jié)中協(xié)議定義。4、程序設(shè)計(jì)1、按鍵開關(guān)去抖動(dòng)問(wèn)題
§2鍵盤接口一、鍵盤接口概述鍵盤的抖動(dòng)時(shí)間一般為5~10ms,抖動(dòng)現(xiàn)象會(huì)引起CPU對(duì)一次鍵操作進(jìn)行多次處理,從而可能產(chǎn)生錯(cuò)誤。⑴
硬件去抖動(dòng)
消除抖動(dòng)不良后果的方法:其中RC濾波電路去抖動(dòng)電路簡(jiǎn)單實(shí)用,效果較好。⑵軟件去抖動(dòng)檢測(cè)到按鍵按下后,執(zhí)行延時(shí)10ms子程序后再確認(rèn)該鍵是否確實(shí)按下,消除抖動(dòng)影響。2、按鍵連接方式
⑴
獨(dú)立式按鍵
獨(dú)立式按鍵是每個(gè)按鍵占用一根I/O端線。
特點(diǎn):
①各按鍵相互獨(dú)立,電路配置靈活;
②按鍵數(shù)量較多時(shí),I/O端線耗費(fèi)較多,電路結(jié)構(gòu)繁雜;
③軟件結(jié)構(gòu)簡(jiǎn)單。
適用于按鍵數(shù)量較少的場(chǎng)合。
⑵矩陣式鍵盤
I/O端線分為行線和列線,按鍵跨接在行線和列線上,按鍵按下時(shí),行線與列線發(fā)生短路。
特點(diǎn):
①占用I/O端線較少;
②軟件結(jié)構(gòu)教復(fù)雜。
適用于按鍵較多的場(chǎng)合。3、鍵盤掃描控制方式
⑴程序控制掃描方式鍵處理程序固定在主程序的某個(gè)程序段。
特點(diǎn):對(duì)CPU工作影響小,但應(yīng)考慮鍵盤處理程序的運(yùn)行間隔周期不能太長(zhǎng),否則會(huì)影響對(duì)鍵輸入響應(yīng)的及時(shí)性。
⑵定時(shí)控制掃描方式利用定時(shí)/計(jì)數(shù)器每隔一段時(shí)間產(chǎn)生定時(shí)中斷,CPU響應(yīng)中斷后對(duì)鍵盤進(jìn)行掃描。
特點(diǎn):與程序控制掃描方式的區(qū)別是,在掃描間隔時(shí)間內(nèi),前者用CPU工作程序填充,后者用定時(shí)/計(jì)數(shù)器定時(shí)控制。定時(shí)控制掃描方式也應(yīng)考慮定時(shí)時(shí)間不能太長(zhǎng),否則會(huì)影響對(duì)鍵輸入響應(yīng)的及時(shí)性。
⑶中斷控制方式中斷控制方式是利用外部中斷源,響應(yīng)鍵輸入信號(hào)。
特點(diǎn):克服了前兩種控制方式可能產(chǎn)生的空掃描和不能及時(shí)響應(yīng)鍵輸入的缺點(diǎn),既能及時(shí)處理鍵輸入,又能提高CPU運(yùn)行效率,但要占用一個(gè)寶貴的中斷資源。1、按鍵直接與I/O口連接
二、獨(dú)立式按鍵及其接口電路【例9-8】按圖9-13(a)、(b),試分別編制按鍵掃描子程序。解:按圖9-13(a)編程如下:KEYA:ORLP1,#07H;置P1.0~P1.2為輸入態(tài)
MOVA,P1;讀鍵值,鍵閉合相應(yīng)位為0CPLA;取反,鍵閉合相應(yīng)位為1ANLA,#00000111B;屏蔽高5位,保留有鍵值信息的低3位
JZGRET;全0,無(wú)鍵閉合,返回
LCALLDY10ms;非全0,有鍵閉合,延時(shí)10ms,軟件去抖動(dòng)
MOVA,P1;重讀鍵值,鍵閉合相應(yīng)位為0CPLA;取反,鍵閉合相應(yīng)位為1ANLA,#00000111B;屏蔽高5位,保留有鍵值信息的低3位
JZGRET;全0,無(wú)鍵閉合,返回;非全0,確認(rèn)有鍵閉合
JBAcc.0,KA0;轉(zhuǎn)0#鍵功能程序
JBAcc.1,KA1;轉(zhuǎn)1#鍵功能程序
JBAcc.2,KA2;轉(zhuǎn)2#鍵功能程序GRET:RETKA0:LCALLWORK0;執(zhí)行0#鍵功能子程序
RETKA1:LCALLWORK1;執(zhí)行1#鍵功能子程序
RETKA2:LCALLWORK2;執(zhí)行2#鍵功能子程序
RET按圖9-13(b)編程如下:
KEYB:ORLP1,#07H;置P1.0~P1.2為輸入態(tài)
MOVA,P1;讀鍵值,鍵閉合相應(yīng)位為1ANLA,#00000111B;屏蔽高5位,保留有鍵值信息的低3位
JZGRET;全0,無(wú)鍵閉合,返回
LCALLDY10ms;非全0,有鍵閉合,延時(shí)10ms,軟件去抖動(dòng)
MOVA,P1;重讀鍵值,鍵閉合相應(yīng)位為1ANLA,#00000111B;屏蔽高5位,保留有鍵值信息的低3位
JZGRET;全0,無(wú)鍵閉合,返回;非全0,確認(rèn)有鍵閉合
JBAcc.0,KB0;轉(zhuǎn)0#鍵功能程序
JBAcc.1,KB1;轉(zhuǎn)1#鍵功能程序
JBAcc.2,KB2;轉(zhuǎn)2#鍵功能程序GRET:RETKB0:LCALLWORK0;執(zhí)行0#鍵功能子程序
RETKB1:LCALLWORK1;執(zhí)行1#鍵功能子程序
RETKB2:LCALLWORK2;執(zhí)行2#鍵功能子程序
RET⑴按鍵與并行擴(kuò)展I/O口連接
2、按鍵與擴(kuò)展I/O口連接【例9-9】按圖9-14,試編制按鍵掃描子程序,將鍵信號(hào)存入內(nèi)RAM30H。解:編程如下:KEY99:MOVDPTR,#7FFFH;置74373口地址
MOVXA,@DPTR;輸入鍵信號(hào)(“0”有效)
MOV30H,A;存鍵信號(hào)數(shù)據(jù)
RET;參閱8.2.4,圖8-6,【例8-2】。⑵按鍵與串行擴(kuò)展I/O口連接三、矩陣式鍵盤及其接口電路
【例9-10】按圖9-15及圖9-16,試編制矩陣式鍵盤掃描程序。
解:KEY:MOVP1,#0F0H;行線置低電平,列線置輸入態(tài)KEY0:MOVA,P1;讀列線數(shù)據(jù)
CPLA;數(shù)據(jù)取反,“1”有效
ANLA,#0F0H;屏蔽行線,保留列線數(shù)據(jù)
MOVR1,A;存列線數(shù)據(jù)(R1高4位)JZGRET;全0,無(wú)鍵按下,返回KEY1:MOVP1,#0FH;行線置輸入態(tài),列線置低電平
MOVA,P1;讀行線數(shù)據(jù)
CPLA;數(shù)據(jù)取反,“1”有效
ANLA,#0FH;屏蔽列線,保留行線數(shù)據(jù)
MOVR2,A;存行線數(shù)據(jù)(R2低4位)JZGRET;全0,無(wú)鍵按下,返回
JBCF0,WAIT;已有消抖標(biāo)志,轉(zhuǎn)
SETBF0;無(wú)消抖標(biāo)志,置消抖標(biāo)志
LCALLDY10ms;調(diào)用10ms延時(shí)子程序(參閱例4.13),消抖
SJMPKEY0;重讀行線列線數(shù)據(jù)GRET:RET;WAIT:MOVA,P1;等待按鍵釋放
CPLA;ANLA,#0FH;JNZWAIT;按鍵未釋放,繼續(xù)等待KEY2:MOVA,R1;取列線數(shù)據(jù)(高4位)MOVR1,#03H;取列線編號(hào)初值
MOVR3,#03H;置循環(huán)數(shù)
CLRC;KEY3:RLCA;依次左移入C中
JCKEY4;C=1,該列有鍵按下,(列線編號(hào)存R1)DECR1;C=0,無(wú)鍵按下,修正列編號(hào)
DJNZR3,KEY3;判循環(huán)結(jié)束否?未結(jié)束繼續(xù)尋找有鍵按下的列線KEY4:MOVA,R2;取行線數(shù)據(jù)(低4位)MOVR2,#00H;置行線編號(hào)初值
MOVR3,#03H;置循環(huán)數(shù)
CLRC;KEY5:RRCA;依次右移入C中
JCKEY6;C=1,該行有鍵按下,(行線編號(hào)存R2)INCR2;C=0,無(wú)鍵按下,修正行線編號(hào)
DJNZR3,KEY5;判循環(huán)結(jié)束否?未結(jié)束繼續(xù)尋找有鍵按下的行線KEY6:MOVA,R2;取行線編號(hào)
CLRC;RLCA;行編號(hào)×2RLCA;行編號(hào)×4ADDA,R1;行編號(hào)×4+列編號(hào)=按鍵編號(hào)KEY7:CLRC;RLCA;按鍵編號(hào)×2RLCA;按鍵編號(hào)×4(LCALL+RET共4字節(jié))MOVDPTR,#TABJ;JMP@A+DPTR;散轉(zhuǎn),執(zhí)行相應(yīng)鍵功能子程序TABJ:LCALLWORK0;調(diào)用執(zhí)行0#鍵功能子程序
RET;LCALLWORK1;調(diào)用執(zhí)行1#鍵功能子程序
RET;……LCALLWORK15;調(diào)用執(zhí)行15#鍵功能子程序
RET;【例9-11】按圖9-17,試編制中斷方式鍵盤掃描程序,將鍵盤序號(hào)存入內(nèi)RAM30H。
ORG0000H;復(fù)位地址
LJMPSTAT;轉(zhuǎn)初始化
ORG0003H;中斷入口地址
LJMPPINT0;轉(zhuǎn)中斷服務(wù)程序
ORG0100H;初始化程序首地址STAT:MOVSP,#60H;置堆棧指針
SETBIT0;置為邊沿觸發(fā)方式
MOVIP,#00000001B;置為高優(yōu)先級(jí)中斷
MOVP1,#00001111B;置P1.0~P1.3置為輸入態(tài),置P1.4~P1.7輸出0SETBEA;CPU開中
SETBEX0;開中
LJMPMAIN;轉(zhuǎn)主程序,并等待有鍵按下時(shí)中斷解:
OGR2000H;中斷服務(wù)程序首地址PINT0:PUSHAcc;保護(hù)現(xiàn)場(chǎng)
PUSHPSW;MOVA,P1;讀行線(P1.0~P1.3)數(shù)據(jù)
CPLA;數(shù)據(jù)取反,“1”有效
ANLA,#0FH;屏蔽列線,保留行線數(shù)據(jù)
MOVR2,A;存行線(P1.0~P1.3)數(shù)據(jù)(R2低4位)MOVP1,#0F0H;行線置低電平,列線置輸入態(tài)
MOVA,P1;讀列線(P1.4~P1.7)數(shù)據(jù)
CPLA;數(shù)據(jù)取反,“1”有效
ANLA,#0F0H;屏蔽行線,保留列線數(shù)據(jù)(A中高4位)MOVR1,#03H;取列線編號(hào)初值
MOVR3,#03H;置循環(huán)數(shù)
CLRC;PINT01:RLCA;依次左移入C中
JCPINT02;C=1,該列有鍵按下,(列線編號(hào)存R1)DECR1;C=0,無(wú)鍵按下,修正列編號(hào)
DJNZR3,PINT01;判循環(huán)結(jié)束否?未結(jié)束繼續(xù)尋找有鍵按下列線PINT02:MOVA,R2;取行線數(shù)據(jù)(低4位)MOVR2,#00H;置行線編號(hào)初值
MOVR3,#03H;置循環(huán)數(shù)PINT03:RRCA;依次右移入C中
JCPINT04;C=1,該行有鍵按下,(行線編號(hào)存R2)INCR2;C=0,無(wú)鍵按下,修正行線編號(hào)
DJNZR3,PINT03;判循環(huán)結(jié)束否?未結(jié)束繼續(xù)尋找有鍵按下行線PINT04:MOVA,R2;取行線編號(hào)
CLRC;RLCA;行編號(hào)×2RLCA;行編號(hào)×4ADDA,R1;行編號(hào)×4+列編號(hào)=按鍵編號(hào)
MOV30H,A;存按鍵編號(hào)
POPPSW;POPAcc;RETI;§9-3A/D轉(zhuǎn)換接口電路一、A/D轉(zhuǎn)換的基本概念
A/D轉(zhuǎn)換的功能是把模擬量電壓轉(zhuǎn)換為N位數(shù)字量。設(shè)D為N位二進(jìn)制數(shù)字量,UA為電壓模擬量,UREF為參考電壓,無(wú)論A/D或D/A,其轉(zhuǎn)換關(guān)系為:UA=D×UREF/2N
(其中:D=D0×20+D1×21+…+DN-1×2N-1)1、A/D轉(zhuǎn)換器的主要性能指標(biāo):
⑴轉(zhuǎn)換精度。轉(zhuǎn)換精度通常用分辨率和量化誤差來(lái)描述。
①分辨率。分辨率=UREF/2N
表示輸出數(shù)字量變化一個(gè)相鄰數(shù)碼所需輸入模擬電壓的變化量。N為A/D轉(zhuǎn)換的位數(shù),N越大,分辨率越高,習(xí)慣上分辨率常以A/D轉(zhuǎn)換位數(shù)N表示。
②量化誤差。量化誤差是指零點(diǎn)和滿度校準(zhǔn)后,在整個(gè)轉(zhuǎn)換范圍內(nèi)的最大誤差。
⑵轉(zhuǎn)換時(shí)間。指A/D轉(zhuǎn)換器完成一次A/D轉(zhuǎn)換所需時(shí)間。轉(zhuǎn)換時(shí)間越短,適應(yīng)輸入信號(hào)快速變化能力越強(qiáng)。2、A/D轉(zhuǎn)換器分類
A/D轉(zhuǎn)換器分類:
按轉(zhuǎn)換原理形式可分為逐次逼近式、雙積分式和V/F變換式;
按信號(hào)傳輸形式可分為并行A/D和串行A/D。二、并行A/DADC0809及其接口電路
1、引腳功能和典型連接電路
⑴IN0~I(xiàn)N7:8路模擬信號(hào)輸入端。
⑵C、B、A:8路模擬信號(hào)轉(zhuǎn)換選擇端。與低8位地址中A0~A2連接。由A0~A2地址000~111選擇IN0~I(xiàn)N7八路A/D通道。
⑶CLK:外部時(shí)鐘輸入端。時(shí)鐘頻率高,A/D轉(zhuǎn)換速度快。允許范圍為10~1280KHz。通常由80C51ALE端直接或分頻后與0809CLK端相連接。
⑷D0~D7:數(shù)字量輸出端。
⑸OE:A/D轉(zhuǎn)換結(jié)果輸出允許控制端。
OE=1,允許將A/D轉(zhuǎn)換結(jié)果從D0~D7端輸出。通常由80C51的端與0809片選端(例如P2.0)通過(guò)或非門與0809OE端相連接。
⑹ALE:地址鎖存允許信號(hào)輸入端。
0809ALE信號(hào)有效時(shí)將當(dāng)前轉(zhuǎn)換的通道地址鎖存。
⑺START:?jiǎn)?dòng)A/D轉(zhuǎn)換信號(hào)輸入端。當(dāng)START端輸入一個(gè)正脈沖時(shí),立即啟動(dòng)0809進(jìn)行A/D轉(zhuǎn)換。START端與ALE端連在一起,由80C51WR與0809片選端(例如P2.0)通過(guò)或非門相連。
⑻EOC:A/D轉(zhuǎn)換結(jié)束信號(hào)輸出端,高電平有效。
⑼UREF(+)、UREF(-):正負(fù)基準(zhǔn)電壓輸入端。
⑽Vcc:正電源電壓(+5V)。GND:接地端。2、ADC0809應(yīng)用實(shí)例
⑴中斷方式
【例9-12】按圖9-20,用中斷方式對(duì)8路模擬信號(hào)依次A/D轉(zhuǎn)換一次,并把結(jié)果存入以30H為首址的內(nèi)RAM中,試編制程序。
解:
ORG0000H;復(fù)位地址
LJMPSTAT;轉(zhuǎn)初始化程序
ORG0013H;中斷服務(wù)子程序入口地址
LJMPPINT1;中斷,轉(zhuǎn)中斷服務(wù)子程序;
ORG0100H;初始化程序首地址
STAT:MOVR1,#30H;置數(shù)據(jù)區(qū)首址
MOVR7,#8;置通道數(shù)
SETBIT1;置邊沿觸發(fā)方式
SETBEX1;開中
SETBEA;CPU開中
MOVDPTR,#0FEF8H;置0809通道0地址
MOVX@DPTR,A;啟動(dòng)0通道A/D
LJMPMAIN;轉(zhuǎn)主程序,并等待A/D中斷
ORG0200H;中斷服務(wù)子程序首地址PINT1:PUSHAcc;保護(hù)現(xiàn)場(chǎng)
PUSHPSW;MOVXA,@DPTR;讀A/D值
MOV@R1,A;存A/D值
INCDPTR;修正通道地址
INCR1;修正數(shù)據(jù)區(qū)地址
MOVX@DPTR,A;啟動(dòng)下一通道A/DDJNZR7,GORETI;判8路采集完否?未完繼續(xù)
CLREX1;8路采集已完,關(guān)中GORETI:POPPSW;恢復(fù)現(xiàn)場(chǎng)
POPAcc;RETI;中斷返回⑵查詢方式工作在查詢方式時(shí),0809EOC端可不必通過(guò)反相器與或相連,直接與80C51P1口或P3口中任一端線相連?!纠?-13】圖9-20中,用P1.0直接與0809EOC端相連,試用查詢方式編制程序,對(duì)8路模擬信號(hào)依次A/D轉(zhuǎn)換一次,并把結(jié)果存入以40H為首址的內(nèi)RAM中。解:MAIN:MOVR1,#40H;置數(shù)據(jù)區(qū)首址
MOVR7,#8;置通道數(shù)
SETBP1.0;置P1.0輸入態(tài)
MOVDPTR,#0FEF8H;置0809通道0地址LOOP:MOVX@DPTR,A;啟動(dòng)A/DJNBP1.0,$;查詢A/D轉(zhuǎn)換結(jié)束否?未完繼續(xù)查詢等待
MOVXA,@DPTR;A/D已結(jié)束,讀A/D值
MOV@R1,A;存A/D值
INCDPTR;修改通道地址
INCR1;修改數(shù)據(jù)區(qū)地址
DJNZR7,LOOP;判8路采集完否?未完繼續(xù)
RET;8路采集完畢,返回⑶延時(shí)等待方式工作在延時(shí)等待方式時(shí),0809EOC端可不必與80C51相連,是根據(jù)時(shí)鐘頻率計(jì)算出A/D轉(zhuǎn)換時(shí)間,略微延長(zhǎng)后直接讀A/D轉(zhuǎn)換值?!纠?-14】圖9-20中,0809EOC端開路,fosc=6MHz,試用延時(shí)等待方式編制程序,對(duì)8路模擬信號(hào)依次A/D轉(zhuǎn)換一次,并把結(jié)果存入以50H為首址的內(nèi)RAM中。解:編程如下:MAIN:MOVR1,#50H;置數(shù)據(jù)區(qū)首址
MOVR7,#8;置通道數(shù)
MOVDPTR,#0FEF8H;置0809通道0地址LOOP:MOVX@DPTR,A;啟動(dòng)A/DMOVR6,#17;DJNZR6,$;延時(shí)68S:2機(jī)周×17=34機(jī)周,2S×34=68SMOVXA,@DPTR;讀A/D值
MOV@R1,A;存A/D值
INCDPTR;修正通道地址
INCR1;修正數(shù)據(jù)區(qū)地址
DJNZR7,LOOP;判8路采集完否?未完繼續(xù)
RET;8路采集完畢,返回三、串行A/DADC0832及其接口電路
ADC0832是8位串行A/D轉(zhuǎn)換器;轉(zhuǎn)換速度較高(250KHz時(shí)轉(zhuǎn)換時(shí)間32s);單電源供電,功耗低(15mw)。1、引腳功能
VDD、VSS:電源接地端,VDD同時(shí)兼任UREF;
CS:片選端,低電平有效;
DI:數(shù)據(jù)信號(hào)輸入端;
DO:數(shù)據(jù)信號(hào)輸出端;
CLK:時(shí)鐘信號(hào)輸入端,要求低于600KHz;
CH0、CH1:模擬信號(hào)輸入端(雙通道);2、典型應(yīng)用電路
P1.0片選CS;
TXD發(fā)送時(shí)鐘信號(hào)輸入ADC0832CLK;
RXD與DI、DO端連接在一起。編碼通道選擇CH0CH100
+-01
-+10
+11
+表9-33、串行A/D轉(zhuǎn)換工作時(shí)序
工作時(shí)序分為二個(gè)階段:⑴起始和通道配置,由CPU發(fā)送,從ADC0832DI端輸入;⑵A/D轉(zhuǎn)換數(shù)據(jù)串行輸出,由ADC0832從DO端輸出,CPU接收。4、軟件編程【例9-15】按圖9-21(b)電路,試編制程序,將CH0、CH1通道輸入的模擬信號(hào)A/D轉(zhuǎn)換,分別存入30H31H中。解:AD0832:MOVSCON,#00H;置串口方式0,禁止接收
CLRES;串口禁中
MOVR0,#30H;置A/D數(shù)據(jù)存儲(chǔ)區(qū)首址
CLRP1.0;片選0832
MOVA,#06H;置CH0通道配置ADC0:MOVSBUF,A;啟動(dòng)A/DADC1:JNBTI,ADC1;串行發(fā)送啟動(dòng)及通道配置信號(hào)
CLRTI;清發(fā)送中斷標(biāo)志
SETBREN;允許(啟動(dòng))串行接收ADC2:JNBRI,ADC2;接收第一字節(jié)
CLRRI;清接收中斷標(biāo)志,同時(shí)啟動(dòng)接收第二字節(jié)
MOVA,SBUF;讀第一字節(jié)數(shù)據(jù)
MOVB,A;暫存說(shuō)明:①接收第一字節(jié)的8位數(shù)據(jù)為(注意先接收低位D4):②清串行接收中斷標(biāo)志后,啟動(dòng)串行接收第二字節(jié),其數(shù)據(jù)為:③組合后的8位數(shù)據(jù)為:
④高低4位互換后的8位數(shù)據(jù)為:
ADC3:JNBRI,ADC3;接收第二字節(jié)
CLRRI;清接收中斷標(biāo)志
MOVA,SBUF;讀第二字節(jié)數(shù)據(jù)
ANLA,#0FH;第二字節(jié)屏蔽高4位
ANLB,#0FOH;第一字節(jié)屏蔽低4位
ORLA,B;組合
SWAPA;高低4位互換,組成正確的A/D數(shù)據(jù)
MOV@R0,A;存A/D數(shù)據(jù)
INCR0;指向下一存儲(chǔ)單元
MOVA,#0EH;置CH1通道配置
CJNER0,#32H,ADC0;判兩通道A/D完畢否?未完繼續(xù)
CLRREN;兩通道A/D完畢,禁止接收
SETBP1.0;清0832片選
RET;D3D2D1D0D1D2D3D4××××D7D6D5D4D3D2D1D0D7D6D5D4D7D6D5D4D3D2D1D0四、I2C串行A/D典型應(yīng)用電路
I2C串行A/D芯片PCF8591,同時(shí)具有A/D、D/A轉(zhuǎn)換功能。
1、PCF8591引腳功能
SDA、SCL:I2C總線數(shù)據(jù)線、時(shí)鐘線;
A2、A1、A0:引腳地址輸入端;
AIN0~AIN3:模擬信號(hào)輸入端,
OSC:外部時(shí)鐘輸入端,內(nèi)部時(shí)鐘輸出端;
EXT:內(nèi)外部時(shí)鐘選擇端,EXT=0時(shí)選擇內(nèi)部時(shí)鐘;
VDD、VSS:電源、接地端;
AGND:模擬信號(hào)地;
UREF:基準(zhǔn)電壓輸入端;
AOUT:D/A轉(zhuǎn)換模擬量輸出端;
該芯片既可用于A/D轉(zhuǎn)換(模擬信號(hào)從AIN0~AIN3輸入),又可用于D/A轉(zhuǎn)換(D/A轉(zhuǎn)換模擬量從AOUT輸出),器件地址為1001,若A2A1A0接地,D/A轉(zhuǎn)換寫尋址字節(jié)SLAW=90H,A/D轉(zhuǎn)換讀尋址字節(jié)SLAR=91H。2、硬件電路設(shè)計(jì)3、片內(nèi)可編程功能
⑴
控制命令字
PCF8591內(nèi)部有一個(gè)控制寄存器,用來(lái)存放控制命令,其格式如下:COMD7D6D5D4D3D2D1D0D1、D0:A/D通道編號(hào)
00:通道0;01:通道1;10:通道2;11:通道3;D2:自動(dòng)增量選擇
D2=1時(shí),A/D轉(zhuǎn)換將按通道0~3依次自動(dòng)轉(zhuǎn)換;D3、D7:必須為0;D5、D4:模擬量輸入方式選擇位:
00:輸入方式0(四路單端輸入);
01:輸入方式1(三路差分輸入);
10:輸入方式2(二路單端一路差分輸入);
11:輸入方式3(二路差分輸入)。D6:模擬輸出允許。D6=1,模擬量輸出有效;①輸入方式0(四路單端輸入):
ANI0——通道0(單端輸入)
ANI1——通道1(單端輸入)
ANI2——通道2(單端輸入)
ANI3——通道3(單端輸入)②輸入方式1(三路差分輸入):
③輸入方式2(二路單端一路差分輸入):
④輸入方式3(二路差分輸入):⑵ADC數(shù)據(jù)操作格式SSLAWACOMASSLARAData0AData1A
發(fā)出控制命令(寫操作)
A/D轉(zhuǎn)換(讀操作)其中紅色部分由80C51發(fā)送,PCF8591接收;黑色部分由PCF8591發(fā)送,80C51接收;4、軟件編程
【例9-16】按圖9-23(b)編程將AIN0~AIN34個(gè)通道的模擬信號(hào)A/D轉(zhuǎn)換后,依次存入以50H為首址的內(nèi)RAM中。設(shè)VIIC軟件包已裝入ROM,VSDA、VS
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 商業(yè)廣場(chǎng)景觀施工合同
- 主題公園腳手架施工分包合同
- 教育培訓(xùn)機(jī)構(gòu)化妝講師聘用合同
- 智能吸塵承包合同范本
- 環(huán)境監(jiān)測(cè)儀器操作規(guī)程
- 研發(fā)管理辦法
- 醫(yī)院后勤物業(yè)招投標(biāo)咨詢協(xié)議
- 2024壬癸雙方關(guān)于電子商務(wù)平臺(tái)的技術(shù)開發(fā)與服務(wù)合同
- 木質(zhì)智能化設(shè)備安裝合同
- 2024年太陽(yáng)能光伏發(fā)電項(xiàng)目施工合同范本
- (完整版)物理化學(xué)上教案
- 軟土地基處理預(yù)應(yīng)力管樁施工要點(diǎn)
- 外國(guó)古代建筑史-古羅馬
- 世界銀行招標(biāo)采購(gòu)指南
- 720--消防自動(dòng)噴水滅火系統(tǒng)(干式)講解
- AQL抽樣檢驗(yàn)表(標(biāo)準(zhǔn)版本2(1).0)
- 安陽(yáng)師范學(xué)院校級(jí)教學(xué)團(tuán)隊(duì)推薦表
- 企業(yè)中層管理人員素質(zhì)測(cè)評(píng)(附答案)
- 國(guó)民經(jīng)濟(jì)動(dòng)員中心申報(bào)材料
- 流式細(xì)胞術(shù)報(bào)告單解讀
- 社區(qū)衛(wèi)生服務(wù)中心公共衛(wèi)生績(jī)效考核及獎(jiǎng)金分配制度
評(píng)論
0/150
提交評(píng)論