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

功能介绍:

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站视频:  (视频置顶评论有下载链接)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值