利用单片机和DA转换产生各种信号的方法.doc_第1页
利用单片机和DA转换产生各种信号的方法.doc_第2页
利用单片机和DA转换产生各种信号的方法.doc_第3页
利用单片机和DA转换产生各种信号的方法.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

。利用单片机和D/A转换器产生各种信号的方法崇州市职业中专学校 陈贵清摘要:在单片机学习中,有关于D/A转换的内容。我们可以巧妙利用单片机和D/A转换器来产生一些常用的信号波形,以供利用。通过编写程序,可以在电路基本不变的情况下获得不同类型、不同频率和不同幅度的波形。编写程序,最重要的是思路,本文就利用单片机和D/A转换器产生各种信号的方法进行简单的阐述。关键词:单片机 D/A转换 DAC0832 方波产生 三角波产生 锯齿波产生利用单片机和D/A转换器可以产生一些电路所需要的各种信号,如方波,锯齿波,三角波等。应用的方式各不相同,但方法大同小异,本文就对产生信号的方法,思路做一定的分析。现在应用广泛的MCS-51系列单片机,价格低廉,功能强大。让它和D/A转换器搭档,可以获得理想的输出信号。D/A转换器按分辨率分为:8位、10位和12位。位数越高,最低一位数字引起模拟量幅度的变化量越小,精度越高。本文以89C51单片机和8位的DAC0832为例进行说明。一、DAC0832的特性DAC0832是一种常用的DAC芯片,其主要特性如下:1、 分辨率为8位。2、 电流型输出,当转换结果需要电压输出时,可在其IOUT1、IOUT2输出端加运算放大器,将电流信号变换成电压信号输出。3、 片内两级缓冲,可实现直接输入,双缓冲输入和单缓冲输入三种工作方式。4、 DIP20封装,单电源供电,电压范围为+5-15V。其引脚可参看图1中的DAC0832,引脚功能可参看相关芯片手册。、二、利用DAC0832单缓冲方式实现信号输出所谓单缓冲方式是指8位输入寄存器和8位DAC寄存器其中之一处于直通方式,而另一个处于受控锁存方式。 图1:单片机与DAC0832的接口电路图要实现这种方式,我们需将ILE接高电平,WR1、WR2接单片机WR,XFER接地。CS作为片选控制,低电平有效。电路原理图如图1所示。由于DAC0832输出的是电流信号,因此在其输出端连接了运算放大器作转换,得到电压输出。图1中DAC0832处于单极性电压输出,当单片机输出数字量为全“0”时,输出电压U0=0V,当单片机输出数字量为全“1”时,输出电压U0=+5V。原则上,片选CS必须为低电平DAC0832才能启动工作,因此与CS连接的地址线必须为“0”。图1中,P2.7必为“0”,则地址应为0111111111111111B,换算为16进制,则为7FFFH。若我们将CS与P2.0相连接,则P2.0必为“0”,则相应的地址变为1111111011111111B,换算为16进制,则为0FEFFH。执行以下指令,就可以启动DAC0832进行D/A转换:MOV A,#XXH ;将待转换的8位单片机数字量#XXH送入累加器A中。MOV DPTR,7FFFH ;将启动D/A转换的地址送入到DPTR中。MOVC DPTR,A ;将数字量送入DAC0832,启动D/A转换,得到输出电压。三、产生各种信号的方法。制作好电路,接下来只要编写不同的程序,就可以产生各种不同的信号。根据需要,首先我们应对信号进行分析,找出信号变化的规律,在程序编写时,让单片机的数字量按照相应的规律输出到D/A转换器中,经过D/A转换,就可以得到我们想要的波形。1、 方波的产生图2:方波的波形图(其中:t1是正半周时间,t2为负半周时间)通过观察,要产生方波,需要DAC0832在t1时间内输出高电平,在t2时间内输出低电平(方波t1=t2)。转移到单片机程序就要求在t1时间内,单片机的输出数字量为全“1”,在t2时间内,单片机的输出数字量为全“0”。其流程图和程序如下:ORG 0000HSJMPMAINORG 0030HMAIN:MOV DPTR,#7FFFH ;送启动D/A转换地址OUT1:MOV A,#0FFH ;送全1数字量到A,转换为高电平方波发生信号流程图 MOVX DPTR ;A ;启动D/A转换,输出高电平 ACALL DELAY ;延时,保持一直输出高电平 OUT0:MOV A,#00H ;送全0数字量到A,转换为低电平 MOVX DPTR,A ;启动D/A转换,输出低电平 ACALL DELAY ;延时,保持一直办出低电平 SJMP OUT1 ;跳到OUT1继续执行D/A转换 DELAY: MOV R7,#0FFH ;延时子程序,控制频率LOOP: MOV R6,#0FFH DJNZ R6,$ DJNZ R7,LOOP RET END 在上面的程序中,改变指令MOV A,#0FFH中的立即数,就可以改变输出高电平值;改变延时子程序的指令MOV,R7,#0FFH或MOV R6,#0FFH中的立即数,就可以改变输出方波的频率。另外,在OUT1和OUT0中采用不同时间的延时子程序,调整t1,t2就可以改变方波的占空比。2、 锯齿波的产生 图3:锯齿波的波形图(t为周期)观察波形图,锯齿波的特点是:输出电压由0电平递增到高电平,再直接跌落回0电平开始周期循环。因此单片机的数字量由#00H递增到#0FFH,再跳回到#00H重复执行。其流程图和程序如下:锯齿波发生信号流程图 ORG 0000H SJMP MAIN ORG 0030HMAIN: MOV DPTR,#7FFFH ;送启动D/A转换地址 CLR ALOOP: MOVX DPTR,A INC A ;数字量递增1 ACALL DELAY SJMP LOOPDELAY:MOV R7,#0FFH ;延时子程序,控制频率LOOP1: MOV R6,#0FFHDJNZ R6,$ DJNZ R7,LOOP1 RET END 在上面程序中,改变延时子程序的指令MOV R7,#0FFH和MOV R6,#0FFH中的立即数#0FFH,就可以改变输出锯齿波的频率,立即数延时越小,则输出锯齿波频率越高。3、 三角波的产生图4:三角波的波形图观察三角波的波形图,可知,三角波在t1时间内,输出电压由0电平递增到高电平,再在t2时间内由高电平递减到0电平,然后开始循环。因此,单片机的数字量也应该是由“#00H”递增到“#0FFH”,再递减到“#00H”重复执行。其流程图和程序如下: ORG 0000H AJMP MAIN ORG 0030HMAIN: MOV DPTR,#7FFFH ;送启动D/A转换地址 CLR A MOV R1,#0FFHLOOP1:MOVX DPTR,AINC A ;数字量递增1ACALL DELAYDJNZ R1,LOOP1MOV R1,#0FFHLOOP2:MOVX DPTR,A DEC A ;数字量递减1 ACALL DELAY DJNZ R1,LOOP2 MOV R1,#0FFH SIMP LOOP1DELAY:MOV R7,#0FFH ;延时子程序,控制频率DEL: MOV R6,#0FFH DJNZ R6,$ DJNZ R7,DEL RET END三角波发生信号流程图在上面程序中,改变延时子程序的指令MOV R7,#0FFH和MOV R6,#0FFH中的立即数#0FFH,就可以改变输出三角波的频率,立即数延时越小,则输出三角波频率越高。其它波形编写的思路与此相仿,该电路还可以进行扩展,通过用定时/计数器T0,T1精确设定延时,来控制输出波形的频率。编好程序,用键盘来调节电路的输出波形和频率,用数码显示器来显示频率,就可以制作信号发生器了。其电路和程序会更加复杂,但总体的思路也是不会变的。参考文献:1、电子工业

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论