实验十——数模转换器
单片机数模转换器DAC0832设计实验报告(附程序)

实验名称:数模转换器DAC0832设计实验学生姓名:xx 学号:xx 班级:测控xx班时间:课程名称:微机机原理及应用教师:成绩:一、实验目的1)了解DAC0832芯片引脚、内部结构及工作原理;2)掌握应用单片机I/O端口控制DAC0832实现数模转换的方法;二、实验内容1. 通过单片机I/O端口控制DAC0832实现数模转换,控制方式采用单缓冲方式,通过按键TRI/SIN选择输出,分别产生锯齿波、方波、正弦波。
1)绘制DAC0832与单片机接口电路原理图;2)参考PPT课件内容,设计程序,实现信号选择输出功能;2. 扩展功能:增加按键,通过按键控制调节输出信号的频率变化。
接口电路图设计参考下图所示:三、设计参考:正弦信号数据表:uchar code sine_tab[256]={0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0 xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6, 0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4, 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5, 0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8, 0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xa e,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80, 0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x 51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29 ,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16 ,0x15,0x13,0x11,0x10,0x0e,0x0d,0 x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02 ,0x02,0x03,0x04,0x05,0x0 6,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15 ,0x16,0x18,0x1a,0x1c, 0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x 43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6 f,0x72,0x76,0x79,0x7c,0x80};四.实验报告①实现调频功能的中断程序:void int0() interrupt 0//外部中断0,用以控制调节延时程序次数,达到调节频率的作用{counter++; //外部中断0触发一次,延时程序调用次数加1}②延时程序:void delay(){int i;for(i=0;i<10;i++){}} //延时子程序③锯齿波程序:#include<reg51.h>sbit MR=P2^7;void main (void){int num;int j;MR=0;while(1){for(num =0; num <=255; num++){ P1=num;for(j=0;j<counter;j++)delay(); //调用延时子程序}}}运行截图:调频前:调频后:④正弦波程序#include<reg51.h>sbit MR=P2^7;void main (void){unsigned char code sine_tab[256]= //正弦波字表{0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0 xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6, 0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4, 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5, 0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8, 0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xa e,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80, 0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x 51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29 ,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0 x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x0 6,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c, 0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x 43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80};int num;int j;MR=0;while(1){for(num =0; num <=255; num++){ P1=sine_tab[num];for(j=0;j<counter;j++)delay(); //调用延时子程序}}}运行截图:调频前:调频后:⑤方波程序:#include<reg51.h>sbit MR=P2^7;void main (void){ int num;int j;MR=0;while(1){int b;for(num=0;num<=255;b++){if(num<128){ P1=0x00;for(j=0;j<counter;j++)//当counter小于128时,P1输出0x00对应低电平delay();}else{P1=0xFF;//当num大于或等于128时,P1输出0xFF对应高电平for(j=0;j<counter;j++)delay();}}}调频前:调频后:主程序#include<reg51.h>sbit MR=P2^7;sbit P2_0=P2^0;sbit P2_1=P2^1;int counter=0;//设置延时程序次数变量counter,调节频率unsigned char code sine_tab[256]= //正弦波字表{0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0 xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6, 0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4, 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5, 0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8, 0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xa e,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0 x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x5 1,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29, 0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x 0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x0 0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06, 0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x 1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43 ,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0 x72,0x76,0x79,0x7c,0x80}; //正弦转换字符void delay(){int i;for(i=0;i<10;i++){}}//延时子程序void int0() interrupt 0//外部中断0,用以控制调节延时程序次数,达到调节频率的作用{counter++;//外部中断0触发一次,延时程序调用次数加1}void main(){int num;int j;EA=1;//中断总允许使能EX0=1;//外部中断0使能IT0=1;//外部中断0下降沿触发MR=0;//P2^7输出低电平,芯片正常工作while(1){if(P2_0==0&&P2_1==1) //P2_1为高电平,P2_0为低电平输出锯齿波{for(num=0;num<256;num++){P1=num; //P1直接输出numfor(j=0;j<counter;j++)delay(); //调用延时子程序}}if(P2_0==1&&P2_1==0)//P2_1为低电平,P2_0为高电平输出正弦波{P1=sine_tab[num];//P1端口输出正弦波字符数组for(j=0;j<counter;j++)delay(); //调用延时子程序}}if((P2_0==0&&P2_1==0)||(P2_0==1&&P2_1==1))//P2_1为低电平P2_0为低电平以及P2_1为高电平P2_0为高电平时输出矩形波for(num=0;num<256;num++){if(num<128)//当num小于128时,P1输出0x00对应低电平{P1=0x00;for(j=0;j<counter;j++)delay();}else{P1=0xFF;//当num大于或等于128时,P1输出0xFF对应低电平for(j=0;j<counter;j++)delay();}}}}五.总结在该实验的设计过程中,首先单独写出锯齿波、正弦波以及方波的程序,并写出延时程序以及外部中断0程序。
数模转换和模数转换实验

③ I0 是电流输出端,MC3408L 以负电流的形式输出,I0 与输入数字信号的 关系满足方程
I0=-Vr/Rr*(A1/2+A2/4+A3/8+A4/16+A5/32+A6/64+A7/128+A8/256)
114
=பைடு நூலகம்Vr/Rr*ΣAi/2i
(6-1-1)
式中:Ai 是输入数字信号,高电平为“1”,低电平为“0”;Vr 和 Rr 分别是参考 电压和参考电阻的大小。
1
0
0 加计数
为全“0”,则其模拟量输出波形如图 ↑
0
0
0
0 减计数
6-1-4(c)所示。其频率
f=1/(2*2Ntcp)=1/(2N+1tcp)
(6-1-3)
式中 N —— 可逆计数器的位数;
115
tcp—— 时钟周期。 四位二进制可逆计数器 MC14516 的引脚如图 6-1-5 所示,表 6-1-1 是其功能。 3. 实验电路
图中 R1 和稳压管 2CW11 构成保护电路,使 E 点电压小于等于 2CW11 的稳 定电压。因而只需选择稳压管的稳定电压小于 TTL 输入端允许的最大逻辑高电 平,就能保证 G1 门不会因输入电压太高而损坏。
图中 74LS248 和 LED 数码管是显示模拟量转换成数字量后的数码,便于实验 观察。
输入数字量之间的关系,即
6-1-2 式。
① 按图 6-1-3 连接电路(每个
电阻、参考电压及电源电压均需测
量),运放 LM324 的 Vcc 接 5V,VEE 接地。
② 按表 6-1-2 输入数字量,用
数字电压表测量输出电压 UO,并与 按式 6-1-2 计算的理论值进行比较,
数模转换电路测量实验报告

数模转换电路测量一、实验目的1、熟悉D / A转换器的基本工作原理;2、加深岁数模转换的理解;3、学会在实验中处理问题。
二、实验仪器数字万用表、模拟电路实验箱(AEDK-AEC)、导线、电阻、面包板等。
三、实验概述1、实验原理所谓数模(D / A)转换,就是把数字量信号转换成模拟量信号,且输出电压与输入的数字量成一定的比例关系。
图47为D / A 转换器的原理图,它是由恒流源(或恒压源)、模拟开关、以及数字量代码所控制的电阻网络、运放等组成的四位D/ A转换器。
四个开关S0 ~ S3由各位代码控制,若“S”代码为1,则意味着接VREF ,代码“S”= 0,则意味着接地。
由于运放的输出值为V0= -I∑Rf ,而I∑为I0、I1、I2、I3的和,而I0 ~ I3的值分别为(“S”代码全为1):I0 =,I1 =,I2 =,I3 =若选R0 =,R1 =,R2 =,R3 =则I0 ==*2^0 ,I1 =*21 ,I2 =*2^2 ,I3 =*2^3若开关S0 ~ S3不全合上,则“S”代码有些为0,有些为1(设4位“S”代码为D3D2DlD0),则I∑ =D3I3 + D2I2 + D l I l + D0I0 =(D323 + D222 + D121 + D020)= B所以,V0 = -R f B,B为二进制数,即模拟电压输出正比于输入数字量B ,从而实现了数字量的转换。
2、电路图:3、实验步骤1)按照电路图在面包板上连接电路;U0UR2)将UR接电压为1V的直流电源,将开关d0、d1、d2、d3依次以二进制个、十、百、千位调节出0~15的表示,低电平(接地)代表0,高电平(UR)代表1;3)测量运放器放大后的电压大小,并且记入下表:十进制0 1 2 3 4 5 6 7二进制0000 0001 0010 0011 0100 0101 0110 0111 电压/V 0.005 0.199 0.381 0.574 0.729 0.915 1.078 1.254 十进制8 9 10 11 12 13 14 15二进制1000 1001 1010 1011 1100 1101 1110 1111 电压/V 1.333 1.522 1.652 1.847 1.949 2.121 2.267 2.422四、实验数据分析我们通过预习可以知道实验中输出电压U0应该呈现如图1-1的情况:图1-1而真实实验中数据呈现图1-2情况:图1-2由图1-2可以看出当数字(二进制)增加时,电压呈现等比例增加趋势,即数字模拟基本实现。
数模转换器的工作原理

数模转换器的工作原理数模转换器的工作原理:①数模转换器即数字模拟转换器,负责将二进制数字信号转变为连续变化的模拟信号。
这一过程在音频播放设备、通信系统及测量仪器等领域中至关重要。
例如,在家用音响系统中,CD播放机读取光盘上的数字信息并将其转换成人们可以听到的声音波形。
②转换的核心步骤涉及取样值的解码,即从存储介质或传输通道获取的数字数据被解释为电压或电流水平。
每个取样值代表信号在某个时间点上的强度。
在音乐播放场景下,每个取样点对应于CD音频流中的离散音频片段。
③解码之后,数模转换器执行量化误差修正,以尽可能准确地重建原始模拟波形。
这一阶段可能包含插值滤波器的应用,用以平滑输出信号,消除阶梯效应。
例如,高端音响设备中使用的DAC,会运用复杂的滤波技术来改善音质。
④插值滤波后,信号通过保持电路,该电路将离散的取样值保持一段时间,以便后续放大和处理。
保持期间,电压水平保持恒定,直到下一个取样值到来。
这一过程在视频信号转换中同样关键,确保显示器上的图像平滑过渡。
⑤最终阶段涉及信号放大,以适应后续电路或负载的要求。
放大器将DAC输出的弱电信号增强到所需水平,比如耳机放大器将DAC 输出适配到耳机灵敏度要求。
⑥整个转换流程中,时钟同步至关重要,确保数字信号正确无误地转换为模拟形式。
不精确的时钟会导致抖动,影响转换质量。
专业音频接口设备往往内置高质量晶体振荡器,以减小时钟误差。
⑦在无线通信基站中,数模转换用于将数字调制信号转变为射频信号,供天线发射。
此场景下,转换精度直接影响信号质量和传输距离。
⑧工业自动化领域,传感器采集的数据经由数模转换,控制执行机构动作,如调节阀门开度或电机转速。
这里,转换器的响应速度决定了控制系统实时性。
⑨医疗成像技术中,如超声波扫描仪,数模转换参与形成最终的图像数据。
每次脉冲回波经由转换,叠加处理后构建完整的二维或三维图像。
⑩便携式电子设备中集成的数模转换器,如智能手机和平板电脑中的音频输出模块,需在功耗和性能间找到平衡,以延长电池寿命同时保证良好用户体验。
南昌大学计算机控制实验报告数/模转换实验

南昌大学实验报告学生姓名:学号:专业班级:实验类型:■验证□综合□设计□创新实验日期:实验成绩:实验一数/模转换实验一.实验要求掌握DAC0832芯片的性能、使用方法及对应的硬件电路。
编写程序控制D/A输出的波形,使其输出周期性的三角波。
二.实验说明电路实现见主板模块B1,具体说明请见用户手册。
DAC0832的片选CS0832接00H,观察输出端OUTl(B1部分)产生三角波由数字量的增减来控制,同时要注意三角波要分两段来产生。
三.实验步骤1、接线:此处无需接线。
2、示例程序:见Cpl源文件,程序流程如下图所示。
3、运行虚拟示波器方法:打开LCAACT软件中“设置”一>“实验机”,将其中的程序段地址设为8100,偏移地址0000。
然后选择“设置”一>“环境参数”一>“普通示波”,选择“工具”一>“加载目标文件”,本实验加载C:\AEDK\LCAACT\试验软件\CPI.EXE,然后选择在“工具”栏中“软件示波器”中“普通示波”,点击开始示波器即程序运行。
以后每个实验中的虚拟示波器运行方法同上。
只是加载的程序要根据实验的不同而不同。
如果以后用到该方法,不再赘述。
4、现象:程序执行,用虚拟示波器(CHl)观察输出点OUT(B1开始设置初始电平为0VD/A输出并增<=0FFH?YN数模转换中),可以测量到连续的周期性三角波。
通过实验结果的图片,我们可以知道得出来的三角波的幅值为U=(3.01V+1.95V)=4.96V。
T=1.3s模拟输出来的幅值和我们输入的5V有一定的偏差。
相对误差为(5-4.96)/5=0.8%,因为0832是8为的,所以分辨率为1/256即0.004。
相比较一下本次实验的误差只有0.8%,相当于掉了两个单位的分辨率。
在允许的误差范围之内。
所以本次实验的结果还算是比较成功的。
四、实验小结通过本次实验,我对数模转换的知识理解得更加透彻,以及如何使用DAC0832进行数模转换把数字量转换为模拟量并以三角波形式输出。
数模转换器工作原理

数模转换器工作原理
数模转换器是一种将数字信号转换为模拟信号的电子器件。
它的工作原理包括以下几个关键步骤。
首先,数模转换器接收到一个输入的数字信号。
这个数字信号是以二进制形式表示的,即由一串0和1组成的数列。
接下来,数模转换器将输入的数字信号通过采样和量化过程进行处理。
采样是指以固定的时间间隔对输入信号进行抽样,将每个抽样点的幅值记录下来。
量化是指将每个抽样点的幅值映射到一组离散的模拟信号值之间,以表示输入信号的数值大小。
然后,数模转换器使用一个数字到模拟转换器(DAC)来将
量化后的数字信号转换为模拟信号。
DAC将每个量化的数字
信号值映射到一个相应的模拟信号幅值上,形成一个连续的模拟信号波形。
最后,经过数字到模拟转换的处理,数模转换器通过输出端口将转换后的模拟信号传递给外部电路或设备进行进一步处理或使用。
总结起来,数模转换器的工作原理可以简化为接收数字信号、采样和量化、数字到模拟转换,最终将数字信号转换为模拟信号输出。
这个过程将数字信息转换为连续的模拟波形,使得数字信号可以在模拟电路中进行处理和传输。
微机原理实验报告--数模转换

微机原理实验报告实验题目:数/模转换器DAC0832系部:电子与信息工程系学生姓名:专业班级:学号:指导教师:2013.12.30一. 实验目的1.掌握D/A转换原理;2.熟悉D/A芯片接口设计方法;3.掌握DAC0832芯片的使用方法。
二. 实验设备1.PC微机一台;2.TD-PIT实验装置一台;3.示波器一台。
三. 实验要求用DAC0832设计一个D/A转换接口电路,采用单缓冲工作方式,产生方波、三角波、锯齿波和正弦波。
四.实验原理1.DAC3802的结构及性能(1)输入/输出信号。
D7-D为8位数据输入线;IOUT1为DAC电流输出1,I OUT2为DAC电流输出2,IOUT1和IOUT2之和为一常量;RFB为反馈信号输入端,反馈电阻在芯片内。
(2)控制信号。
ILE为允许输入锁存信号;WR1和WR2分别为锁存输入数据信号和锁存输入寄存器到DAC寄存器的写信号;XFER为传送控制信号;CS为片选信号。
(3)电源。
VCC 为主电源,电压范围为+5V到+15V;VREF为参考输入电压,范围为-10V到+10V。
DAC0832管脚及其内部结构框图2.工作方式外部五个控制信号:ILE,CS,WR1,WR2,XFER连接方式的不同,可工作于多种方式:直通方式,单缓冲方式,双缓冲方式(1)直通方式ILE接高、CS、WR1、WR2、XFER接地,两级寄存器均直通;(2)单缓冲方式两级寄存器一个受控,一个直通;(3)双缓冲方式两级寄存器均受控。
0832为电流输出型D/A ,要得模拟电压,必需外加转换电路(运放)。
五. 实验内容1.硬件电路图:2.软件程序设计(1)产生方波stack segment stack 'stack'dw 32 dup(?)stack endscode segmentbegin proc farassume ss:stack,cs:codepush dssub ax,axpush axMOV DX,0D800H;片选信号输入地址MOV AL,0NEXT:OUT DX,ALMOV DX,0D800HOUT DX,ALLOOP $;延时NOT AL;求反,由高电平转为低电平或有低电平转为高电平 PUSH AX;保护数据MOV AH,11INT 21HCMP AL,0;有按键退出POP AXJZ NEXTretbegin endpcode endsend begin(2)产生三角波stack segment stack 'stack'dw 32 dup(?)stack endsdata segmentdata endscode segmentbegin proc farassume ss:stack,cs:code,ds:datapush dssub ax,axpush axMOV DX,0D800HMOV AL,0NEXT:OUT DX,ALCALL DELAY;调用延时CMP AL,0FFHJNE NEXT;自增至15NEXT1:OUT DX,ALCALL DELAY;调用延时DEC ALCMP AL,0JNE NEXT1PUSH AXMOV AH,11INT 21HCMP AL,0POP AXJZ NEXT;自减至0retbegin endpDELAY PROCPUSH CXMOV CX,10000LOOP $POP CXRETDELAY ENDP;延时子程序code endsend begin(3)产生锯齿波stack segment stack 'stack' dw 32 dup(?)stack endscode segmentbegin proc farassume ss:stack,cs:code push dssub ax,axpush axMOV DX,0D800HMOV AL,0UP:OUT DX,ALINC ALPUSH AX;保护数据MOV AH,11INT 21HCMP AL,0JZ UP;循环从0自增至15retbegin endpcode endsend begin(4)产生正弦波stack segment stack 'stack'dw 32 dup(?)stack endsdata segmentDATA DB7FH,87H,8FH,97H,9FH,0A6H,0AEH,0B5H,0BCH,0C3H,0CAH,0D0H,0D6H,0DCH,0E1H,0E6H,0EBH,0EFH,0F2H,0F6H,0F8H,0FAH,0FCH,0FDH,0FEH,0FFH,0FEH,0FDH,0FCH,0FAH,0F8H,0F6H,0F2H,0EFH,0EBH,0E6H,0E1H,0DCH,0D6H,0D0H,0CAH,0C3H,0BCH,0B5H,0AEH,0A6H,9FH,97H,8FH,87H,7FH,77H,6FH,67H,5FH,58H,50H,49H,42H,3BH,34H,2EH,28H,22H,1DH,18H,13H,0FH,0CH,8H,6H,4H,2H,1H,0,0,0,1H,2H,4H,6H,8H,0CH,0FH,13H,18H,1DH,22H,28H,2EH,34H,38H,42H,49H,50H,58H,5FH,67H,6FH,77H;建表,在正弦波一个周期内均匀采样100个点,用matlab将每点的值转换为相应的波形数字量(该处用16进制数表示)data endscode segmentbegin proc farassume ss:stack,cs:code,ds:datapush dssub ax,axpush axmov ax,datamov ds,axAG:MOV SI,OFFSET DATA;将表DATA放入SI中MOV DX,0D800HMOV BX,0NEXT:MOV AL,BYTE PTR[SI]OUT DX,ALCALL DELAY;调用延时INC BXINC SICMP BX,100JE AGPUSH AX;保护数据MOV AH,11CMP AL,0POP AXJZ NEXT;循环100次将表中的值输出 retbegin endpDELAY PROCPUSH CXMOV CX,10000LOOP $POP CXRETDELAY ENDP;延时子程序code endsend begin六. 实验结果用示波器观测波形,截图如下:1.方波2.三角波3.锯齿波4.正弦波七. 实验总结在本次实验中,首先自己在课外将实验原理充分掌握,提前画好电路图,并思考软件部分的代码核心,进入实验室后,进行电路连接及与软件的连调。
实验十六、数模转换器

实验目的: 一、 实验目的: 1.熟悉D/A转换器的基本工作原理。 熟悉D/A转换器的基本工作原理。 D/A转换器的基本工作原理 掌握D/A转换集成芯片DAC 0832的性能及其 D/A转换集成芯片 2 . 掌握 D/A 转换集成芯片 DAC 0832 的性能及其 使用方法。 使用方法。
D1 0 0 1 0 0 0 0 0 0 1
D0 0 1 0 0 0 0 0 0 0 1
六实验报告内容 1.整理所测实验数据,画出实验电路。 2.分析理论值和实际值的误差。 3.绘出所测得的电压波形,并进行比较、分析。
各引脚功能为:
D7~D0:八位数字量输入端,D7为最高位,D0为最低位。 Io1:模拟电流输出1端,当DAC寄存器为1时,Io1最大;全0时,Io1 最小。 Io2:模拟电流输出2端,Io1+Io2=常数=VREF/R,一般接地。 Rf:为外接运放提供的反馈电阻引出端。 VREF:是基准电压参考端,其电压范围为-10~+10V。 Vcc:电源电压,一般为+5V~+15V。 DGND:数字电路接地端。 AGND:模拟电路接地端,通常与DGND相连。
由于运放的输出值为vo不全合上则s代码有些为0有些为1设4位s代码为d3d2d1d0则vrefrbvrefr所以vorfbvrefrb为二进制数即模拟电压输出正比于输入数字量b从而实现了数字量的转随着集成技术的发展中大规模的da转换集成块相继出现它们将转换的电阻网络和受数码控制的电子开关都集在同一芯片上所以用起来很方便
输入数字量 D4 D3 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1
输出模拟量V0(V) VCC=+5V
D7 0 0 0 0 0 0 0 0 1 1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
武汉大学物理科学与技术学院
物理实验报告
物理科学与技术学院 物理学基地2班专业 2013年12月12日
实验名称:实验十——数/模转换器
姓名:吕品磊 年级:2011 学号:2011301020033 成绩:
一、 实验目的:
1、了解数/模转换器的基本原理;
2、掌握DAC0832芯片的使用方法。
二、 实验内容
1、实验电路原理如图10.1,DAC0832采用单缓冲方式,具有单双极性输入
端(图中的Ua、Ub),利用debug输出命令(Out 290 数据)输出数据给DAC0832,用万用表测量单极性输出端Ua及双极性输出端Ub的电压,验证数字与电压之间的线性关系。
2、编程产生以下波形(从Ub输出,用示波器观察)
(1)锯齿波
(2)正弦波
图 10.1
三、 流程图
四、 原程序
DATA S EGMENT
DATA E NDS
CODE S EGMENT
ASSUME C S: C ODE, D S: D ATA
START:
MOV A X, D ATA
MOV D S, A X
AGAIN:
MOV C L, 0 ;初始化锯齿波
MOV B L,0 ;初始化锯齿波数量
INC B L
A1:
MOV A L, C L
MOV D X, 0C810H ;DAC0832控制端口
OUT D X, A L ;输出控制端口
INC C L ;波形上升
CMP B L, 0FH ;确定锯齿波数量(此处的OFH)
JZ E NND
CMP C L, 200 ;确定锯齿波高度(此处的200,可以更改)
JZ A GAIN
ENND:
MOV A H, 1 ;输入回显
INT 16H
JZ A1
MOV A H, 4CH ;返回DOS
INT 21H
CODE E NDS
END S TART
五、 实验分析:
1、此次实验程序较为简单,在通过debug进行调试的时候,发现随着CL
的增加波形会不断上升,通过到达一个特定值,重置CL,做到实现锯
齿波的原理。
2、同样的道理,在实验二中要求做出一个正弦波只要根据正弦函数建一
个下弦数字量表,按照特定的取值就可以画出相应的波形。
其他的函
数波形也可以采用同样的方式进行处理。