郑州轻工业学院单片机课程设计--抢答器控制模拟程序设计

上传人:第*** 文档编号:57354378 上传时间:2018-10-21 格式:DOCX 页数:19 大小:292.65KB
返回 下载 相关 举报
郑州轻工业学院单片机课程设计--抢答器控制模拟程序设计_第1页
第1页 / 共19页
郑州轻工业学院单片机课程设计--抢答器控制模拟程序设计_第2页
第2页 / 共19页
郑州轻工业学院单片机课程设计--抢答器控制模拟程序设计_第3页
第3页 / 共19页
郑州轻工业学院单片机课程设计--抢答器控制模拟程序设计_第4页
第4页 / 共19页
郑州轻工业学院单片机课程设计--抢答器控制模拟程序设计_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《郑州轻工业学院单片机课程设计--抢答器控制模拟程序设计》由会员分享,可在线阅读,更多相关《郑州轻工业学院单片机课程设计--抢答器控制模拟程序设计(19页珍藏版)》请在金锄头文库上搜索。

1、郑州轻工业学院单片机课程设计单片机课程设计题目:题目:抢答器控制模拟程序设计 姓姓 名:名: 院院 (系):(系): 计算机与通信工程学院 专业班级:专业班级: 学学 号:号: 指导教师:指导教师: 陈晓雷、韩凤琴 成成 绩:绩: 时间:时间: 2016 年年 1 月月 11 日至日至 2016 年年 1 月月 15 日日郑州轻工业学院课课 程程 设设 计计 任任 务务 书书题目题目 抢答器控制模拟程序设计抢答器控制模拟程序设计专业、班级专业、班级 学号学号 姓名姓名 主要内容、基本要求、主要参考资料等:主要内容、基本要求、主要参考资料等:主要内容主要内容模拟设计一个抢答器工作的程序。给主持人

2、设置一个开关,用来控制系 统的清零(编号显示数码管灭灯)和抢答器的开始。开始抢答后,当选 手按动抢答键时,能显示选手的编号,同时能封锁输入电路,禁止其他 选手抢答,扩展电路完成定时抢答的功能。抢答成功后,有声音提示以 示祝贺。 (抢答输入由键盘输入) 。技术要求技术要求具有 8 个抢答输入 显示抢答剩余时间(初始 10 秒) 显示抢答成功者 抢答成功后,有声音提示; 时间分辨率小于 10ms; 完善其它自定义功能。主要参考资料主要参考资料STCSTC 单片机原理及应用单片机原理及应用清华大学出版社清华大学出版社 何宾著何宾著完完 成成 期期 限:限:2 20 01 16 6- -1 12 2-

3、 -3 31 1指指导导教教师师签签名名: 陈陈晓晓雷雷、韩韩雪雪琴琴 课程负责人签名:课程负责人签名:20162016 年年 0101 月月 1515 日日前言抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低。作为一个单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因此设计了本抢答器。本设计是以八路抢答为基本理念。考虑到依照需要设定限时回答的功能,利用 AT89C51 单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器

4、定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。用开关做键盘输出,扬声器发生提示。同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可在 1-99s 设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法。目录1 抢答器设计功能分析 .51.1 抢答器的概述51.2 设计任务与要求52 设计方案简介 .52.1 定时抢答器的总体框图 .52.2 定时抢答器的工作过程

5、 .62.3 主程序流程图 .73 抢答器电路设计 .84 整体电路仿真图 .95 源程序及说明 106 设计总结 177 参考文献 181、抢答器设计功能分析1.1 抢答器的概述对于抢答器我们大家来说都不陌生,它是用于很多竞赛场合,真正实现先抢先答,让 最先抢到题的选手来回答问题。抢答器不仅考验选手的反应速度同时也要求选手具备足够 的知识面和一定的勇气。选手们都站在同一个起跑线上,体现了公平公正的原则。1.2 设计任务与要求基本要求:1.给主持人设置一个开关,用来控制系统的清零(编号显示数码管灭灯)和抢答器的开始。2.抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答器按钮,编号立

6、即锁存,并在 LED 数码上显示选手的编号,同时扬声器给出音响提示。此外,要封锁输入电路,禁止其他选手抢答。发挥部分:1.抢答器具有定时抢答的功能,且一次抢答的时间可以由主持人设定(如 30 秒) 。当节目主持人启动“开始”键后,要求定时器立即减计时,并用显示器显示,同时扬声器发出短暂的声响,声响持续时间 0.5 秒左右。2.参加选手在设定的时间内抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答时刻的时间,并保持到主持人将系统清零为止。3.如果定时抢答的时间已到,却没有选手抢答时,本次抢答无效,系统短暂报警,并封锁输入电路,禁止选手超时后抢答,时间显示器上显示 00。4.选手如果在

7、主持人按开始键之前违规抢答,系统报警,LED 显示违规选手号码和 FF,直到主持人按下停止键。2、设计方案简介2.1 定时抢答器的总体框图它由主体电路和扩展电路两部分组成。主体电路完成基本的抢答功能,即开始抢答后,当选手按动抢答键时,能显示选手的编号,同时能封锁输入电路,禁止其他选手抢答,扩展电路完成定时抢答的功能。2.2 定时抢答器的工作过程接通电源时,节目主持人将开关置于“消除”位置,抢答器处于禁止工作状态,编号显示器灭灯,定时器倒计时,当定时时间到,却没有选手抢答时,系统报警,并封锁输入电路,禁止选手超时后抢答。当选手在定时时间内按动抢答键时,抢答器要完成以下四项工作:优先编码电路立即分

8、辨出抢答者的编号,并由锁存器进行锁存,然后由译码显示电路显示编号;扬声器发出短暂的声响,提醒节目主持人注意;控制电路要对输入编码电路进行封锁,避免其他选手再次进行抢答;控制电路要使定时器停止工作,时间显示器上显示剩余的抢答时间,并保持到主持人将系统消零为止,当选手将问题回答完毕,主持人操作控制开关,使系统回复到禁止工作状态,以便进行下一轮抢答。 2.3 主程序流程图主程序设置抢答时间和回答问题时间定时器及并行口初始化将时间计数器及启动标志值 1开中断采并行口数据为 0 吗?启动标志=1 吗?判断抢答组号将抢答组发光二极管点 亮判断哪一组为抢答组将抢答组号送显示抢答时间到了吗?输出响铃信号提示超

9、时继续抢答比赛吗?系统返回NYYYNYN主程序流程图3、抢答器电路设计抢答电路的功能有两个:一是分辨选手按键的先后,并锁存抢答者的编号,供译码显示电路用;二是是其他选手的按键操作无效。选用优先编码器 74LS148 和 RS 锁存器,74LS138,74LS279可完成上述功能。译码电路选用 74LS48 芯片工作原理为:当主持人控制开关处于“清除”位置时,RS 触发器 R 为低电平,输出端(4Q1Q)全部为低电平。于是 74LS48 的 BI=0,显示器灭灯;74LS148 的选通输入 ST=0,74LS148 处于工作状态,此时锁存器电路不工作。当主持人开关拨到开“始位”置,优先编码电路和

10、锁存电路同时开始工作,等待输入信号I7,I0。当有选手按下键时,74LS148 的输出Y2Y1Y0=010,Yex=0。经 RS 锁存器后,CTR=1,BI=1,74LS279 处于工作状态,4Q3Q2Q=101。经过 74LS48 译码后,显示器显示选手编号。此外,CTR=1,是 74LS148 的 ST 为高电平,74LS148处于禁止工作状态,封锁了其他选手按键的输入。当按下的键松开后,74LS148 的 Yes 为高电平,但由于 CTR 维持高电平不变,所以 74LS148 仍处于禁止工作状态,其他选手的输入不会被接收,保证了抢答者的优先性以及抢答电路的准确性。抢答完后主持人使抢答电路

11、复位,以便进行下一轮抢答。4、整体电路仿真图5、源程序及说明#include #define uint unsigned int #define uchar unsigned char /*- 共阴极数码管编码表 0 - f 显示 -*/ uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x7f,0x7c, 0x39,0x5e,0x79,0x71; sbit start= P36; sbit stop=P35; sbit reset = P37; sbit key1 = P10; /8 个抢答按键 sbit

12、key2 = P11; sbit key3 = P12; sbit key4 = P13; sbit key5 = P14; sbit key6 = P15; sbit key7 = P16; sbit key8 = P17; sbit buzzer = P34; bit start_flag = 0; bit stop_flag=0; bit key1_flag = 0; /按键抢答标志位,防止重复抢答 bit key2_flag = 0; bit key3_flag = 0; bit key4_flag = 0; bit key5_flag = 0; bit key6_flag = 0;

13、bit key7_flag = 0; bit key8_flag = 0; bit reset_flag = 0; /复位键标志位,防止重复按下 bit action = 0; /开始键标志位,防止重复按下uchar second = 10; /10 秒倒计时 uchar timer0_count = 0; /定时器计数 uchar number = 0; /抢答到的人uchar number_display = 0; /*- 延时函数 延时 z 毫秒 -*/ void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-); void

14、fengming() /蜂鸣函数 /延时 1ms buzzer = 1; /给 P3.7 口送高电平 delay(5); /延时 1ms buzzer = 0; delay(5); /*- 数码管显示驱动函数 -*/ void display(uchar number,uchar second) uchar second_first,second_second; second_first = second / 10; /计算出个位 second_second = second % 10; /计算出十位 P2 = 0xfe; P0 = tablenumber; delay(2); / P2 = 0xfd; / P0 = 0x3f; / delay(2); P2 = 0xfb; P0 = tablesecond_first; delay(2);P2 = 0xf7; P0 = tablesecond_second

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号