注:获取全套设计资源,请见文末说明…
设计要求
1.输出4种波形:方波、锯齿波、三角波和正弦波;
2.幅值调节范围为:2V-10V;
3.频率调节范围为:20Hz-80Hz;

内容简介
信号发生器仿真系统由51单片机最小系统、LCD12864液晶模块、DAC0832波形转换模块(包括波形幅值与频率转换)、按键控制模块以及示波器测量模块构成。通过Keil平台下的C语言编程,单片机控制输出的数字信号经工作在直通方式下的DAC0832数模转换,输出方波、正弦波、锯齿波、三角波4种电压波形,且波形幅值、频率可调。波形的切换、频率和幅值的增减可通过按键模块实现,同时当前的波形信息可实时更新在LCD12864显示模块上,波形形象可通过示波器测量模块展现。整个设计由Proteus仿真实现,并能满足设计内容及要求。

本设计内容详细,涵盖 单片机最小系统设计原理、按键与LCD12864液晶设计、DAC0832幅值控制电路、频率控制电路设计、频率控制算法原理、仿真结果分析 等内容。

整体的框架

系统仿真电路图

仿真运行分析
图1:幅值为4V,频率为20Hz的方波输出信号


图2 幅值为5V,频率为50Hz的锯齿波输出信号


图3 幅值为10V,频率为80Hz的正弦波输出信号


图4 幅值为6V,频率为60Hz的三角波输出信号


部分程序


```c
intmain(void){uchar data i=0;uchar idata strtemp[35];SP=0xA0;for(i=0; i<7; i++){//从20Hz开始,到80Hz,步长为10Hz,共7个频率数据,最高只能做到80Hz,同时由于启动中断会占用一定时间,所以补偿25us。freq[i]=65535-(1000000/(20+i*10)/256)+25;}TMOD=0x11;ET0=1;ET1=0;EA=1;TL0=freq[index_freq]%256;TH0=freq[index_freq]/256;TR0=1;IT0=0;EX0=1;LE1=0;P2=amplitude[index_amp];EA=0;LE1=1;LCDinit12864();LCD_DispStrWide(0x00,"波形:1方波");LCD_DispStrWide(0x10,"频率:20Hz");LCD_DispStrWide(0x08,"幅值:2.0V");LCD_DispStrWide(0x18,"波形 频率 +-");LE1=0;   EA=1;while(1){if(K_WAVE==1){  K_WAVE=0;C_WAVE++;if(C_WAVE>=4) C_WAVE=0;  //0:方波1:锯齿波 2:三角波3:正弦波sprintf(strtemp,"%s%s","波形:",disp_wave[C_WAVE]);LE1=1;EA=0;LCD_DispStrWide(0x00,strtemp);EA=1;LE1=0;}  else if(K_FREQ_AMP==1){  K_FREQ_AMP=0;C_FREQ_AMP++;if(C_FREQ_AMP >= 2) C_FREQ_AMP=0;LE1=1;EA=0;if(C_FREQ_AMP == 0)LCD_DispStrWide(0x18,"波形 频率 +-");  //0:频率elseLCD_DispStrWide(0x18,"波形 幅值 +-");  //1:幅值EA=1;LE1=0;}else if(K_ADD == 1){        K_ADD=0;if(C_FREQ_AMP == 0){//在7种频率之间切换 20Hz,30Hz,40Hz,50Hz,60Hz,70Hz,80Hz  index_freq++;if(index_freq>=7) index_freq=0;sprintf(strtemp,"%s%d%s","频率:",(int)(20+index_freq*10),"Hz");LE1=1;EA=0;LCD_DispStrWide(0x10,strtemp);EA=1;LE1=0;}else{//在9种幅值之间切换  1V,2V,3V,4V,5V,6V,7V,8V,9V,10Vindex_amp++;if(index_amp > 8) index_amp=0;   sprintf(strtemp,"%s%.1f%s","幅值:",(float)(1+index_amp*0.5)*2,"V ");LE1=1;EA=0;LCD_DispStrWide(0x08,strtemp);LCD_DispStrWide(0x10,"频");EA=1;LE1=0;P2=amplitude[index_amp];}}else if(K_REDUCE==1){       K_REDUCE=0;if(C_FREQ_AMP == 0){  if(index_freq > 0)index_freq--;sprintf(strtemp,"%s%d%s","频率:",(int)(20+index_freq*10),"Hz");LE1=1;EA=0;LCD_DispStrWide(0x10,strtemp);EA=1;LE1=0;}else{if(index_amp > 0)index_amp--;sprintf(strtemp,"%s%.1f%s","幅值:",(float)(1+index_amp*0.5)*2,"V ");LE1=1;EA=0;LCD_DispStrWide(0x08,strtemp);LCD_DispStrWide(0x10,"频");EA=1;LE1=0;P2=amplitude[index_amp];}}} return 0;}

分享内容
(1)基于51单片机与DAC0832的信号发生器Proteus仿真设计【完整版文档】
(2)Proteus仿真文件
(3)Keil C语言程序文件
(4)DAC0832 技术手册
(5)Visio绘制的流程图

资源截图


KEIL C程序


资源获取方法
资源获取方法
资源获取方法
重要的事情说三遍!!!!!!!!!!!
由于本设计为作者原创设计,
获取完整的Word论文报告、Proteus仿真、Keil C程序、Visio流程图文件和技术手册等资料。
请微信搜索关注公众号:交院小智

DAC0832的多功能信号/波形发生器Proteus仿真设计,4种波形(正弦、三角、方波、锯齿),附仿真+C程序+论文等相关推荐

  1. 基于51单片机的波形发生器proteus仿真数码管LCD12864显示

    仿真图1简介: 本系统采用51单片机作为系统的MCU(具体型号见下图),该系统显示器为四位数码管,可实时显示波形的参数情况 可显示四种波形,分别是方波.正弦波.三角波.锯齿波. 该设计具有电压表功能, ...

  2. 使用SBench 6为任意波形发生器创建,捕获和传输波形

    任意波形发生器(AWG)是一种功能强大且灵活的信号发生器,能够在发生器带宽范围内输出任意波形.拥有AWG之后,您将需要在其中产生波形.创建,捕获,修改和传输测试波形的步骤可以很容易地与发生器的步骤相匹 ...

  3. 51单片机波形发生器51c语言,51单片机实现波形发生器.doc

    word完美格式 精心整理 学习帮手 摘要 这个系统是基于AT89C51单片机的波形信号发生器.使用AT89C51单片机作为控制核心,该系统由数字/模拟转换电路(DAC0832).运放电路(OP07) ...

  4. 【Proteus仿真】51单片机+DAC0832+LM358放大电路波形发生器

    [Proteus仿真]51单片机+DAC0832+LM358放大电路波形发生器 Proteus仿真 主程序代码 #include<reg52.h> //包含头文件 #include< ...

  5. 画时域随机信号波形_【鼎阳硬件智库原创︱测试测量】任意波形发生器的基本输出波形及其相关参数...

    方浩 鼎阳硬件设计与测试智库专家组成员 传统的函数发生器可以输出正弦波.方波.三角波等标准波形,但是在实际的测试场景中,为了模拟产品在实际使用过程中的复杂情况,往往需要人为地去制造一些"不规 ...

  6. 33220a 编程C语言,基于AT89C51单片机的数字式波形发生器(非常完整).doc

    摘要 本系统是基于AT89C51单片机的数字式波形发生器.采用AT89C51单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832).运放电路(LM324).按键和LCD(1602)等.通过按 ...

  7. 74ls390设计任意进制计数器_利用数字频率合成技术设计高速任意波形发生器(上)...

    波形发生器为常用器件,正因如此,波形发生器具备较强现实意义.对于波形发生器,诸多朋友均存在一定兴趣.此外,小编在往期带来诸多波形发生器相关文章,热爱波形发生器的朋友可翻阅哦.本文中,小编对于波形发生器 ...

  8. 【51毕业设计案例】【006】波形发生器(正弦波、矩形波、三角波、锯齿波)-基于51单片机

    功能介绍: 1.输出 正弦波.矩形波.三角波.锯齿波 波形 2.设定波形输出频率 3.设定修改频率的步进值 整体功能简述: 通过按键可以修改输出的波形,一共可以输出四种波形,分别是:正弦波.矩形波.三 ...

  9. 基于单片机的波形发生器设计

    单片机可以用来设计各种类型的波形发生器,下面是一种基于单片机的波形发生器设计方案. 所需材料: 单片机:可以选择常见的Atmel AVR单片机,如ATmega328P等. 调制器:可以使用AD9833 ...

  10. 51单片机c语言dac0832产生波形,基于51单片机的DAC0832波形发生器设计

    波形发生器是一种常用的信号源,广泛的应用于电子电路.自动控制系统和教学实验等领域,是现代测试领域内应用最为广泛的通用仪器之一.在研制.生产.测试和维修各种电子元件.部件以及整机设备时,都需要有信号源. ...

最新文章

  1. Python基础16-模块与包基础01
  2. 优秀的Java程序员应具备哪些编程技术?
  3. 【分享】在线解析微信h5网页标签跳转到手机默认浏览器的实现方式
  4. 用移位实现除以或者乘以一个数
  5. markdown文件转word文件
  6. python批量下载文件
  7. 算法设计与分析(第2版)屈婉玲 刘田 张立昂 王捍贫编著 第三章课后习题答案
  8. 【制作】基于金沙滩51单片机的贪吃蛇程序
  9. 专业测试-自评抑郁量表SDS
  10. [PS] 没有图层匹配此滤镜 我的图层消失了
  11. 微信小程序: 预览pdf,ppt,word等文件
  12. 浏览器调取摄像头人脸抓拍实现
  13. 【MikTe安装】最新的MiKTeX替换CTEX默认安装的MiKTeX
  14. 房天下全国658个城市新房,二手房爬取
  15. 在R、Python和Julia中常用的数据可视化技术
  16. Acrobat_8_Pro_SC 激活老是提示你输入的授权码无效
  17. WF4.0实战(十五):伤心聊天室
  18. Mysql数据库每天定时备份
  19. S7-200SMART案例分析——程序框架
  20. Openwrt之gdb调试

热门文章

  1. linux内存条查询,linux查询内存命令
  2. Q 语言 -- 数组
  3. java字节码查看器_jclasslib 64位
  4. boost库使用总结
  5. [读书] 《未来世界的幸存者》关于熵减的心得
  6. 计算LED分压电阻时?需要注意哪些事情?
  7. vb6.0企业版id_国网公司十八项反措(2018版)开关设备专题解读
  8. 企业微信h5开发(即JS-SDK),一不小心,就会掉进坑,进入死胡同
  9. 物流车笔记——编码器原理
  10. Coordinate Transformations(坐标系的变换)