AT89C51 课程设计 单片机-抢答器

更新时间:2023-07-21 02:34:22 阅读: 评论:0

抢答器设计   
内容提要:
电子智能抢答计分器在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。本设计使用AT89C51单片机来设计智能抢答器,组数可以在八组以内任意使用。并且具有倒计时和时间设置及报警功能。利用AT89C51单片机对信号进行锁存、显示等功能。分别从硬件和软件两方面阐述了该控制系统的设计方法,并经过调试和运行使该系统达到预期目标,具有反应快、功能齐全、实用性强的特点。
一、 系统总体方案设计
电子智能抢答计分器在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。为了完成这个任务设计时系统能显示抢答组号、各组计分并能计分显示以及比赛结束时能发出报警声三个要求;电子智能抢答计分器主要是由硬件部分和软件部分构成,硬件和软件分开设计;系统综框图如下:
图1-1 系统框架图
抢答器的工作原理
抢答器的工作原理是利用单片机的定时器T0财务管理实务T1中断完成,其余状态循环调用显示子程序,4个共阴极LED数码管来显示,用P0口作为数码管的八个段选,用P2口中的P2.0P2.1P2.2、作为4个数码管其中3个位选,P1口接4个按键,提供选手抢答,P3.0-P3.5四个接四个按键,提供开始、结束、答题时间调整、抢答时间调整,加1、减1调整之用。
抢答功能:
通过四路按键配合程序来实现抢答功能。当主持人按下抢答键开始抢答后,此时任一路按下按钮均闭锁其它各路,由程序对键盘译码并显示最先按下抢答键的路数及其当前时间。
抢答限时:
主持人按下抢答键后,设置5秒为抢答时间(此时间可在1-99秒之间修改)。若5秒内无人抢答,倒计时为0时发出报警,说明该抢答题目作废。此时闭锁所有抢答按键,只有当主持人再次按下抢答键开始下一次抢答方可抢答。
答题限时:
当选手按下按钮时,启动倒计时(此倒计时时间可在199秒之间修改),倒计时为0时发出报警,说明答题时间到。
二、 系统硬件设计多伦多有哪些大学
1控制系统及所需元件
芯片的选择
抢答器电路的核心是89C51单片机,其内部带有4KBFLASH ROM,无需外扩程序存储器;抢答器没有大量的运算和暂存数据现有的128B篇内RAM已经能满足容量需求,故不需外扩片外舍得图片RAM,系统配有88段数码显示管,管采用共阴数码管,作为时钟的显示输出。
控制系统主要由单片机应用电路、存储器、接口电路、显示接口电路组成;其中单片机采用的是AT89C51单片机使系统工作的核心,它主要负责控制各个部分协调工作。
所需元件:该系统的核心器件是AT89C51,其外部接上复位电路、上拉电阻、数码管、按钮及扬声器。元件为:晶体振荡管X1,电容C1C2C3,电阻RP1P3.0P3.1有裁判控制分别是抢答停止和开始键;P1.0-P1.78组抢答的输入口;P2.0-P2.3口为数码管的段选口;位选口用的是P0.0-P0.6口输出,外部中断01P3.3,P3/4为抢答记时调整口,实现的对个队进行计时,并且加减调整,外部中断01实现了答题时间调整。P3.4P3.5分别实现了时间的加一和减一;P3.6为蜂鸣器控制口。
智能抢答器用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,采用单片机AT89C51,它是低功耗、高性能的CMOS8位单片机。片内带有4KBFlash存储器,并允许在系统内改写或用编程器编程。该智力竞赛抢答器的准确度很高,其误差主要
由晶振自身的误差所造成。
AT89C51单片机由微处理器,存储器,I/O口以及特殊功能寄存器SFR等部分构成。其存储器在物理上设计成程序存储器和数据存储器两个独立的空间,片内程序存储器的容量为4KB,片内数据存储器为128个字节。89C51单片机有48位的并行I/O口:P0口,P1口,P2口和P3口。各个接口均由接口锁存器,输出驱动器和输入缓冲器组成。P1口是唯一的但功能口,仅能用作通用的数据输入/输出口。P3口是双功能口除了具有数据输入/输出功能外,每条接口还具有不同的第二功能,如P3.0是串行输入口线,P3.1口是串行输出口线。在需要外部程序存储存储器和数据存储器扩展时,P0可作为分时复用的低8位地址/数据总线,P2口可作为高8位的地址总线。P3口也可作为AT89C51的一些特殊功能口,同时为闪烁编程和编程校验接收一些控制信号。
复位电路的设计
2-1  复位电路原理图
该复位电路采用上电自动复位和手动复位两种复位方式,图中网络标号所指9连接到单片机的复位引脚。要实现复位只需在,51系列单片机的RESET引脚上加上痴心不改5ms的高电平就可以了。上电复位是利用电容的充电来实现的,即上电瞬间RESET端的电位与Vcc相同,随着电容上储能增加,电容电压也逐渐增大,充电电流减小,RESET端的电位。这样就会建立一个脉冲电压,调节电容与电阻的大小可对脉冲的持续时间进行调节。通常若采用12MHz的晶振时,复位元件参数为22μF的电解电容和10kΩ的电阻。按钮复位电路是通过按下复位按钮时,电源对RESET端维持两个机器周期的高电平实现复位的。
3.4 晶振电路的设计
MSC-51单片机的定时控制功能是用时钟电路和振荡器完成的,而根据硬件电路的不同,连接方式分为内部时钟方式和外部时钟方式。本设计中采用内部时钟方式。
    单片机内部有一个反相放大器,XTAL1XTAL2分别为反相放大器的输入端和输出端,外接定时反馈元件组成振荡器(内部时钟方式),产生时钟送至单片机内部各元件。时钟频率越高,单片机控制器的控制节拍就越快,运算速度也就越快。
    一般来说单片机内部有一个带反馈的线性反相放大器,外界晶振(或接陶瓷振荡器)和电容就可组成振荡器,如图2-2所示。加电以后延时一段时间(约10ms)振荡器产生时钟,不受软件控制,图中Y1为晶振,震荡产生的时钟频率主要由Y1确定。电容C1C2的作用有两个:一是帮助振荡器起振,二是对振荡器的频率起微调作用,典型值为30pF
晶振电路的设计如图2-2所示:
2-2  晶振电路原理图
3.5数码显示管的选择
数码显示管用来作为时间的显示输出,一般用7段数码显示管。本次设计中采用7段共阴数码显示管应用简单、可靠性高、成本低,作为显示输出。连接时段选信号接在P0口的P0.0
P0.6七个I/O口上,P1口是准双向I/O接口在输出驱动部分具有驱动4TTL负载的能力,即输出电流不大于400μA,所以在接电阻时选择接510Ω限流电阻。而在位选方面采用单片机P2口的P2.0P2.2三个I/O口作为位选信号的输出口。
软件设计
4.1 主程序的设计
此程序的及时采用定时器T0T1中断完成,其余状态循环调用显示子程序。系统主程序流程图如图3-1所示。
         
3-1  系统主程序流程图
4.2显示子程序的设计
由于采用软件动态扫描实现数据显示,显示用十进制BCD码的数据对应段码存放在ROM表中。显示时,先取出70H75H某一地址中的数据,然后查得对应的显示段码从P0口输出。P2口将对应的数码管选中,就能显示该地址单元的数据值。
4.3定时器T0T1中断服务程序的设计
定时器T0用于响铃程序,定时器T1用于计时程序。当答题剩余5秒种时P3.6口不断取反使喇叭发出一定频率的声音,提示选手。中断服务程序流程图如图3-2所示。
                        N
                                      Y
功亏一篑的篑
                      N
                                      Y
3-2  中断服务程序流程图
4.4程序清单
定时器T1时间初值
50ms时间初值为ZZ的计算方法为
216- Z)×12=12×50×103,结果Z=15536D=3CB0H
OK EQU 20H                    ;抢答开始标志位
RING EQU 22H                  ;响铃标志位
ORG 0000H
无缘之月
AJMP MAIN
ORG 0003H
AJMP INT0SUB
tradedORG 000BH
AJMP T0INT
ORG 0013H
AJMP INT1SUB
ORG 001BH
AJMP T1INT
ORG 0040H
MAIN: MOV R1,#30                      ;初设抢答时间为30s
MOV R2,#60                      ;初设答题时间为60s
MOV TMOD,#11H                  ;设置定时器T0/T1模式1
MOV TH0,#0F0H
MOV TL0,#0FFH                  ;越高发声频率越高,越尖
MOV TH1,#3CH
MOV TL1,#0B0H                  50ms为一次溢出中断
SETB EA
SETB ET0
SETB ET1
SETB EX0
SETB EX1                      ;允许四个中断,T0/T1/INT0/INT1
CLR OK
CLR RING
SETB TR1
SETB TR0                      ;一开始就运行定时器,以开始显示FFF
=====查询程序=====
START: MOV R5,#0BH
      MOV R4,#0BH
      MOV R3,#0BH
ACALL DISPLAY                ;未开始抢答时候显示FFF
JB P3.0,NEXT;ddddddd
ACALL DELAY
JB P3.0,NEXT
ACALL BARK                          ;按键发声
MOV A,R1
MOV R6,A                    ;送R1->R6,因为R1中保存了抢答时间
SETB OK          ;抢答标志位,用于COUNT只程序中判断是否查询抢答
MOV R3,#0AH                  ;抢答只显示计时,灭号数
AJMP COUNT      ;进入倒计时程序,"查询有效抢答的程序"COUNT里面
NEXT: JNB P1.0,FALSE1
      JNB P1.1,FALSE2
      JNB P1.2,FALSE3
      JNB P1.3,FALSE4
AJMP START
小白虾怎么做好吃
TZ1:  JMP FALSE7
TZ2:  JMP FALSE8
=====非法抢答处理程序=====
FALSE1: ACALL BARK;                            按键发声

本文发布于:2023-07-21 02:34:22,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1089945.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:抢答   显示   设计   系统   单片机
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图