常用外圍設(shè)備接口_第1頁(yè)
常用外圍設(shè)備接口_第2頁(yè)
常用外圍設(shè)備接口_第3頁(yè)
常用外圍設(shè)備接口_第4頁(yè)
常用外圍設(shè)備接口_第5頁(yè)
已閱讀5頁(yè),還剩90頁(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)介

1、12 測(cè)控 對(duì)象 其他計(jì)算機(jī)系統(tǒng)或智能設(shè)備 單片機(jī) MCU EEPROM 人機(jī)通道 RAM 輸出通道 輸入通道 通信接口 輸入/輸出設(shè)備 傳感器等 執(zhí)行機(jī)構(gòu) 單片機(jī)典型應(yīng)用系統(tǒng)的結(jié)構(gòu)單片機(jī)典型應(yīng)用系統(tǒng)的結(jié)構(gòu) 3 單片機(jī)應(yīng)用系統(tǒng)所需要的一般配置:?jiǎn)纹瑱C(jī)應(yīng)用系統(tǒng)所需要的一般配置: 單片機(jī)單片機(jī)。 人機(jī)交流設(shè)備人機(jī)交流設(shè)備。輸入設(shè)備有鍵盤和按鍵,輸出設(shè)備有數(shù)碼。輸入設(shè)備有鍵盤和按鍵,輸出設(shè)備有數(shù)碼管、液晶顯示模塊和指示燈等。管、液晶顯示模塊和指示燈等。 信號(hào)采集的輸入通道信號(hào)采集的輸入通道。如出租車的測(cè)距、測(cè)速裝置,溫控。如出租車的測(cè)距、測(cè)速裝置,溫控系統(tǒng),溫度計(jì)的溫度傳感器、洗衣機(jī)的水位測(cè)量設(shè)備。

2、系統(tǒng),溫度計(jì)的溫度傳感器、洗衣機(jī)的水位測(cè)量設(shè)備。 向操作對(duì)象發(fā)出各種向操作對(duì)象發(fā)出各種控制信號(hào)的輸出通道控制信號(hào)的輸出通道。如空調(diào)啟動(dòng)壓。如空調(diào)啟動(dòng)壓縮機(jī)的開(kāi)關(guān)電路,控制彩電的頻道切換、顏色、音量等的縮機(jī)的開(kāi)關(guān)電路,控制彩電的頻道切換、顏色、音量等的接口電路。接口電路。 如果需與其他計(jì)算機(jī)系統(tǒng)或智能設(shè)備實(shí)現(xiàn)信息交換,還需配如果需與其他計(jì)算機(jī)系統(tǒng)或智能設(shè)備實(shí)現(xiàn)信息交換,還需配置置通信接口電路通信接口電路。 有時(shí)還需擴(kuò)展外部有時(shí)還需擴(kuò)展外部RAMRAM、EEPROMEEPROM用于存放數(shù)據(jù)。如彩電遙控系用于存放數(shù)據(jù)。如彩電遙控系統(tǒng)中存放系統(tǒng)數(shù)據(jù)的存儲(chǔ)器。統(tǒng)中存放系統(tǒng)數(shù)據(jù)的存儲(chǔ)器。4 顯示器是單片機(jī)

3、應(yīng)用系統(tǒng)常用的輸出設(shè)備,顯示器是單片機(jī)應(yīng)用系統(tǒng)常用的輸出設(shè)備,用來(lái)顯示單片機(jī)的鍵入值、中間信息及運(yùn)算用來(lái)顯示單片機(jī)的鍵入值、中間信息及運(yùn)算結(jié)果等。結(jié)果等。 單片機(jī)應(yīng)用系統(tǒng)中,常用的顯示器主要有單片機(jī)應(yīng)用系統(tǒng)中,常用的顯示器主要有LED(發(fā)光二極管顯示器、數(shù)碼管顯示器)(發(fā)光二極管顯示器、數(shù)碼管顯示器)和和LCD(液晶顯示器)。(液晶顯示器)。5一、數(shù)碼管顯示器的結(jié)構(gòu)一、數(shù)碼管顯示器的結(jié)構(gòu)6二、字段碼二、字段碼在實(shí)際應(yīng)用中,常用一個(gè)在實(shí)際應(yīng)用中,常用一個(gè)8位并行位并行I/O口的輸口的輸出出D0D7對(duì)應(yīng)控制數(shù)碼管的對(duì)應(yīng)控制數(shù)碼管的adp以顯示不以顯示不同字形。從同字形。從I/O口輸出的驅(qū)動(dòng)數(shù)碼管以

4、顯示不口輸出的驅(qū)動(dòng)數(shù)碼管以顯示不同字形的數(shù)據(jù)稱為字段碼(字形碼、顯示代同字形的數(shù)據(jù)稱為字段碼(字形碼、顯示代碼)。例如,共陰極結(jié)構(gòu)的數(shù)碼管顯示碼)。例如,共陰極結(jié)構(gòu)的數(shù)碼管顯示“0”的字段碼為:的字段碼為:其他一些字形的字段碼如下表:其他一些字形的字段碼如下表:D7D6D5D4D3D2D1D0字形字形碼碼dpgfedcba001111113FH7 8三、顯示字符轉(zhuǎn)換為字段碼三、顯示字符轉(zhuǎn)換為字段碼(查表法查表法)3FH“0”的字段碼的字段碼06H “1”的字段碼的字段碼5BH“2”的字段碼的字段碼4FH“3”的字段碼的字段碼66H“4”的字段碼的字段碼71H“F”的字段碼的字段碼73H “P”

5、的字段碼的字段碼TAB TAB+01HTAB+02HTAB+03HTAB+04HTAB+0FHTAB+10H9一、靜態(tài)顯示方式一、靜態(tài)顯示方式1、原理、原理共陰極或共陽(yáng)極點(diǎn)連接在共陰極或共陽(yáng)極點(diǎn)連接在一起接地或一起接地或+5V。每位的段選線與一個(gè)每位的段選線與一個(gè)8位并行口連接。位并行口連接。102、應(yīng)用舉例、應(yīng)用舉例例:利用串行口工作于方式例:利用串行口工作于方式0擴(kuò)展擴(kuò)展8片片74HC164作為作為L(zhǎng)ED顯示器的驅(qū)動(dòng)控制接口,顯示器的驅(qū)動(dòng)控制接口,并編寫對(duì)應(yīng)的顯示驅(qū)動(dòng)程序,將片內(nèi)并編寫對(duì)應(yīng)的顯示驅(qū)動(dòng)程序,將片內(nèi)RAM 30H37H單元(顯示緩沖單元)的內(nèi)容單元(顯示緩沖單元)的內(nèi)容(十十六

6、進(jìn)制數(shù)碼六進(jìn)制數(shù)碼)依次顯示在顯示器上。電路和程依次顯示在顯示器上。電路和程序如下:序如下:1112 LED:MOV SCON,#00H ;設(shè)置串行口工作于方式;設(shè)置串行口工作于方式0 MOV R0,#30H ;指向顯示緩沖單元首地址;指向顯示緩沖單元首地址 MOV R5,#8 ;顯示器有;顯示器有8位位LED0:MOV A,R0 ;取顯示內(nèi)容;取顯示內(nèi)容 MOV DPTR,#DTAB ;指向字形碼表首地址;指向字形碼表首地址 MOVC A,A+DPTR ;查表求得對(duì)應(yīng)的字形碼;查表求得對(duì)應(yīng)的字形碼 MOV SBUF,A ;啟動(dòng)發(fā)送;啟動(dòng)發(fā)送LED1:JNB TI,LED1 ;等待一幀發(fā)送完;

7、等待一幀發(fā)送完 CLR TI;清發(fā)送中斷請(qǐng)求標(biāo)志;清發(fā)送中斷請(qǐng)求標(biāo)志 INC R0 ;指向下一個(gè)顯示內(nèi)容;指向下一個(gè)顯示內(nèi)容 DJNZ R5,LED0 ;若;若8位未輸出完則繼續(xù)位未輸出完則繼續(xù) RET13DTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H DB 82H,0F8H,80H,90H,88H,83H DB 0C6H,0A1H,86H,8EH ;0F的字形碼的字形碼14二、動(dòng)態(tài)顯示方式二、動(dòng)態(tài)顯示方式 1、原理、原理所有字段控制共所有字段控制共用一個(gè)用一個(gè)I/O口口每個(gè)每個(gè)字位字位的控的控制占制占用一用一根根I/O口線口線顯示時(shí),在某一時(shí)刻,字段口輸出第顯示時(shí),在

8、某一時(shí)刻,字段口輸出第i位的字段碼,同位的字段碼,同時(shí)字位口驅(qū)動(dòng)第時(shí)字位口驅(qū)動(dòng)第i位的位的COM端使其點(diǎn)亮,如此逐位輪流端使其點(diǎn)亮,如此逐位輪流點(diǎn)亮形成穩(wěn)定的點(diǎn)亮形成穩(wěn)定的n位數(shù)碼顯示效果。位數(shù)碼顯示效果。152、應(yīng)用舉例、應(yīng)用舉例 實(shí)驗(yàn)儀的實(shí)驗(yàn)儀的6位數(shù)碼管顯示器就是采用動(dòng)態(tài)位數(shù)碼管顯示器就是采用動(dòng)態(tài)顯示方式,其電路如下:顯示方式,其電路如下:16同相驅(qū)動(dòng)同相驅(qū)動(dòng)17假設(shè)用假設(shè)用8255的的A口的口的PA0PA5作為字位控作為字位控制口,制口,B口作為字段控制口。顯示驅(qū)動(dòng)程序:口作為字段控制口。顯示驅(qū)動(dòng)程序:(8255A口、口、B口、口、C口、控制寄存器地址為口、控制寄存器地址為PORTA、

9、PORTB、PORTC、CON;假;假設(shè)顯示緩沖單元用設(shè)顯示緩沖單元用30H35H)在主程序中對(duì)在主程序中對(duì)8255初始化初始化MOV A,#80H;8255的的A口、口、B口為輸出口為輸出MOV DPTR,#CON;指向;指向8255控制口控制口MOVX DPTR,A ;將控制字寫入控制寄存器;將控制字寫入控制寄存器18 DISP:MOV R0,#30H;顯示緩沖單元首地址;顯示緩沖單元首地址 MOV R3,#0FEH ;字位碼初值;字位碼初值 MOV A,R3DISP1:MOV DPTR,#PORTA ;8255A口(字位碼輸出口)口(字位碼輸出口) MOVX DPTR,A ;輸出字位碼;

10、輸出字位碼 INC DPTR ;8255B口(字段碼輸出口)口(字段碼輸出口) MOV A,R0 ;取顯示數(shù)據(jù)碼;取顯示數(shù)據(jù)碼 ADD A,#TAB-NPC ;加;加TAB與與NPC差值差值 MOVC A,A+PC ;查表得相應(yīng)字段碼;查表得相應(yīng)字段碼 NPC:MOVX DPTR,A ;輸出字段碼;輸出字段碼 LCALL D1MS ;保持顯示;保持顯示1毫秒毫秒顯示顯示子程序完成動(dòng)態(tài)顯示的控制子程序完成動(dòng)態(tài)顯示的控制19 INC R0 ;指向下一顯示緩沖單元;指向下一顯示緩沖單元 MOV A,R3 ;取出字位碼;取出字位碼 JB ACC.5,DISP2 ;判已顯示到最左位否;判已顯示到最左位否

11、 RL A ;未完,字位碼左移;未完,字位碼左移1位位 MOV R3,A;回存新字位碼;回存新字位碼 SJMP DISP1 ;轉(zhuǎn)下一位顯示;轉(zhuǎn)下一位顯示DISP2:RET TAB:DB 3FH,06H,5BH,. . . ;字段碼表;字段碼表 D1MS:MOV R7,#250 ;延時(shí);延時(shí)1毫秒子程序毫秒子程序 DJNZ R7,$ RET20例:電子鐘程序。例:電子鐘程序。 利用定時(shí)器利用定時(shí)器T0定時(shí),模擬定時(shí),模擬24小時(shí)走時(shí)的電子小時(shí)走時(shí)的電子鐘,時(shí)、分、秒以鐘,時(shí)、分、秒以BCD碼形式依次存放在碼形式依次存放在3CH、3BH、3AH;38H、39H作為軟件作為軟件計(jì)數(shù)器。計(jì)數(shù)器。選擇選

12、擇T0工作于定時(shí)、方式工作于定時(shí)、方式2、定時(shí)時(shí)間為、定時(shí)時(shí)間為500 s。TMOD=0000 0010B=02H計(jì)算初值計(jì)算初值fosc=6MHz 機(jī)器周期機(jī)器周期TM=2 s 要定時(shí)要定時(shí)500 s 即要計(jì)數(shù)即要計(jì)數(shù)250個(gè)機(jī)器周期脈沖個(gè)機(jī)器周期脈沖初值初值=28-250=6=06H21 ORG 0000H ;主程序入口;主程序入口 LJMP CLOCK ;轉(zhuǎn)主程序初始化;轉(zhuǎn)主程序初始化 ORG 000BH ;T0T0中斷入口中斷入口 LJMP T0 ;轉(zhuǎn)轉(zhuǎn)T0T0中斷服務(wù)程序中斷服務(wù)程序 ORG 0030H ;主程序初始化程序;主程序初始化程序 CLOCK:MOV SP,#6FH ;設(shè)棧

13、底指針;設(shè)棧底指針 MOV TMOD,#02H ;T0T0定時(shí)方式定時(shí)方式2 2 MOV TL0,#06H ;定時(shí)(;定時(shí)(2562566 6)* *2=5002=500微秒微秒 MOV TH0,#06H MOV 30H,#200 MOV 39H,#10 ;軟件計(jì)數(shù)單元清零軟件計(jì)數(shù)單元清零 SETB EA ;中斷總允許;中斷總允許 SETB ET0 ;允許;允許T0中斷中斷 SETB TR0 ;啟動(dòng);啟動(dòng)T0工作工作 MOV 3AH,#0 MOV 3BH,#0 MOV 3CH,#022 MOV A,#80H;8255的的A口、口、B口為輸出口為輸出 MOV DPTR,#CON;指向;指向825

14、5控制口控制口 MOVX DPTR,A ;將控制字寫入控制寄存器;將控制字寫入控制寄存器LOOP: LCALL CZ ;調(diào)用拆字子程序;調(diào)用拆字子程序 LCALL DISP ;調(diào)用顯示子程序;調(diào)用顯示子程序 SJMP LOOP ;反復(fù)循環(huán)主流程;反復(fù)循環(huán)主流程 ORG 0100H ;T0 500微秒中斷服務(wù)程序微秒中斷服務(wù)程序 T0 :PUSH ACC PUSH PSW ;保護(hù)現(xiàn)場(chǎng);保護(hù)現(xiàn)場(chǎng) DJNZ 38H,DONE;滿;滿0.1秒?秒? MOV 38H,#200 DJNZ 39H,DONE;滿;滿1S MOV 39H,#10 23 MOV A,3AH ;秒單元(按;秒單元(按BCD碼)加碼

15、)加1 ADD A,#1 DA A MOV 3AH,A CJNE A,#60H,DONE ;滿;滿1分鐘?分鐘? MOV 3AH,#0 ;秒單元清零;秒單元清零 MOV A,3BH ;分鐘單元(按;分鐘單元(按BCD碼)加碼)加1 ADD A,#1 DA A MOV 3BH,A CJNE A,#60H,DONE ;滿;滿1小時(shí)?小時(shí)? MOV 3BH,#0 ;分鐘單元清零;分鐘單元清零 24 MOV A,3CH ;小時(shí)單元(按;小時(shí)單元(按BCD碼)加碼)加1 ADD A,#1 DA A MOV 3CH,A CJNE A,#24H,DONE ;滿;滿24小時(shí)?小時(shí)? MOV 3CH,#0 ;小

16、時(shí)單元清零;小時(shí)單元清零 DONE:POP PSW POP ACC ;恢復(fù)現(xiàn)場(chǎng);恢復(fù)現(xiàn)場(chǎng) RETI ;中斷返回;中斷返回25CZ:. ;拆字子程序;拆字子程序DISP: ;顯示子程序;顯示子程序26 鍵盤是單片機(jī)應(yīng)用系統(tǒng)的一個(gè)重要輸入設(shè)備,鍵盤是單片機(jī)應(yīng)用系統(tǒng)的一個(gè)重要輸入設(shè)備,用于輸入數(shù)據(jù)、干預(yù)系統(tǒng)的工作狀態(tài);用于輸入數(shù)據(jù)、干預(yù)系統(tǒng)的工作狀態(tài); 按鍵盤編碼產(chǎn)生方法,鍵盤可分為編碼鍵盤按鍵盤編碼產(chǎn)生方法,鍵盤可分為編碼鍵盤和非編碼鍵盤兩種;和非編碼鍵盤兩種; 按鍵盤的連接方式,可分為獨(dú)立式按鍵和行按鍵盤的連接方式,可分為獨(dú)立式按鍵和行列式(矩陣式)鍵盤。列式(矩陣式)鍵盤。27一、按鍵狀態(tài)的輸

17、入與消抖動(dòng)一、按鍵狀態(tài)的輸入與消抖動(dòng)1、鍵輸入、鍵輸入K按下時(shí),按下時(shí),A=0;K斷開(kāi)時(shí),斷開(kāi)時(shí),A=1。2、消抖動(dòng)、消抖動(dòng)方法:方法:硬件消抖動(dòng)硬件消抖動(dòng)軟件消抖動(dòng):軟件延時(shí)軟件消抖動(dòng):軟件延時(shí)+5VRAKA點(diǎn)輸出點(diǎn)輸出K按下按下K放開(kāi)放開(kāi)抖動(dòng)抖動(dòng)28二、鍵盤管理程序二、鍵盤管理程序1.檢測(cè)是否有按鍵閉合;檢測(cè)是否有按鍵閉合;2.若有鍵閉合,延時(shí)消抖動(dòng);若有鍵閉合,延時(shí)消抖動(dòng);3.確認(rèn)是否有按鍵閉合;確認(rèn)是否有按鍵閉合;4.確定閉合按鍵鍵號(hào);確定閉合按鍵鍵號(hào);5.等待按鍵釋放;等待按鍵釋放;6.執(zhí)行相應(yīng)鍵功能。執(zhí)行相應(yīng)鍵功能。開(kāi)始開(kāi)始有鍵閉合嗎?有鍵閉合嗎?延時(shí)消抖動(dòng)延時(shí)消抖動(dòng)確有鍵閉合嗎?

18、確有鍵閉合嗎?判斷閉合鍵鍵號(hào)判斷閉合鍵鍵號(hào)閉合鍵釋放否?閉合鍵釋放否?執(zhí)行鍵功能執(zhí)行鍵功能返回返回NNNYYY29一、結(jié)構(gòu)一、結(jié)構(gòu)各個(gè)按鍵相各個(gè)按鍵相互獨(dú)立,互互獨(dú)立,互不影響。不影響。每個(gè)按鍵需占用每個(gè)按鍵需占用一根一根I/O口線口線30二、鍵盤管理程序二、鍵盤管理程序假設(shè)用單片機(jī)的假設(shè)用單片機(jī)的P1口作為獨(dú)立式口作為獨(dú)立式按鍵按鍵K0K7的的接口,(由于接口,(由于P1口口內(nèi)部有上拉電阻,內(nèi)部有上拉電阻,故不需外接。)故不需外接。)鍵盤管理程序如下:鍵盤管理程序如下:31 KEY:MOV P1,#0FFH ;置;置P1口為輸入口為輸入 MOV A,P1 ;輸入按鍵狀態(tài);輸入按鍵狀態(tài) CPL

19、 A ;取反;取反 JZ KD ;若無(wú)鍵閉合則返回;若無(wú)鍵閉合則返回 LCALL DELAY ;延時(shí);延時(shí)12ms消抖動(dòng)消抖動(dòng) MOV A,P1 CPL A JZ KD ;確認(rèn)是否有鍵閉合;確認(rèn)是否有鍵閉合 MOV B,P1 ;輸入鍵狀態(tài);輸入鍵狀態(tài) KW:MOV A,P1 CPL A JNZ KW ;等待鍵釋放;等待鍵釋放32MOV A,B ;取鍵值;取鍵值JNB ACC.0,K0 ;若是;若是K0閉合則轉(zhuǎn)閉合則轉(zhuǎn)K0鍵功能程序鍵功能程序JNB ACC.1,K1 ;若是;若是K1閉合則轉(zhuǎn)閉合則轉(zhuǎn)K1鍵功能程序鍵功能程序. . .JNB ACC.7,K7 ;若是;若是K7閉合則轉(zhuǎn)閉合則轉(zhuǎn)K7鍵

20、功能程序鍵功能程序 KD:RET ;返回;返回 K0:. . . ; K0鍵功能程序鍵功能程序RET. . . . . . K7:. . . ; K7鍵功能程序鍵功能程序RET33一、結(jié)構(gòu)一、結(jié)構(gòu)按鍵設(shè)置按鍵設(shè)置在行、列在行、列線交點(diǎn)上線交點(diǎn)上行線通過(guò)上拉電阻接行線通過(guò)上拉電阻接+5V,處于輸入狀態(tài)。處于輸入狀態(tài)。列線為輸出狀態(tài)列線為輸出狀態(tài)34二、工作原理二、工作原理1.判斷是否有鍵閉合判斷是否有鍵閉合0000111.1101.1352.消抖動(dòng)消抖動(dòng)采用軟件延時(shí)消抖動(dòng)。采用軟件延時(shí)消抖動(dòng)。3.確定哪個(gè)鍵閉合確定哪個(gè)鍵閉合(1)通過(guò)列線逐列輸出低電平后檢查行輸入狀通過(guò)列線逐列輸出低電平后檢查行

21、輸入狀態(tài)來(lái)確定,即對(duì)鍵盤態(tài)來(lái)確定,即對(duì)鍵盤逐列逐行掃描逐列逐行掃描。 (2)行反轉(zhuǎn)法行反轉(zhuǎn)法36 011.1111.1101.1101.10 1 2 7012.7(1)37(2)行反轉(zhuǎn)法行反轉(zhuǎn)法*將行線設(shè)置為輸出,列線設(shè)置為輸入,行線全將行線設(shè)置為輸出,列線設(shè)置為輸入,行線全部輸出部輸出0,輸入列線的值;,輸入列線的值;將行線設(shè)置為輸入,列線設(shè)置為輸出,將將行線設(shè)置為輸入,列線設(shè)置為輸出,將輸入輸入的列線值輸出,讀行線的值;的列線值輸出,讀行線的值;將所讀得的行、列值組成一個(gè)鍵碼,該鍵碼是將所讀得的行、列值組成一個(gè)鍵碼,該鍵碼是唯一的。唯一的。38三、實(shí)例三、實(shí)例 假設(shè)用假設(shè)用8255擴(kuò)展擴(kuò)展

22、I/O口組成行列式鍵盤,口組成行列式鍵盤,其中其中A口接列線,口接列線,C口的口的PC0PC3接行線,接行線,組成一個(gè)組成一個(gè)4行行 8列共有列共有32個(gè)按鍵的行列式鍵個(gè)按鍵的行列式鍵盤。盤。39 00 1 2 3 4 5 6 7列列123行行行首鍵號(hào)行首鍵號(hào)鍵值鍵值=行首鍵號(hào)行首鍵號(hào)+列值列值825540 KB:LCALL KS ;調(diào)用;調(diào)用KS判斷是否有鍵閉合判斷是否有鍵閉合JNZ K1 ;有鍵閉合轉(zhuǎn);有鍵閉合轉(zhuǎn)K1SJMP KN ;無(wú)鍵閉合則返回;無(wú)鍵閉合則返回 K1:LCALL DELAY;延時(shí)消抖動(dòng)延時(shí)消抖動(dòng)LCALL KS ;調(diào)用;調(diào)用KS確認(rèn)是否有鍵閉合確認(rèn)是否有鍵閉合JNZ K

23、2 ;有鍵閉合轉(zhuǎn);有鍵閉合轉(zhuǎn)K2開(kāi)始列開(kāi)始列掃描掃描SJMP KN ;無(wú)鍵閉合則返回;無(wú)鍵閉合則返回 K2:MOV R2,#0FEH;首列掃描字送;首列掃描字送R2MOV R4,#0 ;首列號(hào)送;首列號(hào)送R4 K3:MOV DPTR,#PA;8255的的A口地址送口地址送DPTRMOV A,R2MOVX DPTR,A ;列掃描字送;列掃描字送8255 A口口41 INC DPTR INC DPTR ;指向;指向8255 C口口 MOVX A,DPTR ;讀取行線狀態(tài);讀取行線狀態(tài) JB ACC.0,L1 ;若第;若第0行無(wú)鍵閉合,轉(zhuǎn)查第行無(wú)鍵閉合,轉(zhuǎn)查第1行行 MOV A,#00H;第第0行有

24、鍵閉合,該行行首鍵號(hào)行有鍵閉合,該行行首鍵號(hào)00H送送A SJMP LK ;轉(zhuǎn)去求鍵值;轉(zhuǎn)去求鍵值L1:JB ACC.1,L2 ;若第;若第1行無(wú)鍵閉合,轉(zhuǎn)查第行無(wú)鍵閉合,轉(zhuǎn)查第2行行 MOV A,#08H;第第1行有鍵閉合,該行行首鍵號(hào)行有鍵閉合,該行行首鍵號(hào)08H送送A SJMP LK ;轉(zhuǎn)去求鍵值;轉(zhuǎn)去求鍵值L2:JB ACC.2,L3 ;若第;若第2行無(wú)鍵閉合,轉(zhuǎn)查第行無(wú)鍵閉合,轉(zhuǎn)查第3行行 MOV A,#10H ;第第2行有鍵閉合,該行行首鍵號(hào)行有鍵閉合,該行行首鍵號(hào)10H送送A SJMP LK ;轉(zhuǎn)去求鍵值;轉(zhuǎn)去求鍵值42L3:JB ACC.3,NX ;若第;若第3行無(wú)鍵閉合,轉(zhuǎn)查

25、下一列行無(wú)鍵閉合,轉(zhuǎn)查下一列 MOV A,#18H ;第;第3行有鍵閉合,行首鍵號(hào)行有鍵閉合,行首鍵號(hào)18H送送ALK:ADD A,R4 ;鍵值;鍵值=行首鍵號(hào)行首鍵號(hào)+列值列值 MOV B,A ;鍵值暫存入;鍵值暫存入BK4:LCALL KS JNZ K4 ;等待鍵釋放;等待鍵釋放 MOV A,B ;取鍵值;取鍵值 SJMP KD KN:MOV A,#0FFH ;無(wú)鍵閉合時(shí),返回值無(wú)鍵閉合時(shí),返回值A(chǔ)=0FFHKD:RETNX:INC R4 ;列值加;列值加1 MOV A,R2 ;取列掃描字;取列掃描字 JNB ACC.7,KN;判斷是否全部掃描完;判斷是否全部掃描完43 RL A ;未掃描

26、完;未掃描完,列掃描字左移一位列掃描字左移一位,變?yōu)橄乱涣袙呙枳肿優(yōu)橄乱涣袙呙枳?MOV R2,A;列掃描字暫存;列掃描字暫存R2 SJMP K3 ;繼續(xù)掃描;繼續(xù)掃描KS:MOV DPTR,#PA ;8255 A口地址送口地址送DPTR MOV A,#00H ; MOVX DPTR,A ;列線全輸出;列線全輸出“0”-低電平低電平 INC DPTR INC DPTR ;指向;指向C口口 MOVX A,DPTR;讀入行線狀態(tài);讀入行線狀態(tài) CPL A ;變正邏輯,以高電平表示有鍵按下;變正邏輯,以高電平表示有鍵按下 ANL A,#0FH ;屏蔽高;屏蔽高4位位 RET ;出口狀態(tài);出口狀態(tài)A

27、0時(shí)表示有鍵閉合時(shí)表示有鍵閉合44 在單片機(jī)應(yīng)用系統(tǒng)中,需要同時(shí)使用鍵盤與顯示在單片機(jī)應(yīng)用系統(tǒng)中,需要同時(shí)使用鍵盤與顯示器接口時(shí),為了節(jié)省器接口時(shí),為了節(jié)省I/O口線,常把鍵盤和顯示電口線,常把鍵盤和顯示電路做在一起,構(gòu)成鍵盤、顯示電路。路做在一起,構(gòu)成鍵盤、顯示電路。 鍵盤、顯示電路可用并行擴(kuò)展的鍵盤、顯示電路可用并行擴(kuò)展的I/O口或串行擴(kuò)口或串行擴(kuò)展的展的I/O口實(shí)現(xiàn)。口實(shí)現(xiàn)。 典型的鍵盤、顯示器接口電路典型的鍵盤、顯示器接口電路45 A口既作為顯示器字位控制口,口既作為顯示器字位控制口,又作為鍵盤列線輸出口。又作為鍵盤列線輸出口。行輸入行輸入OC驅(qū)動(dòng)器驅(qū)動(dòng)器825546 4748一、在單

28、片機(jī)應(yīng)用系統(tǒng)中,掃描鍵盤只是一、在單片機(jī)應(yīng)用系統(tǒng)中,掃描鍵盤只是CPU的工的工作任務(wù)之一,在實(shí)際應(yīng)用中,要想做到既能及時(shí)響作任務(wù)之一,在實(shí)際應(yīng)用中,要想做到既能及時(shí)響應(yīng)鍵操作,又不過(guò)多地占用應(yīng)鍵操作,又不過(guò)多地占用CPU的工作時(shí)間,如鍵的工作時(shí)間,如鍵盤與顯示做成一個(gè)接口電路,則在軟件中要綜合考盤與顯示做成一個(gè)接口電路,則在軟件中要綜合考慮鍵盤查詢與動(dòng)態(tài)顯示,就要根據(jù)應(yīng)用系統(tǒng)的實(shí)際慮鍵盤查詢與動(dòng)態(tài)顯示,就要根據(jù)應(yīng)用系統(tǒng)的實(shí)際情況,選擇適當(dāng)?shù)逆I盤工作方式。情況,選擇適當(dāng)?shù)逆I盤工作方式。二、二、鍵盤的工作方式鍵盤的工作方式 1、編程掃描方式、編程掃描方式編程掃描方式是利用編程掃描方式是利用CPU完

29、成其他工作的空余,調(diào)完成其他工作的空余,調(diào)用鍵盤掃描子程序來(lái)響應(yīng)鍵輸入要求。在執(zhí)行鍵功用鍵盤掃描子程序來(lái)響應(yīng)鍵輸入要求。在執(zhí)行鍵功能程序時(shí),不再響應(yīng)鍵輸入的要求。能程序時(shí),不再響應(yīng)鍵輸入的要求。492、中斷工作方式、中斷工作方式開(kāi)始開(kāi)始初始化初始化顯示顯示掃描鍵盤掃描鍵盤執(zhí)行其他操作執(zhí)行其他操作編程掃描方式編程掃描方式50例:編一程序?qū)崿F(xiàn):當(dāng)按下獨(dú)立式鍵盤的例:編一程序?qū)崿F(xiàn):當(dāng)按下獨(dú)立式鍵盤的K0K5時(shí),分別將實(shí)驗(yàn)儀上的時(shí),分別將實(shí)驗(yàn)儀上的6位數(shù)碼管顯位數(shù)碼管顯示器的顯示內(nèi)容按示器的顯示內(nèi)容按BCD碼加碼加1。開(kāi)始開(kāi)始初始化初始化顯示顯示掃描鍵盤掃描鍵盤流程圖流程圖51 ORG 1000HMA

30、IN:MOV A,#03H;8155的的A口、口、B口為輸出口為輸出 MOV DPTR,#0FF20H;指向;指向8155控制口控制口 MOVX DPTR,A ;將控制字寫入控制寄存器;將控制字寫入控制寄存器 MOV 30H,#00H MOV 31H,#00H MOV 32H,#00H MOV 33H,#00H MOV 34H,#00H MOV 35H,#00H ;顯示初值為;顯示初值為“0000 00” LP:LCALL DISP ;調(diào)用顯示子程序;調(diào)用顯示子程序 LCALL KEY ;調(diào)用鍵盤管理子程序;調(diào)用鍵盤管理子程序 SJMP LP52 DISP:MOV R0,#30H;顯示緩沖單元

31、首地址;顯示緩沖單元首地址 MOV R3,#01H ;字位碼初值(從最右位起);字位碼初值(從最右位起) MOV A,R3DISP1:MOV DPTR,#0FF21H ;8155A口(字位碼輸出口)口(字位碼輸出口) MOVX DPTR,A ;輸出字位碼;輸出字位碼 INC DPTR ;8155B口(字段碼輸出口)口(字段碼輸出口) MOV A,R0 ;取顯示數(shù)據(jù)碼;取顯示數(shù)據(jù)碼 ADD A,#TAB-NPC ;加;加TAB與與NPC差值差值 MOVC A,A+PC ;查表得相應(yīng)字段碼;查表得相應(yīng)字段碼 NPC:MOVX DPTR,A ;輸出字段碼;輸出字段碼 LCALL D1MS ;保持顯示

32、;保持顯示1毫秒毫秒53 INC R0 ;指向下一顯示緩沖單元;指向下一顯示緩沖單元 MOV A,R3 ;取出字位碼;取出字位碼 JB ACC.5,DISP2 ;判已顯示到最左位否;判已顯示到最左位否 RL A ;未完,字位碼左移;未完,字位碼左移1位位 MOV R3,A;回存新字位碼;回存新字位碼 SJMP DISP1 ;轉(zhuǎn)下一位顯示;轉(zhuǎn)下一位顯示 DISP2:RET TAB:DB 0C0H,0F9H,. . . ;09字段碼表字段碼表 D1MS:MOV R7,#250 ;延時(shí);延時(shí)1毫秒子程序毫秒子程序 DJNZ R7,$ RET54 KEY:MOV P1,#0FFH ;置;置P1口為輸入

33、口為輸入 MOV A,P1 ;讀按鍵狀態(tài);讀按鍵狀態(tài) CPL A ;取反;取反 JZ KD ;若無(wú)鍵閉合則返回;若無(wú)鍵閉合則返回 LCALL DELAY ;延時(shí);延時(shí)12ms消抖動(dòng)消抖動(dòng) MOV A,P1 CPL A JZ KD ;確認(rèn)是否有鍵閉合;確認(rèn)是否有鍵閉合 MOV B,P1 ;讀鍵值;讀鍵值 KW:MOV A,P1 CPL A JNZ KW ;等待鍵釋放;等待鍵釋放55 MOV A,B ;取鍵值;取鍵值 JNB ACC.0,K0 ;若是;若是K0閉合則轉(zhuǎn)閉合則轉(zhuǎn)K0鍵功能程序鍵功能程序 JNB ACC.1,K1 ;若是;若是K1閉合則轉(zhuǎn)閉合則轉(zhuǎn)K1鍵功能程序鍵功能程序 . . . J

34、NB ACC.7,K7 ;若是;若是K7閉合則轉(zhuǎn)閉合則轉(zhuǎn)K7鍵功能程序鍵功能程序 KD:RET ;返回;返回 K0:MOV A,30H ; K0鍵功能程序鍵功能程序 ADD A,#1 DA A ANL A,#0FH MOV 30H,A RET56 K1:MOV A,31H ; K1鍵功能程序鍵功能程序 ADD A,#1 DA A ANL A,#0FH MOV 31H,A RET K5:MOV A,35H ; K5鍵功能程序鍵功能程序 ADD A,#1 DA AANL A,#0FHMOV 35H,ARET57 D/A轉(zhuǎn)換器用來(lái)將數(shù)字量轉(zhuǎn)換成模擬量。它的基轉(zhuǎn)換器用來(lái)將數(shù)字量轉(zhuǎn)換成模擬量。它的基本要

35、求是輸出電壓本要求是輸出電壓Vo和輸入數(shù)字量和輸入數(shù)字量D成正比,即:成正比,即:Vo=DVR (其中(其中VR為參考電壓)為參考電壓) D=dn-1 2n-1+dn-2 2n-2+ +d1 21+d0 2058 分辨率分辨率 分辨率表示對(duì)輸入的最小數(shù)字量的分辨能力??杀矸直媛时硎緦?duì)輸入的最小數(shù)字量的分辨能力。可表示為最小輸出電壓(對(duì)應(yīng)的輸入數(shù)字量只有最低有示為最小輸出電壓(對(duì)應(yīng)的輸入數(shù)字量只有最低有效位為效位為“1”)與最大輸出電壓(對(duì)應(yīng)的數(shù)字輸入信)與最大輸出電壓(對(duì)應(yīng)的數(shù)字輸入信號(hào)所有有效位全為號(hào)所有有效位全為“1”)之比。)之比。例如例如10位位D/A轉(zhuǎn)換器,其分辨率為:轉(zhuǎn)換器,其分辨

36、率為:1/(210-1)=1/1023 0.001分辨率越高,轉(zhuǎn)換時(shí),對(duì)應(yīng)數(shù)字輸入信號(hào)最低位的分辨率越高,轉(zhuǎn)換時(shí),對(duì)應(yīng)數(shù)字輸入信號(hào)最低位的模擬信號(hào)電壓數(shù)值越小,也就越靈敏。模擬信號(hào)電壓數(shù)值越小,也就越靈敏。 分辨率也可用數(shù)字輸入信號(hào)的有效位數(shù)來(lái)表示。分辨率也可用數(shù)字輸入信號(hào)的有效位數(shù)來(lái)表示。如:如:DAC0832的分辨率為的分辨率為8位位59 轉(zhuǎn)換精度轉(zhuǎn)換精度 轉(zhuǎn)換精度用于表明轉(zhuǎn)換精度用于表明D/A轉(zhuǎn)換的精確程度,通常以轉(zhuǎn)換的精確程度,通常以滿量程電壓滿量程電壓VFS的百分?jǐn)?shù)形式表示。例如精度為的百分?jǐn)?shù)形式表示。例如精度為 0.1%指的是最大誤差為指的是最大誤差為VFS的的0.1%,如果,如果

37、VFS為為5V,則最大誤差為,則最大誤差為 5mV。 精度和分辨率是兩個(gè)不同的概念精度和分辨率是兩個(gè)不同的概念精度是指轉(zhuǎn)換后所得到的實(shí)際值對(duì)于理想值的接近程精度是指轉(zhuǎn)換后所得到的實(shí)際值對(duì)于理想值的接近程度,而分辨率是指能夠?qū)D(zhuǎn)換結(jié)果產(chǎn)生影響的最小輸度,而分辨率是指能夠?qū)D(zhuǎn)換結(jié)果產(chǎn)生影響的最小輸入量,對(duì)于分辨率很高的入量,對(duì)于分辨率很高的D/A轉(zhuǎn)換器并不一定具有轉(zhuǎn)換器并不一定具有很高的精度。很高的精度。60 建立時(shí)間建立時(shí)間 建立時(shí)間是描述建立時(shí)間是描述轉(zhuǎn)換速率轉(zhuǎn)換速率的一個(gè)重要參數(shù)。是指的一個(gè)重要參數(shù)。是指D/A轉(zhuǎn)換器輸入數(shù)字量為滿刻度值(二進(jìn)制各位全轉(zhuǎn)換器輸入數(shù)字量為滿刻度值(二進(jìn)制各位全為

38、為“1”)時(shí),從輸入加上到模擬信號(hào)電壓(模擬信)時(shí),從輸入加上到模擬信號(hào)電壓(模擬信號(hào)電流)輸出達(dá)到滿刻度值或滿刻度值的某一百分號(hào)電流)輸出達(dá)到滿刻度值或滿刻度值的某一百分比所需的時(shí)間。一般為幾納秒到幾百微秒。比所需的時(shí)間。一般為幾納秒到幾百微秒。 輸出是電流形式的,建立時(shí)間很短;輸出形式是輸出是電流形式的,建立時(shí)間很短;輸出形式是電壓的,建立時(shí)間是其輸出運(yùn)算放大器所需的響應(yīng)電壓的,建立時(shí)間是其輸出運(yùn)算放大器所需的響應(yīng)時(shí)間。時(shí)間。61 溫度系數(shù)溫度系數(shù)在滿刻度輸出的條件下,溫度每升高在滿刻度輸出的條件下,溫度每升高1度,輸出變度,輸出變化的百分?jǐn)?shù)?;陌俜?jǐn)?shù)。62 結(jié)構(gòu)結(jié)構(gòu)63 引腳引腳8位數(shù)

39、據(jù)輸入端位數(shù)據(jù)輸入端輸入數(shù)據(jù)允輸入數(shù)據(jù)允許鎖存信號(hào)許鎖存信號(hào)片選片選輸入寄存器輸入寄存器寫選通信號(hào)寫選通信號(hào)DAC寄存器寄存器寫選通信號(hào)寫選通信號(hào)數(shù)據(jù)傳送數(shù)據(jù)傳送信號(hào)信號(hào)基準(zhǔn)電壓輸入端基準(zhǔn)電壓輸入端電流輸出端電流輸出端IOUT1+IOUT2=C反饋電流輸入端反饋電流輸入端64 引腳引腳65 DAC0832工作方式工作方式(1)直通工作方式直通工作方式+5V66【例】【例】 直通方式產(chǎn)生鋸齒波電壓信號(hào)直通方式產(chǎn)生鋸齒波電壓信號(hào)( (波形如下圖所波形如下圖所示示) )。解:電路如下圖所示。解:電路如下圖所示。 集成運(yùn)放在電路中的作用是把集成運(yùn)放在電路中的作用是把DAC0832DAC0832輸出電流

40、輸出電流轉(zhuǎn)換為電壓。即實(shí)現(xiàn)電流電壓轉(zhuǎn)換。轉(zhuǎn)換為電壓。即實(shí)現(xiàn)電流電壓轉(zhuǎn)換。 鋸齒波電壓信號(hào)隨時(shí)間變化而上升,達(dá)到最大值鋸齒波電壓信號(hào)隨時(shí)間變化而上升,達(dá)到最大值后,又從后,又從0 0開(kāi)始上升,再到最大值如此循環(huán)下去。因開(kāi)始上升,再到最大值如此循環(huán)下去。因此,只要讓此,只要讓DAC0832DAC0832輸入的數(shù)字量也如此變化就可使輸入的數(shù)字量也如此變化就可使輸出端輸出鋸齒波。輸出端輸出鋸齒波。67 EA/VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P1

41、5 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE/P 30 TXD 11 RXD 10 U1 8051 VCC 3 2 6 1 5 7 4 U3 741 -12V +12V AGND 3 2 6 1 5 7 4 U4 741 +12V -12V R3 10k R4 10k AGND +5V VCC R1 10k AGND GND GND VCC Uo 5V VCC 2

42、0 Iout1 11 DI0 7 Iout2 12 DI1 6 DI2 5 Rfb 9 DI3 4 DI4 16 Vref 8 DI5 15 DI6 14 DI7 13 ILE 19 WR2 18 CS 1 WR1 2 Xfer 17 AGND 3 U2 DAC0832 單片機(jī)和DAC0832直通方式輸出連接圖 68對(duì)鋸齒波的產(chǎn)生作如下說(shuō)明:對(duì)鋸齒波的產(chǎn)生作如下說(shuō)明: 程序每循環(huán)一次,程序每循環(huán)一次,(R0)(R0)加加1 1,因此實(shí)際上鋸齒波的上升沿是,因此實(shí)際上鋸齒波的上升沿是由由256256個(gè)小階梯構(gòu)成的。但由于階梯很小,所以看上去就如個(gè)小階梯構(gòu)成的。但由于階梯很小,所以看上去就如上圖所

43、表示的線性增長(zhǎng)鋸齒波。上圖所表示的線性增長(zhǎng)鋸齒波。 延遲時(shí)間不同,波形周期不同,鋸齒波的斜率就不同。延遲時(shí)間不同,波形周期不同,鋸齒波的斜率就不同。 參考程序如下:參考程序如下: ORG 0000HORG 0000H MOV R0,#0 ; MOV R0,#0 ;置轉(zhuǎn)換初值置轉(zhuǎn)換初值 DAC: MOV P0,R0 ;DAC: MOV P0,R0 ;送數(shù)據(jù)到送數(shù)據(jù)到P0P0口口,DAC0832,DAC0832同時(shí)進(jìn)行轉(zhuǎn)換同時(shí)進(jìn)行轉(zhuǎn)換 INC R0 ;INC R0 ;轉(zhuǎn)換數(shù)字量加轉(zhuǎn)換數(shù)字量加1 1 LCALL DELAY ; LCALL DELAY ;延時(shí)量決定鋸齒波周期延時(shí)量決定鋸齒波周期 SJ

44、MP DACSJMP DACDELAY: (DELAY: (略略) ) END END69 DAC0832工作方式工作方式(2)單緩沖工作方式單緩沖工作方式70 EA/VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27

45、 P27 28 PSEN 29 ALE/P 30 TXD 11 RXD 10 U1 8051 VCC 3 2 6 1 5 7 4 U3 741 -12V +12V AGND R2 10k 3 2 6 1 5 7 4 U4 741 R1 50k +12V -12V R3 10k R4 10k AGND AGND +5V VCC Uo Uo Vcc VCC 20 Iout1 11 DI0 7 Iout2 12 DI1 6 DI2 5 Rfb 9 DI3 4 DI4 16 Vref 8 DI5 15 DI6 14 DI7 13 ILE 19 WR2 18 CS 1 WR1 2 Xfer 17 AGN

46、D 3 U2 DAC0832 單緩沖方式接口電路單緩沖方式接口電路 71【例】【例】 單緩沖方式產(chǎn)生鋸齒波。單緩沖方式產(chǎn)生鋸齒波。解:電路連接如上圖所示。電路連接如上圖所示。 WR2=0WR2=0和和XFER=0XFER=0,因此,因此DACDAC寄存器處于直通方式。而輸入寄寄存器處于直通方式。而輸入寄存器處于受控鎖存方式,存器處于受控鎖存方式,WR1WR1接接80518051的的WRWR,ILEILE接高電平,接高電平,CSCS接接P2.7P2.7故輸入寄存器地址為故輸入寄存器地址為07FFFH07FFFH。 軟件設(shè)計(jì)思路與例軟件設(shè)計(jì)思路與例1111相同,只是改為用相同,只是改為用“MOVX

47、 DPTR,A”MOVX DPTR,A”來(lái)發(fā)送數(shù)據(jù)和啟動(dòng)轉(zhuǎn)換。來(lái)發(fā)送數(shù)據(jù)和啟動(dòng)轉(zhuǎn)換。 72 單緩沖方式產(chǎn)生鋸齒波的源程序如下:?jiǎn)尉彌_方式產(chǎn)生鋸齒波的源程序如下: MOV MOV DPTR,#7FFFH ; DPTR,#7FFFH ; 指向指向08320832地址地址 MOV R0,#00H ; MOV R0,#00H ; 置轉(zhuǎn)換數(shù)字初值置轉(zhuǎn)換數(shù)字初值 DA1: MOV A,R0 DA1: MOV A,R0 MOVX DPTR,A ; MOVX DPTR,A ; 啟動(dòng)轉(zhuǎn)換啟動(dòng)轉(zhuǎn)換 INC R0 ; INC R0 ; 轉(zhuǎn)換數(shù)字量加轉(zhuǎn)換數(shù)字量加1 1 LCALL LCALL DELAY ; DELA

48、Y ; 延時(shí)延時(shí) SJMP DA1SJMP DA1DELAY: MOV R7,#7DH ; DELAY: MOV R7,#7DH ; 延時(shí)子程序延時(shí)子程序 DL1: NOPDL1: NOP NOP NOP DJNZ R7,DL1 DJNZ R7,DL1 RET RET73【例】【例】 利用利用08320832輸出一個(gè)從輸出一個(gè)從-5V-5V開(kāi)始逐漸上升到開(kāi)始逐漸上升到0V0V再再升至升至5V5V,再?gòu)?,再?gòu)?V5V逐漸降至逐漸降至0V0V,再降至,再降至-5V-5V的三角波的三角波電壓。電壓。解:硬件電路如下圖所示。硬件電路如下圖所示。 同圖中集成運(yùn)放同圖中集成運(yùn)放U4U4接成一加法電路。接成

49、一加法電路。 輸出電壓輸出電壓UO=-(5+2Ui)UO=-(5+2Ui)。當(dāng)。當(dāng)08320832輸出輸出-5V-5V時(shí)時(shí)( (最大最大值值) ),U UO O=-(5-10)=+5V=-(5-10)=+5V;輸出;輸出-2.5V-2.5V時(shí),時(shí),U UO O=0V=0V;輸;輸出出0V0V時(shí),時(shí),U UO O=-5V=-5V。 軟件設(shè)計(jì)時(shí),當(dāng)數(shù)字量達(dá)到最大軟件設(shè)計(jì)時(shí),當(dāng)數(shù)字量達(dá)到最大(0FFH)(0FFH)時(shí)要進(jìn)行時(shí)要進(jìn)行減減1 1運(yùn)算。而不是變?yōu)檫\(yùn)算。而不是變?yōu)? 0。當(dāng)數(shù)字量減至。當(dāng)數(shù)字量減至0 0時(shí),又開(kāi)時(shí),又開(kāi)始加始加1 1運(yùn)算。運(yùn)算。 74三角波形成電路三角波形成電路 EA/VP

50、31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE/P 30 TXD 11 RXD 10 U1 8051 VCC 3 2 6 1 5 7 4 U3 741 -12V +12V AGN

51、D 3 2 6 1 5 7 4 U4 741 +12V -12V R3 5.1k R4 10k AGND +5V VCC +5V R1 10k VCC Uo Uo +5V -5V VCC 20 Iout1 11 DI0 7 Iout12 DI1 6 DI2 5 Rfb 9 DI3 4 DI4 16 Vref 8 DI5 15 DI6 14 DI13 ILE 19 WR2 18 CS 1 WR1 2 Xfer 17 AGND 3 U2 DAC0832 Ui75ORG 0000HORG 0000H HA6S: MOV HA6S: MOV R6,#00H ;R6,#00H ;數(shù)字量初值數(shù)字量初值HA

52、6S2: MOV HA6S2: MOV DPTR,#7FFFH ;DPTR,#7FFFH ;地址地址 MOV MOV A,R6 ;A,R6 ;數(shù)字量送數(shù)字量送A A MOVX MOVX DPTR,A ;DPTR,A ;進(jìn)行進(jìn)行D/AD/A轉(zhuǎn)換轉(zhuǎn)換 MOV MOV R2,#0BHR2,#0BH LCALLLCALL DELAY DELAY ; ;延時(shí)延時(shí) INCINC R6 ;R6 ;數(shù)字量加數(shù)字量加1 1 CJNE CJNE R6,#0FFH,HA6S2 ;R6,#0FFH,HA6S2 ;數(shù)字量增加到數(shù)字量增加到0FFH0FFH?HA6S3: MOV DPTR,#7FFFHHA6S3: MOV

53、 DPTR,#7FFFH ;0832;0832地址地址 DEC R6DEC R6 ; ;數(shù)字量減數(shù)字量減1 1 MOV A,R6MOV A,R6 MOVX DPTR,AMOVX DPTR,A ; ;數(shù)字量送數(shù)字量送08320832啟動(dòng)啟動(dòng)D/AD/A轉(zhuǎn)換轉(zhuǎn)換 MOV R2,#0BHMOV R2,#0BH LCALL DELAYLCALL DELAY ; ;延時(shí)延時(shí) CJNE R6,#00H,HA6S3 ;CJNE R6,#00H,HA6S3 ;數(shù)字量是否減到數(shù)字量是否減到0, 0, SJMP HA6SSJMP HA6S76 DAC0832工作方式工作方式(3)雙緩沖工作方式雙緩沖工作方式77雙

54、緩沖方式的接口電路雙緩沖方式的接口電路 EA/VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE/P 30 TXD 11 RXD 10 U1 8051 VCC 3 2 6 1

55、5 7 4 U3 741 -12V +12V AGND 3 2 6 1 5 7 4 U5 741 +12V -12V R1 5.1k R3 10k AGND +5V VCC +5V R5 10k VCC 3 2 6 1 5 7 4 U4 741 -12V +12V AGND 3 2 6 1 5 7 4 U6 741 +12V -12V R2 5.1k R4 10k AGND +5V +5V R6 10k XFER XFER XFEP2.5 P2.5 VCC VCC WR WR WR P2.6 P2.6 VCC 20 Iout1 11 DI0 7 Iout2 12 DI1 6 DI2 5 Rfb

56、 9 DI3 4 DI4 16 Vref 8 DI5 15 DI6 14 DI7 13 ILE 19 WR2 18 CS WR1 2 Xfer 17 AGND 3 U2 DAC0832(1) 20 Iout1 11 DI0 7 Iout2 12 DI1 6 DI2 5 Rfb 9 DI3 4 DI4 16 Vref 8 DI5 15 DI6 14 DI7 13 ILE 19 WR2 18 CS 1 WR1 2 Xfer 17 AGND 3 U7 DAC0832(2) 78【例】【例】 DAC0832DAC0832同步波形輸出正弦波、三角波。同步波形輸出正弦波、三角波。 解:解:DAC0832D

57、AC0832與單片機(jī)的接口電路如上圖所示。電路圖與單片機(jī)的接口電路如上圖所示。電路圖中中 DAC0832(1)DAC0832(1)輸入寄存器地址為輸入寄存器地址為0BFFFH0BFFFH, DAC0832(2)DAC0832(2)輸入寄存器地址為輸入寄存器地址為0DFFFH0DFFFH, 0832(1)0832(1)和和0832(2)0832(2)的的DACDAC寄存器地址均為寄存器地址均為7FFFH7FFFH。 正弦波的產(chǎn)生由各采樣點(diǎn)數(shù)據(jù)依次進(jìn)行正弦波的產(chǎn)生由各采樣點(diǎn)數(shù)據(jù)依次進(jìn)行D/AD/A轉(zhuǎn)換得到。轉(zhuǎn)換得到。 79 ORG 1000HST: MOV R1,#0 ; 256個(gè)取樣點(diǎn)個(gè)取樣點(diǎn)

58、MOV R2,#0 ; 鋸齒波初值鋸齒波初值L1: MOV DPTR,#0DFFFH ; DAC0832(2)輸入寄存器地址輸入寄存器地址 MOV A,R2 MOVX DPTR,A ; 三角波送三角波送DAC0832(2) MOV DPTR,#DTAB ; 取信號(hào)數(shù)據(jù)表首地址取信號(hào)數(shù)據(jù)表首地址 MOVC A,A+DPTR ; 查表取正弦波信號(hào)數(shù)據(jù)查表取正弦波信號(hào)數(shù)據(jù) MOV DPTR,#0BFFFH ; DAC0832(1)輸入寄存器地址輸入寄存器地址 MOVX DPTR,A ; 輸出正弦波信號(hào)到輸出正弦波信號(hào)到DAC0832(1) MOV DPTR,#7FFFH ; DAC0832(1) (

59、2)DAC寄存器地址寄存器地址 MOVX DPTR,A ; 同時(shí)啟動(dòng)兩個(gè)同時(shí)啟動(dòng)兩個(gè)0832轉(zhuǎn)換轉(zhuǎn)換 INC R2 DJNZ R1,L1 SJMP ST80 DTAB: DB 80H,83H,86H,8DH,90H,96H,99H,9CH ;正弦數(shù)據(jù)表正弦數(shù)據(jù)表DB 9FH,0A2H,0A5H,0A8H,0ABH,0AEHDB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5HDB 0C7H,0CAH,0CFH,0D1H,0D4H,0D6H,0D8HDB 0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9HDB 0EAH,0ECH,0EEH

60、,0EFH,0F1H,0F2H,0F4H,0F5HDB 0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDHDB 0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDHDB 0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6HDB 0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EBHDB 0EAH,0E9H,0E7H,0E5H,0E3H,0E1H,0DFH,0DDHDB 0DAH, 0D8H,0D6H,0D4H

溫馨提示

  • 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)論