- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
智力竞赛抢答器单片机课设
一、项目概述 2
二、项目要求 2
三、设计原理 2
四、软件设计 5
五、仿真结果 10
六、心得体会 12
智力竞赛抢答器
一、项目概述
现如今电视节目日益丰富其中的竞赛环节也越来越多,其中智力抢答器是不可或缺的器材。在本学期学习了单片机这门课之后,我们小组成员觉得可以试着自己来实现抢答器的功能,令它能准确、公正、直观地判断出第一抢答者,并通过抢答器的数码管显示和蜂鸣器报警指出抢答组别。我们最终做出一种数字式抢答器的设计方案,通过Proteus设计完成,利用Keil软件编辑程序,仿真验证,适用于多种竞赛场合。
二、项目要求
设计一个用于智力竞赛的抢答器,其功能的实现是由单片机控制的,满足
(1)设置两个功能键:开始键、复位键
(2)按下按键后可以进行抢答,按下复位键恢复初始状态
(3)能允许2-6组抢答能显示抢答组号,并给出状态指示灯信号
(4)比赛结束时,能发出报警声
三、设计原理
采用AT89C51,它主要负责控制各个部分协调工作。P3.7?P3.6?P3.5由主持人控制,分别是结束?复位和开始键。P3.0—P3.4是5组抢答的输入口,按下对应按钮即为抢答。P1口为显示组别数码管的段选口,位选口用的是P2.5口。P2.6为蜂鸣器的控制口外部还接有蜂鸣器用来发出报警音。显示分数数码管采用7SEG-MPX6-CC显示,它是共阴极的由高电平点亮。系统仿真用到了Keil和Proteus软件,通过仿真可以显示所设计系统的功能,对于程序的调试等有很大的帮助。
实验原理图:
芯片引脚连接:
蜂鸣器及开始结束复位电路:
晶体振荡电路:
组别显示:
记分显示:
四、软件设计
#include reg51.h
#define uint unsigned int
#define uchar unsigned char
sbit Q1=P2^0;
sbit Q2=P2^1;
sbit Q3=P2^2;
sbit Q4=P2^3;
sbit Q5=P2^4;
sbit Q6=P2^5;
sbit feng=P2^6;
sbit k1=P3^0;
sbit k2=P3^1;
sbit k3=P3^2;
sbit k4=P3^3;
sbit k5=P3^4;
sbit begin=P3^5;
sbit reset=P3^6;
sbit jieshu =P3^7;
unsigned char code table[10]={0x0c0,0x0f9,
0x0a4,0x0b0,
0x99,0x92,
0x82,0x0f8,
0x80,0x90}; //共阳数码管
unsigned char code table1[16]={0x3f,0x06,0x5b,
0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,
0x7c,0x39,0x5e,0x79,0x71}; //共阴数码管代码表0-F
uchar num ;
uchar xms ;
uchar BUZZ, a, b, c, d, e;
uchar jishu; //储存抢答时间值
void delayms(uchar xms) //延时语句
{
uchar i,j;
for(i=xms;i0;i--)
for(j=110;j0;j--);
}
void timer_init(void)
{
TMOD=0x01; //T0定时器,M1M0=01,工作方式1(16位方式)
TH0=0x15; //设置初值5536 (6MHz晶振,一个机器周期1us)
TL0=0x0a0; //16进制为 15A0 H
ET0=1; //T0中断
EA=1; //总中断
}
void keyscan()
{
uchar flag=1;
while(flag)
{
if(k1==0)//按键按下
{
num=1;flag=0;break;
}
if(k2==0)
{
文档评论(0)