基于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引脚又接收到高电平。单片机系统自动复位。
基于51单片机的简易抢答器设计相关推荐
- 基于51单片机的四路抢答器设计
0 要求介绍 使用51单片机设计一个思路抢答器 正常抢答:主持人按下开始按钮后数码显示管显示最先按下按钮台号,蜂鸣器发出音响,其它抢答按钮无效:主持人按下开始按钮之前,若选手按下抢答器,抢答违规,显示 ...
- 基于51单片机的八路抢答器设计
随着科学技术的发展和普及,各种各样的竞赛越来越多,其中抢答器的作用也越来越重要.本文设计出以STC89C52RC单片机为核心的八路抢答器. 所需元器件如下: STC89C52RC芯片 *1 10K电阻 ...
- 基于51单片机的简易抢答器
具体实现功能 具体规则: 1.主持人进行复位,依次显示8位选手的分数,8位选手分数显示结束后主持人方可按下开始按键. 2.主持人按下抢答开始按键,抢答者才可以开始抢答,数码管抢答倒计时10S. 3.抢 ...
- 【Proteus仿真】基于51单片机的八路抢答器
[Proteus仿真]基于51单片机的八路抢答器 Proteus仿真 主要功能和使用介绍 采用4位数码管设计. 下排按键一一对应八位选手. 上排三个按键,从走到右依次为:开始.暂停.复位. 操作流程: ...
- 基于51单片机的八路抢答器附仿真代码开源
基于51单片机的八路抢答器代码开源 单片机采用51单片机 一个共阳数码管 需要该源码的可以关注公众号:智慧小巷 回复:八路抢答器 即可!
- 【Proteus仿真】【51单片机】竞赛抢答器设计
文章目录 一.主要功能 二.硬件资源 三.软件设计 四.实验现象 联系作者 一.主要功能 本项目使用Proteus8仿真51单片机控制器,使用数码管显示模块.键盘模块.蜂鸣器.按键模块等. 主要功能: ...
- 基于51单片机的八路抢答器
写一下寒假做的51小项目,本次是基于AT89C51的八路抢答器,课设水平难度. 具体说明:硬件分为两部分,主持人主控部分和选手使用部分.可以实现:按动开始可以开启程序或者开启答题倒计时,按动复位可以实 ...
- 基于51单片机六路抢答器
资料编号:194 本设计是以六路抢答为基本理念.考虑到依需设定限时回答的功能,利用51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软.硬件有机地结合起来,使得系统能够 ...
- 51单片机的八路抢答器设计
一.硬件方案 本设计 利用STC89C52单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软.硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时 ...
最新文章
- python 编程实例 1
- html与css结合动效案例,CSS3制作动画效果例子
- 【Consul】Consul架构-Gossip协议
- Spring Boot 常见面试题
- cannot resolve symbol spark
- FreeBSD的功能特点
- WSSv3 Technical Articles_Windows SharePoint Services 3.0编码开发工具和技巧(Part 2 of 2)
- iOS开发中防止键盘挡住UITextField解决方案
- java 拦截html请求参数值_javaweb项目,html文件放在了WebRoot下,如何拦截访问html的请求呀?...
- pandas.Series.asfreq
- Safari 是什么
- html加图形验证码,canvas基础之图形验证码的示例
- Test from Windows Live Writer
- 实时即未来!Flink Forward Asia 2021 议程正式上线!
- 计算机组装小游戏,电脑组装店游戏
- Debian7系统安装python3
- Redhat 7.9安装db2 11.1.4.6 DBT3514错误
- iOS 环信移动客服接入
- 怎么根据日志分析出 PV 和 UV?
- DAP数据分析平台可视化组件开发
热门文章
- 计算机毕业设计(附源码)python医院门诊分诊系统
- php 7天余额显示不出来的,为何我在余额宝里面放了两千元钱,三天以后还是看不到收益?请问手机余额宝的收益在哪里可以看到?还有余...
- 人人都会的Android无埋点数据采集技术
- 基于Android原生开发的理财小助手APP
- 算法小抄6-二分查找
- 关于HTML几种简单布局方式
- 苹果plus HTML高度,iphone7plus尺寸多大?长、宽、高度和尺寸图详解
- Elasticsearch:使用 ELSER 进行语义搜索
- Apache Harmony的介绍
- 学分信息管理系统C语言代码,C语言学分管理系统(需求文档附源代码)(32页)-原创力文档...