一、实验目的

1、了解 D/A 转换的基本原理。

2、了解 D/A 转换芯片 0832 的性能及编程方法。

3、了解单片机系统中扩展 D/A 转换的基本方法。

二.实验设备和器件

1.KEIL软件

2.实验箱

三.实验内容

利用 DAC0832,编制程序产生锯齿波、三角波、正弦波。三种波轮流显示,用示波器观看。

  • 电路图及连线:

连线

连线孔1

连线孔2

1

DA_CS

CS2

2

-5V-+5V

电压表测量端

3

电压表地端

实验箱地

  • 代码:

#include<reg51.h>

#include<absacc.h>

#define uchar unsigned char

#define uint unsigned int

#define DAC0832 XBYTE[0x8000]

uchar sindata[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,0xba,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};

void delay(uchar m)//延时函数

{uchar i;for(i=0;i<m;i++) ;}

void juchi()   //锯齿函数

{uchar i1;

for (i1=0;i1<0xff;i1++)  DAC0832=i1;

i1=0;}

void sanjiao() //三角函数

{ uchar i2;

for(i2=0;i2<0xff;i2++)  DAC0832=i2;

for(i2=0xff;i2>0;i2--)  DAC0832=i2;

i2=0;}

void zhengxian() //正弦函数

{uchar k;

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

{DAC0832=sindata[k];delay(1);}}

void main()    //主函数

{uchar j=2;

while(1)

{

while(j--)

{juchi();}j=2;

while(j--)

{sanjiao();}j=2;

while(j--)

{zhengxian();}j=2;}}

  • 波形图:

  • 分析:
  1. 该实验中,运用DA转换来产生不同的波形,本实验选取的双极性电压(-5V~+5v)

8 位 D/A 转换器的输入数据与输出电压的关系为

U(-5V ~ +5V)=2·Uref/256×N-5V     (这里 Uref 为+5V)

2、本实验DA选择模块地址控制端口DA_CS与实验箱上的CS0相连,根据查实验箱相关资料可知,CS0提供的地址为8000H-8fffH,本实验选取的8000H作为地址

3、第一部分的实验图在本实验中右下角的部分不需要

4、锯齿的形成原理则是输入的数字量从0000到ffff,一直循环,可形成无数个锯齿波

三角的形成原理则是输入的数字量从0000到ffff,,再从ffff到0000,一直循环,可形成无数个三角波

正弦的形成原理则是造一张正弦数字量表。即查函数表得到的值转换成十六进制数填表。

5、在本实验形成锯齿波时,用for(i1=0;i1<=0xff;i1++)这条语句时,这个循环跳不出来,会一直在示波器上一直显示锯齿波,改为for(i1=0;i1<0xff;i1++)之后,循环则跳出

6、本实验中,我们把每个波形的形成写为一个函数,然后在主函数中调用这三个函数,为防止波形转换的过快,在主函数中中,while再构成了一个循环,及每个波形图出现两个周期。

单片机实验-DA实验相关推荐

  1. 51单片机Proteus仿真+Keil工程-实验7-单片机AD和DA实验

    实验7-单片机AD和DA实验   之前做的一次实验,51单片机AD和DA实验,数模使用芯片0832,模数转换使用0809.在做实验时曾经遇到一个问题,模数转换0809是不是只能输出0~ 5V,能不能输 ...

  2. 定时器计数器实验C语言程序,单片机定时器计数器实验报告.docx

    单片机定时器计数器实验报告 单片机定时器计数器实验报告 篇一:单片机计数器实验报告 计数器实验报告 ㈠ 实验目的 1. 学习单片机内部定时/计数器的使用和编程方法: 2. 进一步掌握中断处理程序的编程 ...

  3. 单片机c语言实验,单片机实验C语言编程.doc

    单片机实验C语言编程.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文档所 ...

  4. c语言跑马灯实验报告,单片机跑马灯实验

    一.实验目的 1. 熟悉HNIST-2型单片机系统相关硬件电路,程序下载方法: 2. 掌握采用汇编语言与C语言开发单片机系统的程序结构: 3. 掌握51系列单片机通用I/O口的使用. 二.实验前准备 ...

  5. 单片机c语言数码显示实验报告,单片机动态显示技术实验报告.doc

    桂林电子科技大学 实验报告 开 课 单 位 适用年级.专业 机械 课 程 序 号 课 程 代 码 实 验 名 称 <动态显示技术> 动态显示技术实验报告 一.实验目的 1.掌握动态显示技术 ...

  6. 并行DA实验c语言程序,哈工大C语言DA实验报告.doc

    哈工大C语言DA实验报告 哈尔滨工业大学(威海)软件学院 C程序设计 实验报告 编号: 姓名院系软件学院学号任课教师指导教师于水实验地点实验时间实验名称1.国王应该给大臣多少麦子:2用英文字母组成一个 ...

  7. 单片机实训简易计算机,单片机简易计算器实验报告.doc

    单片机简易计算器实验报告 单片机简易计算器实验报告 单片机原理及应用课程设计报告-简易计算器 <单片机原理>课 程课程设计 题 目简易计算器 院 (系) 信息工程学院 专 业 班 级 计算 ...

  8. 51单片机的仿真实验——1602显示屏显示万年历与温度

    实验内容: 1:数字钟设计 2:基于DS18B20的温度测量模块设计 问题描述: 之前笔者写过一篇用数码管显示日历与温度的实验记录(51单片机的仿真实验--数码管显示日历与温度).但是数码管在仿真软件 ...

  9. 模电数电单片机综合开发系统实验装置QY-MS535K

    一.设备简介 QY-MS535K模电数电单片机综合开发系统实验装置集实验和开发为一体,容51/88/196于一身,增添了数字电路.模拟电子技术实验.这一崭新的系统实现了专业基础课(模拟.数字电路).专 ...

最新文章

  1. 多线程编程学习笔记——async和await(三)
  2. LoaderManager使用详解(三)---实现Loaders
  3. 计算机图形学多边形填充代码_零基础学计算机图形学太难?或许你缺的只是一本好书...
  4. node 原生实现服务端 websocket
  5. Ubuntu搭建联盟链,实现节点之间数据同步
  6. 7.22 C++自学笔记
  7. day12【过渡】SpringCloud
  8. 禁用并删除 Wordpress 文章修订(revision)记录
  9. 第一篇 Windows 8 开发Windows Metro style app环境配置
  10. JS等比例缩小图片尺寸
  11. 微信机器人框架【Python】
  12. 双线性映射matlab,[Matlab]双线性变换法设计数字带通滤波器
  13. C语言位运算的取反(~)真实原理解析
  14. WPF监控云台控制组件实现简单方案
  15. 苹果11相机权限开启不了_iOS11 访问相册、相机权限,居然变化了,巨坑啊........
  16. 消费者行为分析包含了哪些内容?
  17. 【微信小程序】微信小程序获取用户信息为“微信用户”解决方案--学习微信小程序之路06
  18. 树美滑块验证——滑块识别、获取和提交参数一条龙分析和调用
  19. 阿里云发送SMTP邮件失败
  20. 一般的计算机辐射有危害吗,电脑辐射有什么危害怎么防止 电脑辐射的范围是多少...

热门文章

  1. 6 年大厂面试官,谈谈我对算法岗面试的一些看法
  2. 谷歌 | 多任务学习,如何挑选有效的辅助任务?只需一个公式!
  3. APPKIT打造稳定、灵活、高效的运营配置平台
  4. 技术动态 | 知识图谱的策展
  5. 机器学习常用的算法整理:线性回归、逻辑回归、贝叶斯分类、支持向量机、K-means聚类、决策树、随机森林以及常用的应用场景整理
  6. 基于PaddleRec的用户点击率预测
  7. 【LeetCode】3月28日打卡-Day13
  8. 【大数据学习-hadoop1】大数据如何处理
  9. Thinkphp js、css压缩类minify
  10. 基于哈夫曼编码完成的文件压缩及解压