手机版

数模转换器DAC0832的应用

发布时间:2024-11-17   来源:未知    
字号:

ATC89C51 仿真 数模转换器DAC0832

实训报告十一

实训目的:

通过DAC0832作为D/A转换器,在虚拟显示正弦波或三角波,从而了解DAC0832的工作方式,把数字量转化为模拟量,学会利用c语言编程实现输出正弦波、三角波等波形。 实训原理图:

ATC89C51 仿真 数模转换器DAC0832

实训步骤:

1. 在ptoteus平台找出所需的元器件

2. 理解该实验的原理,按照原理图画出仿真图;

3. 根据实验要求写出如下程序:

#include <reg51.H>

#include<absacc.h>

#define DAC0832 XBYTE[0X12ef]

unsigned char sindot[64]=

{0x80,0x8c,0x98,0xa5,0xb0,0xbc,0xc7,0xd1,

0xda,0xe2,0xea,0xf0,0xf6,0xfa,0xfd,0xff,

0xff,0xff,0xfd,0xfa,0xf6,0xf0,0xea,0xe3,

0xda,0xd1,0xc7,0xbc,0xb1,0xa5,0x99,0x8c,

0x80,0x73,0x67,0x5b,0x4f,0x43,0x39,0x2e,

0x25,0x1d,0x15,0xf,0x9,0x5,0x2,0x0,0x0,

0x0,0x2,0x5,0x9,0xe,0x15,0x1c,0x25,0x2e,

0x38,0x43,0x4e,0x5a,0x66,0x73};//正弦代码表

sbit K1=P2^7;//控制开关,

void delay(unsigned char m)//延时

{ unsigned char i;

for(i=0;i<m;i++);

}

void main(void)

{unsigned char k;

while(1)

ATC89C51 仿真 数模转换器DAC0832

{ if (K1==0)//K1为1时,输出三角波,K1为0时,输出为正弦波

{for(k=0;k<64;)

{ DAC0832=sindot[k];//取正弦代码并输出

k++;

delay(10);

}

}

else

{ for(k=0;k<255;)

{ DAC0832=k;

k+=5;

delay(1);

}

for(k=255;k>0;)

{ DAC0832=k;

k-=5;

delay(1);

}

}

}

}

总结:

经过此次的实验,通过DAC0832作为D/A转换器,在虚拟显示正弦波或三角波,深刻地理解了DAC0832的结构以及工作方式。在C语言的设计上进一步理解了D/A的工作时钟模式从而进行模拟数据采样,对三角波、正弦波的设计方式有深刻地体会。

数模转换器DAC0832的应用.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)