六路抢答器(kt230配套实验)_secret
- 格式:doc
- 大小:71.00 KB
- 文档页数:8
题目: 六人抢答器一、初始条件QuartusⅡ软件微机实验箱二、要求完成的主要任务1、抢答台数为6,具有抢答开始后20秒倒计时,20秒倒计时后六人抢答显示超时,并报警。
2、能显示超前抢答台号并显示犯规报警。
3、系统复位后进入抢答状态,当有一路抢答按键按下,该路抢答信号将其余各路抢答信号封锁,同时铃声响起,直至该路按键松开,显示牌显示该路抢答台号。
三、时间安排作课程设计任务布置、选题、查阅资料第1天设计软件编程和仿真,验证设计的可行性和正确性第2-8天设计的硬件调试第9-10天机房检查设计成果,提交设计说明书及答辩第11天指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (I)ABSTRACT ................................................................................................................. I I1 绪论 (1)2 设计内容及要求 (2)2.1设计的目的及主要任务 (2)2.1.1设计的目的 (2)2.1.2 设计任务及主要技术指标 (2)2.2设计思想 (3)3 设计原理及单元模块设计 (3)3.1设计原理及方法 (3)3.2按键模块设计 (4)3.3抢答控制模块 (5)3.4犯规控制模块 (6)3.5倒计时模块 (7)3.6报警模块 (8)3.7数码显示模块 (9)3.8顶层电路的设计 (10)4电路的仿真及分析 (11)5 硬件调试 (12)6 心得体会 (13)参考文献 (14)附录一 (15)附录二 (16)附录三 (17)摘要近年来随着科技的飞速发展,QuartusⅡ的应用正在不断地走向深入。
本文介绍基于QuartusⅡ,并用VHDL语言设计来完成六人抢答器的方法。
大体思想是:利用VHDL语言设计出按键选择模块,倒计时模块,抢答控制模块,犯规控制模块,报警模块及数码显示模块等所需要的元件,将这些元件进行例化后,进行一定的连接形成六人抢答器系统。
北京科技大学本科生课程设计说明书题目:六路抢答器学院:专业:姓名:学号:指导教师签字:摘要随着电子技术的发展,计算机在现代科学技术的发展中起着越来越重要的作用。
各种技术都离不开计算机,计算机已经在人们生活的各个方面普及了。
本课程设计是微机原理及接口技术的简单应用。
运用所学的微机原理和接口技术知识完成六路抢答器。
通过硬件与软件的结合,用我们刚刚学过的汇编语言编写程序模拟分析了六路抢答器出现的各种情况。
该抢答器以主持人为中心,操作抢答器的开始与复位,选手们可以根据主持人的提示进行抢答,该抢答器基本能满足现在社会抢答的需要,设计简单,成本低,适合小型抢答场合。
关键词:抢答器硬件电路软件编程模拟系统前言随着人们生活水平的提高,微机已经成为人们生活中重要的部分,掌握微机原理是我们信息类专业的必备知识。
8086/8088CPU是基础且广泛应用的处理器,它由执行单元和总线接口部分组成。
本说明书是包括课程设计的要求、汇编语言程序以及相关的硬件设计等内容组成。
根据汇编语言的优点,运用汇编语言的来编写程序,使程序更加便于阅读和理解。
本说明书是根据本人课堂上所学的知识以及参考相关文献的基础上编写的。
通过这次的编写,使我对微机原理和各种软硬件系统的认识变得更加深刻,打下实践的基础。
全书共分为4章,第1章为课题的来源,为本说明书的导论,基本概括来介绍了本设计题目的基本要求。
第2章为总体的设计思路,系统的介绍了本课题的具体如何实现。
第3章为硬件设计,该部分主要介绍了所需要的硬件和硬件的连接。
第4章为软件设计,该部分主要介绍了设计流程和具体实现的程序代码。
本说明书的编写得到了许多同学的关心和帮助,正是由于他们的指导、帮助和大力支持,才使本说明书得以顺利的完成。
由于本人水平有限,说明书中难免存在不足与疏漏之处,恳请老师不吝指正。
目录摘要 (2)引言 (3)课程设计任务书 (5)1[课题来源] (6)1.1[需求分析] (6)1.1.1[课题来源的意义] (6)1.1.2[设计内容] (6)1.1.3[设计目的] (6)1.1.4[系统功能] (6)2[总体设计思路] (8)2.1[设计思路] (8)2.2[红黄绿灯的表示] (9)3[硬件设计] (10)3.1[芯片8255] (10)3.1.1[芯片8255,8253,8259的引脚] (10)3.1.2[芯片8255,8253,8259的工作方式] (11)3.2[硬件连接] (12)3.2.1[硬件连接图] (12)3.2.2[其他配置] (14)4[软件设计] (15)4.1[程序流程图] (15)4.2[程序设计] (16)小结 (23)参考文献 (24)课程设计任务书一.设计内容设计一个具有6路抢答的抢答器,启动计算机,计算机自动为系统各芯片进行初始化,抢答器开始工作。
《六路抢答器设计》doc版《六路抢答器设计》doc版《单片机原理及应用》课程设计报告题目六路抢答器的设计姓名XXX、XX、XX 专业班级11电子信息工程2班指导教师许长安日期2013.12.20 目录一、设计任务及要求1 二、元器件清单及简介1 1、元器件清单1 2、AT89C52简介2 三、设计原理及分析3 1、总原理图3 2、时钟频率电路4 3、显示电路4 4、抢答电路4 5、软件设计5 四、设计中遇到的问题与改进6 五、总结6 六、参考文献6 附录一:7 一、设计任务及要求1、设计一个六路抢答器;2、系统设置复位按钮,按动后,重新开始抢答;3、选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人按下复位键为止。
抢答后显示优先抢答者序号,同时红LED亮。
并且不出现其他抢答者的序号;4、抢答器具有定时抢答功能,且一次抢答的时间有主持人设定,本抢答器的时间设定为20 秒,当主持人启动“开始”开关后,定时器开始减计时,同时绿LED亮;5、设定的抢答时间内,选手可以抢答,这时定时器停止工作,显示器上显示选手的号码和抢答时间。
并保持到主持人按复位键。
二、元器件清单及简介1、元器件清单元器件清单如表2-1所示:AT89C52 1片12M晶振1个30pf普通电容2个10uf电解电容1个2K电阻1个10K排阻2个100Ω电阻4个四角按键7个红LED 1个绿LED 1个四位共阴八段数码管1个表2-1 2、AT89C52简介AT89C52是美国ATMEL 公司生产的低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的只读程序存储器(PEROM)和256 bytes 的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合。
数字电路课程设计报告数字竞赛抢答器2008年1月设计题目:数字竞赛抢答器一.设计任务与要求:有许多比赛活动中为了准确、公正、直观的判断出第一抢答者,通常设置一台抢答器,通过数显、灯光及音响等多种手段指示出第一抢答者。
同时,还可以设置记分、犯规及奖惩记录等多种功能。
1.设计制造一个可容纳六组参赛的数字式抢答器,每组设置一个抢答按钮供抢答者使用。
2.电路具有第一抢答信号的鉴别和锁存功能。
在主持人将系统复位并发出抢答指令后,开始抢答,定时器开始工作,数码管显示时间,从30开始减计数,并有小灯亮起(说明可以抢答,抢答有效)30秒内无人抢答则计数停,无人答显示“0”.如30秒内参赛者按抢答开关,则,该组指示灯亮并用组别显示电路显示出抢答者的组别,同时抢答器发出“嘀~嘟”的双音音响持续2~3秒钟。
此时,电路应具备自缩功能,使其他组的抢答开关不起作用。
3.设置记分电路。
每组在开始预置成100分,抢答后主持人记分,答对一次加10分,否则减10分。
4.设置犯规电路。
对提前抢答和超时抢答的组别鸣喇叭示警,并由显示电路显示出犯规组别。
二.总体方案设计:(一)设计思路:1.本题的根本任务是准确判断出第一抢答者的信号并将其锁存。
实现这一功能可用触发器或锁存器等。
在得到第一信号之后立即将电路的输入封存,使得其他组的抢答信号无效。
同时还必须注意,第一抢答信号应该在主持人发出抢答命令之后才有效,否则应视为提前抢答而犯规。
2.当电路形成第一抢答信号之后,用编码、译码及数码显示电路显示出抢答者的组别,也可以用发光二极管直接指示出组别,还可以用鉴别出的第一抢答信号控制一个具有两种工作频率交替变化的音频振荡器工作,使其推动扬声器发出两态笛音音响,表示该抢答有效。
3.记分电路可采用2位七段数码管显示,由于每次都是加或减10分,故个位总保持为零,只要十位和百位做加减计数即可,可采用两级加减计数器完成。
(二)原理框图如下:三.具体实现:1.抢答器同时供6名选手或6个代表队比赛,分别用6个按钮S1 ~S6表示。
《微机原理与接口技术》课程设计题目:交灯系统设计学院(系):信息工程系年级专业:自动化1073学号:102124073 09学生姓名:李华坤指导教师:周立群一设计题目:六路抢答器摘要本次设计要求进行基于微机原理的智能抢答器的设计与实现。
系统经键盘扫描模块将选手抢答信号经8255扩展口送至CPU中央处理器,将处理信号送至LED直接显示选手号。
然后进入答题计时模块,若超时则启用声光报警系统,若在计时时间内回答完毕则由裁判决定对错,并由键盘扫描模块同时发出两路信号,通过CPU 一路送LED,一路送声光报警模块进行计分操作。
在设计中主要利用8255A,8253及实验箱中的键盘显示区共同完成设计。
实现功能:用LED数码管显示1-6号选手先按下键者的号码和相应的分数,且能够动态显示60秒倒记时,完成键盘中的十二个功能键的设计,其中包括:1-6号键、答题结束键、正确键、错误键。
要在程序执行中完成使用这十二个功能键的使用。
因此,本次设计要求对微机原理的理论知识,8255A,8253,键盘显示区的工作方式、工作原理熟练掌握。
二方案2.1硬件选择及说明选用8255A,8253,实验箱键盘显示区(1) 8253作为定时器使用。
(2) 8255A作为并行输入输出,A口接显示区,C口接键盘模块,B口输出位码(3)键盘显示区由四个LED数码管和9个按键组成。
2.1原理框图及原理利用8255A,8253,键盘显示区共同实现,其中8255A作为并行输出输入,8253作为定时。
其中键盘显示区中KL1-KL3作为行,KH1-KH3作为列,当KL1-KL3为高电平时四个数码管选通,当给数据线送数据时将显示所要显示的数据。
当KL1-KL3与KH1-KH3共同配合使用时可作为键盘扫描读入使用并在LED数码管上显示按下的键对应的数值。
如图2-1所示:图2-1硬件原理框图三总体设计3.1总体设计框图总体设计框图如图2-1所示。
3.2系统工作原理本设计主要是以8086为核心,通过加上必要的支持芯片,比如时钟电路、地址锁存器、收发器、8255,8253等,构成一台完整微机系统。
级计算机专业(本科)数字逻辑课程课程设计报告班级:姓名:学号:同组成员:指导老师:日期:课程设计名称:六路抢答器的设计课程设计地点:电子工程学院数字电路实验室、计算机学院机房课程设计目的:熟悉数字系统设计的一般方法;熟悉数字系统开发的方法;熟悉555集成定时器的组成及工作原理;掌握数字抢答器的设计;掌握集成编码器、译码驱动器的工作原理与使用方法。
用虚拟电子工作平台”(Electronics Workbench),简称EWB,分析、设计数字电子电路仿真电路。
使用虚拟测试仪器对电路进行仿真实验如同置身于实验室使用真实仪器测试电路,既解决了购买大量元器件和高档仪器的难处,又避免了仪器损坏等不利因素。
领取元器件和面包板搭电路调试并验收。
提高学生综合分析、设计的思维能力和实际动手能力。
课程设计内容:设计六路抢答器。
主持人按复位键后进行抢,参赛人数为六人,若有参赛者按键抢答,轰鸣器鸣响,提示有人抢答,同时,数码管显示抢答者序号。
课程设计器件:74LS04一片;74LS32一片;74LS30一片;74LS74三片;74LS147一片;555一片;74LS48一片;轰鸣器1个;共阴极数码管一只;复位开关1个;抢答按钮6个;面包板3块;电阻20欧1个,1K14个,10K1个,电容0.01u1个,0.1u1个;导线若干;5V电源。
课程设计步骤:(1)分析课题,和同学讨论该如何着手课程设计;(2)分析老师所给的原理图,了解每个芯片的作用,分析接线的作用;(3)根据原理图,画出一个事物连线图;(4)按照实物连线图在事物中接线仿真;(5)检查连接好的电路是否有错,若有,并纠正;(6)上交实物作品;(7)写报告,总结。
电路原理:1、555振荡器原理和振荡频率555构成的多谐振荡器的工作原理如图所示:接通电源Vcc后,Vcc经电阻R1和R2对电容C充电,其电压V c由0按指数律上。
当V c≧2/3 Vcc时,电压比较器C1和C2的输出分别为V c1=0,V c2=1,基本RS 触发器被置0,Q等于0,Q非等于1,输出V O跃到低电平V OL。
电气及自动化课程设计报告题目:基于PLC的六路抢答器系统设计课程:PLC原理与应用学生姓名:学生学号:年级:14级专业:自动化班级:2班指导教师:机械与电气工程学院制2017年6月目录1课程设计的任务和要求 (1)1.1课程设计的任务 (1)1.2课程设计的要求 (1)2.PLC控制器的原理与组成 (1)2.1PLC硬件系统 (1)2.2PLC工作原理 (3)2.3六人抢答器基本组成 (4)2.4六人抢答器工作原理 (4)3六人抢答器系统设计方案制定 (5)3.1PLC选型 (5)3.2六人抢答器系统的I/O口分配 (6)4六人抢答器系统的软件设计 (7)4.1PLC编程语言 (7)4.2抢答器系统程序 (7)4.2.1主持人控制端 (7)4.2.2抢答成功与抢答犯规指示灯显示 (9)4.2.3七段数码管显示 (9)4.2.4蜂鸣器电路 (11)5六人抢答器系统程序仿真 (12)5.1抢答成功仿真 (12)5.2抢答犯规及抢答超时仿真 (12)5.3加减分及数码管显示 (13)5.4抢答超时 (14)6总结及心得体会 (14)参考文献 (15)基于PLC的六路抢答器系统设计机械与电气工程学院自动化专业1课程设计的任务和要求1.1课程设计的任务使用西门子S7-200PLC编写程序实现六路抢答器的系统设计并使用仿真软件进行其功能的实现。
1.2课程设计的要求(1)主持人控制功能,具有开始抢答按钮和复位按钮;(2)主持人未按下开始抢答按钮时抢答为违规抢答,违规指示灯亮,蜂鸣器响;(3)抢答延时,超过20S无人抢答时此题作废,蜂鸣器长鸣;(4)抢答成功后,抢答成功指示灯亮,数码管显示抢答成功的队伍编号;(5)在抢答成功后,主持人根据回答的正确与否可以对该队伍进行加减分控制;(6)每次正确抢答时,只有第一位按下抢答按钮的队伍为有效抢答。
2.PLC控制器的原理与组成2.1PLC硬件系统可编程控制器,英文称ProgrammableLogicController,简称PLC。
课程设计说明书课题名称:数字式竞赛抢答器专业名称:电子信息工程技术学生班级:电信0604班学生姓名:段伶俐学生学号: 401060506指导教师:龙卓珉课程设计任务书数字式竞赛抢答器一、功能要求1、设计制作一个可容纳6组参赛的数字式枪答器,每组设置一个抢答按钮供抢答者使用。
2、给主持人设置一个控制开关,用来控制系统的清零和抢答的开始。
3、抢答器具有数据锁存和显示的功能。
抢答开始后,若有选手按抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号(1~6),同时扬声器给出音响提示。
同时禁止其他选手抢答。
4、抢答器具有定时抢答的功能,抢答时间设定为30秒,当主持人按下开始按钮时,定时器立刻倒计时,并显示。
选手在设定的时间内抢答有效。
超过时间抢答无效,定时显示器显示00。
二、设计步骤与要求1、拟定电路的组成框图,要求能实现所有功能,使用的元器件少,成本低。
2、设计并安装电路,要求布线整齐、美观,便于级联和调试。
3、测试所设计抢答器的逻辑功能,满足各项功能要求。
4、画出整机逻辑电路图。
5、写出设计报告。
目录课程设计任务书 (1)第1章原理分析 (3)1.1定时抢答器的总体框图 (3)1.2方案选择及论证 (4)第2章单元电路的设计 (4)2.1抢答电路的设计 (4)2.2定时电路的设计 (6)2.3时序控制电路的设计 (7)2.4总电路图 (10)第3章元器件的介绍 (10)第4章安装与调试 (14)总结 (15)参考文献 (17)附录 (18)第1章原理分析1.1定时抢答器的总体框图定时抢答器的总体框图如图1所示。
他主要由主体电路和扩展电路两部分组成。
主体部分完成基本的抢答功能,即开始抢答后,当选手按动抢答键时,能显示选手的编号。
同时能封锁输入电路,禁止其他选手抢答。
扩展电路完成定时的抢答功能。
图1所示定时抢器的工作过程是:接通电源时,节目支持人将开关置于“清除”位置,抢答器处于禁止工作状态,编号显示器灭灯,定时器显示设定的时间,当主持持人宣布抢答题目后,说一声“抢答开始”,同时将控制开关拨到“开始”位置,抢答器处于工作状态,定时器倒计时,当定时时间到,却没有选手抢答时,输入电路被封锁,禁止选手超时后抢答。
基于PLC的六路抢答器设计引言:六路抢答器是一种常用于教育场景的设备,用于提高学生参与教学活动的积极性。
传统的六路抢答器通常由硬件电路设计,存在制作难度高、价格昂贵等问题。
然而,基于可编程逻辑控制器(PLC)的六路抢答器设计能够克服这些问题,并具备灵活性、可靠性、易维护等优势。
本文将介绍基于PLC的六路抢答器的设计过程。
设计思路:基于PLC的六路抢答器主要由PLC控制器、电源模块、按钮模块、显示模块以及扬声器等组成。
PLC控制器负责控制整个系统的运行,电源模块提供系统所需的电能,按钮模块用于学生抢答,显示模块显示当前抢答的学生编号,扬声器用于发出抢答成功的提示音。
具体步骤:1.硬件准备:购买PLC控制器、电源模块、按钮模块、显示模块以及扬声器等硬件设备,并按照相应的接线图进行连接。
2.PLC程序设计:使用PLC编程软件进行程序设计。
首先,定义输入点和输出点。
输入点包括六个学生的抢答按钮信号和重置按钮信号,输出点包括六个学生的抢答成功信号以及扬声器的控制信号。
其次,设计控制逻辑。
当有学生按下抢答按钮时,PLC控制器将检测到相应的输入信号,并输出控制信号控制相应的显示模块显示学生编号,并发出抢答成功的提示音。
当重置按钮被按下时,PLC控制器将重置系统,清零所有学生的抢答次数。
3.调试和测试:将编写好的PLC程序加载到PLC控制器中,并进行调试和测试。
通过按下按钮模块上的抢答按钮,检查是否能够正确显示学生编号,并发出相应的提示音。
通过按下重置按钮,检查是否能够清零学生的抢答次数。
4.安装和维护:将调试好的PLC控制器及相关设备进行安装。
确保设备的稳定运行,并进行定期维护和检修,以保证系统的可靠性和持续性。
总结:基于PLC的六路抢答器设计通过使用PLC控制器实现对整个系统的控制,具备灵活性、可靠性、易维护等优势。
相比于传统的硬件电路设计,基于PLC的六路抢答器不仅制作难度较低,还可以根据实际需求进行灵活的扩展和修改。
兰州文理学院学生毕业论文题目:六路抢答器的设计作者:田葆林指导教师:梁青青电子信息工程学院应电系应用电子技术专业 12 级3 年制 1 班主要内容简介:(300——500字)文章首先介绍了系统的设计方案思路与原理图,进而阐明了设计6路抢答器系统的意义。
单片机AT8920C51控制芯片及其外围电路,数码显示电路及其周围电路,控制电路,语音电路等,软件部分就针对一些具体模块进行编程。
整个系统采用单片机通讯方式,文中还介绍了单片机接口与控制器之间的通讯情况以及该系统的PCB板制作。
关键词:电子;抢答器;单片机;输入;编程;调试;指导老师姓名职称论文评语成绩指导老师签名总评意见:评审人:年月日注:1.评语、成绩由指导老师填写。
2.评语及总评意见应包括学术价值、实际意义、达到水平、学术观点和论证有无错误目录前言 (1)1.系统概述与原理方框图 (2)1.1 计算机电子技术发展概述与系统问题的提出 (2)1.2 方案的选择及设计思路与原理方框图 (2)2.系统硬件设计 (5)2.1 四路抢答器系统电源的设计与分析 (5)2.2 中央控制器--- AT89C2051 (7)2.3 六路抢答器系统的外围电路的设计与分析 (10)3. 系统的软件程序设计 (12)3.1 程序流程图 (12)3.2 程序设计 (12)4. 产品的制作、安装与调试 (16)4.1 PCB板的制作 (16)4.2 元件安装焊接及系统调试 (16)总结 (18)参考文献 (19)附录 (20)致谢 (21)前言21世纪是瞬息万变的信息社会。
现代信息技术由三大部分组成,信息的采集──传感技术,信息传递──通信技术,信息处理──计算机技术。
而电子产品正在以前所未有的革新速度,向着功能多样化,体积最小化,功耗最低化的方向发展。
它与传统电子产品在设计上的显著区别一是大量使用大规模可编写芯片,以提高产品性能,缩小产品体各,降低产品功耗,二是广泛运用现代计算机技术,以提高电子设计自动化程序,缩短开发周期,提高产品的竞争力。
六路抢答器(KT230配套实验)1、如果想调节抢答时间或答题时间,按"抢答时间调节"键或"答题时间调节"键进入调节状态,此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下"加1s"键,如果想减一秒按一下"-1s"键,时间LED上会显示改变后的时间,调整范围为0s~99s, 0s时再减1s会跳到99,99s时再加1s会变到0s。
2、主持人按"抢答开始"键,会有提示音,并立刻进入抢答倒计时(预设15s 抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设10s抢答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。
倒数时间到小于5s会每秒响一下提示音。
3、如倒计时期间,主持人想停止倒计时可以随时按"停止"按键,系统会自动进入准备状态,等待主持人按"抢答开始"进入下次抢答计时。
4、如果主持人未按"抢答开始"键,而有人按了抢答按键,犯规抢答,LED 上不断闪烁FF和犯规号数并响个不停,直到按下"停止" 键为止。
P1.0为开始抢答,P1.7为停止,p1.1-p1.6为六路抢答输入数码管段选P0口,位选P2口,蜂鸣器输出为P3.6口。
OK EQU 20H;抢答开始标志位;将P1口与P2口互换,P3.0-P1.0,P3.1-P1.7 RING EQU 22H;响铃标志位ORG 0000HAJMP MAINORG 0003HAJMP INT0SUBORG 000BHAJMP T0INTORG 0013HAJMP INT1SUBORG 001BHAJMP T1INTORG 0040HMAIN: MOV R1,#0FH;初设抢答时间为15sMOV R2,#0AH;初设答题时间为10sMOV TMOD,#11H;设置未定时器/模式1MOV TH0,#0F0HMOV TL0,#0FFH;越高发声频率越高,越尖MOV TH1,#3CHMOV TL1,#0B0H;50ms为一次溢出中断SETB EASETB ET0SETB ET1SETB EX0SETB EX1;允许四个中断,T0/T1/INT0/INT1CLR OKCLR RINGSETB TR1SETB TR0;一开始就运行定时器,以开始显示FFF.如果想重新计数,重置TH1/TL1就可以了;=====查询程序=====START: MOV R5,#0BHMOV R4,#0BHMOV R3,#0BHACALL DISPLAY;未开始抢答时候显示FFFJB P1.0,NEXT;dddddddACALL DELAYJB P1.0,NEXT;去抖动,如果"开始键"按下就向下执行,否者跳到非法抢答查询ACALL BARK;按键发声MOV A,R1MOV R6,A;送R1->R6,因为R1中保存了抢答时间SETB OK;抢答标志位,用于COUNT只程序中判断是否查询抢答MOV R3,0AH;抢答只显示计时,灭号数AJMP COUNT;进入倒计时程序,"查询有效抢答的程序"在COUNT里面NEXT: JNB P1.1,FALSE1JNB P1.2,FALSE2JNB P1.3,FALSE3JNB P1.4,FALSE4JNB P1.5,FALSE5JNB P1.6,FALSE6AJMP START;=====非法抢答处理程序=====FALSE1: ACALL BARK;按键发声MOV R3,#01HAJMP ERRORFALSE2: ACALL BARKMOV R3,#02HAJMP ERRORFALSE3: ACALL BARKMOV R3,#03HAJMP ERRORFALSE4: ACALL BARKMOV R3,#04HAJMP ERRORFALSE5: ACALL BARKMOV R3,#05HAJMP ERRORFALSE6: ACALL BARKMOV R3,#06HAJMP ERROR;=====INT0(抢答时间R1调整程序)=====INT0SUB:MOV A,R1MOV B,#0AHDIV ABMOV R5,AMOV R4,BMOV R3,#0AHACALL DISPLAY;先在两个时间LED上显示R1JNB P3.4,INC0;P3.4为+1s键,如按下跳到INCOJNB P3.5,DEC0;P3.5为-1s键,JNB P1.7,BACK0;P3.1为确定键,如按下跳到BACKOAJMP INT0SUBINC0: MOV A,R1CJNE A,#63H,ADD0;如果不是99,R2加1,如果加到99了,R1就置0,重新加起。
MOV R1,#00HACALL DELAY1AJMP INT0SUBADD0: INC R1ACALL DELAY1AJMP INT0SUBDEC0: MOV A,R1JZ SETR1;如果R1为0, R1就置99,DEC R1ACALL DELAY1AJMP INT0SUBSETR1: MOV R1,#63HACALL DELAY1AJMP INT0SUBBACK0: RETI;=====INT1(回答时间R2调整程序)=====INT1SUB:MOV A,R2MOV B,#0AHDIV ABMOV R5,AMOV R4,BMOV R3,#0AHACALL DISPLAYJNB P3.4,INC1JNB P3.5,DEC1JNB P1.7,BACK1AJMP INT1SUBINC1: MOV A,R2CJNE A,#63H,ADD1MOV R2,#00HACALL DELAY1AJMP INT1SUBADD1: INC R2ACALL DELAY1AJMP INT1SUBDEC1: MOV A,R2JZ SETR2DEC R2ACALL DELAY1AJMP INT1SUBSETR2: MOV R2,#63HACALL DELAY1AJMP INT1SUBBACK1: RETI;=====倒计时程序(抢答倒计时和回答倒计时都跳到改程序)=====COUNT: MOV R0,#00H;重置定时器中断次数MOV TH1,#3CHMOV TL1,#0B0H;重置定时器RECOUNT:MOV A,R6;R6保存了倒计时的时间,之前先将抢答时间或回答时间给R6 MOV B,#0AHDIV AB;除十分出个位/十位MOV 30H,A;十位存于(30H)MOV 31H,B;个位存于(31H)MOV R5,30H;取十位MOV R4,31H;取个位MOV A,R6SUBB A,#07HJNC LARGER;大于5s跳到LARGER,小于等于5s会提醒MOV A,R0CJNE A,#0AH,FULL;1s中0.5s向下运行CLR RINGAJMP CHECKFULL: CJNE A,#14H,CHECK;下面系1s的情况,响并显示号数并清R0,重新计SETB RINGMOV A,R6JZ QUIT;计时完毕MOV R0,#00HDEC R6;一秒标志减1AJMP CHECKLARGER: MOV A,R0CJNE A,#14H,CHECK;如果1s向下运行,否者跳到查"停/显示"DEC R6;计时一秒R6自动减1MOV R0,#00HCHECK: JNB P1.7,QUIT;如按下停止键退出ACALL DISPLAYJB OK,ACCOUT;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用)AJMP RECOUNTACCOUT:JNB P1.1,TRUE1JNB P1.2,TRUE2JNB P1.3,TRUE3JNB P1.4,TRUE4JNB P1.5,TRUE5JNB P1.6,TRUE5AJMP RECOUNTQUIT: CLR OK;如果按下了"停止键"执行的程序CLR RINGAJMP START;=====正常抢答处理程序=====TRUE1: ACALL BARK;按键发声MOV A,R2MOV R6,A;抢答时间R2送R6MOV R3,#01HCLR OK;因为答题的计时不再查询抢答,所以就锁了抢答AJMP COUNTTRUE2:ACALL BARK;MOV A,R2MOV R6,AMOV R3,#02HCLR OKAJMP COUNTTRUE3:ACALL BARK;MOV A,R2MOV R6,AMOV R3,#03HCLR OKAJMP COUNTTRUE4:ACALL BARK;MOV A,R2MOV R6,AMOV R3,#04HCLR OKAJMP COUNTTRUE5: ACALL BARK;MOV R6,AMOV R3,#05HCLR OKAJMP COUNTTRUE6: ACALL BARK;MOV A,R2MOV R6,AMOV R3,#06HCLR OKAJMP COUNT;=====犯规抢答程序=====ERROR: MOV R0,#00HMOV TH1,#3CHMOV TL1,#0B0HMOV 34H,R3;犯规号数暂存与(34H)HERE: MOV A,R0CJNE A,#0AH,FLASH;0.5s向下运行->灭并停响CLR RINGMOV R3,#0AHMOV R4,#0AHMOV R5,#0AH;三灯全灭AJMP CHECK1FLASH: CJNE A,#14H,CHECK1;下面系1s的情况,响并显示号数并清R0,重新计 SETB RINGMOV R0,#00HMOV R3,34H;取回号数MOV R5,#0BHMOV R4,#0BH;显示FF和号数AJMP CHECK1CHECK1: JNB P1.7,QUIT1ACALL DISPLAYAJMP HEREQUIT1: CLR RINGCLR OKAJMP START;=====显示程序=====DISPLAY:MOV DPTR,#DAT1;查表显示程序,利用P0口做段选码口输出/P2低三位做位选码输出,MOV A,R5MOVC A,@A+DPTRMOV P2,#01HMOV P0,AACALL DELAYMOV DPTR,#DAT2MOV A,R4MOVC A,@A+DPTRMOV P2,#02HMOV P0,AACALL DELAYMOV A,R3MOVC A,@A+DPTRMOV P2,#04HMOV P0,AACALL DELAYRETDAT1:DB 00H,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;"灭","1","2","3","4","5","6","7","8","9","灭","F"DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H;第一个为零,其他与上相同,因为十位如果为零显示熄灭;====加减时间延时(起到不会按下就加N个数)======DELAY1: MOV 35H,#08HLOOP0: ACALL DISPLAYDJNZ 35H,LOOP0RET;=====延时(显示和去抖动用到)=====DELAY: MOV 32H,#12HLOOP: MOV 33H,#0AFHLOOP1: DJNZ 33H,LOOP1DJNZ 32H,LOOPRET;=====发声程序=====BARK: SETB RINGACALL DELAY1ACALL DELAY1CLR RING;按键发声RET;=====TO溢出中断(响铃程序)=====T0INT: MOV TH0,#0ECHMOV TL0,#0FFHJNB RING,OUT;CPL P3.6;RING标志位为1时候P3.6口不短取反使喇叭发出一定频率的声音OUT: RETI;=====T1溢出中断(计时程序)=====T1INT: MOV TH1,#3CHMOV TL1,#0B0HINC R0RETIEND。