基于51单片机的简易抢答器设计

在这里插入图片描述


基于51单片机的简易抢答器

具体功能:
1、主持人按下抢答开始按键,抢答者才可以开始抢答,数码管抢答倒计时20S。
2、抢答者按下按键,数码管显示抢答者的编号。
3、可以通过按键修改倒计时时间。

部分程序代码:

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define  max 20
uchar tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};	//共阴数码管段码sbit d1=P2^4;
sbit d2=P2^5;
sbit x1=P2^6;
sbit x2=P2^7;sbit k1=P1^0;
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;
sbit k5=P1^4;
sbit k6=P1^5;
sbit k7=P1^6;
sbit k8=P1^7;sbit zk1=P2^0;
sbit zk2=P2^1;sbit buz=P2^2;unsigned char d_num,cnt;
uchar x_flag;void jianpan();void init(void)
{TMOD=0X01;TL0=0XB0; TH0=0X3C;
//   TR0=1;    ET0=1;     EA=1;d_num=max;
}void delay(uint xms)
{uint x,y;for(x=xms;x>0;x--)for(y=110;y>0;y--);
}void display()
{d1=0;	 //位选端;P0=tab[d_num/10];//显示倒计时delay(5);d1=1;d2=0;P0=tab[d_num%10];delay(5);d2=1;x1=0;	//位选端P0=tab[x_flag/10];//显示选手号delay(5);x1=1;x2=0;P0=tab[x_flag%10];delay(5);x2=1;
}void main()
{	init();while(1){ jianpan();display();}	
}void timer0(void) interrupt 1
{ TL0=0XB0; //重装初值TH0=0X3C; cnt++;if(cnt==20)//1 秒时间到{cnt=0;//计数清零d_num--;if(d_num==0){d_num=max;TR0=0;	//关闭所有操作}buz=0;	delay(20);buz=1;}   
}

仿真原理图:
在这里插入图片描述
在这里插入图片描述

以下可以忽略不看!

一、复位电路的用途:单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。

二、复位电路的工作原理在书本上有介绍,51单片机要复位只需要在第9引脚接个高电平持续2US就可以实现,那这个过程是如何实现的呢?在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。
开机的时候为什么会复位:在电路图中,电容的的大小是10uF,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10UF=0.1S。也就是说在单片机启动的0.1S内,电容两端的电压时在03.5V增加。这个时候10K电阻两端的电压为从51.5V减少(串联电路各处电压之和为总电压)。所以在0.1S内,RST引脚所接收到的电压是5V~1.5V。在5V正常工作的51单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。所以在开机0.1S内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。

按键按下的时候为什么会复位:在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位。

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

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

相关文章

Word2019中Visio对象图片插入题注时自动删除标签与编号前的空格,编号后添加空格

问题引入 撰写论文时为了修改方便&#xff0c;通常以插入题注和交叉引用的方式来给图片标号&#xff0c;这样修改图片和图号后可以方便、自动地更新。 然而&#xff0c;Word在插入题注上从03到13一直没有针对中国用户优化。 插入题注的标签与编号间有一个空格&#xff0c;当…

【32位win7一键扫雷】32位win7系统自带扫雷游戏逆向分析之一键扫雷(附VS代码工程文件、可执行文件和OD分析缓存文件)

实现效果 视频地址:https://www.zhihu.com/zvideo/1373742900744974336 附一张扫雷自定义中难度最大时进行一键扫雷的截图,如下,24*30,共668颗雷。 前言 一直对逆向感兴趣,就拿最简单的扫雷开始,对于XP系统中的扫雷,雷的数目以及雷区的地址都是固定的,可以直接通过…

基于51单片机的智能电子秤设计课程设计毕业设计

微信公众号&#xff1a;创享日记 对话框发送&#xff1a;单片机电子秤 获取仿原理图、真源文件、源程序代码和论文报告等 由STC89C51单片机最小系统LCD1602液晶显示模块HX711AD模块LED模块蜂鸣器按键模块10kg压力传感器构成。 具体功能&#xff1a; 1、数码管显示当前的重量&a…

java文件序列化_通过快速Java和文件序列化加快速度

java文件序列化从Java的第一个版本开始&#xff0c;许多开发人员每天都在努力实现至少与C / C 一样好的性能。 JVM供应商正在通过实现一些新的JIT算法来尽力而为&#xff0c;但仍有许多工作要做&#xff0c;尤其是在我们如何使用Java方面。 例如&#xff0c;对象<->文件…

【黑客帝国数字雨屏保】基于Win32的黑客帝国数字雨屏幕保护程序(附VS工程代码文件和可执行文件)

运行效果 代码结构 //黑客帝国数字雨 花心胡萝卜 #包含 <windows.h> #包含 <stdlib.h>#define 时钟编号 1 #define 最大长度 25 //一个显示列的最大长度 #define 最小长度 8 //一个显示列的最小长度 // 类型定义 结构类型 _字符序列 {//整个当作屏幕的一个显示列…

TestContainers和Spring Boot

TestContainers太棒了&#xff01; 它提供了一种非常方便的方式来启动和清除JUnit测试中的Docker容器。 此功能对于将应用程序与实际数据库以及可使用docker映像的任何其他资源进行集成测试非常有用。 我的目标是演示使用TestContainers对基于JPA的Spring Boot Application进行…

【模式识别】信号检测实验及MATLAB仿真

一、 参数 高斯噪声均值 u = 0 u = 0 u=0,方差 σ = 1 \sigma =

【模式识别】Fisher线性判别实验报告之MATLAB仿真

一、 参数 1.题设三个类,每个类均有10个样本,分别为w1,w2,w3,因此采用两两互相分类,最后得出结果; 2.三类样本的均值向量依次为m1,m2,m3; 3.三类样本的类内离散度矩阵依次为S1,S2,S3; 4.对于w1和w2,总类内离散度矩阵为Sw12,类间离散度矩阵为Sb12,通过矩阵特…

不知所措:您是否真的需要为您的API提供客户端库?

RESTful Web服务和API的优点在于&#xff0c;任何使用HTTP协议的使用者都可以理解和使用它。 但是&#xff0c;同样的难题一遍又一遍地弹出&#xff1a;您是否应该将Web APis与客户端库一起使用&#xff1f; 如果是&#xff0c;您应该支持哪些语言或/和框架&#xff1f; 通常这…

【模式识别】K均值聚类算法应用实验报告及MATLAB仿真

一、 实验目的 1.掌握K均值聚类算法的原理和实现过程; 2.掌握K均值聚类算法的应用方法。 二、 实验内容 1.彩色图像分割 选择一幅图像,分别按三种颜色数进行彩色图像分割的结果(原图和分割图)。步骤如下: (1) 第一步:读入一幅rgb图像并显示; (2) 第二步:将该幅图…

【模式识别】特征评价和可分性判据实验报告及MATLAB仿真

一、 实验目的 1.掌握几种常用的特征评价方法和可分性判据; 2.解图像阈值分割中几种确定阈值的方法。 二、 实验原理 假设图像中出现的最大灰度级为m,阈值为g,目标部分灰度均值为mean1,像素数占整个图像比例为w1;背景部分灰度均值为mean2,像素数占整个图像比例为w2。…

web应用插件开发_Web应用程序的简单插件系统

web应用插件开发我们需要制作多个具有很多共享功能的基于Web的项目。 为此&#xff0c;某种插件系统将是一个不错的选择&#xff08;作为粘贴粘贴内容的替代方法&#xff09;。 有些框架&#xff08;例如grails&#xff09;可以选择制作Web插件&#xff0c;但大多数没有&#x…

【自适应盲均衡2】多径衰落信道的复数常模算法(CMA)的理论推导与MATLAB仿真

关注公号【逆向通信猿】更精彩!!! 关于均衡的基础知识,首先可参考本人博客 LMMSE、Godard、CMA常模、Sato等算法在信道均衡中的应用理论与MATLAB仿真 理论推导 代价函数 J = E [ e G o d a r d p

【自适应盲均衡3】多模算法(MMA)——复数改进常模算法(MCMA)的理论推导与MATLAB仿真

关注公号【逆向通信猿】更精彩!!! 接上篇【自适应均衡2】多径衰落信道的复数常模算法(CMA)的理论推导与MATLAB仿真 理论推导 MMA或者MCMA其实是在CMA基础上改进而得到的,有学者称其为实虚部分开的常模算法。该算法使均衡器输出信号的实部与虚部分别收敛于各自的模值,改…

程序猿必备工具『CSDN浏览器助手』之超实用小工具测评

CSDN浏览器助手简介 CSDN浏览器助手由CSDN官方开发&#xff0c;集成【一键呼出搜索】、【万能快捷工具】、【个性标签页】和【 “真”免广告】四大功能&#xff0c;打开后给人的第一印象就是 清新脱俗 四个字&#xff0c;功能非常丰富&#xff0c;快捷键的使用能够大大提高工作…

【自适应盲均衡4】基于RLS的多径衰落信道均衡算法(RLS-CMA)的理论推导与MATLAB仿真

关注公号【逆向通信猿】更精彩!!! 一、回顾CMA和MMA 对于前面两种算法 【自适应均衡】多径衰落信道的复数常模算法(CMA)的理论推导与MATLAB仿真 【自适应均衡】多模算法(MMA)——复数改进常模算法(MCMA)的理论推导与MATLAB仿真 误差信号为:

apache camel_使用Java的Apache Camel入门

apache camelApache Camel是一个非常有用的库&#xff0c;可以帮助您处理来自许多不同来源的事件或消息。 您可以通过许多不同的协议&#xff08;例如在VM&#xff0c;HTTP&#xff0c;FTP&#xff0c;JMS甚至DIRECTORY / FILE之间&#xff09;移动这些消息&#xff0c;但仍然使…

【自适应(盲)均衡6】信号过多径衰落信道的矩阵乘法表示之Toeplitz矩阵和Toeplitz块矩阵的生成(分数间隔FSE)

关注公号【逆向通信猿】更精彩!!! 信号过系统(多径信道)的连续形式 信号过系统(多径信道)的离散采样形式 通常接收端处理的是数字信号,需对接收信号进行采样,当采样率为符号速率时,即为符号间隔采样;采样率为符号速率的P倍时,为分数间隔采样 至于为什么要用分数…

JDK 9/10/11:Java字符串上+ =带来的副作用

问题“ 为什么array [i &#xff05;n] i ”在Java 8和Java 10中给出不同的结果&#xff1f; ”已于本周初发布在StackOverflow.com上 。 它指向JDK9和更高版本中存在的Java编译器中的错误 &#xff0c;但JDK8中不存在。 如StackOverflow线程上所述&#xff0c; Didier L提供…

Matlab库中过采样函数rcosflt参数及源代码详解(翻译)

函数定义 rcosflt函数作为MATLAB即将被替换的函数,在MATLAB R2018b中还可以使用,但是已经查不到帮助文档;虽说是要即将被替换,但是函数内部的原理其实都是一样的,这个函数搞懂了,不管被替换成什么,只要看看新函数的说明文档就知道怎么使用了,说白了就是“万变不离其宗…