1. DAC0832讀寫原理
D/A轉(zhuǎn)換是把數(shù)字量轉(zhuǎn)換成模擬量的變換,從D/A輸出的是模擬電壓信號(hào)。產(chǎn)生鋸齒波和三角波只需由A存放的數(shù)字量的增減來(lái)控制;要產(chǎn)生正弦波,較簡(jiǎn)單的手段是造一張正弦數(shù)字量表。取值范圍為一個(gè)周期,采樣點(diǎn)越多,精度就越高。
在實(shí)驗(yàn)板上,輸入寄存器占偶地址端口,DAC寄存器占較高的奇地址端口。兩個(gè)寄存器均對(duì)數(shù)據(jù)獨(dú)立進(jìn)行鎖存。因而要把一個(gè)數(shù)據(jù)通過(guò)0832輸出,要經(jīng)兩次鎖存。典型程序段如下:
0.png (52.69 KB, 下載次數(shù): 14)
下載附件
2018-7-5 02:50 上傳
0.png (26.14 KB, 下載次數(shù): 22)
下載附件
2018-7-5 02:50 上傳
主程序: - NAME T92 ;0832數(shù)模轉(zhuǎn)換實(shí)驗(yàn)
- PORT EQU 0CFA0H ;片選地址送給字符名稱PORT
- ORG 00H
- START: MOV P1,#0FFH ; P1口初地址賦值
- MOV C,P1.0 ; Cy←P1.0
- JNC JUCH1 ;若Cy=0,轉(zhuǎn)移到JUCH1,否則繼續(xù)執(zhí)下一步
- MOV C,P1.1 ; Cy←P1.1
- JNC JUCH2 ;若Cy=0,轉(zhuǎn)移到JUCH1,否則繼續(xù)執(zhí)下一步
- MOVC,P1.2 ;Cy←P1.2
- JNC JUCH3 ;若Cy=0,轉(zhuǎn)移到JUCH1,否則繼續(xù)執(zhí)下一步
- MOVC,P1.3 ;Cy←P1.3
- JNC JUCH4 ;若Cy=0,轉(zhuǎn)移到JUCH1,否則繼續(xù)執(zhí)下一步
- SJMP START ;轉(zhuǎn)移
- 子程序
- 三角波子程序:
- JUCH1:MOV DPTR,#PORT+1 ;DAC寄存器端口地址送DPTR
- MOV A,#00H ;初值送給累加器A
- MOV R4,#2 ;設(shè)定波形的頻率
- UP0: MOV B,#0FFH ;設(shè)定波形的周期
- UP1: MOV DPTR,#PORT ;DAC輸入寄存器端口地址
- MOVX @DPTR,A ;送出數(shù)據(jù)
- INC DPTR ;加一,為DAC寄存器端口地址
- MOVX @DPTR,A ;啟動(dòng)轉(zhuǎn)換
- INC A ;數(shù)據(jù)加一
- CJNE A,#0FFH,UP1 ;波行達(dá)到下限值時(shí),波形上升
- MOV R2,#0FEH ;R2←0FEH
- UP22:MOV DPTR,#PORT ;DAC輸入寄存器端口地址
- MOV A,R2 ;將波形上限值賦予A
- MOVX @DPTR,A ;送出數(shù)據(jù)
- INC DPTR ;加一,為DAC寄存器端口地址
- MOVX @DPTR ;啟動(dòng)轉(zhuǎn)換
- DJNZ R2,UP22 ;波形一直達(dá)到上限
- DJNZ B,UP1 ;達(dá)到波形周期值
- DJNZ R4,UP0 ;達(dá)到波形頻值
- SJMP START ;轉(zhuǎn)移
- 方波子程序:
- JUCH2:MOV R4,#20 ;循環(huán)次數(shù)
- UP00:MOV B,#0FFH ;下限值
- LOOP1:MOV A,#33H ;值上限電平
- MOV DPTR,#PORT ;DAC輸入寄存器端口地址
- MOVX @DPTR,A ;送出數(shù)據(jù)
- INC DPTR ;加一,為DAC寄存器端口地址
- MOVX @DPTR,A ;啟動(dòng)轉(zhuǎn)換
- LCALL DELAY ;形成方波頂寬
- MOV A,#0FFH ;置下限電平
- MOV DPTR,#PORT ;DAC輸入寄存器端口地址
- MOVX @DPTR,A ;送出數(shù)據(jù)
- INC DPTR ;加一,為DAC寄存器端口地址
- MOVX @DPTR,A ;啟動(dòng)轉(zhuǎn)換
- LCALL DELAY ;形成方波底寬
- DJNZ B,LOOP1 ;若未達(dá)到下限值,轉(zhuǎn)到LOOP1,;否則下移
- DJNZ R4,UP00 ;若未達(dá)到循環(huán)次數(shù),轉(zhuǎn)到UP00,否則下移
- SJMP START ;轉(zhuǎn)移
- DELAY:MOV R0,#40H ;延時(shí)程序
- D1:NOP
- NOP
- DJNZ R0,D1
- RET
- 鋸齒波子程序:
- JUCH3:MOV A,#00H ;初值送給累加器A
- LOOP2:MOV B,#0FFH ;下限值
- LOOP3:MOV DPTR,#PORT ;DAC輸入寄存器端口地址
- MOVX @DPTR,A ;送出數(shù)據(jù)
- INC DPTR ;加一,為DAC寄存器端口地址
- MOVX @DPTR,A ;啟動(dòng)轉(zhuǎn)換
- INC A ;數(shù)據(jù)加一
- CJNE A,#0FFH,LOOP3 ;使鋸齒波的下限達(dá)到下限值
- DJNZ B,LOOP3 ;若A未達(dá)到下限值,轉(zhuǎn)到LOOP3,否則下移
- LJMP START ;轉(zhuǎn)移
- 正弦波子程序:
- JUCH4:MOV B,#00H ;正弦波啟示
- LP1:MOV DPTR,#DATRO ;DPTR←表起始地址
- MOV R4,#00H ;波形終值
- LP2:CLR A ;累加器清零
- MOVC A,@A+DPTR ;查表
- MOV R3,DPH ;高8位送給R3
- MOV R5,DPL ;低8位送給R5
- MOV DPTR,#PORT ;DAC輸入寄存器端口地址
- MOVX @DPTR,A ;送出數(shù)據(jù)
- INC DPTR ;加一,為DAC寄存器端口地址
- MOVX @DPTR,A ;啟動(dòng)轉(zhuǎn)換
- MOV DPH,R3 ;R3送給數(shù)據(jù)指針高8位
- MOV DPL,R5 ;R5送給數(shù)據(jù)指針低8位
- INC DPTR ;波形位移增量
- DJNZ R4,LP2 ;達(dá)到波形設(shè)定周期
- DJNZ B,LP1 ;達(dá)到波形設(shè)定頻率
- LJMP START ;轉(zhuǎn)移
- DATRO:DB 80H,83H,86H,89H,8DH,90H,93H,96H ;正弦波數(shù)據(jù)
- DB 99H,9CH,9FH,0A2H,05AH,08AH,0ABH,0AEH
- DB 0B1H,0B4H,0BFH,0BAH,0BCH,0BFH,0C2H,0C5H
- DB 0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8H
- DB 0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9H
- DB 0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5H
- DB 0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDH
- DB 0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
- DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDH
- DB 0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6H
- DB 0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EAH
- DB 0E9H,0E7H,0E5H,0E3H,0E1H,0DEH,0DDH,0DAH
- DB 0D8H,0D6H,0D4H,0D1H,0CFH,0CCH,0CAH,0C7H
- DB 0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H,0B1H
- DB 0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH,99H
- DB 96H,93H,90H,8DH,89H,86H,83H,80H
- DB 80H,7CH,79H,76H,72H,6FH,6CH,69H
- DB 66H,63H,60H,5DH,5AH,57H,55H,51H
- DB 4EH,4CH,48H,45H,43H,40H,3DH,3AH
- DB 38H,35H,33H,30H,2EH,2BH,29H,27H
- DB 25H,22H,20H,1EH,1CH,1AH,18H,16H
- DB 15H,13H,11H,10H,0EH,0DH,08H,0AH
- DB 09H,8H,7H,6H,5H,4H,3H,2H
- DB 02H,1H,0H,0H,0H,0H,0H,0H
- DB 00H,0H,0H,0H,0H,0H,1H,2H
- DB 02H,3H,4H,5H,6H,7H,8H,9H
- DB 0AH,0BH,0DH,0EH,10H,11H,13H,15H
- DB 16H,18H,1AH,1CH,1EH,20H,22H,25H
- DB 27H,29H,2BH,2EH,30H,33H,35H,38H
- DB 3AH,3DH,40H,43H,45H,47H,4CH,4EH
- DB 51H,51H,55H,57H,5AH,5DH,60H,63H
- DB 69H,6CH,6FH,72H,76H,79H,7CH,80H
- END
復(fù)制代碼
完整的Word格式文檔51黑下載地址:
單片機(jī)原理發(fā)生器課程設(shè)計(jì).doc
(256 KB, 下載次數(shù): 45)
2018-7-4 16:24 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|