基于51单片机的函数发生器设计

news/2024/7/20 12:34:44/文章来源:https://blog.csdn.net/eletronicfish/article/details/139248552

一.硬件方案

此函数信号发生器是基于单片机AT89C51设计而成的,能够产生频率范围在0Hz—535Hz的锯齿波、正弦波、三角波、矩形波四种波形,并且能够通过液晶屏1602显示各自的波形类型以及频率数值。电路主要由51单片机+最小系统+DA0832模数转换模块+运放模块+LED指示灯+按键模块;

二.设计功能

(1)LCD1602液晶显示波形种类和频率值(10-100HZ)。可产生正弦波、锯齿波、三角波、矩形波。
(2)按键设置波形种类和设定频率步进值。
(3)通过电位器器改变振幅(0V-3.5V稳定)。
(4)有四个指示灯分别指示发出的是哪种波形,方便明了。

三.设计原理图

(1)原理图主要采用AD软件进行设计,如图:
在这里插入图片描述

(2)Protues仿真图如下:
在这里插入图片描述

四.软件设计

主程序源码

void main()					 //主函数
{	init_lcd();m=65536-(150000/pinlv);a=m/256;b=m%256;initclock();led0=0;while(1){if(h==0){keyscan();//	display();}bujinjiance();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;}}
}
void T0_time()interrupt 1		   //定时器
{TH0=a;TL0=b;u++;if(u>=64)u=0;
}

资料链接:https://pan.baidu.com/s/1Hbobp6qM0UzS0RvwStO2KA?pwd=5sjp

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1052107.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(十六)- JUC(2)

目录 同步 两阶段终止模式 守护线程 线程状态 五种(操作系统角度) 六种(Java API角度) 烧水案例 共享模型之管程 临界区 竞态条件 同步 Slf4j(topic "c.TestJoin")public class TestJoin {static int r 0;static int r1 0;static int r2 0;​public sta…

【Linux】centos7下载安装Python3.10,下载安装openssl1.1.1

目录 centos7下载安装Python(版本3.10.14) (1)网页下载python压缩包,并解压缩 (2)编译安装 Python在make altinstall时,报错及解决 (3)将安装目录和可执…

C数据结构:二叉树

目录 二叉树的数据结构 前序遍历 中序遍历 后序遍历 二叉树的创建 二叉树的销毁 二叉树的节点个数 二叉树叶子节点个数 二叉树第K层节点个数 二叉树的查找 层序遍历 判断二叉树是否为完全二叉树 完整代码 二叉树的数据结构 typedef char BTDataType; typedef str…

【STL简单源码剖析】vector的实现

收灯庭院迟迟月 落索秋千翦翦风 目录 vector 简单概述 vector 代码摘要 vector 的迭代器 vector 成员变量 vector 构造析构 获取当前元素个数 获取当前容器容量 operator[]的运算符重载 vector 空间预留 push_back() 的实现 迭代器失效的简单讲解 pop_back() 的实现 insert…

驾考学法减分拍照搜题模拟考试小程序开发

驾考学法减分拍照搜题模拟考试小程序开发 项目介绍 驾考搜题,一款专为驾考学员设计的智能搜题助手,集合了海量题库与实战模拟,助力学员快速掌握驾考知识,轻松应对各类考试。 主要功能特点 智能搜题 通过关键词、拍照搜索&#xf…

【程序员如何送外卖】

嘿,咱程序员要在美团送外卖,那还真有一番说道呢。 先说说优势哈,咱程序员那逻辑思维可不是盖的,规划送餐路线什么的,简直小菜一碟。就像敲代码找最优解一样,能迅速算出怎么送最省时间最有效率。而且咱平时…

win10/win11 优先调用大核的电源计划性能设置

前言 大小核,即Intel 12代开始的P-core(性能核,一般叫大核)和E-core(能效核,一般叫小核)异核架构。说下个人理解,就是英特尔为了增加cpu性能,但是又因为架构和功耗的限制…

C++

定义自己的命名空间my_sapce,在my_sapce中定义string类型的变量s1,再定义一个函数完成对字符串的逆置。

YOLOv8+PyQt5面部表情检测系统完整资源集合(yolov8模型,从图像、视频和摄像头三种路径识别检测,包含登陆页面、注册页面和检测页面)

1.资源包含可视化的面部表情检测系统,基于最新的YOLOv8训练的面部表情检测模型,和基于PyQt5制作的可视化面部表情检测系统,包含登陆页面、注册页面和检测页面,该系统可自动检测和识别图片或视频当中出现的八类面部表情&#xff1a…

机器人系统ros2-开发学习实践15-模拟用 URDF 建模 步行机器人行走示例

目标: 本教程将向您展示如何建模行走机器人、将状态发布为tf2消息并在 Rviz 中查看模拟。首先,我们创建描述机器人组件的 URDF 模型。接下来,我们编写一个节点来模拟运动并发布 JointState 和变换。然后我们使用robot_state_publisher将整个…

STM32H743+USBHID+CubeMX配置

一、环境准备 电脑系统:Windows 10 专业版 20H2 IDE:Keil v5.35、STM32CubeMX v6.5.0 测试硬件:正点原子阿波罗STM32H743 二、测试步骤 1、使用用例工程 配置STM32H743定时器功能-CSDN博客https://blog.csdn.net/horse_2007s/article/d…

如何在Mac上恢复未保存的Excel文件

您是否不小心关闭了 Excel,而没有将工作保存在 Mac 上?不要惊慌!本指南概述了帮助您在 Mac 上恢复未保存的 Excel 文件的简单方法。 由于断电、系统崩溃或关闭它而不保存而意外丢失您的 Excel 文件可能会造成挫败感,因为您可能在…

vue 引入 emoji 表情包

vue 引入 emoji 表情包 一、安装二、组件内使用 一、安装 npm install --save emoji-mart-vue二、组件内使用 import { Picker } from "emoji-mart-vue"; //引入组件<picker :include"[people,Smileys]" :showSearch"false" :showPreview&q…

利用ArcGIS Python批量拼接遥感影像(arcpy batch processing)

本篇文章将说明如何利用ArcGIS 10.1自带的Python IDLE进行遥感影像的批量拼接与裁剪。 1.运行环境&#xff1a;ArcGIS10.1 (安装传送门)、Python IDLE 2.数据来源&#xff1a;地理空间数据云 GDEMV2 30M分辨率数字高程数据 3.解决问题&#xff1a;制作山西省的DEM影像 如下…

小白不知道怎么投稿?记住这个好方法

作为一名单位信息宣传员,我最初踏上这条道路时,满心憧憬着通过文字传递我们单位的精彩瞬间,让社会听见我们的声音。然而,理想与现实之间的距离,却在一次次邮箱投稿的石沉大海中渐渐清晰。那时的我,像所有“小白”一样,以为只要用心撰写稿件,通过电子邮件发给各大媒体,就能收获满…

C# WPF入门学习主线篇(四)—— Button的常用属性

本期来详细介绍一下WPF中Button组件的属性都有哪些 一、准备阶段 首先&#xff0c;打开我们之前创建好的工程。 这是我们之前几期一起做过的工程&#xff0c;现在重新创建一个button&#xff0c;来熟悉一下他的属性。 选中创建的button&#xff0c;点击属性栏 二、接下来介绍…

漫步者x1穷鬼耳机双耳断连

困扰了我两天&#xff0c;终于有时间解决这个问题了&#xff0c;查看了一堆都是别的型号。怎么没人用这个啥按键都没有的耳机QAQ&#xff0c;幸好给我找到了说明书&#xff0c;啊哈哈&#xff01; 说明书地址

【C++ 】学习问题及补充

一.自定义类型不初始化直接就赋值&#xff0c;比如string类会怎么样 vectr<string>里已经给每个string对象已经分配好空间&#xff0c;为什么不初始化再赋值会报错 在C中&#xff0c;std::string类是一个动态字符串类&#xff0c;它内部管理着一个字符数组&#xff0c;用…

C++ ─── string的模拟实现

本博客将简单实现来模拟实现string类&#xff0c;最主要是实现string类的构造、拷贝构造、赋值运算符重载以及析构函数。 下期我们继续讲解完整版string的模拟实现&#xff08;将不再会是浅拷贝了&#xff09; 说明&#xff1a;下述string类没有显式定义其拷贝构造函数与赋值运…

PyCharm面板ctrl+鼠标滚轮放大缩小代码

1.【File】➡【Settings】 2.点击【Keymap】&#xff0c;在右边搜索框中搜incre&#xff0c;双击出现的【Increase Font Size】 3.在弹出的提示框中选择【Add Mouse Shortcut】 4.弹出下面的提示框后&#xff0c;键盘按住【ctrl】&#xff0c;并且上滑鼠标滚轮。然后点击【O…