单片机实验-DA实验

一、实验目的

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再构成了一个循环,及每个波形图出现两个周期。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

进化三部曲,从互联网大脑发育看产业互联网的未来

摘要&#xff1a;从互联网的左右大脑发育看&#xff0c;产业互联网可以看做互联网的下半场&#xff0c;但从互联网大脑的长远发育看&#xff0c;互联网依然处于大脑尚未发育成熟的婴儿时期&#xff0c;未来还需要漫长的时间发育。参考互联网右大脑的发育历程&#xff0c;我们判…

pycharm远程连接服务器(docker)调试+ssh连接多次报错

一&#xff0c;登入服务器建docker nvidia-docker run -it -v ~/workspace/:/workspace -w /workspace/ --namefzh_tf --shm-size 8G -p 1111:22 -p 1112:6006 -p 1113:8888 tensorflow/tensorflow:1.4.0-devel-gpu bash 二&#xff0c;开ssh服务 apt-get update apt-get i…

Verilog HDL语言设计4个独立的非门

代码&#xff1a; module yanxu11(in,out); input wire[3:0] in; output reg[3:0] out; always (in) begin out[0]~in[0]; out[1]~in[1]; out[2]~in[2]; out[3]~in[3]; end endmodule timescale 1ns/1ns module test(); reg[3:0] in; wire[3:0] out; yanxu11 U(…

深度长文:表面繁荣之下,人工智能的发展已陷入困境

来源&#xff1a;36氪编辑&#xff1a;郝鹏程摘要&#xff1a;《连线》杂志在其最近发布的12月刊上&#xff0c;以封面故事的形式报道了人工智能的发展状况。现在&#xff0c;深度学习面临着无法进行推理的困境&#xff0c;这也就意味着&#xff0c;它无法让机器具备像人一样的…

Verilog HDL语言设计一个比较电路

设计一个比较电路&#xff0c;当输入的一位8421BCD码大于4时&#xff0c;输出为1&#xff0c;否则为0&#xff0c;进行功能仿真&#xff0c;查看仿真结果&#xff0c;将Verilog代码和仿真波形图整理入实验报告。 代码&#xff1a; module yanxu12(in,out); input wire[3:0] i…

交叉熵

1.公式 用sigmoid推导 上式做一下转换&#xff1a; y 视为类后验概率 p(y 1 | x)&#xff0c;则上式可以写为&#xff1a; 则有&#xff1a; 将上式进行简单综合&#xff0c;可写成如下形式&#xff1a; 写成对数形式就是我们熟知的交叉熵损失函数了&#xff0c;这也是交叉熵…

第5章 散列

我们在第4章讨论了查找树ADT&#xff0c;它允许对一组元素进行各种操作。本章讨论散列表(hash table)ADT&#xff0c;不过它只支持二叉查找树所允许的一部分操作。 散列表的实现常常叫作散列(hashing)。散列是一种以常数平均时间执行插入、删除和查找的技术。但是&#xff0c;那…

谷歌自动驾驶是个大坑,还好中国在构建自己的智能驾驶大系统

来源&#xff1a;张国斌中国有堪称全球最复杂的路况&#xff0c;例如上图是去年投入使用的重庆黄桷湾立交桥上下共5层&#xff0c;共20条匝道&#xff0c;堪称中国最复杂立交桥之最&#xff0c;据称走错一个路口要在这里一日游&#xff0c;这样的立交桥如果让谷歌无人驾驶车上去…

Verilog HDL语言设计计数器+加法器

完成课本例题4.12&#xff0c;进行综合和仿真&#xff08;包括功能仿真和时序仿真&#xff09;&#xff0c;查看仿真结果&#xff0c;将Verilog代码和仿真波形图整理入实验报告。 功能文件&#xff1a; module shiyan1(out,reset,clk); input reset,clk; output reg[3:0] ou…

自动驾驶寒冬与否,关键看“芯”

来源&#xff1a;智车科技摘要&#xff1a;2018年&#xff0c;全世界瞩目的半导体行业大事件无疑是高通收购恩智浦了。虽然&#xff0c;最终这笔收购案以失败结尾&#xff0c;但高通的收购恩智浦的意图就是出自于拓展汽车芯片市场。智能汽车芯片的重要性也得以突显。前不久&…

如何知道自己的CPU支持SLAT

因为WP8 SDK发布&#xff0c;很多WP8的开发者们也开始陆续安装WP8的SDK的&#xff0c;然而安装WP8的SDK有很多软件和硬件的要求&#xff0c;其中有一个就是——要求CPU支持二级地址转换&#xff08;SLAT&#xff09;&#xff0c;如果CPU不支持二级地址转换的话&#xff0c;在电…

opencv基础知识及其一些例子

opencv官网 一.插值法 1.最近邻插值 上图可看出f(p)f(Q11),缺点可能出现明显的块状。 2.线性插值 3.双线性插值 通过线性插值确定R1和R2,最终在确定P 二.cv2.putText 图片添加文字 import cv2 img cv2.imread(caijian.jpg) font cv2.FONT_HERSHEY_SIMPLEXimgzi cv2.putT…

Verilog HDL语言设计实现过程赋值+译码器

完成课本例题6.11、6.12&#xff0c;进行综合和仿真&#xff08;功能仿真&#xff09;&#xff0c;查看综合和仿真结果&#xff0c;整理入实验报告。 6.11 module shiyan21(in,clk,out1,out2); input clk,in; output out1,out2; reg out1,out2; always (posedge clk) beg…

【工业4.0】深度报告:独家解密工业4.0真正图谋?跟踪软件帝国的十年

来源&#xff1a;知识自动化要理解工业4.0&#xff0c;就避不开对西门子的研究&#xff1b;而要看懂西门子&#xff0c;不要去要看它的硬件&#xff0c;而要去看它的软件。数字化工厂只是水中花&#xff0c;真正的花朵不在你眼前&#xff0c;而在你身头。德国安贝格和成都的数字…

检测系列--RCNN系列

一.RCNN 框架&#xff1a; 1.selective search 2,区域预处理&#xff0c;尺寸缩放到227227 3.利用Alexnet(去掉最后分类层&#xff0c;4096维向量)&#xff0c;做特征提取&#xff0c;一个物体一个SVM分类&#xff0c;(当时认为SVM比softmax分类好)bounding box回归 4.正负样本…

Verilog HDL语言设计实现D触发器+计数器

分别采用结构描述和行为描述方式设计一个基本的D触发器&#xff0c;在此基础上&#xff0c;采用结构描述的方式&#xff0c;用8个D触发器构成一个8位移位寄存器。进行功能仿真&#xff0c;查看结果&#xff0c;把上述内容整理到实验报告。&#xff08;1&#xff09;行为描述:单…

2018年全球十大新兴技术:细胞植入人体、营养人造肉……你想试试吗?

来源&#xff1a;光明日报摘要&#xff1a;在不久的将来&#xff0c;技术革新将如何改变我们的生活&#xff1f;人工智能将大幅提升新药物和新材料的开发速度&#xff1b;新型诊断工具将打造更先进的个性化医疗&#xff1b;如果你生病了&#xff0c;医生将可以在你体内植入活细…

检测系列--YOLO系列

开头语&#xff1a;RCNN系列&#xff0c;需要区域候选框&#xff0c;即便最后是多任务损失函数&#xff0c;但回归和分类各是一块是很明显的&#xff0c;而yolo要把分类问题转换成回归&#xff0c;这样的話就全是回归。 一.yolo v1 1,介绍&#xff0c;此时输入size要一致448*…

Verilog HDL语言实现ROM、RAM+有限状态机

利用MegaWizard实现创建RAM和ROM。&#xff08;1&#xff09;建立1个32单元8bit的RAM&#xff0c;并将0-31填入该RAM&#xff1b;&#xff08;2&#xff09;建立1个32单元8bit的ROM&#xff0c;建立.mif文件填入数据&#xff0c;并读出来显示。 (1)、RAM 功能代码: module sh…

重磅!亚马逊将在2019年全面弃用Oracle数据库

来源&#xff1a;AI 前线摘要&#xff1a;11 月 29 日&#xff0c;AI 前线获悉&#xff0c;亚马逊 AWS 首席执行官 Andy Jassy 在正在美国拉斯维加斯召开的 AWS re&#xff1a;Invent 2018 中表示&#xff1a;到 2019 年底&#xff0c;亚马逊将全面放弃使用 Oracle 数据库&…