DAC0832的多功能信号/波形发生器Proteus仿真设计,4种波形(正弦、三角、方波、锯齿),附仿真+C程序+论文等
注:获取全套设计资源,请见文末说明…
设计要求
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程序+论文等相关推荐
- 基于51单片机的波形发生器proteus仿真数码管LCD12864显示
仿真图1简介: 本系统采用51单片机作为系统的MCU(具体型号见下图),该系统显示器为四位数码管,可实时显示波形的参数情况 可显示四种波形,分别是方波.正弦波.三角波.锯齿波. 该设计具有电压表功能, ...
- 使用SBench 6为任意波形发生器创建,捕获和传输波形
任意波形发生器(AWG)是一种功能强大且灵活的信号发生器,能够在发生器带宽范围内输出任意波形.拥有AWG之后,您将需要在其中产生波形.创建,捕获,修改和传输测试波形的步骤可以很容易地与发生器的步骤相匹 ...
- 51单片机波形发生器51c语言,51单片机实现波形发生器.doc
word完美格式 精心整理 学习帮手 摘要 这个系统是基于AT89C51单片机的波形信号发生器.使用AT89C51单片机作为控制核心,该系统由数字/模拟转换电路(DAC0832).运放电路(OP07) ...
- 【Proteus仿真】51单片机+DAC0832+LM358放大电路波形发生器
[Proteus仿真]51单片机+DAC0832+LM358放大电路波形发生器 Proteus仿真 主程序代码 #include<reg52.h> //包含头文件 #include< ...
- 画时域随机信号波形_【鼎阳硬件智库原创︱测试测量】任意波形发生器的基本输出波形及其相关参数...
方浩 鼎阳硬件设计与测试智库专家组成员 传统的函数发生器可以输出正弦波.方波.三角波等标准波形,但是在实际的测试场景中,为了模拟产品在实际使用过程中的复杂情况,往往需要人为地去制造一些"不规 ...
- 33220a 编程C语言,基于AT89C51单片机的数字式波形发生器(非常完整).doc
摘要 本系统是基于AT89C51单片机的数字式波形发生器.采用AT89C51单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832).运放电路(LM324).按键和LCD(1602)等.通过按 ...
- 74ls390设计任意进制计数器_利用数字频率合成技术设计高速任意波形发生器(上)...
波形发生器为常用器件,正因如此,波形发生器具备较强现实意义.对于波形发生器,诸多朋友均存在一定兴趣.此外,小编在往期带来诸多波形发生器相关文章,热爱波形发生器的朋友可翻阅哦.本文中,小编对于波形发生器 ...
- 【51毕业设计案例】【006】波形发生器(正弦波、矩形波、三角波、锯齿波)-基于51单片机
功能介绍: 1.输出 正弦波.矩形波.三角波.锯齿波 波形 2.设定波形输出频率 3.设定修改频率的步进值 整体功能简述: 通过按键可以修改输出的波形,一共可以输出四种波形,分别是:正弦波.矩形波.三 ...
- 基于单片机的波形发生器设计
单片机可以用来设计各种类型的波形发生器,下面是一种基于单片机的波形发生器设计方案. 所需材料: 单片机:可以选择常见的Atmel AVR单片机,如ATmega328P等. 调制器:可以使用AD9833 ...
- 51单片机c语言dac0832产生波形,基于51单片机的DAC0832波形发生器设计
波形发生器是一种常用的信号源,广泛的应用于电子电路.自动控制系统和教学实验等领域,是现代测试领域内应用最为广泛的通用仪器之一.在研制.生产.测试和维修各种电子元件.部件以及整机设备时,都需要有信号源. ...
最新文章
- Python基础16-模块与包基础01
- 优秀的Java程序员应具备哪些编程技术?
- 【分享】在线解析微信h5网页标签跳转到手机默认浏览器的实现方式
- 用移位实现除以或者乘以一个数
- markdown文件转word文件
- python批量下载文件
- 算法设计与分析(第2版)屈婉玲 刘田 张立昂 王捍贫编著 第三章课后习题答案
- 【制作】基于金沙滩51单片机的贪吃蛇程序
- 专业测试-自评抑郁量表SDS
- [PS] 没有图层匹配此滤镜 我的图层消失了
- 微信小程序: 预览pdf,ppt,word等文件
- 浏览器调取摄像头人脸抓拍实现
- 【MikTe安装】最新的MiKTeX替换CTEX默认安装的MiKTeX
- 房天下全国658个城市新房,二手房爬取
- 在R、Python和Julia中常用的数据可视化技术
- Acrobat_8_Pro_SC 激活老是提示你输入的授权码无效
- WF4.0实战(十五):伤心聊天室
- Mysql数据库每天定时备份
- S7-200SMART案例分析——程序框架
- Openwrt之gdb调试