基于AT89S52的四路抢答器设计文档Word文件下载.docx
《基于AT89S52的四路抢答器设计文档Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于AT89S52的四路抢答器设计文档Word文件下载.docx(23页珍藏版)》请在冰豆网上搜索。
1.2功能要求说明…………………………………………………………1
1.3设计总体方案介绍及原理说明………………………………………1
2硬件系统的设计……………………………………………………………3
2.1硬件系统各模块功能简要介绍………………………………………3
2.2元器件清单……………………………………………………………3
3软件系统的设计……………………………………………………………5
3.1使用单片机资源的情况………………………………………………5
3.2软件系统各模块功能简要介绍………………………………………5
3.3软件系统程序流程框图………………………………………………5
3.4软件系统程序清单……………………………………………………9
4设计结论、实际结果、误差分析、教学建议……………………………20
4.1设计结论………………………………………………………………20
4.2设计实物使用说明……………………………………………………20
4.3设计课题的误差分析…………………………………………………20
4.4设计体会………………………………………………………………20
4.5教学建议………………………………………………………………21
结束语……………………………………………………………………………22
致谢………………………………………………………………………………23
参考文献…………………………………………………………………………24
附录………………………………………………………………………………25
1设计课题任务、功能要求说明及方案
1.1设计课题任务
设计一个具有特定功能的抢答器。
1.2功能要求说明
该抢答器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
主持人按下开始按钮后,抢答开始并限定时间30S;
10S内无人抢答,蜂鸣器发出音响;
主持人按下开始按钮之前有人按下抢答器,抢答违规,显示器显示违规台号,违规指示灯亮,其它按钮不起作用;
正常抢答,显示器显示台号,蜂鸣器发出音响,其它抢答按钮无效;
正常抢答下,从按下抢答按钮开始30S内,答完按钮没按下,则作超时处理,超时处理时,违规指示灯亮,数码管显示违规台号。
蜂鸣器发出音响;
各台数字显示的消除,蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位按钮。
1.3设计总体方案介绍及工作原理说明
本抢答器主要由单片机、按键电路、显示接口电路和复位电路构成,设计课题的总体方案如图1所示:
图1总体设计方案
智能抢答器用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,采用单片机AT89S52。
片内带有4KB的Flash存储器,并允许在系统内改写或用编程器编程。
该系统的核心器件是AT89S52,其外部接上复位电路、上拉电阻、数码管、独立式按键及蜂鸣器。
利用单片机定时器/计数器产生定时效果通过编程实现需要的定时时间,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现多路抢答,正确显示时间和台号的功能。
2硬件系统的设计
2.1硬件系统各模块功能简要介绍
本设计的硬件系统主要采用以下基本模块实现:
单片机最小系统模块,输入模块,输出模块,蜂鸣器模块,指示灯模块,电源模块,下载模块。
(1)单片机最小系统模块:
单片机最小系统一般包括:
单片机,晶振电路,复位电路,本模块以AT89S52为系统控制核心,单片机的复位由复位电路完成
(2)输入模块:
输入模块采用独立式键盘。
八个独立式按键S1-S8一端分别接在P1口P1.0-P1.7,另一端都连接在GND接地。
当某一按键按下时,相应的口线发生电平变化,单片机进行扫描来确定某一按键的按下。
进而判断某一选手按下抢答键,同时数码管显示电路显示相应的时间和选手号码。
(3)输出模块:
输出模块采用数码管显示。
本模块采用两个四位一体数码管(共阳极)作为显示窗口,位控端接有三极管,用8个PNP三极管来驱动数码管,既节约成本又简化电路。
(4)蜂鸣器模块:
蜂鸣器与三极管相连,三极管的一端连接在P3.1口线上,蜂鸣器电路的作用是,当无人抢答或者是抢答超时时起到报警作用。
(5)指示灯模块:
用八个发光二极管LED0-LED7一端并接在VDD(VCC+5V)上,另一端分别通过限流电阻470Ω的电阻连接在P3口的P3.0-P3.7口线上。
用来显示对应的台号以及抢答开始、结束及违规指示。
(6)电源模块:
电源模块直接由USB口直接供电,接+5V的电压。
(7)下载模块:
ISP下载功能,是通过单片机的SPI口实现的。
2.2硬件系统各模块功能简要介绍
抢答器元器件清单列表如表1所示:
表1元器件清单列表
序号
名称、大小
数量
1
电阻200Ω
1个
2
电阻470Ω
24个
3
电阻1KΩ
4个
4
电容22μF
5
电容33pF
2个
6
AT89S52
7
单排插
若干
8
四位一体共阳数码管
9
LED
9个
10
PNP
11
四脚按钮
12
六脚开关
13
USB电源接口
14
下载口
15
晶振12MHz
16
蜂鸣器
3软件系统的设计
3.1使用单片机资源的情况
AT89S52的P1口为输入,P0、P3口为输出
RST为复位输入
片内资源主要有:
T/C0用于50ms时基信号的产生
3.2软件系统各模块功能简要介绍
本设计的软件系统主要采用以下基本模块来实现:
主函数、定时器0中断服务函数、键盘扫描及处理函数、显示输出及更新函数、延时函数。
(1)主函数:
主要是用于对输入信号的处理,输出信号的控制和对各个功能程序模块的运用及其控制。
(2)定时器0中断服务函数:
30秒倒计时,判别30秒内是否有人抢答,并判别在有人抢答的情况下,答题时间是否超过30秒。
(3)键盘扫描及处理函数:
键盘扫描函数,函数返回值即键值;
键处理则是处理与键盘相连的P1口的内容,作为键值。
(4)显示输出及更新函数:
显示输出是将相应的台号和时间在数码管上显示,显示更新函数即是设置一个显示缓冲函数用于数码管显示的更新,保证显示的稳定性。
(5)延时函数:
两个纯延时函数,一个为显示延时函数,一个为蜂鸣器报警延时函数,为了蜂鸣器报警声音更清晰,延时大约为0.5秒。
3.3软件系统程序流程框图
系统软件采用C语言编写程序,然后通过Keil软件进行调试,生成hex文件后,通过Proteus软件进行电路仿真。
程序总体流程框图如图2所示
中断服务函数流程框图如图3所示
键盘扫描函数流程框图如图4所示
显示函数流程框图如图5所示
图2程序总体流程框图
图3中断服务函数流程框图
Y
图4键盘扫描程序流程框图图5显示程序流程框图
3.4软件系统程序清单
按键功能及指示灯指示:
S2:
抢答开始;
S3:
抢答结束;
S4,S5,S6,S7为对应的四路抢答器按键;
S9:
主持人复位按键;
LED0:
抢答开始提示;
LED1:
抢答违规指示;
LED2:
抢答结束提示;
LED3、LED4、LED5、LED6为对应的四路位置指示
#include"
reg52.h"
intrins.h"
absacc.h"
#defineucharunsignedchar
#defineuintunsignedint
#defineulongunsignedlong
/*定义定时器T0时间常数和方式控制字*/
#definev_th00x3c//计数初值初始化
#definev_tl00xb0
#definev_tmod0x01//TMOD初始化
ucharled_buf[8];
//显示缓冲数组
bitbdataqdks_biaozhi;
//启动键的标志位
bitbdatabiaozhi1;
//有人开始抢答的标志位
bitbdatafuwei;
//复位键标志位
/*定义LED显示字符段码*/