首 页 - ┆ 小小说社会科学搜榜改进建议哲学宗教政治法律文化科教语言文字医学管理资源艺术资料数理化天文地球专业技术教育资源建筑房地产
当前位置:e书联盟 > 建筑房地产 > 建筑房地产word
应用89S52单片机和DAC0832进行低频函数信号发生器的设计.doc
运行环境:Win9X/Win2000/WinXP/Win2003/
建筑语言:简体中文
建筑类型:国产软件 - 建筑房地产word
授权方式:共享版
建筑大小:434 KB
推荐星级:
更新时间:2019-12-27 21:46:24
联系方式:暂无联系方式
官方主页:Home Page
解压密码:点击这里
  • 好的评价 此建筑真真棒!就请您
      0%(0)
  • 差的评价 此建筑真差劲!就请您
      0%(0)

应用89S52单片机和DAC0832进行低频函数信号发生器的设计.doc介绍

     51单片机设计多功能低频函数信号发生器
       应用89S52单片机和DAC0832进行低频函数信号发生器的设计。本设计能产生正弦波、锯齿波、三角波和方波。这里着重介绍正弦波和锯齿波的生成原理。
       ADC0832的介绍:DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
D0~D7:八位数据输入端
ILE:    数据允许锁存信号
/CS:    输入寄存器选择信号
/WR1:输入寄存器选择信号
/XFER:数据传送信号
/WR2:DAC寄存器的写通选择信号
Vref:   基准电源输入端
Rfb:    反馈信号输入端
Iout1:    电流输出1
Iout2:    电流输出2
Vcc:       电源输入端
AGND: 模拟地
DGND: 数字地
DAC0832结构:
   D0~D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);
   ILE:数据锁存允许控制信号输入线,高电平有效;
   CS:片选信号输入线(选通数据锁存器),低电平有效;
   WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;
   XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;
   WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由WR1、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。
   IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;
   IOUT2:电流输出端2,其值与IOUT1值之和为一常数;
   Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;
   Vcc:电源输入端,Vcc的范围为+5V~+15V;     VREF:基准电压输入线,VREF的范围为-10V~+10V;    AGND:模拟信号地    DGND:数字信号地
DAC0832的工作方式:
  根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。本设计选用直通方式。
                                                                                                         DAC0832工作时序:
    DAC0832内部结构图:
   当ILE为1时,只有当/CS、/WR1都为0时输入寄存器才允许输入;当/WR2、/XFER也都为0时,输入寄存器里的信息才能写入DAC寄存器。根据实际电路图我们就可以得到DAC0832工作的时序的程序。如下:
                                                             P37=0;            //P37=CS
                                                              _nop_();    //P36=WR
                                                             P36=0;
                                                               P0=value;     (数据端口信号数值0~255)
                                                                P36=1;
                                                           _nop_();
                                                             P37=1;
硬件电路:
         P0口是数据端口,接上拉电阻(其他端口则不用)。电源质量要好,质量越好的电源,芯片工作就越稳定。
从LM358运放输出的电压最大峰峰值就是12V所以在二级运放的放大倍数要注意跟基准电压想匹配,否则输出信号会很容易失真。
正弦波的生成:
                 DAC0832产生信号的原理可以说是ADC0809AD转换的逆过程,但DAC0832生成的信号是离散的。假设要生成一个Y=Asin(2*pi*f*t)的正弦波。adc0832数据端口给的数据的范围是0~255一共256个。前0~127表示是X轴上方的电压值(也可能是下方)。那么128~255是X轴下方的电压值。那么我们可以得到数据端口的数值的具体量,即value=127sin(2*pi*f*t)+127;假设我在X轴上抽样100个点(0~99),那么value=127sin(pi/50*t)+127; t:0~99.(这个100位的数组可以用MATALB生成)。也可以抽样更多的点,抽样的点越多,得到的信号越保真,但信号的频率会有所下降。抽样的点越少,失真越大,但频率能成大幅度递增。怎么选择,具体情况具体分析。其他的波形也跟正弦波一样。
       程序如下:
#include sbit dac_WR=P3^6;//dac0832的wr端sbit dac_cs=P3^7;sbit KEY1=P2^0;sbit KEY2=P2^1;bit keyflag;unsigned char i;unsigned char code tab[100]={127,135,143,151,159,166,174,181,188,195,202,208,214,220,225,230,234,238,242,245,248,250,251,252,253,254,253,252,251,250,248,245,242,238,234,230,225,220,214,208,202,195,188,181,174,166,159,151,143,135,127,119,111,103,95,88,80,73,66,59,52,46,40,34,29,24,20,16,12,9,6,4,3,2,1,0,1,2,3,4,6,9,12,16,20,24,29,34,40,46,52,59,66,73,80,88,95,103,111,119};
void getkey(void){if(KEY1==0){      //按键按下后为电电平   RCAP2L+=10

应用89S52单片机和DAC0832进行低频函数信号发生器的设计.doc

下载此电子书资料需要扣除0点,

电子书评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

下载说明

* 即日起,本站所有电子书免费、无限量下载下载,去掉了每日50个下载的限制
* 本站尽量竭尽努力将电子书《应用89S52单片机和DAC0832进行低频函数信号发生器的设计.doc》提供的版本是完整的,全集下载
* 本站站内提供的所有电子书、E书均是由网上搜集,若侵犯了你的版权利益,敬请来信通知我们!

本类热门下载

Copyright © 2005-2020 www.book118.com. All Rights Reserved