数字电子技术课程设计八路抢答器设计.docx
《数字电子技术课程设计八路抢答器设计.docx》由会员分享,可在线阅读,更多相关《数字电子技术课程设计八路抢答器设计.docx(16页珍藏版)》请在冰点文库上搜索。
数字电子技术课程设计八路抢答器设计
单片机课程设计
八路抢答器设计
院系
专业
班级
学号
姓名
指导教师
2017年6月6日
第一章课程设计的目的和要求..............................1
1.1课程设计的目的和要求.............................1
1.2设计任务及要求...................................1
第二章方案设计..........................................3
2.1功能介绍.........................................3
2.2抢答器的工作原理.................................3
第三章硬件设计电路设计..................................5
3.1原理图的确定以及芯片的选择.......................5
3.2复位电路的设计...................................6
3.3晶振电路的设计...................................6
3.4数码显示管的选择.................................7
3.5报警设计.........................................7
3.6八位抢答输入设计.................................7
3.7主持人控制按键...................................8
第四章软件设计思想及流程................................9
4.1主程序的设计.....................................9
4.2子程序的设计....................................10
第五章调试过程和调试方法...............................12
第六章心得体会.........................................14参考文献................................................15
第一章课程设计的目的和要求
1.1课程设计的目的和要求
单片机原理及应用课程设计是学生综合运用所学知识,全面掌握单片微型计算机及其接口的工作原理、编程和使用方法的重要实践环节。
通过独立或协作提出并论证设计方案,进行软、硬件调试,最后获得正确的运行结果,可以加深和巩固对理论教学和实验教学内容的掌握,进一步建立计算机应用系统整体概念,初步掌握单片机软、硬件开发方法。
根据单片机原理及应用课程的要求,主要进行两个方面的设计,即单片机最小系统和存储器扩展设计、接口技术应用设计。
其中,单片机最小系统主要要求学生熟悉单片机的内部结构和引脚功能、引脚的使用、复位电路、时钟电路、4个并行接口和一个串行接口的实际应用,从而可构成最小应用系统,并编程进行简单使用。
存储器扩展设计要求学生掌握常用半导体芯片与单片机的接口,如EPROM存储器用作外部程序存储器时与单片机的连接关系,SRAM存储器用作外部数据存储器时与单片机的连接关系,E2PROM存储器用作外部程序/数据存储器时与单片机的连接关系。
能合理分配和使用单片机的内部和外部存储器,编程实现正常的读写功能。
1.2设计任务及要求
1.2.1设计任务
基于MCS-51系列单片机AT89C51,设计一个八路抢答器。
1.2.2设计要求
1.抢答器同时供八名选手或八个代表队比赛,分别用8个按钮K1~K8.
2.设置一个系统清除和抢答控制开关K0,该开关由主持人控制。
3.抢答器具有锁存与显示功能。
即选手按动按钮,锁存相应的编号,并将优先抢答选手的编号一直保存到主持人将系统清除为止。
4.主持人按下抢答“开始”按钮,抢答开始。
5.当某一路抢答成功时,在数码管上显示成功信息和该路的号数。
6.当某一路抢答违规时,能在数码管上显示违规信息和该路的号数。
7.具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。
当主持人启动“开始”按键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。
8.参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。
9.如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。
10.其他功能。
第二章总体设计
2.1功能介绍
1.如果想调节抢答时间或答题时间,按"抢答时间调节"键或"答题时间调节"键进入调节状态,此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下"加1s"键,如果想减一秒按一下"-1s"键,时间LED上会显示改变后的时间,调整范围为0s~99s,0s时再减1s会跳到99,99s时再加1s会变到0s。
2.主持人按"抢答开始"键,会有提示音,并立刻进入抢答倒计时(预设30s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设60s抢答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。
抢答及答题倒数时间到小于5s会每秒响一下提示音。
3.如果主持人未按"抢答开始"键,而有人按了抢答按键,犯规抢答,LED上不断闪烁犯规号数和--并响个不停,直到按下"停止"键为止。
4.p1.0-p1.7为八路抢答输入数码管段选P0口,位选P2口,蜂鸣器输出为P3.6口。
P3.0为开始抢答,P3.1为停止/复位,P3.2抢答时间调整结,P3.3回答时间调整,P3.4为时间加1调整,P3.5为时间减1调整。
2.2抢答器的工作原理
抢答器的工作原理是利用单片机的定时器T0、T1中断完成,其余状态循环调用显示子程序,用4个共阴极LED数码管来显示,用P0口作为数码管的八个段选,用P2口中的P2.0、P2.1、P2.2、作为4个数码管其中3个位选,P1口接8个按键,提供选手抢答,P3.0-P3.5四个接四个按键,提供开始、结束、答题时间调整、抢答时间调整,加1、减1调整之用。
抢答功能:
通过八路按键配合程序来实现抢答功能。
当主持人按下抢答键开始抢答后,此时任一路按下按钮均闭锁其它各路,由程序译码并显示最先按下抢答键的路数及其当前时间并立即转入答题阶段。
抢答功能设计框图如图1所示:
图1抢答功能设计框图
抢答限时:
主持人按下抢答键后,设置30秒为抢答时间(此时间可在1-99秒之间修改)。
若30秒内无人抢答,倒计时为5时每一秒发出一声报警,倒计时为零时说明该抢答题目作废并显示---。
答题限时:
当选手按下按钮时,启动60秒倒计时(此倒计时时间可在1~99秒之间修改),倒计时为5时每一秒发出一声报警,直到为零时该题
答题结束,数码管显示---,等待主持人开始下一次抢答。
第三章硬件设计
3.1原理图的确定以及芯片的选择
单片机实现抢答的原理图如图2所示
图2抢答原理图
抢答器电路的核心是MCS-51系列AT89C51单片机,如图3所示,其在一块芯片上集成了CPU、RAM、ROM、定时/技术器、I/O接口等功能部件。
图351系列单片机引脚图
VCC(40):
+5V;GND(20):
接地;P0口(39-32):
不外接片外存储器及不扩展时可作为准双向输入/输出接口,扩展是分时复用为低8位地址总线;P1口(1-8):
可作为准双向I/O接口使用;P2口(28-21):
外接及扩展时用作高8位地址总线;P3口(10-17):
有两种功能,优先选用第二功能;RST(9):
复位输入。
当振荡器复位时,要保持RST引脚2个机器周期的高电平时间;ALE/PROG(30):
地址锁存有效信号输出端;PSEN(29):
外部程序存储器的选通信号;EA/VPP(31):
片外程序存储器选通端;XTAL1(19):
内部振荡电路反相放大器输入端;XTAL2(18):
内部振荡电路反相放大器输出端。
3.2复位电路的设计
RST:
复位端。
单片机的振荡器工作时,该引脚上至少保持连续两个机器周期(24个振荡周期)的高位电平就可以实现系统复位,使单片机回复到初始状态。
该复位电路采用上电自动复位方式,要实现复位只需在51系列单片机的RESET引脚上加上5ms的高电平就可以了。
上电复位是利用电容的充电来实现的,即上电瞬间RESET端的电位与Vcc相同,随着电容上储能增加,电容电压也逐渐增大,充电电流减小,RESET端的电位。
这样就会建立一个脉冲电压,调节电容与电阻的大小可对脉冲的持续时间进行调节。
通常若采用12MHz的晶振时,复位元件参数为10μF的电解电容和10kΩ的电阻。
3.3晶振电路的设计
MCS-51单片机的定时控制功能是用时钟电路和振荡器完成的,而根据硬件电路的不同,连接方式分为内部时钟方式和外部时钟方式。
本设计中采用内部时钟方式。
单片机内部有一个反相放大器,XTAL1、XTAL2分别为反相放大器的输入端和输出端,外接定时反馈元件组成振荡器(内部时钟方式),产生时钟送至单片机内部各元件。
时钟频率越高,单片机控制器的控制节拍就越快,运算速度也就越快。
一般来说单片机内部有一个带反馈的线性反相放大器,外界晶振(或接陶瓷振荡器)和电容就可组成振荡器,如图4所示。
加电以后延时一段时间(约10ms)振荡器产生时钟,不受软件控制,图中电容C2,C3的作用有两个:
一是帮助振荡器起振,二是对振荡器的频率起微调作用。
图4晶振电路图
3.4数码显示管的选择
数码显示管用来作为时间的显示输出,一般用7段数码显示管,如图5所示。
本次设计中采用7段共阴数码显示管应用简单、可靠性高、成本低,作为显示输出。
连接时段选信号接在P0口的P0.0~P0.6七个I/O口上,P1口是准双向I/O接口,在接电阻时选择接10K限流电阻。
而在位选方面采用单片机P2口的P2.0~P2.6七个I/O口作为位选信号的输出口。
图5数码显示管
3.5报警设计
当开始抢答或者任一选手非法抢答时,以及抢答及答题到最后五秒时,系统都会发出报警声。
3.6八位抢答输入设计
八个按键分别供八位选手使用,当主持人按下开始抢答键后,选手们在第一时间内按下自己的按键,即可进行抢答。
如图6所示:
图6八位抢答输入电路图
3.7主持人控制按键
主持人控制按键由“开始抢答”、“停止/复位”、“强大时间调整”、“答题时间调整”、“加1”、“减1”六个按键组成。
按动不同的按键就能实现不同的功能。
如图7所示:
图7控制按键
第四章软件设计思想及流程
4.1主程序的设计
4.1.1主程序的设计流程图
主程序的设计流程图如图8所示
图8系统主程序流程图
4.1.2主程序设计源程序
MAIN:
MOVR1,#30;初设抢答时间为30s
MOVR2,#60;初设答题时间为60s
MOVTMOD,#11H;设置未定时器/模式1
MOVTH0,#0F0H;送初值
MOVTL0,#0FFH;越高发声频率越高,越尖
MOVTH1,#3CH
MOVTL1,#0B0H;50ms为一次溢出中断
SETBEA
SETBET0
SETBET1
SETBEX0
SETBEX1;允许四个中断,T0/T1/INT0/INT1
CLROK
CLRRING
SETBTR1
SETBTR0;一开始就运行定时器,以开始显示---
4.2子程序的设计
4.2.1设计流程图
流程图如图9所示
图9流程图
4.2.1查询程序源程序
START:
MOVR5,#0BH
MOVR4,#0BH
MOVR3,#0BH
ACALLDISPLAY;未开始抢答时候显示---
JBP3.0,NEXT;ddddddd
ACALLDELAY
JBP3.0,NEXT;去抖动
ACALLBARK;按键发声
MOVA,R1
MOVR6,A;送R1->R6,因为R1中保存了抢答时间
SETBOK;抢答标志位
MOVR3,#0AH;抢答只显示计时,灭号数
AJMPCOUNT;进入倒计时程序
NEXT:
JNBP1.0,FALSE1
JNBP1.1,FALSE2
JNBP1.2,FALSE3
JNBP1.3,FALSE4
JNBP1.4,FALSE5
JNBP1.5,FALSE6
JNBP1.6,TZ1
JNBP1.7,TZ2
AJMPSTART
TZ1:
JMPFALSE7
TZ2:
JMPFALSE8
4.2.2非法抢答处理程序
非法抢答处理程序图如图10所示
图10非法抢答处理程序图
4.2.3抢答时间调整子程序
抢答时间调整子程序图11所示:
图11抢答时间调整子程序图
第五章系统调试
系统调试包括硬件调试和软件调试,硬件调试的任务是排除系统的硬件电路故障,包括设计错误和工艺故障。
软件调试是利用开发工具进行在线仿真调试,除发现和解决程序错误外,也可以发现硬件故障。
硬件调试:
在本次课程设计中,我们用到如下元器件:
七段数码显示器7SEG-MPX8-CC-BLUE、芯片74HC245、单片机AT89C51、12个BUTTON按键、2个15P电容CERAMIC、两个晶振CRYSTAL、电解电容MINELECT470N63V、10个10K电阻MINRES10K、并口电阻RESPACK-8、蜂鸣器SOUNDER、电源及接地装置。
软件调试:
1.运用Keil软件调试程序
将Keil软件解压并安装;在Keil中写入(汇编)程序,将其用非中文及.asm为后缀保存下来;调试程序至没有错误;将其Rebuild就可以了。
2.运行
在Proteus中打开画好的图形;分别点击并填写source下的第二项、第一项,接着点击buildall;双击at89c51打开PF加入以.HEX结尾的文件;点击proteus界面左下方的开始按钮即可运行程序。
运行时,若达不到题目要求,则返回去修改程序直至达到要求为止。
图12抢答开始前电路图
图13正常抢答倒计时电路图
图14答题倒计时电路图
第六章心得体会
本次历时接近两周的课程设计,我感觉真是受益匪浅啊!
本课程设计让我明白:
在课程设计中只有一个人知道原理是远远不够的,必须让每个人都明白该设计中每一个步骤式为什么要这样设计,否则一个人的错误,就有可能导致整个工作失败。
团结协作式我们成功的一项非常重要的保证。
而这次设计也正好锻炼我们这一点,这也是非常宝贵的。
在这个过程中,我们也曾经因为汇编程序的掌握深度不够失落过,也曾经为仿真成功而热情高涨。
生活就是这样,学习亦是如此,汗水预示着结果也见证者收获,劳动是人类生存生活永恒不变的话题。
当课程设计完成时,那感觉是甜蜜的,没有耕耘,哪来的收获的喜悦,不懂付出怎么能知道回报的快乐,一份耕耘一份收获,就在这样的痛与快乐的交融中,我们学到了知识,学到了做人的道理。
这次的课程设计,我们学到了很多书本上没有详细介绍的东西
最大的收获是对单片机CPU,汇编语言,显示器等的进一步学习,加深了了解,使得课堂上学到的东西得到实践;同时,也开发了我们的创新思维,提高对事物的感性认知;此外,本次课程设计是我们对单片机原理与接口技术这门课程更加感兴趣,即使以后不接着往这一方面学下去,我们也会不断查阅相关书籍,增长这一方面的知识。
参考文献
[1]李泉溪.单片机原理与应用实例仿真.北京航天航空大学出版社,2009.
[2]江世明.基于Proteus的单片机应用技术.电子工业出版社,2008.
[3]喻宗泉.单片机原理与应用技术.西安电子科技大学出版社,2005.
[4]万光毅.单片机实验与实践教程.北京航天航空大学出版社,2003.
[5]张俊谟.单片机初级教程.北京航天航空大学出版社,2000.
资料仅供参考!
!
!