设计以八路抢答为基本理念。考虑到依需设定限时回答的功能,利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时。同时使液晶显示屏能够正确地显示时间,并且给出指令的提示,扬声器发生提示。系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可在1-99s设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有声音的提示;抢答时间和回答问题时间倒记时显示,满时后系统计时有声音提示;抢答倒计时时间和回答问题时间均可通过硬件的按键调整。
程序清单
#include<reg51.h> //包含单片机的头文件
#include<intrins.h> //包含_nop_()函数定义的头文件
sbit RS=P2^0; //寄存器选择位,将RS位定义为P2.0引脚
sbit RW=P2^1; //读写选择位,将RW位定义为P2.1引脚
sbit E=P2^2;
sbit ring=P3^6;
sbit start=P3^0;
sbit ok=P3^1;
sbit add=P3^4;
sbit sub=P3^5;
sbit D0=P1^0;
sbit D1=P1^1;
sbit D2=P1^2;
sbit D3=P1^3;
sbit D4=P1^4;
sbit D5=P1^5;
sbit D6=P1^6;
sbit D7=P1^7;
unsigned char num=0;
unsigned char a=30,b=60,n=0,qd,hd,d;
void display();
void delay1ms()
{
unsigned char i,j;
for(i=0;i<10;i++)
for(j=0;j<33;j++)
;
}
void delay(unsigned char n)
{
unsigned char i;
for(i=0;i<n;i++)
delay1ms();
}
void nopp(unsigned char n)
51单片机抢答器设计
最新推荐文章于 2025-02-28 23:59:29 发布