51单片机应用开发(进阶)---数码管+按键+蜂鸣器(电磁炉显示模拟)

news2024/9/30 23:17:59

实现目标

1、加强数码管、按键的学习,实现数码显示变量数据(四位数的显示);

2、4位数码+2个按键+无源蜂鸣器实现模拟电磁炉功率调节及显示;


一、内容描述

功能描述:1、开机显示电磁炉功率300,每按一次K1 ,数码管电磁炉功率值加递增,当加到最大2200,再按K1,数值一直停留在2200;2、每按一次K2,电磁炉功率值加递减,当减到300,再按K2,数值一直停留在最小值300;3、每次按键操作蜂鸣器响一声。

二、原理图设计

                              

三、程序设计

#include "reg52.h"
 
//定义数码管位选信号控制脚
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
 
sbit K1 = P3^1;//按键K1
sbit K2 = P3^0;//按键K2
 
sbit BEEP = P2^5;//蜂鸣器
 
char  num = 0;// -128 --  127
 
//共阴极数码管显示0~F的段码数据
unsigned char gsmg_code[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
				0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

unsigned int POWER[11]={100,300,500,800,1000,1200,1400,1600,1800,2000,2200};				
 

void delay_10us(int ten_us)
{
	while(ten_us--);	
}
							
/*******************************************************************************
* 函 数 名       : main
* 函数功能		 : 主函数
* 输    入       : 无
* 输    出    	 : 无
*******************************************************************************/
void main()
{	
	int i=200;//调节蜂鸣器的频率
	
	while(1)
	{
			LSC=0;LSB=0;LSA=0;// 千位
			P0 = gsmg_code[POWER[num]/1000];  
			delay_10us(5);
			P0 = 0x00;//消影

			LSC=0;LSB=0;LSA=1;// 百位
			P0 = gsmg_code[POWER[num]/100%10];		
			delay_10us(5);
			P0 = 0x00;//消影
		
			LSC=0;LSB=1;LSA=0;// 十位
			P0 = gsmg_code[POWER[num]/10%10];
			delay_10us(5);
			P0 = 0x00;//消影

			LSC=0;LSB=1;LSA=1;// 个位
			P0 = gsmg_code[POWER[num]%10];		
			delay_10us(5);
			P0 = 0x00;//消影

			if(K1 == 0)//如果按键K1按下
			{
					while(!K1);//松手检测
				
					while(i--)//循环2000次
					{
						BEEP=!BEEP;//产生一定频率的脉冲信号
						delay_10us(100);
					}
					i=200;
					BEEP=0;//关闭蜂鸣器
			
					num++;
					if(num >=10)
						 num = 10;
			}
		
		if(K2 == 0)//如果按键K2按下
		{
			while(!K2);//松手检测	
			
			while(i--)//循环2000次
			{
				BEEP=!BEEP;//产生一定频率的脉冲信号
				delay_10us(100);
			}
			i=200;//
			BEEP=0;//关闭蜂鸣器			
			
			num--;
			if(num <=0)
				 num = 0;
			
		}	
	}		
}





四、实验效果

说明:上面程序对应的仿真原理图,普中开发板的数码管与仿真原理图数码管顺序不一致,得作修改!!!!。

五、仿真实现

说明:仿真工程没有无源蜂鸣器的效果元器件,就没有添加。


总结

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Percona Monitoring and Management

Percona Monitoring and Management (PMM)是一款开源的专用于管理和监控MySQL、MongoDB、PostgreSQL

Java入门3——操作符+String

在入门2中忘了提 String 的事情了&#xff0c;所以这篇就放在开头啦&#xff0c;很有用 话不多说&#xff0c;开始正题~ 一、String 引用数据类型之——String 1.字符串的拼接 在Java中&#xff0c;如果要把两句话合并到一句话的时候&#xff0c;其实是很简单的&#xff0c;…

0109 图解多线程死锁问题

死锁场景 &#x1f92a;举例场景&#xff1a;两个憨憨Tom和Sam去西餐厅吃牛排&#xff0c;桌子上只有一把刀和一把叉&#xff0c;Tom先拿到了叉子&#xff0c;Sam拿到了刀。只有同时拿到刀叉才能吃牛排&#xff0c;于是两个憨憨陷入如下的僵局。 这个场景中&#xff0c;就存在…

信号处理快速傅里叶变换(FFT)的学习

FFT是离散傅立叶变换的快速算法&#xff0c;可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的&#xff0c;但是如果变换到频域之后&#xff0c;就很容易看出特征了。这就是很多信号分析采用FFT变换的原因。另外&#xff0c;FFT可以将一个信号的频谱提取出来&am…

可以白嫖PPT模板的6个网站,赶紧收藏

推荐6个PPT模板网站&#xff0c;免费下载&#xff0c;绝对的高质量&#xff0c;赶紧收藏&#xff01; 1、菜鸟图库 ppt模板免费下载|ppt背景图片 - 菜鸟图库 菜鸟图库网有非常丰富的免费素材&#xff0c;像设计类、办公类、自媒体类等素材都很丰富。PPT模板种类很多&#xff0…

高中教辅汇总【35GB】

文章目录 一、资源概览二、资源亮点三、获取方式 一、资源概览 这份教辅资源汇总&#xff0c;精心搜集了高中各学科的海量教辅资料&#xff0c;总容量高达35GB&#xff0c;覆盖了语文、数学、英语、物理、化学、生物、历史、地理、政治等所有必修及选修科目。从基础知识点到难…

windos gcc 安装

一、github&#xff1a;https://github.com/skeeto/w64devkit/releases 二、安装 三、打开安装目录 四、当前目录打开命令行&#xff0c;查看版本。如果有说明安装成功 五、将bin路径放入系统环境变量path里

Moki再次拉低睡前视频难度?还能轻松点赞过万!我只能说任重道远(附保姆级制作教程)

大家好&#xff0c;我是凡人。 是一个不黑、不吹、不跟风、有知识、有骨气的五好小号主。 就在昨天&#xff0c;收到了一条短信&#xff0c;内容是&#xff1a;美图Moki电脑端正式上线。 这时我才想到&#xff0c;很早之前就关注了这块自动生成AI短片的工具&#xff0c;宣传是…

CNN中注意力机制综合指南:从理论到Pytorch代码实现

注意力机制已经成为深度学习模型&#xff0c;尤其是卷积神经网络&#xff08;CNN&#xff09;中不可或缺的组成部分。通过使模型能够选择性地关注输入数据中最相关的部分&#xff0c;注意力机制显著提升了CNN在图像分类、目标检测和语义分割等复杂任务中的性能。本文将全面介绍…

redis的数据结构,内存处理,缓存问题

redisObject redis任意数据的key和value都会被封装为一个RedisObject&#xff0c;也叫redis对象&#xff1a; 这就redis的头信息&#xff0c;占有16个字节 redis中有两个热门数据结构 1.SkipList&#xff0c;跳表&#xff0c;首先是链表&#xff0c;和普通链表有以下差异&am…

【c++面试总结】

1. NULL 和 nullptr 区别 int overLoadTest(int x) {cout << __LINE__ << endl;return 0; }int overLoadTest(char* x) {cout << __LINE__ << endl;return 0; }int main() {char x[10] {1,2,3,4,5};overLoadTest(1);overLoadTest(x);overLoadTest(nu…

2024大二上js高级+ES6学习9.23(严格模式,this指向和改变this指向,高阶函数)

9.23.2024 函数进阶 1.函数定义方式 2.函数的调用方式 3.函数的this指向 而普通函数、定时器函数。立即执行函数一般是window调用的 构造函数调用&#xff1a;原型对象中的方法是在实例对象调用这个方法时&#xff0c;才指向实例对象。 4.改变函数的this指向&#xff08;ca…

体育馆智能化系统规划方案

1. 体育馆智能化系统规划概述 本文详细介绍了一个室内体育馆的智能化系统规划方案&#xff0c;旨在通过优化建筑结构、系统、服务和管理&#xff0c;创建一个高效、舒适、便利的环境。该体育馆按照国家三级乙等标准设计&#xff0c;总建筑面积约1.69万平方米&#xff0c;智能化…

基于深度学习的点云处理模型PointNet++学习记录

前面我们已经学习了Open3D&#xff0c;并掌握了其相关应用&#xff0c;但我们也发现对于一些点云分割任务&#xff0c;我们采用聚类等方法的效果似乎并不理想&#xff0c;这时&#xff0c;我们可以想到在深度学习领域是否有相关的算法呢&#xff0c;今天&#xff0c;我们便来学…

在树莓派上部署开源监控系统 ZoneMinder

原文&#xff1a;https://blog.iyatt.com/?p17425 前言 自己搭建&#xff0c;可以用手里已有的设备&#xff0c;不需要额外买。这套系统的源码是公开的&#xff0c;录像数据也掌握在自己手里&#xff0c;不经过不可控的三方。 支持设置访问账号 可以保存录像&#xff0c;启…

ST-GCN模型实现花样滑冰动作分类

加入深度实战社区:www.zzgcz.com&#xff0c;免费学习所有深度学习实战项目。 1. 项目简介 本项目实现了A042-ST-GCN模型&#xff0c;用于对花样滑冰动作进行分类。花样滑冰作为一项融合了舞蹈与竞技的运动&#xff0c;其复杂的动作结构和多变的运动轨迹使得动作识别成为一个具…

redis-数据类型

十大数据类型 学习 redis 操作手册 英文 Commands 中文 Redis命令中心&#xff08;Redis commands&#xff09; – Redis中国用户组&#xff08;CRUG&#xff09; 学习方法 举出一个数据结构的应用场景&#xff08;理解数据结构特点&#xff09;&#xff0c;并操作&…

深度学习模型可视化工具 Netron 使用教程

Netron 介绍 Netron 是一个用于可视化机器学习模型、深度学习模型、神经网络、图模型&#xff08;例如用于计算机视觉的 ONNX、Caffe、TensorFlow Lite、TensorFlow.js、Keras、Darknet、TVM、PyTorch、TorchScript、Core ML、ML.NET、NNEF、PaddlePaddle、OpenVINO、Arm NN等…

C++STL--------string

文章目录 一、STL介绍二、string1、constructor构造函数2、operator[]方括号运算符重载3、iterator迭代器4、reverse_iterator反向迭代器5、size和length6、capacity7、clear8、shrink_to_fit9、at10、push_back11、append 二、auto类型(C11)1、使用2、真正的价值 三、范围for(…

基于大数据技术的宠物商品信息比价及推荐系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…