




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录摘要21 设计意义及要求31.1 设计意义31.2 设计要求32 方案设计42.1 设计思路42.1.1 模块化设计框架图42.1.2 各个模块的实现42.1.3 关于实现功能拓展的设计思路52.2 总体功能框图5 2.3元器件清单63 硬件设计73.1 元器件及其作用7 3.2原理图设计84软件设计94.1软件设计思路94.2 C语言源程序105 软件仿真调试206 总结217 参考文献22摘 要 数字技术作为当今世界上发展最快的一门科学,已被广泛地应用于计算机、自动控制、电子测量仪表、通信等各个领域。例如,在生活中,很多关于智力竞赛的电视节目的抢答环节就很好的应用了数字技术。关于竞赛
2、抢答器的设计,最重要的是完成当参赛选手们可以开始抢答后,每次只可能有一个人抢答成功这一功能。本实验设计中,以八位竞赛抢答器为例,从设计思路、方案的选择与论证、设计基本原理以及仿真结果等系统的介绍这种抢答器实现相应功能的全部过程,并会在实现基本功能的基础上实现部分的拓展功能。关键字: 单片机、抢答器、89C51、C语言八路竞赛抢答器设计1 设计意义及要求1.1 设计意义在很多关于智力竞赛的电视节目上,经常会出现抢答环节,参赛选手们在得到主持人发出的特定口令之后,都会争先恐后地按下抢答器,但每次抢答环节只有可能产生一位抢答成功的选手,同时可以断定这位参赛选手肯定是反应最快按下抢答器的。设计一个功能
3、类似的八位抢答器不仅能够让大家进一步了解这种抢答器的工作原理,而且还能在功能上提出一些好的想法和思想,甚至可以实现部分新的功能,如果人们不断的进行具有创新性的设计实验,也许过不久那些竞赛类的电视的抢答模式就会发生一定的改变和创新,从而增加了节目的观赏性,进一步丰富大家的娱乐生活。1.2 设计要求 1.以单片机为核心,设计一个八位竞赛抢答器:同时供八位选手或八个代表队比赛,分别用8个按钮(1号-8号)表示。2.设置一个系统清除和抢答器控制开关S,开关有主持人控制。3.抢答器具有锁存与显示功能,即选手按按钮,锁存相应的编号,并在优先抢答器选手的编号一直保持主持人将系统清楚为止。4.抢答器具有定时抢
4、答功能且一次抢答的时间由主持人设定(如30秒),当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,持续时间0.5S左右。5.参赛选手在设定的时间内进行抢答,抢答有效,定时器工作停止,显示器上显示选手的编号和抢答的时间并保持到主持人将系统清除为止,6.如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。2 方案设计2.1 设计思路2.1.1 模块化设计框架图脉冲发生器数据显示部分数据编码部分数据锁存部分开关控制数据的输入图2-1 模块化设计框架图2.1.2 各个模块的实现(1)脉冲发生器的实现 根据本实验的具体要求,锁存器需要有脉冲信号的输入,
5、及需要有相应的脉冲发生器。(2)数据锁存部分的实现 实验设计要求是制作一个八位竞赛抢答器,需要对代表八位参赛选手的状态( “0”或“1” )进行相应的锁存,为了电路的简化,应该采用D触发器来实现锁存功能,则对于要实现对八位数据的锁存这一功能,可以使用两块集成了四个D触发器的74LS175芯片。(3)数据编码部分的实现 编码部分是对锁存的数据进行编码,由于只有八个参赛选手,故只需要用八个不同的数字便可以代表所有的参赛选手,只要采用能对八位数据进行编码并能有八种或八种以上的输出的编码器即可达到要求。(4)数据显示部分的实现 对于这样的一个仅需要显示数字的设计,很容易联想到使用七段数码管来实现的数字
6、的显示,而且七段数码管可以显示16种不同的输出,对于这种只需要有不少于八种的输出的设计来说,七段数码管完全可以达到要求。一般的七段数码管有10个数据输入端,所以需要有相应的译码器对输送过来的编码后的数据进行译码操作,并且这种译码器的选择必须结合数码管是共阴还是共阳的情况而定。2.1.3 关于实现功能拓展的设计思路(1)实验设计的基本要求中没有提到主持人实现清零后,数码管该显示什么,这样在设计过程中我们就可以有多重选择了,本设计中设计的是让主持人清零之后,数码管显示F FF。这一功能可以通过基本的门电路来实现,把主持人和参赛选手接入的信号作为输入信号,通过门电路整合,使得到的输出信号来控制数据显
7、示部分。(2)设计要求中没有提到参赛选手提前抢答会造成犯规的这一功能,理论上会存在有参赛选手犯规的情况的发生,这样实际中增加一个抢答犯规的功能是有一定的必要性的,同样要实现这一功能,可以通过门电路的组合,收集主持人和参赛选手接入的信号,把输出信号接到一个报警装置上,实现当主持人还未发出开始抢答指令的时候,若有参赛选手抢答了,报警装置会报警的功能。2.2 总体功能框图下图所示为总体方框图。其工作原理为:接通电源后,主持人将开关断开,抢答器处于禁止状态,定时器显示设定时间;主持人将开关接通,宣布开始抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存
8、、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作状态开关。抢答按钮编码电路锁存电路译码电路显示电路主持人控制开关控制电路秒脉冲定时电路报警电路显示电路译码电路2.2总体功能框图2.3 元器件清单 仿真图中所需要的各种元器件如表2.3表2.3 元器件清单元件名称型号数量/个用途单片机AT89C511控制核心晶振12MHZ1晶振电路电容22uF3晶振电路排阻Respack81上位电阻电阻10k1复位电路电源+5v3提供电源拨码开关BUTTON_113发出信号数码管7SEG-MPX4-BLUE1显示电路3 硬件设计3.1 元器件及
9、其作用 在八位抢答器的设计中,我主要用到了AT89C51型号单片机、晶振、电容、排阻、电阻、电源、拨码开关、7SEG-MPX4-BLUE数码管等元器件。芯片是由ISIS 7 PROFESSIONAL仿真软件系统提供(AT89C51)。它主要由CPU,存储器和管脚组成。所谓排阻就是若干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚。其余引脚正常引出。所以如果一个排阻是由n个电阻构成的,那么它就有n+1只引脚,一般来说,最左边的那个是公共引脚。它在排阻上一般用一个色点标出来。排阻一般应用在数字电路上,比如:作为某个并行口的上拉或者下拉电阻用。使用排阻比用若干只固定电阻更方便。 排阻有
10、a型和b型的区别。 a型排阻的引脚总是奇数的。它的左端有一个公共端(用白色的圆点表示),常见的排阻有4、7、8个电阻,所以引脚共有5或8或9个。 B型排阻的引脚总是偶数的。它没有公共端,常见的排阻有4个电阻,所以引脚共有8个。 图3.1 AT89C51单片机图示及引脚排列3.2 原理图设计根据设计要求及用protues仿真软件做出八位竞赛抢答器电路图如下:4 软件设计4.1 软件设计思路 当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,持续时间0.5S左右。参赛选手在设定的时间内进行抢答,抢答有效,定时器工作停止,显示器上显示选手的编号和抢答的时间并保持到主持人将系统清除
11、为止。如果定时时间已到,无人抢答,系统报警并禁止抢答。按键发声显示抢答号,剩余时间停止键按下?抢答键按下?停止键按下?开始键按下?程序初始化倒计时显示倒计时开始按键发声准备状态,显示FFF倒计时大于5s?显示法规号码按键发声非法抢答?停止键按下?提醒发声倒计时结束?YNNYNNNNNYYYYY4.2 C语言源程序#include#define uchar unsigned char#define uint unsigned intchar s;uchar num=0;char time=20;/抢答时间char datitime=30;/答题限时时间uint tt,t1;/T0,T1定时器定一
12、秒时bit flag,s_flag=1,b_flag,fall_flag;/标志位bit K_startcountflag,K_timecountflag;/时间调整标志位sbit K0=P30;sbit beep=P37; /蜂鸣器sbit rled=P31;/指示灯sbit K1=P10;sbit K2=P11;sbit K3=P12;sbit K4=P13;sbit K5=P14;sbit K6=P15;sbit K7=P16;sbit K8=P17;sbit K_Time=P32;/答题计时键sbit K_startcount=P33;/开始抢答时间调整键sbit K_timecoun
13、t=P34;/答题计时时间调整键void delay(uchar ms)uchar y;for(;ms0;ms-)for(y=120;y0;y-);uchar code tabledu=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar code tablewe=0XFE,0XFD,0XFB,0XF7;void T0_Init(void)TMOD=0X01;TH0=(65536-2000)/256;TL0=(65536-2000)%256;TH1=(65536-2000)/2
14、56;TL1=(65536-2000)%256;ET0=1;ET1=1;EA=1;P0=0;void Key_Scan(void)/开始键扫描if(K0=0)delay(10);if(K0=0)while(!K0);TR0=1;s=time;tt=0;flag=1;s_flag=1;b_flag=1;num=0;beep=1;rled=1;fall_flag=0;/清除违规标志位K_startcountflag=0;K_timecountflag=0;void Scan(void)/八路热键扫描(哪个键先按下,哪个优先级最高)if(K1=0)delay(10);if(K1=0)while(!K
15、1);num=1;/数码管显示1号1TR0=0;/关闭定时器0,时间停止TR1=1;/打开定时器1,使扬声器响一声s_flag=0;/关闭开始键标志位,使再按其他七个键不会响应if(K2=0)/下面七个键的处理同上delay(10);if(K2=0)while(!K2);num=2;TR0=0;TR1=1;s_flag=0;/重要if(K3=0)delay(10);if(K3=0)while(!K3);num=3;TR0=0;TR1=1;s_flag=0;if(K4=0)delay(10);if(K4=0)while(!K4);num=4;TR0=0;TR1=1;s_flag=0;if(K5=
16、0)delay(10);if(K5=0)while(!K5);num=5;TR0=0;TR1=1;s_flag=0;if(K6=0)delay(10);if(K6=0)while(!K6);num=6;TR0=0;TR1=1;s_flag=0;if(K7=0)delay(10);if(K7=0)while(!K7);num=7;TR0=0;TR1=1;s_flag=0;if(K8=0)delay(10);if(K8=0)while(!K8);num=8;TR0=0;TR1=1;s_flag=0;void display(void)if(flag=1)/开始键按下,开始计时抢答if(num!=0
17、)/如果有人抢答,则显示相应的几号P0=tabledunum;/显示几号抢到了P2=tablewe0;delay(2);P0=0;P2=0XFF;else/否则没人抢答,则前面不显示几号P0=0;P2=0XFF;P0=tabledus/10;/下面为显示抢答倒计时P2=tablewe2;delay(2);P0=0;P2=0XFF;P0=tabledus%10;P2=tablewe3;delay(2);P2=0XFF;P0=0;else/如果开始键没有按下,则显示F FF(若有违规者,则显示违规号码及 FF)或时间调整if(fall_flag=1)/违规显示if(num!=0)P0=tabled
18、unum;/显示几号违规了P2=tablewe0;delay(2);P0=0;P2=0XFF;P0=tabledu15;/下面显示 FF,表示违规了P2=tablewe2;delay(2);P0=0;/消隐P2=0XFF;P0=tabledu15;P2=tablewe3;delay(2);P0=0;P2=0XFF;elseP0=0;P2=0XFF;else/没有人违规才显示调整时间if(K_startcountflag=1)P0=0X6D;/第一位数码管显示5(S)(表示抢答时间调整)P2=tablewe0;delay(2);P0=0;P2=0XFF;P0=tabledutime/10;/下面
19、显示调整的抢答时间P2=tablewe2;delay(2);P0=0;P2=0XFF;P0=tabledutime%10;P2=tablewe3;delay(2);P0=0;P2=0XFF;else if(K_timecountflag=1)P0=0X07;/第一位与第二位数码管合起来显示T,表示答题时间调整P2=tablewe0;delay(2);P0=0;P2=0XFF;P0=0X31;P2=tablewe1;delay(2);P0=0;P2=0XFF;P0=tabledudatitime/10;P2=tablewe2;delay(2);P0=0;P2=0XFF;P0=tabledudat
20、itime%10;P2=tablewe3;delay(2);P0=0;P2=0XFF;else/否则显示F FFP0=tabledu15;P2=tablewe0;delay(2);P0=0;P0=tabledu15;P2=tablewe2;delay(2);P0=0;/消隐P2=0XFF;P0=tabledu15;P2=tablewe3;delay(2);P0=0;P2=0XFF;void Time_Scan(void)/调整时间键扫描if(K_startcount=0)/抢答时间调整delay(10);if(K_startcount=0)while(!K_startcount);time+;
21、if(time=50)time=20;K_startcountflag=1;/将抢答时间标志位置1K_timecountflag=0;/同时关闭答题时间标志位if(K_timecount=0)/答题时间调整delay(10);if(K_timecount=0)while(!K_timecount);datitime+;if(datitime=60)datitime=30;K_timecountflag=1;K_startcountflag=0;void main(void)T0_Init();while(1)Key_Scan();/开始键扫描if(flag=0)&(s_flag=1)/当开始键
22、没按下及没有人违规时才可进行时间调整Time_Scan();if(flag=1)&(s_flag=0)/当开始键按下及有人抢答才进行开始回答计时倒计时if(K_Time=0)delay(10);if(K_Time=0)while(!K_Time);s=datitime;TR0=1;tt=0;TR1=1;if(flag=0)&(s_flag=1)/违规Scan();if(num!=0)/开始键没有按下时,有人按下了抢答器,则置违规标志位fall_flag=1;rled=0;if(flag=1)&(s_flag=1)/如果开始键按下且抢答键没有人按下,则进行八路抢答键扫描Scan();displa
23、y();/显示到数码管上void timer0(void) interrupt 1TH0=(65536-2000)/256;/2msTL0=(65536-2000)%256;if(b_flag)/开始(START)键按下,嘟一声(长1秒),表示开始抢答beep=beep;elsebeep=1;if(s5)/抢答时间快到报警,隔1秒响一声且红灯闪烁,响三声if(s%2=0)b_flag=1;rled=0;elseb_flag=0;rled=1;tt+;if(tt=500)/1秒tt=0;s-;b_flag=0;/关闭开始键按下响一秒的嘟声if(s=-1)s=20;TR0=0;flag=0;/显示
24、F FFs_flag=1;num=0;rled=1;void timer1(void) interrupt 3/定时器1处理有人按下抢答器嘟一声(长1秒)TH1=(65536-2000)/256;TL1=(65536-2000)%256;beep=beep;t1+;if(t1=500)t1=0;TR1=0;5 软件仿真调试 在软件硬件都已连接设计好以后,我们需要用Keil、preoteus软件对其进行仿真调试。软件调试是通过对程序的编译、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。图5.1 keil调试结果图Keil、preoteus联调效果图6 总结在这两周的单片机课程设计实训中,我通过对八位竞赛抢答器的设计学会了运用Keil、preoteus软件,并且对单片机这门课程有了更深一步的了解。在短时间内学会一门电路设计软件看,并且要使用proteus实现电路的仿真,这些在我眼里都不是很容易完成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- MY银行供应链金融保理业务流程优化研究
- 全GFRP筋增强混凝土剪力墙抗震性能研究
- 故事力法则下乡村文旅景观规划设计研究-以浙江新昌县棠村村为例
- 环境安全健康之间关系
- 护理质量管理人员培训大纲
- 肺炎性心脏病护理
- 甲状腺结节健康教育及指导
- 在线教育社群运营策划方案
- 护理心脏骤停的急救与后续管理
- 结肠肿瘤科普
- 2022-2023学年北京市东城区高二(下)期末化学试卷(含解析)
- 防溺水老师培训课件
- 《植物生长与环境》课程标准(含课程思政)
- 铁路行车组织(高职)全套教学课件
- 注塑标准成型条件表电子表格模板
- 道闸系统施工方案
- 配置管理与漏洞修复
- 新版中国复发难治性急性髓系白血病诊疗指南
- 保洁巡查记录表
- 成事的时间管理
- 国开大学2023年01月22503《学前儿童健康教育活动指导》期末考试答案
评论
0/150
提交评论