新浪博客

实验14   D/A转换实验

2013-05-28 10:19阅读:
一、实验目的:
1. 了解D/A转换的基本原理。
1. 了解D/A转换芯片0832的性能及编程方法。
2. 了解单片机系统中扩展D/A转换的基本方法。
二、实验设备:
CPU挂箱、8031CPU模块
三、实验内容:
利用DAC0832,编制程序产生方波、锯齿波、三角波。三种波显示根据P1口的低三位确定,P1.0=0时产生方波,p1.1=0时产生锯齿波,P1.2=0时产生三角波
四、实验原理:
D/A转换是把数字量转换成模拟量的变换,从D/A输出的是模拟电压信号。产生方波只需要输出交替输出0和1并保持一段时间即可,产生锯齿波和三角波只需由A存放的数字量的增减来控。取值范围为一个周期,采样点越多,精度就越高。
本实验中,输入寄存器占偶地址端口,DAC寄存器占较高的奇地址端口。两个寄存器均对数据独立进行锁存。因而要把一个数据通过0832输出,要经两次锁存。典型程序段如下:
MOV DPTR,#PORT
MOV A,#DATA
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
其中第二次I/O写是一个虚拟写过程,其目的只是产生一个WR信号。启动D/A。
五、实验介绍
通过语句
MOV A,P1
ANL A,#01H
JZ PRG1
MOV A,P1
ANL A,#02H
JZ PRG2
MOV A,P1
ANL A,#04H
JZ PRG3
不断检测P1.0、P1.1、P1.2口是否为0,从而跳转到不同的子程序处。其实三个口是有一定的优先级的,优先级顺序为P1.0>P1.1>P1.2。
波显示子程序: PRG1 设置B=0FFH作为计时,输出0和1的计时时间为B,每输出一 个周期判定一次P1的低三位是否有新的输入
锯齿波显示子程序:PRG2 初始A=00H,子循环一次A+1,直至A=0FFH,完成一个周期 的输出,每输出一个周期判定一次P1的低三位是否有新的输
三角波显示子程序:PRG3 通过A=00H每次加1,直到A=0FFH,输出三角波前半周期,然 后每次A减1,直至A回到00H,输出三角波后半周期,此刻 完成一个周期, 每输出一个周期判定一次P1的低三位是否有 新的输入
注:各个子程序未设置定时时间,即是如果输入状态没有改变,系统会一直输出。

六、实验源程序
PORT EQU 0CFA0H ;CSO的地址
CSEG AT 4000H
LJMP START
CSEG AT 4100H
START:MOV A,#00H
MOV DPTR,#PORT+1
L1: PUSH ACC
MOV A,P1
ANL A,#01H ;第八位不变,其他置零
JZ PRG1 ;A=0,即是第八位为0,输出方波
MOV A,P1
ANL A,#02H ;第七位不变,其他位置零
JZ PRG2 ;A=0,即是第七位为0,输出锯齿波
MOV A,P1
ANL A,#04H ;第六位不变,其他位置零
JZ PRG3 ;A=0,即是第六位为0,输出三角波
POP ACC
JMP L1

PRG1: POP ACC ;方波产生子程序
LOOP0: MOV B,#0FFH
LOOP1: MOV DPTR,#PORT ;DAC输入寄存器端口地址
MOVX @DPTR,A ;送出数据
INC DPTR ;加一,DAC寄存器端口地址
MOVX @DPTR,A ;启动转换
DJNZ B,LOOP1 ;计数值B减到00H了吗?没有则继续
CPL A ;对输出值A取反
JMP L1 ;循环一个周期后跳转至L1,继续判定
RET

PRG2: POP ACC ;锯齿波产生子程序
LOOP2: MOV DPTR,#PORT ;DAC输入寄存器端口地址
MOVX @DPTR,A ;送出数据
INC DPTR ;加一,DAC寄存器端口地址
MOVX @DPTR,A ;启动转换
INC A ;数据加一
CJNE A,#0FFH,LOOP2;输出是否发到最大值,没有继续+1
MOV A,#00H ;达到最大值,给输出赋值00H
JMP L1 ;循环一个周期后跳转至L1,继续判定
RET

PRG3: POP ACC ;三角波产生子程序
LOOP3: MOV DPTR,#PORT ;LP1循环产生三角波前半周期
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
INC A
CJNE A,#0FFH,LOOP3 ;数据为FFH?不等则转LOOP3
MOV B,#0FFH ;通过BA赋初值,不用也,因为此时A已经等于0FFH
LOOP4: MOV DPTR,#PORT ;LP2循环产生三角波后半周期
MOV A,B
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
DJNZ B,LOOP4
JMP L1 ;循环一个周期后跳转至L1,继续判定
RET
END




备注:8051实验

我的更多文章

下载客户端阅读体验更佳

APP专享