- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
EDA实验报告 之
实验九 D/A转换实验
1、实验目的
了解D/A转换的基本原理。
了解D/A转换芯片0832的性能及编程方法。
了解单片机系统中扩展D/A转换的基本方法。
2、实验要求:
利用DAC0832,编制程序产生锯齿波、三角波、正弦波。三种波轮流显示,用示波器观看。
3、实验说明
D/A转换是把数字量转换成模拟量的变换,实验台上D/A电路输出的是模拟电压信号。要实现实验要求,比较简单的方法是产生三个波形的表格,然后通过查表来实现波形显示。
产生锯齿波和三角波的表格只需由数字量的增减来控制,同时要注意三角波要分段来产生。要产生正弦波,较简单的方法是造一张正弦数字量表。即查函数表得到的值转换成十六进制数填表。
D/A转换取值范围为一个周期,采样点越多,精度越高些。本例采用的采样点为256点/周期。
8位D/A转换器的输入数据与输出电压的关系为U(0∽-5V)=Uref/256×N
U(-5V∽+5V)=2·Uref/256×N-5V (这里Uref为+5V)
4、原理图及连线
连线:见WAVE6000 帮助\LAB6000图示帮助
5、实验内容
使用仪器、仪表,开发平台型号
本实验用到了WAVE6000软件平台,电脑一台,LAB6000实验箱,示波器,若干连线,串行数据线。
性能指标、技术要求、思路方案、流程图
性能指标、技术要求见实验目的和实验要求。
思路方案:利用一个字节恰好能表示的数的范围:0—255,共256个,把一个周期的采样点数设置为256,在巧妙地利用INC,DJNZ,MOVX@DPTR,A等指令循环的产生锯齿波和三角波。
流程图:(见下页)
初始输出数据个数计数器
初始输出数据个
数计数器R3=0,初始输出地址DPTR=8000H,
初始数据A=0
初始锯齿波和三
角波计数器:R0=40R1=20
将A中内容送到
输出地址,A++数据计数器减一(延时)
否
数据计数器为
0?
否
是
锯齿波计数器减
一
锯齿波个数计
数器为0?
是
将A中内容送到输出地址,A++
(延时)
数据计数器减一
否
是
数据计数器为
0?
重置A=254
R3减一
否
将A中内容送到
输出地址,A--(延时)
数据计数器减一
否
数据计数器为
0?
是
三角波个数计
数器为0?
备注:
框图可能看起来不是很清晰,因为实验中考虑到了0-1=255这个特性,所以要自己运行程序才能深刻体会它的妙处所在。
另外,此程序为产生周期的波形,故没有结束标志。
源程序(就这个实验而言,延时是没有必要的。考虑到程序的完整性和健壮性,在此也给出了延迟的代码:红色部分)
ORGLJMPORG
MAIN:
MOVMOVCLRA
LOOP:
0000HMAIN0030H
R3,#00H ;输出0-255共256个数的计数器,初始值为0DPTR,#8000H;DA转换输入的数字量的地址
MOV
R0,#40
;锯齿波个数计数器
MOV
R1,#20
;三角波个数计数器,两者的2倍关系是为了输出方便观察
JUCHI:
MOVX
@DPTR,A
;从零开始,显示0--255
INC
A
LCALL
DELAY
;调用延时子程序
DJNZ
R3,JUCHI
;减一后变成255,再减到0结束跳转总共是显示了256个数
据,恰好.此时A也恰好变为0了
DJNZ R0,JUCHI ;连续显示40个锯齿波
;上面完后R0=R3=A=0
SANJIAO:ASCEND:
MOVXINCA
@DPTR,A ;从零开始,显示0--255,三角波上升部分
LCALL DELAY ;调用延时子程序
DJNZ R3,ASCEND ;减一后变成255,再减到0结束跳转总共是显示了256个数据,恰好.此时A也恰好变为0了
;上面完后R0=R3=A=0
MOV A,#254 ;开始三角波的下降部分DEC R3 ;R3=0FFH
DESCEND:
MOVX
@DPTR,A
;从254开始,显示254--0,三角波下降部分
DEC
A
LCALL
DELAY
;调用延时子程序
DJNZ
R3,DESCEND
;
;上面完后R3=A=0
DJNZ
R1,SANJIAO
;连续显示20个三角波
;上面完后R1=R3=A=0
JMPLOOPDELAY:
;不停的循环输出两种波形
MOV
R6,#0FFH
;内层循环
MOV
R7,#01H
;外层循环
DELAYLOOP:
DJNZ
R6,DELAYLOOP
;一个比较好的地方,R6减为0后再减则变成255
DJNZ
RET
R7,DELAYLOOP
实验步骤,完成情况
在W
文档评论(0)