功能介绍:
1.输出 正弦波、矩形波、三角波、锯齿波 波形
2.设定波形输出频率
3.设定修改频率的步进值
整体功能简述:
通过按键可以修改输出的波形,一共可以输出四种波形,分别是:正弦波、矩形波、三角波、锯齿波 ;波形也可以修改频率,频率范围为50Hz~0.1Hz。并且可以设置修改频率的步进值,更加轻松的对频率进行修改。
每个波形都有对应一个LED灯来表示波形。
硬件部分,从DAC0832输出的电流量,通过LM358运算放大器电路转换为电压值。你给LM358提供多少的电压,就可以通过滑动变阻器将波形峰值提升到你提供的电压附近。
硬件框图:
软件流程图:
原理图:
提供Altium Designer 及 立创EDA 格式原理图,建议使用立创EDA格式打开,打开方式为将文件夹内 .json 后缀文件拖入https://lceda.cn/editor 立创EDA编辑网站中即可
本次原理图使用立创EDA画出的,对于新手较为方便,全中文易上手,不需要安装任何软件。另,Altium Designer 格式打开后标注会有所丢失,建议使用立创EDA
仿真图:
元器件清单:
如果您不能独自完成焊接,我这边也提供付费焊接服务以及调试,完成后第一时间通过快递寄给您。
主要代码展示:
/********************* 函数声明 *******************/
void initclock(); //时钟初始化
void display(); //显示函数
void keyscan(); //键盘检测函数
void bujindisplay(); //步进值显示
void bujinjiance(); //步进设置显示
void main() //主函数
{
init_lcd();
//设置波形频率
m = 65536 - (150000 / pinlv);
a = m / 256;
b = m % 256;
//初始定时器
initclock();
led0 = 0;
while(1)
{
//当菜单为主页面时才能调控频率及波形切换
if(menu == 0)
{
keyscan();
}
//设置频率调控步进值
bujinjiance();
//根据不同波形选择配置不同的数据给P1口
//变量 u 在定时器中断中累加 从而达到不同的值给到P1口
switch(boxing)
{
case 0 ://正弦波
P1 = sin[u];
break;
case 1 ://矩形波
P1 = juxing[u];
break;
case 2 ://三角波
P1 = sanjiao[u];
break;
case 3 ://锯齿波
P1 = juchi[u];
break;
}
}
}
工程管理展示:
下载内容展示:
更详细功能与代码讲解请看B站视频: (视频置顶评论有下载链接)文章来源:https://www.toymoban.com/news/detail-488070.html
【51单片机毕业设计案例】【006】波形发生器(正弦波、矩形波、三角波、锯齿波)-基于51单片机_哔哩哔哩_bilibili文章来源地址https://www.toymoban.com/news/detail-488070.html
到了这里,关于【51毕业设计案例】【006】波形发生器(正弦波、矩形波、三角波、锯齿波)-基于51单片机的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!