实验报告 实验九 DA转换实验.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地湖北
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档