标题:
单片机DAC0832波形发生器源程序及课程设计说明书下载(汇编语言)
[打印本页]
作者:
矫情什么
时间:
2018-7-4 16:24
标题:
单片机DAC0832波形发生器源程序及课程设计说明书下载(汇编语言)
1. DAC0832读写原理
D/A转换是把数字量转换成模拟量的变换,从D/A输出的是模拟电压信号。产生锯齿波和三角波只需由A存放的数字量的增减来控制;要产生正弦波,较简单的手段是造一张正弦数字量表。取值范围为一个周期,采样点越多,精度就越高。
在实验板上,输入寄存器占偶地址端口,DAC寄存器占较高的奇地址端口。两个寄存器均对数据独立进行锁存。因而要把一个数据通过0832输出,要经两次锁存。典型程序段如下:
0.png
(52.69 KB, 下载次数: 14)
下载附件
2018-7-5 02:50 上传
0.png
(26.14 KB, 下载次数: 22)
下载附件
2018-7-5 02:50 上传
主程序:
NAME T92 ;0832数模转换实验
PORT EQU 0CFA0H ;片选地址送给字符名称PORT
ORG 00H
START: MOV P1,#0FFH ; P1口初地址赋值
MOV C,P1.0 ; Cy←P1.0
JNC JUCH1 ;若Cy=0,转移到JUCH1,否则继续执下一步
MOV C,P1.1 ; Cy←P1.1
JNC JUCH2 ;若Cy=0,转移到JUCH1,否则继续执下一步
MOVC,P1.2 ;Cy←P1.2
JNC JUCH3 ;若Cy=0,转移到JUCH1,否则继续执下一步
MOVC,P1.3 ;Cy←P1.3
JNC JUCH4 ;若Cy=0,转移到JUCH1,否则继续执下一步
SJMP START ;转移
子程序
三角波子程序:
JUCH1:MOV DPTR,#PORT+1 ;DAC寄存器端口地址送DPTR
MOV A,#00H ;初值送给累加器A
MOV R4,#2 ;设定波形的频率
UP0: MOV B,#0FFH ;设定波形的周期
UP1: MOV DPTR,#PORT ;DAC输入寄存器端口地址
MOVX @DPTR,A ;送出数据
INC DPTR ;加一,为DAC寄存器端口地址
MOVX @DPTR,A ;启动转换
INC A ;数据加一
CJNE A,#0FFH,UP1 ;波行达到下限值时,波形上升
MOV R2,#0FEH ;R2←0FEH
UP22:MOV DPTR,#PORT ;DAC输入寄存器端口地址
MOV A,R2 ;将波形上限值赋予A
MOVX @DPTR,A ;送出数据
INC DPTR ;加一,为DAC寄存器端口地址
MOVX @DPTR ;启动转换
DJNZ R2,UP22 ;波形一直达到上限
DJNZ B,UP1 ;达到波形周期值
DJNZ R4,UP0 ;达到波形频值
SJMP START ;转移
方波子程序:
JUCH2:MOV R4,#20 ;循环次数
UP00:MOV B,#0FFH ;下限值
LOOP1:MOV A,#33H ;值上限电平
MOV DPTR,#PORT ;DAC输入寄存器端口地址
MOVX @DPTR,A ;送出数据
INC DPTR ;加一,为DAC寄存器端口地址
MOVX @DPTR,A ;启动转换
LCALL DELAY ;形成方波顶宽
MOV A,#0FFH ;置下限电平
MOV DPTR,#PORT ;DAC输入寄存器端口地址
MOVX @DPTR,A ;送出数据
INC DPTR ;加一,为DAC寄存器端口地址
MOVX @DPTR,A ;启动转换
LCALL DELAY ;形成方波底宽
DJNZ B,LOOP1 ;若未达到下限值,转到LOOP1,;否则下移
DJNZ R4,UP00 ;若未达到循环次数,转到UP00,否则下移
SJMP START ;转移
DELAY:MOV R0,#40H ;延时程序
D1:NOP
NOP
DJNZ R0,D1
RET
锯齿波子程序:
JUCH3:MOV A,#00H ;初值送给累加器A
LOOP2:MOV B,#0FFH ;下限值
LOOP3:MOV DPTR,#PORT ;DAC输入寄存器端口地址
MOVX @DPTR,A ;送出数据
INC DPTR ;加一,为DAC寄存器端口地址
MOVX @DPTR,A ;启动转换
INC A ;数据加一
CJNE A,#0FFH,LOOP3 ;使锯齿波的下限达到下限值
DJNZ B,LOOP3 ;若A未达到下限值,转到LOOP3,否则下移
LJMP START ;转移
正弦波子程序:
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 ;送出数据
INC DPTR ;加一,为DAC寄存器端口地址
MOVX @DPTR,A ;启动转换
MOV DPH,R3 ;R3送给数据指针高8位
MOV DPL,R5 ;R5送给数据指针低8位
INC DPTR ;波形位移增量
DJNZ R4,LP2 ;达到波形设定周期
DJNZ B,LP1 ;达到波形设定频率
LJMP START ;转移
DATRO:DB 80H,83H,86H,89H,8DH,90H,93H,96H ;正弦波数据
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
复制代码
完整的Word格式文档51黑下载地址:
单片机原理发生器课程设计.doc
(256 KB, 下载次数: 45)
2018-7-4 16:24 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1