基于51单片机的八位抢答器设计【普中开发板】( proteus仿真+程序+设计报告+讲解视频)

【普中开发板】基于51单片机的八位抢答器设计( proteus仿真+程序+设计报告+讲解视频)

Proteus 仿真:Proteus 8.16(有低版本)

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:P06

1. 主要功能:

普中开发板实验设计

本设计旨在设计一个基于51单片机的8位竞赛抢答器设计。

以单片机为核心,设计一个8位竞赛抢答器:同时供8名选手或8个代表队比赛,分别用8个按钮1-8号表示。

1.设置一个系统清除和抢答控制开关S,开关由主持人控制。

2.抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。

3.抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如20秒)。

4.当主持人启动“开始”键后,定时器进行减计时。

参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。

5.如果在主持人启动"开始"键前抢答 ,抢答无效。且显示器上会显示抢答选手编号。

6.如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。

(目前仅完全适配普中开发板A234,其他普中开发板型号可能需要做代码修改或接线)

需注意本设计仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

资料下载链接:

P系列单片机设计下载链接(复制到浏览器打开)

https://docs.qq.com/doc/DS2pPenNRaHB6SlR1

以下为本设计资料展示图:

2. 讲解视频:

讲解视频包含仿真运行讲解、实物运行讲解和代码讲解

【普中】基于51单片机的八位抢答器( proteus仿真程序报告讲解)

3. 设计说明书(报告)

随着科学技术的发展和普及,各种各样的竞赛越来越多,其中抢答器的作用也越来越重要。本文设计出以AT89C51单片机为核心的8位抢答器,采用了数字显示器直接指示,自动锁存显示结果,并自动复位的设计思想,它能根据不同的抢答输入信号,经过单片机的控制处理并产生不同的与输入信号相对应的输出信号,最后通过LED数码管显示相应的路数,充分利用了单片机系统结构简单、功能强大、可靠性好、实用性强的特点。

img

4. 仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。

imgimg

5. 实物烧录和现象

软件准备:

第一次使用务必先安装CH340驱动。

双击打开 STC-ISP.exe。

下载步骤:

0.板子先上电,接电源线到电脑USB口,先不上电,板子无灯光。

1.选择选择单片机型号

2.选择下载器的串口

3.打开编译生成的 HEX 文件

4.点击下载,单片机板子电源键按下接通电源,等待下载完成提示

img

img

6. 程序代码

使用keil4或者keil5编译,代码有注释。

img

核心代码:

void main()

{
    
      

​	TMOD = 0X12;					 //初始化定时器

​	TH0 = 6;

​	TL0 = 6;

​	TH1	= (65536-50000)/256;						 //50ms计时初值

​	TL1 =(65536-50000)%256;

​	EA = 1;							 //开总中断

​	ET0 = 1;						 //开T0中断

​	ET1 = 1;						 //开T1中断

​	temp_fen=fen=10;			//设置抢答倒计时while(1){
    
    ChangeFor();	

​			

​		KeyScanf();if((start== 1)&&(flag == 0))	//如果开始键动作,且处于空闲状态{
    
    

​				flag = 1;				//设置运行标志

​				fen=temp_fen;

​				TR1 = 1;				//启动定时器}

​	  	

​		if((add==1)&&(flag==0))//如果时间+键动作,且处于空闲状态{
    
    

​			add=0;	

​			key_flick++;if((key_flick%25)==0){
    
    //消抖

​				key_flick=0;

​				temp_fen++;			//时间+1

​				fen=temp_fen;}}	

​		

​		if((dec==1)&&(flag==0))//如果时间-键动作,且处于空闲状态{
    
    

​			dec=0;

​			key_flick++;if((key_flick%25)==0){
    
    //消抖

​				key_flick=0;

​				temp_fen--;			//时间-1

​				fen=temp_fen;}}			

​		

​		if((start==0)&&(flag==0)){
    
    if((key != 0))				//如果键值有效{
    
    

​				xianshou = key;			//显示抢答键

​				flag = 2;

​				TR1 = 0;				//关闭T0 

​				flaga = 8000;			//报警值,蜂鸣器响2秒

​				TR0 = 1;				//启动T0 }}while(flag == 1) 				//如果运行标志有效,进入运行状态{
    
    ChangeFor();					//显示KeyScanf();			//扫描抢答键if((key != 0))				//如果键值有效{
    
    

​				xianshou = key;			//显示抢答键

​				flag = 2;

​				TR1 = 0;				//关闭T0 

​				flaga = 8000;			//报警值,蜂鸣器响2秒

​				TR0 = 0;				//启动T0 }}if((end == 1)&&(flag==2))	//运行结束后复位键按下{
    
    

​		  flag = 0;				//回到初始状态

​				xianshou = 0;			//变量归零

​			  fen = 0;

​				TR0 = 0;

​				TR1 = 0;	

​				start=0;

​				key=0;

​			 end=0;}}

}

7. 设计资料内容清单&&下载链接

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

0、常见使用问题及解决方法–必读!!!!

1.程序代码

2.仿真

3.开题报告

4.功能要求

5.设计报告

6.讲解视频

7.烧录工具

Altium Designer 安装破解

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

普中-2&普中-3&普中-4开发板原理图.pdf

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

img

猜你喜欢

转载自blog.csdn.net/weixin_52733843/article/details/135361604