基于单片机的抢答器设计报告.docx
《基于单片机的抢答器设计报告.docx》由会员分享,可在线阅读,更多相关《基于单片机的抢答器设计报告.docx(19页珍藏版)》请在冰豆网上搜索。
![基于单片机的抢答器设计报告.docx](https://file1.bdocx.com/fileroot1/2022-10/24/50d34dcc-e05a-4ed4-bed6-f2e1be3af89f/50d34dcc-e05a-4ed4-bed6-f2e1be3af89f1.gif)
基于单片机的抢答器设计报告
湖南商学院
《单片机应用系统》课程设计(实习)报告
题 目基于单片机的抢答器设计
姓名:
胡飘
学号:
100910122
专业:
电子信息工程
班级:
电信1004班
指导教师:
肖婧
职称:
实验师
计算机与信息工程学院
2013年6月
课程设计(实习)评审表
姓名
胡飘
学院
计信学院
学号
100910122
专业班级
电信1004班
题目
基于单片机的抢答器设计
评
审
意
见
评审成绩
指导教师签名
职称
评审时间
年月日
课程设计(实习)作品验收表
题目
基于单片机的抢答器设计
参与人员
姓名
胡飘
班级
电信1004班
学号
100910122
设计任务与要求:
具有3路抢答输入(由独立按键实现),时间分辨率小于100ms。
显示抢答剩余时间,初始为10秒。
抢答成功,蜂鸣器响,同时显示抢答成功的号码。
作品完成情况:
上电显示10s,按开始键开始倒计时,若有按键显示时间与抢答者号码,同时蜂鸣器响,若倒计时为0,蜂鸣器响,按清除键则复位到10s。
验收情况:
验收教师签名:
___________
年月日
注:
1、除“验收情况”栏外,其余各栏均由学生在作品验收前填写。
2、“验收情况”栏由验收小组按实际验收的情况如实填写。
1设计任务与要求………………………………………………1
2系统功能描述…………………………………………………1
3系统总体设计…………………………………………………1
4系统详细设计…………………………………………………3
4、1主要电路设计……………………………………………3
4.1.1输入模块设计………………………………………3
4.1.2单片机模块…………………………………………4
4.1.3显示模块……………………………………………4
4.1.4声音模块……………………………………………5
4、2软件设计…………………………………………………6
4.2.1主程序设计…………………………………………6
4.2.2定时器设计…………………………………………7
5系统实现与测试………………………………………………7
5、1Proteus软件……………………………………………7
5、2安装与调试过程…………………………………………8
5.2.1软硬件调试…………………………………………8
5.2.2硬件安装……………………………………………8
6课程设计总结…………………………………………………10
6、1心得体会…………………………………………………10
6、2、实践总结…………………………………………………10
参考文献…………………………………………………………11
附录………………………………………………………………11
基于单片机的抢答器设计
1设计任务与要求
具有3路抢答输入(由独立按键实现),时间分辨率小于100ms。
显示抢答剩余时间,初始为10秒。
抢答成功,蜂鸣器响,同时显示抢答成功的号码。
2系统功能描述
(1)具有3路抢答输入(由独立按键实现),时间分辨率小于100ms。
(2)主持人按“开始”键,显示抢答剩余时间,初始为10秒。
(3)抢答成功,蜂鸣器响,同时显示抢答成功的号码。
(4)主持人按“清除键”键,复位为初始10秒,进入准备状态。
(5)若十秒倒计时时间到,则蜂鸣器响。
3系统总体设计
抢答输入与控制输入共同控制单片机输出显示与蜂鸣器响,输出锁存控制输入的优先性。
各模块如下:
(1)输入模块:
由独立按键实现抢答输入与“开始”“清除”控制输入。
(2)单片机控制模块:
采用AT89S51芯片控制输出。
(3)输出锁存模块:
采用74HC573芯片锁存数据。
(4)显示输出模块:
由四位共阳数码管输出显示倒计时与抢答者号码。
(5)声音输出模块:
由蜂鸣器的工作来控制声音。
原理方框图如图1所示。
图1原理方框图
整体电路图如图2所示。
图2基于单片机的抢答器系统整体电路图
4系统详细设计
4、1主要电路设计
4.1.1输入模块设计
(1)抢答键输入模块
抢答键输入电路图如图3所示。
图3抢答键输入电路图
由3个独立按键表示1号,2号,3号抢答者,一端接地一端分别接接单片机的P1、0,P1、1,P1、2,如果按下,则相应I/O口变为低电平,从而控制单片机P1口。
(2)“开始”“清除”控制键输入模块
“开始”“清除”控制键输入电路图如图4所示
图4“开始”“清除”控制键输入电路图
由2个独立按键控制“开始”与“清除”,一端接地一端分别接接单片机的P3、6,P3、7,如果按下,则相应I/O口变为低电平,从而控制单片机P1口。
4.1.2单片机模块
单片机主要由程序设计与输入模块信号控制,用于对显示、声音等模块进行控制。
单片机控制输出电路图如图5所示。
接蜂鸣器
图5单片机控制输出电路图
P0口连接有一个排阻,用作P0口的上拉电阻,保证P0口没有数据输出时候处于高电平状态。
还接在74HC753芯片的D端,作为它的输入,锁存输出到数码管。
P2口低四位接数码管未选端,P3、4接蜂鸣器。
4.1.3显示模块
显示模块主要就是显示抢答倒计时的时间,抢答者号码。
数码管显示方法包括两种:
一种就是静态显示,一种就是动态显示。
其中静态显示的特点就是显示稳定不闪烁,程序编写简单,但占用端口资源多;动态显示的特点就是:
显示稳定性没静态好,程序编写复杂,但就是相对静态显示而言占用端口资源少。
在本设计中根据实际情况采用的就是动态显示方法。
4位七段数码管显示电路如图6所示。
接74HC753即P0口
接AT89S51的P2端口低四位
图64位七段数码管显示电路图
上图中数码管采用的就是4位一体七段共阳数码管,其中A~G段分别接到单片机的P0口,由单片机输出的P0口数据来决定段码值,位选码COM1,COM2,COM3,COM4分别接到单片机的P2、0,P2、1,P2、2,P2、3,由单片机来决定当前该显示的就是哪一位。
通过查表法,将其在数码管上显示出来,其中P0口为字型码输入端,P2口低4位为字选段输入段。
在这里我们通过查表将字型码送给7段数码管显示的数字。
4.1.4声音模块
声音模块主要就是单片机控制蜂鸣器发声。
选取压电式无源蜂鸣器,声音的频谱范围约在几十到几千赫兹,编写程序控制单片机P3、4口的“高”“低”电平转换频率,产生一定频率的巨型波,接上蜂鸣器就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使蜂鸣器发出不同的声音。
单片机控制蜂鸣器电路图如图7所示。
图7单片机控制蜂鸣器电路图
单片机通过内部定时器的操作实现交替变换的波形输出驱动扬声器发声。
4、2软件设计
4.2.1主程序设计
一上电数码管显示10—0,表示初始时间为10s,0表示没有抢答,先扫描“开始”“清除”键,判断“开始”键就是否按下,若按下,则开始倒计时,并扫描抢答键,若有抢答键按下,则显示抢答者号码与抢答的时间,判断倒计时就是否为0,若就是则蜂鸣器响。
程序流程图如图8所示。
开始键按下?
扫描开始键与清除键
显示倒计时,扫描抢答键
显示抢答者号码,蜂鸣器响
有抢答键按下不
Y
Y
倒计时为0不?
N
蜂鸣器响,复位
Y
清除键按下?
复位
结束
开始
N
N
Y
图8程序流程图
4.2.2定时器设计
采用定时器/计数器T0的方式1定时,定时时间为50ms,对应的十进制数的初始值为15536,因使用的时钟为12MHz,所以定时的时间为1us*(65536-15536)=1us*50000=50ms。
要想定时1s,需要20次中断,因此程序中定义了中断次数单元count,来对中断次数进行计数。
要使最小分辨率为50ms,在定时器计时一次即50ms时,对键盘进行一次扫描实现。
因为采用74HC753芯片,因此程序变得简单,只需将秒单元进行“second/10”运算,即可得到秒的十位的BCD码,秒的个位BCD码只需取余数“second%10”运算就可得到,并都送P0口经锁存器利用动态方式显示。
5系统实现与测试
5、1Proteus软件
Proteus软件就是由英国LabcenterElectronics公司于1989年推出的EDA工具软件,Proteus软件不仅具有原理布图,PCB自动制版或人工布线及互动电路仿真的功能,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能瞧到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器,逻辑分析仪等,为单片机系统的虚拟仿真提供了功能强大的软硬件调试手段。
Proteus软件的特点:
(1)除了既可以仿真模拟电路又可仿真数字电路以及数字、模拟混合电路外,其独特就是能够仿真各种单片机及嵌入式处理器。
(2)具有各种仿真仪器仪表工具,如示波器、逻辑分析仪、各种信号发生器、计数器、电压源、电压表、电流表、虚拟终端等,同一种仪器仪表可在同一电路中随意调动。
(3)可以进行软、硬件结合的仿真系统,且仿真就是交互的、可视化的。
5、2安装与调试过程
5.2.1软件调试
利用KeiluVision4软件进行程序编写,编译,调试,生成、hex文件,利用Proteus进行电路原理图描绘,然后把、hex文件载入AT89S51芯片中,再仿真,通过功能对照,来检查修改程序,一步步使仿真与实现功能相近。
一开始蜂鸣器怎么的都不响,通过查资料请教别人,最后发现就是因为蜂鸣器的一次高低电平变换的程序没有循环,所以没有维持一定时间让它工作,通过在蜂鸣器的子程序中加入一个100次的循环,并就是高低电平之间延时1ms发现蜂鸣器的工作就是最合理的。
后来又发现按下抢答键,倒计时不停止,经过很多次试验之后,发现就是应该在判断抢答键就是否按下的肯定条件下就是定时器的使能标示位置0。
当主持人按下开始键,2号抢答者按下抢答键时,
Proteus仿真运行图如图所示
图9Proteus仿真运行图
5.2.2硬件安装
由于经费的限制,元件数量也不就是特别多,所以准备自己焊板子,晶振复位都准备自己焊。
精心策划每个元件的安装位置,与可以节省的引线,我把每个元件多余的引脚部分当做线路来用,以使电路美观一点。
完工之后运行不正常,分析可能就是各个引脚与线路之间不稳定的原因,特别就是所以电源与地都就是通过引一根线出来接的电源孔悬在空中接的电源,觉得还就是不可靠,于就是最后还就是决定用最小系统来作为硬件的核心,以避免不必要的影响。
后来又最小系统,杜邦线与排针再一次焊好了电路,一上电显示-1,8,8,0,蜂鸣器响的时间与仿真图里蜂鸣器该响的时间一样长,“开始”“抢答”“清除”键都不作用。
暂时连接数码管的各线我都用万用表测试过了,就是连通的,我想可能会就是以下的原因:
(1)可能就是排阻的问题,但就是如果就是的话,数码管应该不会亮。
(2)可能就是数码管的问题,但就是也已经测试过,就是正确的对应的各引脚,而且可以显示。
(3)调用蜂鸣器响的程序放错位置了,但就是检查了没错。
经过仔细检查、测试、修改、调试之后,
硬件电路图如图10所示。
图10