




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、12 測控 對象 其他計算機系統或智能設備 單片機 MCU EEPROM 人機通道 RAM 輸出通道 輸入通道 通信接口 輸入/輸出設備 傳感器等 執行機構 單片機典型應用系統的結構單片機典型應用系統的結構 3 單片機應用系統所需要的一般配置:單片機應用系統所需要的一般配置: 單片機單片機。 人機交流設備人機交流設備。輸入設備有鍵盤和按鍵,輸出設備有數碼。輸入設備有鍵盤和按鍵,輸出設備有數碼管、液晶顯示模塊和指示燈等。管、液晶顯示模塊和指示燈等。 信號采集的輸入通道信號采集的輸入通道。如出租車的測距、測速裝置,溫控。如出租車的測距、測速裝置,溫控系統,溫度計的溫度傳感器、洗衣機的水位測量設備。
2、系統,溫度計的溫度傳感器、洗衣機的水位測量設備。 向操作對象發出各種向操作對象發出各種控制信號的輸出通道控制信號的輸出通道。如空調啟動壓。如空調啟動壓縮機的開關電路,控制彩電的頻道切換、顏色、音量等的縮機的開關電路,控制彩電的頻道切換、顏色、音量等的接口電路。接口電路。 如果需與其他計算機系統或智能設備實現信息交換,還需配如果需與其他計算機系統或智能設備實現信息交換,還需配置置通信接口電路通信接口電路。 有時還需擴展外部有時還需擴展外部RAMRAM、EEPROMEEPROM用于存放數據。如彩電遙控系用于存放數據。如彩電遙控系統中存放系統數據的存儲器。統中存放系統數據的存儲器。4 顯示器是單片機
3、應用系統常用的輸出設備,顯示器是單片機應用系統常用的輸出設備,用來顯示單片機的鍵入值、中間信息及運算用來顯示單片機的鍵入值、中間信息及運算結果等。結果等。 單片機應用系統中,常用的顯示器主要有單片機應用系統中,常用的顯示器主要有LED(發光二極管顯示器、數碼管顯示器)(發光二極管顯示器、數碼管顯示器)和和LCD(液晶顯示器)。(液晶顯示器)。5一、數碼管顯示器的結構一、數碼管顯示器的結構6二、字段碼二、字段碼在實際應用中,常用一個在實際應用中,常用一個8位并行位并行I/O口的輸口的輸出出D0D7對應控制數碼管的對應控制數碼管的adp以顯示不以顯示不同字形。從同字形。從I/O口輸出的驅動數碼管以
4、顯示不口輸出的驅動數碼管以顯示不同字形的數據稱為字段碼(字形碼、顯示代同字形的數據稱為字段碼(字形碼、顯示代碼)。例如,共陰極結構的數碼管顯示碼)。例如,共陰極結構的數碼管顯示“0”的字段碼為:的字段碼為:其他一些字形的字段碼如下表:其他一些字形的字段碼如下表:D7D6D5D4D3D2D1D0字形字形碼碼dpgfedcba001111113FH7 8三、顯示字符轉換為字段碼三、顯示字符轉換為字段碼(查表法查表法)3FH“0”的字段碼的字段碼06H “1”的字段碼的字段碼5BH“2”的字段碼的字段碼4FH“3”的字段碼的字段碼66H“4”的字段碼的字段碼71H“F”的字段碼的字段碼73H “P”
5、的字段碼的字段碼TAB TAB+01HTAB+02HTAB+03HTAB+04HTAB+0FHTAB+10H9一、靜態顯示方式一、靜態顯示方式1、原理、原理共陰極或共陽極點連接在共陰極或共陽極點連接在一起接地或一起接地或+5V。每位的段選線與一個每位的段選線與一個8位并行口連接。位并行口連接。102、應用舉例、應用舉例例:利用串行口工作于方式例:利用串行口工作于方式0擴展擴展8片片74HC164作為作為LED顯示器的驅動控制接口,顯示器的驅動控制接口,并編寫對應的顯示驅動程序,將片內并編寫對應的顯示驅動程序,將片內RAM 30H37H單元(顯示緩沖單元)的內容單元(顯示緩沖單元)的內容(十十六
6、進制數碼六進制數碼)依次顯示在顯示器上。電路和程依次顯示在顯示器上。電路和程序如下:序如下:1112 LED:MOV SCON,#00H ;設置串行口工作于方式;設置串行口工作于方式0 MOV R0,#30H ;指向顯示緩沖單元首地址;指向顯示緩沖單元首地址 MOV R5,#8 ;顯示器有;顯示器有8位位LED0:MOV A,R0 ;取顯示內容;取顯示內容 MOV DPTR,#DTAB ;指向字形碼表首地址;指向字形碼表首地址 MOVC A,A+DPTR ;查表求得對應的字形碼;查表求得對應的字形碼 MOV SBUF,A ;啟動發送;啟動發送LED1:JNB TI,LED1 ;等待一幀發送完;
7、等待一幀發送完 CLR TI;清發送中斷請求標志;清發送中斷請求標志 INC R0 ;指向下一個顯示內容;指向下一個顯示內容 DJNZ R5,LED0 ;若;若8位未輸出完則繼續位未輸出完則繼續 RET13DTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H DB 82H,0F8H,80H,90H,88H,83H DB 0C6H,0A1H,86H,8EH ;0F的字形碼的字形碼14二、動態顯示方式二、動態顯示方式 1、原理、原理所有字段控制共所有字段控制共用一個用一個I/O口口每個每個字位字位的控的控制占制占用一用一根根I/O口線口線顯示時,在某一時刻,字段口輸出第顯示時,在
8、某一時刻,字段口輸出第i位的字段碼,同位的字段碼,同時字位口驅動第時字位口驅動第i位的位的COM端使其點亮,如此逐位輪流端使其點亮,如此逐位輪流點亮形成穩定的點亮形成穩定的n位數碼顯示效果。位數碼顯示效果。152、應用舉例、應用舉例 實驗儀的實驗儀的6位數碼管顯示器就是采用動態位數碼管顯示器就是采用動態顯示方式,其電路如下:顯示方式,其電路如下:16同相驅動同相驅動17假設用假設用8255的的A口的口的PA0PA5作為字位控作為字位控制口,制口,B口作為字段控制口。顯示驅動程序:口作為字段控制口。顯示驅動程序:(8255A口、口、B口、口、C口、控制寄存器地址為口、控制寄存器地址為PORTA、
9、PORTB、PORTC、CON;假;假設顯示緩沖單元用設顯示緩沖單元用30H35H)在主程序中對在主程序中對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 ;取顯示數據碼;取顯示數據碼 ADD A,#TAB-NPC ;加;加TAB與與NPC差值差值 MOVC A,A+PC ;查表得相應字段碼;查表得相應字段碼 NPC:MOVX DPTR,A ;輸出字段碼;輸出字段碼 LCALL D1MS ;保持顯示;保持顯示1毫秒毫秒顯示顯示子程序完成動態顯示的控制子程序完成動態顯示的控制19 INC R0 ;指向下一顯示緩沖單元;指向下一顯示緩沖單元 MOV A,R3 ;取出字位碼;取出字位碼 JB ACC.5,DISP2 ;判已顯示到最左位否;判已顯示到最左位否
11、 RL A ;未完,字位碼左移;未完,字位碼左移1位位 MOV R3,A;回存新字位碼;回存新字位碼 SJMP DISP1 ;轉下一位顯示;轉下一位顯示DISP2:RET TAB:DB 3FH,06H,5BH,. . . ;字段碼表;字段碼表 D1MS:MOV R7,#250 ;延時;延時1毫秒子程序毫秒子程序 DJNZ R7,$ RET20例:電子鐘程序。例:電子鐘程序。 利用定時器利用定時器T0定時,模擬定時,模擬24小時走時的電子小時走時的電子鐘,時、分、秒以鐘,時、分、秒以BCD碼形式依次存放在碼形式依次存放在3CH、3BH、3AH;38H、39H作為軟件作為軟件計數器。計數器。選擇選
12、擇T0工作于定時、方式工作于定時、方式2、定時時間為、定時時間為500 s。TMOD=0000 0010B=02H計算初值計算初值fosc=6MHz 機器周期機器周期TM=2 s 要定時要定時500 s 即要計數即要計數250個機器周期脈沖個機器周期脈沖初值初值=28-250=6=06H21 ORG 0000H ;主程序入口;主程序入口 LJMP CLOCK ;轉主程序初始化;轉主程序初始化 ORG 000BH ;T0T0中斷入口中斷入口 LJMP T0 ;轉轉T0T0中斷服務程序中斷服務程序 ORG 0030H ;主程序初始化程序;主程序初始化程序 CLOCK:MOV SP,#6FH ;設棧
13、底指針;設棧底指針 MOV TMOD,#02H ;T0T0定時方式定時方式2 2 MOV TL0,#06H ;定時(;定時(2562566 6)* *2=5002=500微秒微秒 MOV TH0,#06H MOV 30H,#200 MOV 39H,#10 ;軟件計數單元清零軟件計數單元清零 SETB EA ;中斷總允許;中斷總允許 SETB ET0 ;允許;允許T0中斷中斷 SETB TR0 ;啟動;啟動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 ;調用拆字子程序;調用拆字子程序 LCALL DISP ;調用顯示子程序;調用顯示子程序 SJMP LOOP ;反復循環主流程;反復循環主流程 ORG 0100H ;T0 500微秒中斷服務程序微秒中斷服務程序 T0 :PUSH ACC PUSH PSW ;保護現場;保護現場 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小時?小時? MOV 3BH,#0 ;分鐘單元清零;分鐘單元清零 24 MOV A,3CH ;小時單元(按;小時單元(按BCD碼)加碼)加1 ADD A,#1 DA A MOV 3CH,A CJNE A,#24H,DONE ;滿;滿24小時?小時? MOV 3CH,#0 ;小
16、時單元清零;小時單元清零 DONE:POP PSW POP ACC ;恢復現場;恢復現場 RETI ;中斷返回;中斷返回25CZ:. ;拆字子程序;拆字子程序DISP: ;顯示子程序;顯示子程序26 鍵盤是單片機應用系統的一個重要輸入設備,鍵盤是單片機應用系統的一個重要輸入設備,用于輸入數據、干預系統的工作狀態;用于輸入數據、干預系統的工作狀態; 按鍵盤編碼產生方法,鍵盤可分為編碼鍵盤按鍵盤編碼產生方法,鍵盤可分為編碼鍵盤和非編碼鍵盤兩種;和非編碼鍵盤兩種; 按鍵盤的連接方式,可分為獨立式按鍵和行按鍵盤的連接方式,可分為獨立式按鍵和行列式(矩陣式)鍵盤。列式(矩陣式)鍵盤。27一、按鍵狀態的輸
17、入與消抖動一、按鍵狀態的輸入與消抖動1、鍵輸入、鍵輸入K按下時,按下時,A=0;K斷開時,斷開時,A=1。2、消抖動、消抖動方法:方法:硬件消抖動硬件消抖動軟件消抖動:軟件延時軟件消抖動:軟件延時+5VRAKA點輸出點輸出K按下按下K放開放開抖動抖動28二、鍵盤管理程序二、鍵盤管理程序1.檢測是否有按鍵閉合;檢測是否有按鍵閉合;2.若有鍵閉合,延時消抖動;若有鍵閉合,延時消抖動;3.確認是否有按鍵閉合;確認是否有按鍵閉合;4.確定閉合按鍵鍵號;確定閉合按鍵鍵號;5.等待按鍵釋放;等待按鍵釋放;6.執行相應鍵功能。執行相應鍵功能。開始開始有鍵閉合嗎?有鍵閉合嗎?延時消抖動延時消抖動確有鍵閉合嗎?
18、確有鍵閉合嗎?判斷閉合鍵鍵號判斷閉合鍵鍵號閉合鍵釋放否?閉合鍵釋放否?執行鍵功能執行鍵功能返回返回NNNYYY29一、結構一、結構各個按鍵相各個按鍵相互獨立,互互獨立,互不影響。不影響。每個按鍵需占用每個按鍵需占用一根一根I/O口線口線30二、鍵盤管理程序二、鍵盤管理程序假設用單片機的假設用單片機的P1口作為獨立式口作為獨立式按鍵按鍵K0K7的的接口,(由于接口,(由于P1口口內部有上拉電阻,內部有上拉電阻,故不需外接。)故不需外接。)鍵盤管理程序如下:鍵盤管理程序如下:31 KEY:MOV P1,#0FFH ;置;置P1口為輸入口為輸入 MOV A,P1 ;輸入按鍵狀態;輸入按鍵狀態 CPL
19、 A ;取反;取反 JZ KD ;若無鍵閉合則返回;若無鍵閉合則返回 LCALL DELAY ;延時;延時12ms消抖動消抖動 MOV A,P1 CPL A JZ KD ;確認是否有鍵閉合;確認是否有鍵閉合 MOV B,P1 ;輸入鍵狀態;輸入鍵狀態 KW:MOV A,P1 CPL A JNZ KW ;等待鍵釋放;等待鍵釋放32MOV A,B ;取鍵值;取鍵值JNB ACC.0,K0 ;若是;若是K0閉合則轉閉合則轉K0鍵功能程序鍵功能程序JNB ACC.1,K1 ;若是;若是K1閉合則轉閉合則轉K1鍵功能程序鍵功能程序. . .JNB ACC.7,K7 ;若是;若是K7閉合則轉閉合則轉K7鍵
20、功能程序鍵功能程序 KD:RET ;返回;返回 K0:. . . ; K0鍵功能程序鍵功能程序RET. . . . . . K7:. . . ; K7鍵功能程序鍵功能程序RET33一、結構一、結構按鍵設置按鍵設置在行、列在行、列線交點上線交點上行線通過上拉電阻接行線通過上拉電阻接+5V,處于輸入狀態。處于輸入狀態。列線為輸出狀態列線為輸出狀態34二、工作原理二、工作原理1.判斷是否有鍵閉合判斷是否有鍵閉合0000111.1101.1352.消抖動消抖動采用軟件延時消抖動。采用軟件延時消抖動。3.確定哪個鍵閉合確定哪個鍵閉合(1)通過列線逐列輸出低電平后檢查行輸入狀通過列線逐列輸出低電平后檢查行
21、輸入狀態來確定,即對鍵盤態來確定,即對鍵盤逐列逐行掃描逐列逐行掃描。 (2)行反轉法行反轉法36 011.1111.1101.1101.10 1 2 7012.7(1)37(2)行反轉法行反轉法*將行線設置為輸出,列線設置為輸入,行線全將行線設置為輸出,列線設置為輸入,行線全部輸出部輸出0,輸入列線的值;,輸入列線的值;將行線設置為輸入,列線設置為輸出,將將行線設置為輸入,列線設置為輸出,將輸入輸入的列線值輸出,讀行線的值;的列線值輸出,讀行線的值;將所讀得的行、列值組成一個鍵碼,該鍵碼是將所讀得的行、列值組成一個鍵碼,該鍵碼是唯一的。唯一的。38三、實例三、實例 假設用假設用8255擴展擴展
22、I/O口組成行列式鍵盤,口組成行列式鍵盤,其中其中A口接列線,口接列線,C口的口的PC0PC3接行線,接行線,組成一個組成一個4行行 8列共有列共有32個按鍵的行列式鍵個按鍵的行列式鍵盤。盤。39 00 1 2 3 4 5 6 7列列123行行行首鍵號行首鍵號鍵值鍵值=行首鍵號行首鍵號+列值列值825540 KB:LCALL KS ;調用;調用KS判斷是否有鍵閉合判斷是否有鍵閉合JNZ K1 ;有鍵閉合轉;有鍵閉合轉K1SJMP KN ;無鍵閉合則返回;無鍵閉合則返回 K1:LCALL DELAY;延時消抖動延時消抖動LCALL KS ;調用;調用KS確認是否有鍵閉合確認是否有鍵閉合JNZ K
23、2 ;有鍵閉合轉;有鍵閉合轉K2開始列開始列掃描掃描SJMP KN ;無鍵閉合則返回;無鍵閉合則返回 K2:MOV R2,#0FEH;首列掃描字送;首列掃描字送R2MOV R4,#0 ;首列號送;首列號送R4 K3:MOV DPTR,#PA;8255的的A口地址送口地址送DPTRMOV A,R2MOVX DPTR,A ;列掃描字送;列掃描字送8255 A口口41 INC DPTR INC DPTR ;指向;指向8255 C口口 MOVX A,DPTR ;讀取行線狀態;讀取行線狀態 JB ACC.0,L1 ;若第;若第0行無鍵閉合,轉查第行無鍵閉合,轉查第1行行 MOV A,#00H;第第0行有
24、鍵閉合,該行行首鍵號行有鍵閉合,該行行首鍵號00H送送A SJMP LK ;轉去求鍵值;轉去求鍵值L1:JB ACC.1,L2 ;若第;若第1行無鍵閉合,轉查第行無鍵閉合,轉查第2行行 MOV A,#08H;第第1行有鍵閉合,該行行首鍵號行有鍵閉合,該行行首鍵號08H送送A SJMP LK ;轉去求鍵值;轉去求鍵值L2:JB ACC.2,L3 ;若第;若第2行無鍵閉合,轉查第行無鍵閉合,轉查第3行行 MOV A,#10H ;第第2行有鍵閉合,該行行首鍵號行有鍵閉合,該行行首鍵號10H送送A SJMP LK ;轉去求鍵值;轉去求鍵值42L3:JB ACC.3,NX ;若第;若第3行無鍵閉合,轉查
25、下一列行無鍵閉合,轉查下一列 MOV A,#18H ;第;第3行有鍵閉合,行首鍵號行有鍵閉合,行首鍵號18H送送ALK:ADD A,R4 ;鍵值;鍵值=行首鍵號行首鍵號+列值列值 MOV B,A ;鍵值暫存入;鍵值暫存入BK4:LCALL KS JNZ K4 ;等待鍵釋放;等待鍵釋放 MOV A,B ;取鍵值;取鍵值 SJMP KD KN:MOV A,#0FFH ;無鍵閉合時,返回值無鍵閉合時,返回值A=0FFHKD:RETNX:INC R4 ;列值加;列值加1 MOV A,R2 ;取列掃描字;取列掃描字 JNB ACC.7,KN;判斷是否全部掃描完;判斷是否全部掃描完43 RL A ;未掃描
26、完;未掃描完,列掃描字左移一位列掃描字左移一位,變為下一列掃描字變為下一列掃描字 MOV R2,A;列掃描字暫存;列掃描字暫存R2 SJMP K3 ;繼續掃描;繼續掃描KS:MOV DPTR,#PA ;8255 A口地址送口地址送DPTR MOV A,#00H ; MOVX DPTR,A ;列線全輸出;列線全輸出“0”-低電平低電平 INC DPTR INC DPTR ;指向;指向C口口 MOVX A,DPTR;讀入行線狀態;讀入行線狀態 CPL A ;變正邏輯,以高電平表示有鍵按下;變正邏輯,以高電平表示有鍵按下 ANL A,#0FH ;屏蔽高;屏蔽高4位位 RET ;出口狀態;出口狀態A
27、0時表示有鍵閉合時表示有鍵閉合44 在單片機應用系統中,需要同時使用鍵盤與顯示在單片機應用系統中,需要同時使用鍵盤與顯示器接口時,為了節省器接口時,為了節省I/O口線,常把鍵盤和顯示電口線,常把鍵盤和顯示電路做在一起,構成鍵盤、顯示電路。路做在一起,構成鍵盤、顯示電路。 鍵盤、顯示電路可用并行擴展的鍵盤、顯示電路可用并行擴展的I/O口或串行擴口或串行擴展的展的I/O口實現。口實現。 典型的鍵盤、顯示器接口電路典型的鍵盤、顯示器接口電路45 A口既作為顯示器字位控制口,口既作為顯示器字位控制口,又作為鍵盤列線輸出口。又作為鍵盤列線輸出口。行輸入行輸入OC驅動器驅動器825546 4748一、在單
28、片機應用系統中,掃描鍵盤只是一、在單片機應用系統中,掃描鍵盤只是CPU的工的工作任務之一,在實際應用中,要想做到既能及時響作任務之一,在實際應用中,要想做到既能及時響應鍵操作,又不過多地占用應鍵操作,又不過多地占用CPU的工作時間,如鍵的工作時間,如鍵盤與顯示做成一個接口電路,則在軟件中要綜合考盤與顯示做成一個接口電路,則在軟件中要綜合考慮鍵盤查詢與動態顯示,就要根據應用系統的實際慮鍵盤查詢與動態顯示,就要根據應用系統的實際情況,選擇適當的鍵盤工作方式。情況,選擇適當的鍵盤工作方式。二、二、鍵盤的工作方式鍵盤的工作方式 1、編程掃描方式、編程掃描方式編程掃描方式是利用編程掃描方式是利用CPU完
29、成其他工作的空余,調完成其他工作的空余,調用鍵盤掃描子程序來響應鍵輸入要求。在執行鍵功用鍵盤掃描子程序來響應鍵輸入要求。在執行鍵功能程序時,不再響應鍵輸入的要求。能程序時,不再響應鍵輸入的要求。492、中斷工作方式、中斷工作方式開始開始初始化初始化顯示顯示掃描鍵盤掃描鍵盤執行其他操作執行其他操作編程掃描方式編程掃描方式50例:編一程序實現:當按下獨立式鍵盤的例:編一程序實現:當按下獨立式鍵盤的K0K5時,分別將實驗儀上的時,分別將實驗儀上的6位數碼管顯位數碼管顯示器的顯示內容按示器的顯示內容按BCD碼加碼加1。開始開始初始化初始化顯示顯示掃描鍵盤掃描鍵盤流程圖流程圖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 ;調用顯示子程序;調用顯示子程序 LCALL KEY ;調用鍵盤管理子程序;調用鍵盤管理子程序 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 ;取顯示數據碼;取顯示數據碼 ADD A,#TAB-NPC ;加;加TAB與與NPC差值差值 MOVC A,A+PC ;查表得相應字段碼;查表得相應字段碼 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 ;轉下一位顯示;轉下一位顯示 DISP2:RET TAB:DB 0C0H,0F9H,. . . ;09字段碼表字段碼表 D1MS:MOV R7,#250 ;延時;延時1毫秒子程序毫秒子程序 DJNZ R7,$ RET54 KEY:MOV P1,#0FFH ;置;置P1口為輸入
33、口為輸入 MOV A,P1 ;讀按鍵狀態;讀按鍵狀態 CPL A ;取反;取反 JZ KD ;若無鍵閉合則返回;若無鍵閉合則返回 LCALL DELAY ;延時;延時12ms消抖動消抖動 MOV A,P1 CPL A JZ KD ;確認是否有鍵閉合;確認是否有鍵閉合 MOV B,P1 ;讀鍵值;讀鍵值 KW:MOV A,P1 CPL A JNZ KW ;等待鍵釋放;等待鍵釋放55 MOV A,B ;取鍵值;取鍵值 JNB ACC.0,K0 ;若是;若是K0閉合則轉閉合則轉K0鍵功能程序鍵功能程序 JNB ACC.1,K1 ;若是;若是K1閉合則轉閉合則轉K1鍵功能程序鍵功能程序 . . . J
34、NB ACC.7,K7 ;若是;若是K7閉合則轉閉合則轉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轉換器用來將數字量轉換成模擬量。它的基轉換器用來將數字量轉換成模擬量。它的基本要
35、求是輸出電壓本要求是輸出電壓Vo和輸入數字量和輸入數字量D成正比,即:成正比,即:Vo=DVR (其中(其中VR為參考電壓)為參考電壓) D=dn-1 2n-1+dn-2 2n-2+ +d1 21+d0 2058 分辨率分辨率 分辨率表示對輸入的最小數字量的分辨能力。可表分辨率表示對輸入的最小數字量的分辨能力。可表示為最小輸出電壓(對應的輸入數字量只有最低有示為最小輸出電壓(對應的輸入數字量只有最低有效位為效位為“1”)與最大輸出電壓(對應的數字輸入信)與最大輸出電壓(對應的數字輸入信號所有有效位全為號所有有效位全為“1”)之比。)之比。例如例如10位位D/A轉換器,其分辨率為:轉換器,其分辨
36、率為:1/(210-1)=1/1023 0.001分辨率越高,轉換時,對應數字輸入信號最低位的分辨率越高,轉換時,對應數字輸入信號最低位的模擬信號電壓數值越小,也就越靈敏。模擬信號電壓數值越小,也就越靈敏。 分辨率也可用數字輸入信號的有效位數來表示。分辨率也可用數字輸入信號的有效位數來表示。如:如:DAC0832的分辨率為的分辨率為8位位59 轉換精度轉換精度 轉換精度用于表明轉換精度用于表明D/A轉換的精確程度,通常以轉換的精確程度,通常以滿量程電壓滿量程電壓VFS的百分數形式表示。例如精度為的百分數形式表示。例如精度為 0.1%指的是最大誤差為指的是最大誤差為VFS的的0.1%,如果,如果
37、VFS為為5V,則最大誤差為,則最大誤差為 5mV。 精度和分辨率是兩個不同的概念精度和分辨率是兩個不同的概念精度是指轉換后所得到的實際值對于理想值的接近程精度是指轉換后所得到的實際值對于理想值的接近程度,而分辨率是指能夠對轉換結果產生影響的最小輸度,而分辨率是指能夠對轉換結果產生影響的最小輸入量,對于分辨率很高的入量,對于分辨率很高的D/A轉換器并不一定具有轉換器并不一定具有很高的精度。很高的精度。60 建立時間建立時間 建立時間是描述建立時間是描述轉換速率轉換速率的一個重要參數。是指的一個重要參數。是指D/A轉換器輸入數字量為滿刻度值(二進制各位全轉換器輸入數字量為滿刻度值(二進制各位全為
38、為“1”)時,從輸入加上到模擬信號電壓(模擬信)時,從輸入加上到模擬信號電壓(模擬信號電流)輸出達到滿刻度值或滿刻度值的某一百分號電流)輸出達到滿刻度值或滿刻度值的某一百分比所需的時間。一般為幾納秒到幾百微秒。比所需的時間。一般為幾納秒到幾百微秒。 輸出是電流形式的,建立時間很短;輸出形式是輸出是電流形式的,建立時間很短;輸出形式是電壓的,建立時間是其輸出運算放大器所需的響應電壓的,建立時間是其輸出運算放大器所需的響應時間。時間。61 溫度系數溫度系數在滿刻度輸出的條件下,溫度每升高在滿刻度輸出的條件下,溫度每升高1度,輸出變度,輸出變化的百分數。化的百分數。62 結構結構63 引腳引腳8位數
39、據輸入端位數據輸入端輸入數據允輸入數據允許鎖存信號許鎖存信號片選片選輸入寄存器輸入寄存器寫選通信號寫選通信號DAC寄存器寄存器寫選通信號寫選通信號數據傳送數據傳送信號信號基準電壓輸入端基準電壓輸入端電流輸出端電流輸出端IOUT1+IOUT2=C反饋電流輸入端反饋電流輸入端64 引腳引腳65 DAC0832工作方式工作方式(1)直通工作方式直通工作方式+5V66【例】【例】 直通方式產生鋸齒波電壓信號直通方式產生鋸齒波電壓信號( (波形如下圖所波形如下圖所示示) )。解:電路如下圖所示。解:電路如下圖所示。 集成運放在電路中的作用是把集成運放在電路中的作用是把DAC0832DAC0832輸出電流
40、輸出電流轉換為電壓。即實現電流電壓轉換。轉換為電壓。即實現電流電壓轉換。 鋸齒波電壓信號隨時間變化而上升,達到最大值鋸齒波電壓信號隨時間變化而上升,達到最大值后,又從后,又從0 0開始上升,再到最大值如此循環下去。因開始上升,再到最大值如此循環下去。因此,只要讓此,只要讓DAC0832DAC0832輸入的數字量也如此變化就可使輸入的數字量也如此變化就可使輸出端輸出鋸齒波。輸出端輸出鋸齒波。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 單片機和DAC0832直通方式輸出連接圖 68對鋸齒波的產生作如下說明:對鋸齒波的產生作如下說明: 程序每循環一次,程序每循環一次,(R0)(R0)加加1 1,因此實際上鋸齒波的上升沿是,因此實際上鋸齒波的上升沿是由由256256個小階梯構成的。但由于階梯很小,所以看上去就如個小階梯構成的。但由于階梯很小,所以看上去就如上圖所
43、表示的線性增長鋸齒波。上圖所表示的線性增長鋸齒波。 延遲時間不同,波形周期不同,鋸齒波的斜率就不同。延遲時間不同,波形周期不同,鋸齒波的斜率就不同。 參考程序如下:參考程序如下: ORG 0000HORG 0000H MOV R0,#0 ; MOV R0,#0 ;置轉換初值置轉換初值 DAC: MOV P0,R0 ;DAC: MOV P0,R0 ;送數據到送數據到P0P0口口,DAC0832,DAC0832同時進行轉換同時進行轉換 INC R0 ;INC R0 ;轉換數字量加轉換數字量加1 1 LCALL DELAY ; LCALL DELAY ;延時量決定鋸齒波周期延時量決定鋸齒波周期 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【例】【例】 單緩沖方式產生鋸齒波。單緩沖方式產生鋸齒波。解:電路連接如上圖所示。電路連接如上圖所示。 WR2=0WR2=0和和XFER=0XFER=0,因此,因此DACDAC寄存器處于直通方式。而輸入寄寄存器處于直通方式。而輸入寄存器處于受控鎖存方式,存器處于受控鎖存方式,WR1WR1接接80518051的的WRWR,ILEILE接高電平,接高電平,CSCS接接P2.7P2.7故輸入寄存器地址為故輸入寄存器地址為07FFFH07FFFH。 軟件設計思路與例軟件設計思路與例1111相同,只是改為用相同,只是改為用“MOVX
47、 DPTR,A”MOVX DPTR,A”來發送數據和啟動轉換。來發送數據和啟動轉換。 72 單緩沖方式產生鋸齒波的源程序如下:單緩沖方式產生鋸齒波的源程序如下: MOV MOV DPTR,#7FFFH ; DPTR,#7FFFH ; 指向指向08320832地址地址 MOV R0,#00H ; MOV R0,#00H ; 置轉換數字初值置轉換數字初值 DA1: MOV A,R0 DA1: MOV A,R0 MOVX DPTR,A ; MOVX DPTR,A ; 啟動轉換啟動轉換 INC R0 ; INC R0 ; 轉換數字量加轉換數字量加1 1 LCALL LCALL DELAY ; DELA
48、Y ; 延時延時 SJMP DA1SJMP DA1DELAY: MOV R7,#7DH ; DELAY: MOV R7,#7DH ; 延時子程序延時子程序 DL1: NOPDL1: NOP NOP NOP DJNZ R7,DL1 DJNZ R7,DL1 RET RET73【例】【例】 利用利用08320832輸出一個從輸出一個從-5V-5V開始逐漸上升到開始逐漸上升到0V0V再再升至升至5V5V,再從,再從5V5V逐漸降至逐漸降至0V0V,再降至,再降至-5V-5V的三角波的三角波電壓。電壓。解:硬件電路如下圖所示。硬件電路如下圖所示。 同圖中集成運放同圖中集成運放U4U4接成一加法電路。接成
49、一加法電路。 輸出電壓輸出電壓UO=-(5+2Ui)UO=-(5+2Ui)。當。當08320832輸出輸出-5V-5V時時( (最大最大值值) ),U UO O=-(5-10)=+5V=-(5-10)=+5V;輸出;輸出-2.5V-2.5V時,時,U UO O=0V=0V;輸;輸出出0V0V時,時,U UO O=-5V=-5V。 軟件設計時,當數字量達到最大軟件設計時,當數字量達到最大(0FFH)(0FFH)時要進行時要進行減減1 1運算。而不是變為運算。而不是變為0 0。當數字量減至。當數字量減至0 0時,又開時,又開始加始加1 1運算。運算。 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 ;數字量初值數字量初值HA
52、6S2: MOV HA6S2: MOV DPTR,#7FFFH ;DPTR,#7FFFH ;地址地址 MOV MOV A,R6 ;A,R6 ;數字量送數字量送A A MOVX MOVX DPTR,A ;DPTR,A ;進行進行D/AD/A轉換轉換 MOV MOV R2,#0BHR2,#0BH LCALLLCALL DELAY DELAY ; ;延時延時 INCINC R6 ;R6 ;數字量加數字量加1 1 CJNE CJNE R6,#0FFH,HA6S2 ;R6,#0FFH,HA6S2 ;數字量增加到數字量增加到0FFH0FFH?HA6S3: MOV DPTR,#7FFFHHA6S3: MOV
53、 DPTR,#7FFFH ;0832;0832地址地址 DEC R6DEC R6 ; ;數字量減數字量減1 1 MOV A,R6MOV A,R6 MOVX DPTR,AMOVX DPTR,A ; ;數字量送數字量送08320832啟動啟動D/AD/A轉換轉換 MOV R2,#0BHMOV R2,#0BH LCALL DELAYLCALL DELAY ; ;延時延時 CJNE R6,#00H,HA6S3 ;CJNE R6,#00H,HA6S3 ;數字量是否減到數字量是否減到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與單片機的接口電路如上圖所示。電路圖與單片機的接口電路如上圖所示。電路圖中中 DAC0832(1)DAC0832(1)輸入寄存器地址為輸入寄存器地址為0BFFFH0BFFFH, DAC0832(2)DAC0832(2)輸入寄存器地址為輸入寄存器地址為0DFFFH0DFFFH, 0832(1)0832(1)和和0832(2)0832(2)的的DACDAC寄存器地址均為寄存器地址均為7FFFH7FFFH。 正弦波的產生由各采樣點數據依次進行正弦波的產生由各采樣點數據依次進行D/AD/A轉換得到。轉換得到。 79 ORG 1000HST: MOV R1,#0 ; 256個取樣點個取樣點
58、MOV R2,#0 ; 鋸齒波初值鋸齒波初值L1: MOV DPTR,#0DFFFH ; DAC0832(2)輸入寄存器地址輸入寄存器地址 MOV A,R2 MOVX DPTR,A ; 三角波送三角波送DAC0832(2) MOV DPTR,#DTAB ; 取信號數據表首地址取信號數據表首地址 MOVC A,A+DPTR ; 查表取正弦波信號數據查表取正弦波信號數據 MOV DPTR,#0BFFFH ; DAC0832(1)輸入寄存器地址輸入寄存器地址 MOVX DPTR,A ; 輸出正弦波信號到輸出正弦波信號到DAC0832(1) MOV DPTR,#7FFFH ; DAC0832(1) (
59、2)DAC寄存器地址寄存器地址 MOVX DPTR,A ; 同時啟動兩個同時啟動兩個0832轉換轉換 INC R2 DJNZ R1,L1 SJMP ST80 DTAB: DB 80H,83H,86H,8DH,90H,96H,99H,9CH ;正弦數據表正弦數據表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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車間蒸汽處理方案(3篇)
- DB23-T2955-2021-直播電商信用評價規范-黑龍江省
- DB23-T2922-2021-水曲柳腋芽微繁技術規程-黑龍江省
- 醫院財務發票管理制度
- 國美培訓時間管理制度
- 工廠保險分擔方案(3篇)
- 國企公司倉庫管理制度
- 別墅材料維護方案(3篇)
- 圖書合作方案(3篇)
- 關于生產口罩管理制度
- 認識居民身份證微課說課稿課件
- 授受關系課件-高三日語一輪復習
- 2009年《四川省建設工程工程量清單計價定額》
- 生產設備點檢記錄表
- 鋼管樁支護工程檢驗批質量驗收記錄表
- 假發行業知識產品
- GB∕T 33628-2017 風力發電機組高強螺紋連接副安裝技術要求
- GB∕T 16895.21-2020 低壓電氣裝置 第4-41部分:安全防護 電擊防護
- 超高壓技術介紹、應用和工藝
- 公司治理完整測試題【附答案】
- 汽車維修工時收費標準二類企業
評論
0/150
提交評論