DAC0832数模转换实验报告131219x

上传人:新** 文档编号:486292851 上传时间:2023-09-08 格式:DOC 页数:12 大小:1.49MB
返回 下载 相关 举报
DAC0832数模转换实验报告131219x_第1页
第1页 / 共12页
DAC0832数模转换实验报告131219x_第2页
第2页 / 共12页
DAC0832数模转换实验报告131219x_第3页
第3页 / 共12页
DAC0832数模转换实验报告131219x_第4页
第4页 / 共12页
DAC0832数模转换实验报告131219x_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《DAC0832数模转换实验报告131219x》由会员分享,可在线阅读,更多相关《DAC0832数模转换实验报告131219x(12页珍藏版)》请在金锄头文库上搜索。

1、实验报告基于DAC0832的数模转换一、实验目的1.学习单片机控制技术-用单片机控制外部数模转换设备,实现D/A转换;2.熟悉DAC0832芯片的内部结构、引脚功能、各种工作方式下的工作时序;3.熟悉并掌握51单片机系统硬件电路的基本工作原理,并学习硬件电路设计;4.学习C51单片机编程、调试方法。二、实验任务利用51单片机控制DAC0832生成正弦波电压输出。三、实验器材 C51单片机 一块DAC0832 一块 LM324 一块单孔板 一块导线 若干直流稳压电源 一台示波器 一台四、实验原理1. 系统方案确立1)硬件电路工作原理DisplayDAC0832MCUKeyboard图4-1 信号

2、发生器的硬件框图 MCU作为单片机微处理系统,通过Keyboard输入可以产生正弦波数字信号的程序,使MCU输出正弦波数字信号,通过DAC0832数模转换,变成正弦波的模拟信号,用示波器显示出来。如图4-1所示。2)程序工作流程相位复0开 始 time 0=0?D/A芯片初始化Y 相位=2?Ni+相幅转换YN幅度D/A转换输出定时器初始化 time 0=0 T0中断服务 置定时到标志T0重赋值返回图4-2 信号发生器的程序流程图2. 硬件电路设计1)单片机最小系统的组成单片机最小系统是指用最小元件组成的单片机工作系统。对MCS-51系列单片机来说,其内部已经包含了一定数量的程序存储器和数据存储

3、器,在外部只要增加时钟电路和复位电路即可构成单片机最小系统。下图所示便是MCS-51系列单片机最小系统电路,由单片机芯片和典型的时钟电路和复位电路构成。 图4-3 典型的时钟电路大多采用内部时钟方式,晶振一般在1.212MHz之间,甚至可达到24MHz或更高,频率越高,单片机处理速度越快,但功耗也就越大,一般采用11.0592MHz的石英晶振。与晶振并联的两个电容、通常为30pF左右,对频率有微调作用。需要注意的是,在设计单片机系统的印刷电路板(PCB)时,晶振和电容应尽可能与单片机芯片靠近,以减少引线的寄生电容,保证振荡器可靠工作。典型的复位电路大多采用上电自动复位和按键手动复位组合电路,电

4、容的大小直接影响单片机的复位时间,电容值越大,复位时间越短,一般为1030uF。2)数模转换工作电路的设计我们选中DAC0832进行DA变换。但DAC0832输出的是电流,我们要输出电压信号。因此我们选用如图4-4 工作电路。图4-4 两级运用放大解决输出双极性电压的问题。输出电流经放大,输出电压:Vref:DAC0832的参考电压(通常为+5V)R2与R3的比值确定输出电压的偏移范围;R1与R3的比值确定输出电压的大小。DAC0832与MCS-51单片机的电路连接如图4-5 所示。我们选择单片机的P2口为数字量的输出口,同时DAC0832采取直通转换模式,即输入寄存器和DAC寄存器为直通模式

5、,数字量从单片机P2口直接接到DA转换器进行转换。图4-5 3. 软件设计1)定时器的设定本系统输出正弦波周期为20mS。用查表法实现正弦波的相幅转换,再将幅度值经DA转换、低通滤波,生成连续变化的正弦波电压。正弦波相位等分为1/250,因此步进时间为80S。我们选T0定时产生该步进时钟,设计如下。我们用的MCS-51单片机是的频率是11.0592MHz的,并且是用16位的计数器,用定时器T0进行计数。所以根据实验原理里写的初值计算公式可得我们需要的初值X为: 转换为16进制为 FFB6H。所以对定时器进行赋值TH0=0xff,TL0=0xb6。因为选用时T0的计时器,并且是16位,所以TMO

6、D控制寄存器中的低4位:GATE=0,=0,M1 M0=01,所以TMOD=0000 0001,转换为16进制为0x01。与此同时,TCON控制寄存器中的TR0=1。定时步进由T0中断控制。所以中断允许寄存器IE中的总中断控制EA=1,同时也要开启T0中断,即ET0=1。以上设置在系统初始化中完成。2)相幅转换由于在程序中,我们是用查表法来输出正弦波数字信号,250个数字量为一个正弦波周期2,这就说明表中的每个数字量有其与之对应的正弦波周期中的某个相位。所以,每两个数字量之间的相位为2/250,只要每经过一个80S定时中断,其相位值便增加2/250;与此同时,其中相位对应的数字量电压值也在发生

7、变化,这就实现了正弦波中相位和幅度的转换。然后经过250个中断后,相位便从0开始,按每次2/250继续累加到2,进行重复循环。最后通过DA转换输出模拟量的电压值,变可在示波器上显示出完整的正弦波模拟信号。五、试验步骤 1、按照实验内容中的电路原理图进行单片机最小系统的建立和DAC0832和运放电路在单孔版上的焊接。对于电路图中的参数,我们选择:单片机晶振电路:, Y1=12MHz单片机复位电路:LM324运放电路: 2、对于DAC0832各引脚的电平高低情况应定为: ALE、 接高电平 +5V 接低电平 3、对于LM324,我们需要在运放器的两端接高低电平,所以我们选择的直流电源。 4、把上面

8、写的软件程序导入Keil中,生成 .hex文件,传输到MCS-51的单片机中。 5、然后LM324的输出端连接到示波器上,准备显示。 6、按照电路图中的线路,用导线连接C51单片机、DAC0832之间的数据线。准备上电实验。 7、对各芯片供电,打开示波器,观察输出波形。六、实验数据与分析按照实验步骤进行实验,我们可以看到在示波器上显示出正弦波信号,如图4-6所示。可以看见示波器上显示的周期为,而理论上的周期为。只所以产生这种原因,是因为单片机的频率为11.0592MHz。所以这个实验大致上是正确的,有理有据的。图4-6七、实验感受通过这次实验,我们对于MCS-51系列单片机有了初步的认识和理解

9、,并且通过和DAC0832在一起,使我们对于I/O接口方面的知识也有了很好的应用。同时对DAC0832芯片的结构、性能、工作原理我们是完全的掌握了,这样我们可以通过DAC0832进行其他的一系列实验。再者,运放的基本原理及公式也可以让我们能更加灵活的对复杂电路进行转化。与此同时,我们的动手能力也有了很大的提高,对于电路的排版、搭配也有了很清晰的认识。总之,这次实验使我们的收获很大,理论和实际相结合,对知识也有了更深刻的理解和知新。附录 1.程序#include#include#define uint unsigned int#define uchar unsigned char bit tim

10、e; unsigned char sin(unsigned char x)unsigned char code sin_tab=128,131,134,138,141,144,147,150,153,156,159,162,165,168,171,174,177,180,182,185,188,191,193,196,198,201,203,206,208,211,213,215,217,219,221,223,225,227,229,231,232,234,235,237,238,239,241,242,243,244,245,246,247,248,249,250,251,252,253,

11、254,254,255,255,254,254,253,252,251,250,249,248,247,246,245,244,243,242,241,239,238,237,235,234,232,231,229,227,225,223,221,219,217,215,213,211,208,206,203,201,198,196,193,191,188,185,182,180,177,174,171,168,165,162,159,156,153,150,147,144,141,138,134,131,128,125,122,119,116,112,109,106,103,100, 97,

12、 94, 91, 88, 85, 82, 79, 76, 73, 70, 68, 65, 62, 59, 57, 54, 52, 49, 47, 44, 42, 39, 37,35, 33, 31, 29, 27, 25, 27, 29, 27, 25, 23, 21, 19, 18, 16, 15, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 2, 1, 1, 0, 0, 0, 1, 1 , 2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 21, 23, 25, 27, 29, 31,

13、33, 35, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 62, 65, 68, 70, 73, 76, 79, 82, 85, 88, 91, 97,100,103,106,109,112,116,119,122,125,128,131; return sin_tabx; void DAC0832(unsigned char x) P2=x;void main()unsigned char i;TMOD = 0x01;/设置T0为工作方式1 TH0 =0xff;/ (65536-1000)/256; /设定初值 TL0 = 0xb6;/(65536-1000)%256; /设定初值 TR0 = 1;/启动定时器0 EA=1;ET0=1;i=0;time=0;while(1) if(time=1) time=0; if(i248) i=0; else i+; DAC0832(sin(i); void T0_time() interrupt 1 TH0 = 0xff;/(65536-1000)/256; /设定初值 TL0 = 0xb6;/(65536-1000)%256; /设定初值 time=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 小学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号