找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 616|回复: 0
打印 上一主题 下一主题
收起左侧

用51单片机DAC0832实现函数功能发生器 软件流程图等资料

[复制链接]
跳转到指定楼层
楼主
ID:1075678 发表于 2023-5-15 16:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用单片机实现函数发生器功能
硬件:单片机+LCD1602+N个按键+4个LED灯+DAC0832。
基本要求:
按下按键可使DAC输出不同波形(正弦波、三角波、锯齿波、方波),对应LED灯亮,且在LCD1602上显示当前波形信息。
扩展要求(可任意选做,每实现一项+10分):
1.LCD显示增加当前波形的频率;
2.有按键可增加or减少频率;
3.波形幅值可设定;
提交Proteus+Keil+文档打包


一、 硬件选择及连接

1.硬件选择

①AT89C51单片机(一个)

选择原因:

拥有完善的外部扩展总线,通过这些总线可方便地扩展外围单元、外围接口等。单片机与工业标准的MCS-51型机的指令集和输出引脚兼容,便于产品后续工业量产化。芯片内自带中断系统,可用于按键按下时触发中断从而可以控制波形。

②DAC0832(一个)

选择原因:

由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,所以可以选用价格低廉、接口简单、转换控制容易并具有8位分辨率的数模转换器DAC0832,而且DAC0832是电流型输出。

③LM324(一个)

选择原因:

DAC0832作为电流型输出,在应用时要外接运放使之成为电压型输出。所以运算放大器的作用是将DAC0832输出的电流信号转化为电压信号。

④LCD1602(一个)

选择原因:

LCD1602作为字符型液晶显示模块,具有体积小,重量轻,功耗低和显示内容丰富等优点,而且可以显示两行,因此可以符合要求在第一行显示波形形状和频率大小,在第二行显示幅值大小。

⑤按键(四个)

选择原因:用于控制波形种类和频率、幅值的改变。

⑥LED灯(四个)

选择原因:用于表示对应波形的产生。

⑦电阻(100Ω 四个)

选择原因:由于LED灯连接在P0口,因此需要连接上拉电阻,LED灯才能够亮。


2. 硬件连接


二、软件流程图





主程序流程图

按键按下检查函数流程图

定时器0中断函数流程图

KEY1按键按下流程图

KEY2按键按下流程图

KEY3按键按下流程图

KEY4按键按下流程图

三、完整C语言程序

主程序函数爆部分代码


定义四种波形64个点的位置信息和频率参数的代码部分

定义按键按下检查函数的代码部分

定时器初始化和中断函数的代码部分




定义LCD1602显示器显示函数的代码部分

四、 仿真运行视频链接

链接:用51单片机实现函数发生器功能www.bilibili.com/video/BV15P41117s



评分

参与人数 1黑币 +50 收起 理由
admin + 50

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表