(完整版)基于单片机的抢答器设计
基于单片机8路抢答器的设计与实现

基于单片机8路抢答器的设计与实现引言:抢答器是一种用于比赛或考试中进行抢答的设备,它可以实现多个参与者同时抢答,实时显示最先抢答者的编号。
本文将介绍一种基于单片机的8路抢答器的设计与实现。
一、设计方案:1.硬件设计:本设计采用单片机作为主控制器,使用LED显示器显示抢答编号。
按键用于选择参与抢答的编号。
____________________+------------------,P1.0,,P1.1,,P1.2,,P1.3Infrared sensor ----- ------- ----- -----+------------------,P1.4,,P1.5,,P1.6,,P1.7LED display ----- ------- ----- -----+---------------+---------+---------+---------+---------+AVRMicrocontroller+---------------+---------+---------+2.软件设计:本设计的软件部分主要涉及中断、定时器、按键扫描和显示控制几个方面的内容。
(1)中断:使用外部中断响应红外传感器的触发信号,并处理中断程序。
(2)定时器:使用定时器来实现LED显示的时序控制,以达到流畅的显示效果。
(3)按键扫描:定时扫描按键,当一些按键按下时,触发相应的抢答编号。
(4)显示控制:根据抢答编号,通过对LED显示器的控制,实现编号的显示。
二、实现步骤:1.硬件部分的实现:(1)按照上述连接图的方式,将红外传感器和LED显示器与单片机进行连接。
(2)编写硬件程序,对红外传感器和LED显示器进行初始化配置。
2.软件部分的实现:(1)编写中断服务函数,用于响应红外传感器的触发信号,并完成相应的中断处理。
(2)编写定时器中断服务函数,用于控制LED显示的时序。
(3)编写按键扫描函数,用于检测按键是否按下,并触发相应的抢答编号。
基于单片机8路抢答器的设计与实现

基于单片机8路抢答器的设计与实现基于单片机的8路抢答器是一种常见的电子竞赛设备,用于测验、培训或竞赛等活动中进行抢答的过程。
它能够为多个参与者提供公平竞争机会,并通过显示屏和声音提示来呈现结果。
下面是一个基于单片机的8路抢答器的设计与实现的参考内容。
一、硬件设计:1. 微控制器选择:可以选择一款适合的单片机作为抢答器的主控芯片,常见的选择有STC89C52、AT89C52、PIC16F877A 等。
2. 输入部分设计:为每个参与者设置一个按钮,用于抢答。
可以使用电子按键、触摸按钮等。
3. 显示部分设计:可以选择LCD液晶显示屏或数码管进行显示,显示参与者的编号或抢答进度等信息。
4. 声音提示设计:可以使用蜂鸣器或扬声器作为声音提示装置,用于鸣笛提示抢答结果。
5. 电源部分设计:选择合适的电源模块,如直流电源模块或电池供电。
二、软件设计:1. 系统初始化:设置IO口的输入输出状态,初始化LCD显示屏,配置中断等。
2. 抢答逻辑:设置抢答模式,设定抢答者数量,记录抢答时间,并根据抢答顺序进行显示和提示。
3. 显示与提示:根据抢答结果,将结果显示在LCD屏幕上,并通过声音提示器进行声音提示。
4. 延时与计时:设置合适的延时函数和计时器用于计算抢答的时间长度。
5. 节拍控制:设置一个节拍控制函数,用于判断抢答按钮的按下时间是否在某一节拍内,以增加抢答的公平性。
6. 按键检测与处理:使用中断或轮询方式对抢答器上的按键进行检测和处理,并根据按键的触发来执行相应的命令。
三、实现步骤:1. 硬件搭建:按照上述设计,完成抢答器的硬件搭建,包括连接单片机与按钮、显示屏和声音提示器等。
2. 程序编写:根据所选的单片机型号,使用对应的编程软件,编写相应的程序。
3. 调试与测试:将编写好的程序下载到单片机中,通过串口或者编程器与单片机进行连接,进行调试与测试。
4. 优化与改进:根据实际使用情况,进行程序的优化和改进,以提高系统的稳定性和可靠性。
基于51单片机智能抢答器的设计

基于51单片机智能抢答器的设计51单片机智能抢答器是一种智能化的电子设备,可以用于各种有奖答题活动中,通过简单的按键操作即可实现抢答功能。
本文将介绍基于51单片机的智能抢答器的设计,包括硬件电路设计和软件程序设计。
一、硬件电路设计1. 电源模块:采用直流电源供电,可选择使用电池或者适配器供电。
为了保证正常的使用,建议使用干电池或者锂电池供电,并加入适当的电源保护电路。
2. 控制模块:使用51单片机作为控制核心,通过外部按键输入实现答题和抢答功能。
需要接入外部中断输入端口并编写相应的中断服务程序。
3. 显示模块:采用液晶显示模块作为主要的显示设备,用于显示答题结果和其他信息。
需要编写相应的驱动程序以实现显示功能。
4. 输入模块:设置抢答按钮和答题按钮作为输入设备,通过按键操作来实现抢答和答题功能。
需要加入合适的按键消抖电路以确保按键操作的稳定性。
5. 信号处理模块:通过外部传感器检测抢答按钮的按下情况,并将信号输入到51单片机进行处理。
需要设计合适的信号处理电路以满足系统的要求。
二、软件程序设计1. 系统初始化:在系统上电之后,需要对51单片机进行初始化设置,包括外部中断设置、定时器设置、IO口配置等。
2. 按键检测:通过轮询或者中断方式检测抢答按钮和答题按钮的按下情况,并根据按键的不同状态进行相应的处理。
3. 答题逻辑:根据抢答按钮的按下顺序和答题按钮的按下情况,判断抢答者是否答题正确,并根据结果进行相应的显示和处理。
4. 显示控制:根据答题的结果和其他相关信息,控制液晶显示模块显示相应的内容,包括抢答者的得分、答题结果等。
5. 系统完善:考虑到系统的稳定性和可靠性,需要对系统进行进一步的优化和完善,包括添加异常处理程序、加入错误提示功能等。
通过以上硬件电路设计和软件程序设计,可以实现一个基于51单片机的智能抢答器,并可以在各种有奖答题活动中使用。
这种智能抢答器可以提高活动的趣味性和互动性,成为活动中的一种重要设备。
基于51单片机智能抢答器的设计

基于51单片机智能抢答器的设计
51单片机智能抢答器是一种基于51单片机的电子设备,用于抢答竞赛或教育活动中,能够实现自动抢答、计分和显示等功能。
本文将介绍基于51单片机智能抢答器的设计原理、硬件结构和软件实现。
基于51单片机智能抢答器的设计原理是通过轮询按钮的状态来判断参赛者是否按下按钮进行抢答,然后根据抢答的顺序进行计分和显示。
其硬件结构包括51单片机、按钮、显示屏和蜂鸣器等组件。
具体来说,按钮用于参赛者按下进行抢答,采用并口方式连接到51单片机的IO口。
当有参赛者按下按钮时,会通过IO口向单片机发送一个高电平信号。
显示屏用于显示抢答的顺序和当前得分,可以使用数码管或液晶显示屏。
蜂鸣器用于发出抢答成功或错误的提
示音。
在软件实现方面,需要编程实现如下功能:使用中断来检测按钮的按下状态,并记录
抢答的时间顺序;根据抢答的顺序,对参赛者进行计分;通过显示屏和蜂鸣器进行抢答结
果的显示和提示。
在编程方面,可以使用C语言来编写程序。
需要配置IO口为输入和输出模式,并设置中断函数,以实现对按钮状态的检测和记录。
然后,通过数组或链表来保存参赛者的抢答
顺序,并根据顺序对参赛者进行计分。
根据计分结果,将数据通过数码管或液晶显示屏进
行显示,并通过蜂鸣器进行相应的提示音。
基于51单片机的智能抢答器可以实现自动抢答、计分和显示等功能,可以广泛应用于抢答竞赛和教育活动中,提高活动的趣味性和教学效果。
该设计也可以作为学习51单片机的实践项目,对于提高学生的编程能力和电子设计能力有一定的帮助。
基于单片机八路抢答器设计

基于单片机八路抢答器设计设计基于单片机的八路抢答器,需要考虑以下几个方面:硬件设计、软件设计以及抢答器工作流程。
硬件设计:1.单片机选择:可以选择一款具有较多IO引脚和较强处理能力的单片机,如STC89C51、这款单片机具有40个IO口,并且内部集成了PWM、ADC等模块,适合本次设计。
2.触发器设计:使用8个按钮作为触发器,每个按钮与一个IO口连接。
当有用户按下按钮时,会通过IO口向单片机发送一个高电平信号。
3.显示模块设计:可以使用LED灯作为显示模块,用于显示抢答的结果。
每个参与者对应一个LED灯,抢答成功的参与者对应的LED灯会亮起。
4.电源模块设计:使用适配器将220V交流电转换为5V直流电,供给单片机和LED灯。
5.电路连接:将按钮和LED灯与IO口连接,并接地,保持电路的正确连接。
软件设计:1.IO口初始化:将涉及到的IO口初始化为输入或输出口。
2.中断设置:将按钮连接到中断引脚,当按钮按下时,触发中断。
在中断函数内根据按下的按钮编号,判断抢答的结果。
3.抢答逻辑:设计一个数组来保存参与抢答者的结果。
当用户按下按钮后,根据按下按钮的编号,将结果保存到数组中。
根据题目的要求,可以选择先按下的为正确答案或者最后按下的为正确答案。
4.显示结果:根据抢答结果,控制相应的LED灯点亮或熄灭。
抢答器工作流程:1.开机初始化:开机后,进行硬件初始化,包括IO口的初始化和LCD屏幕的初始化。
2.抢答准备:显示等待抢答,等待用户按下按钮。
3.抢答开始:当用户按下按钮后,系统根据按下按钮的编号判断答案是否正确,并将结果保存到数组中。
4.结果显示:根据抢答结果,控制相应的LED灯点亮或熄灭,显示抢答结果。
5.重置抢答器:在每轮抢答结束后,将抢答器重置为初始状态,清空结果数组,准备下一轮抢答。
通过上述硬件设计、软件设计以及抢答器工作流程的设计,实现了基于单片机的八路抢答器。
抢答器的设计可以根据实际需求进行修改和扩展,例如增加显示屏幕显示更多信息、添加声音提示等,以满足不同的使用场景。
基于51单片机智能抢答器的设计

基于51单片机智能抢答器的设计一、需求分析随着社会的不断发展,教育教学工作也在不断改进和创新。
在学校教育中,课堂互动是非常重要的一环,而智能抢答器作为课堂互动的一种工具,其作用愈发突显。
智能抢答器可以有效地帮助老师激发学生的兴趣,增加课堂互动的趣味性,提高学生参与度和课堂效果。
设计一款基于51单片机的智能抢答器具有非常重要的意义。
基于51单片机的智能抢答器,需要满足以下一些功能需求:1. 可以实现学生抢答的功能,即学生按下按钮进行抢答,系统记录按键顺序并显示结果。
2. 可以设置不同的抢答模式,如抢答模式、排队模式等,满足不同场景下的教学需求。
3. 可以显示抢答结果,并根据不同情景进行排名显示。
4. 可以具备查询功能,老师可以查询学生抢答的结果并对结果进行分析和统计。
二、方案设计1. 系统整体设计智能抢答器整体由51单片机、按钮、LED显示屏和蜂鸣器等组成。
其工作原理是通过单片机对按钮的输入信号进行检测并记录,然后根据不同的抢答模式进行结果的显示和排名。
系统还具备查询功能,通过按下相应的按钮可以对抢答结果进行查询。
2. 软件设计基于51单片机的智能抢答器的软件设计主要包括两个部分:抢答器的逻辑控制和抢答结果的显示。
(1) 抢答器的逻辑控制在抢答器的逻辑控制部分,需要对按钮的输入信号进行检测和记录,并根据抢答模式对学生的抢答顺序进行排序。
还需要对老师的查询指令进行响应,将抢答结果进行显示和输出。
(2) 抢答结果的显示抢答结果的显示主要通过LED显示屏进行,可以根据不同的排名情况进行不同方式的显示,如按下按钮的顺序、得分高低等。
3. 硬件设计硬件设计主要包括51单片机的选型和外围电路的设计。
在选型方面,需要选择合适的51单片机以及与之匹配的LED显示屏、按钮和蜂鸣器等外围电路,保证系统的正常工作。
在外围电路的设计过程中,需要注意充分考虑稳定性和可靠性,同时还需要考虑系统的可维护性和扩展性。
三、系统实现在系统实现过程中,首先需要完成软件的编写和硬件的搭建。
单片机课程设计(完整版六路抢答器)

学号 2010《单片机中级教程原理与应用》课程设计(2010届本科)题目:六路抢答器设计学院:物理与机电工程学院专业:电气程及其自动化作者姓名:指导教师:职称:副教授完成日期: 201 年12 月15 日摘要本设计是六路智力抢答器。
使用51系列单片机,编写应用程序来实现智力抢答功能。
硬件设计使用的是51系列单片机中的89C51。
硬件设计利用其中断控制程序进行抢答部分的处理,通过非门的控制去申请单片机内部的中断,以达到显示抢答的目的。
软件设计利用中断系统的基本构成原理编写中断服务程序,其信号由按键电路提供,由CPU响应中断,并输出响应。
用到了查询按键模块、定时器模块、显示时间模块、显示组号模块、报警模块等。
关键词:89C51 中断定时器报警电路等目录第1章绪论 (3)1.1 智能抢答器的发展现状 (3)1.2 抢答器的背景和特点 (3)第2章抢答器的系统概述 (3)2.1 六路抢答器设计功能要求 (3)2.2 抢答器设计方案 (4)第3章系统硬件电路设计 (4)3.1 系统电路图 (4)3.2 时钟频率电路的设计 (5)3.3 键盘扫描电路的设计 (5)3.4 显示电路的设计 (6)第4章系统软件设计 (7)4.1 程序流程图 (7)4.2 系统程序 (7)第5章仿真调试及性能分析 (8)5.1 仿真调试 (8)一、上电显示 (8)二、开始抢答倒计时显示 (8)三、正确抢答显示 (9)四、违规抢答显示 (9)5.2 性能分析 (10)第6章设计出现的问题及总结 (10)6.1 设计出现的问题 (10)6.2 总结 (10)附录 (13)第1章绪论1.1 智能抢答器的发展现状随着电子技术的发展,现在的抢答器功能越来越强,可靠性和准确性也越来越高。
能够实现抢答器功能的方式有多种,可以采用前期的模拟电路、数字电路或模拟与数字电路相结合的方式,但这种方式制作过程复杂,而且准确性与可靠性不高,成品面积大。
对于目前抢答器的功能描述,如涵盖抢答器、抢答限时、选手答题计时及犯规组号抢答器具有抢答自锁,灯光指示、暂停复位、电子音乐报声、自动定时等功能,还有工作模式的切换和时间设定,对于这些,随着科学技术的发展,肯定还要得到进一步的改进。
基于51单片机智能抢答器的设计

基于51单片机智能抢答器的设计一、引言二、设计思路1.系统功能需求智能抢答器主要包括以下功能:(1)抢答功能:允许学生在教师提出问题后进行抢答;(2)提前设置答题时间:教师可以设置每次抢答的时间;(3)显示抢答结果:显示学生选手的抢答结果和答题情况;(4)记录抢答情况:记录学生的抢答情况,方便教师进行统计和评估。
2.系统硬件设计系统采用51单片机作为核心,通过按键、显示屏等外设实现系统的各项功能。
系统还需配备一套抢答设备,每位学生需要配备一个手持式抢答器,用于进行抢答操作。
3.系统软件设计系统需要设计相关的软件程序,包括抢答逻辑、结果显示、数据统计等功能。
需要考虑系统的稳定性和易用性,确保教师和学生可以轻松操作系统。
三、系统设计与实现1.抢答器的设计抢答器采用51单片机作为核心,通过按键输入学生答案,再通过无线通信将答题结果发送给主控系统。
抢答器还需配备显示屏,显示学生的抢答结果。
为了保证系统的安全性,还需设计防作弊功能。
2.主控系统的设计主控系统也采用51单片机作为核心,通过接收抢答器的信号,处理并显示抢答结果。
主控系统还需要设计相应的操作界面,方便教师进行设置和操作。
系统还需设计数据存储和统计功能,记录学生的抢答情况。
四、系统性能测试及改进1.系统性能测试完成系统的硬件和软件设计后,需要进行系统的性能测试,主要包括以下几个方面:(1)抢答功能测试:测试学生抢答器的响应速度和稳定性;(2)结果显示测试:测试主控系统的抢答结果显示效果;(3)数据统计测试:测试系统的数据统计和记录功能。
2.系统改进根据测试结果,对系统进行相应的改进和调整,确保系统能够稳定运行并满足实际教学需求。
需要特别关注系统的稳定性、易用性和安全性等方面的改进。
五、系统应用与展望1.系统应用智能抢答器可以广泛应用于教育教学领域,提高课堂互动和学生的参与度。
还可以应用于各类知识竞赛、学科竞赛等活动中。
2.系统展望智能抢答器作为新型的教学辅助工具,具有较大的市场前景。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学号1251401243《单片机》课程设计(2012级本科)题目:基于单片机的抢答器设计系(部)院:物理与机电工程学院专业:电气工程及其自动122班作者姓名:杨存恩指导教师:向根祥职称:副教授完成日期: 2 0 1 5 年 6 月28 日目录1 引言 (2)1.1 设计目的 (2)1.2 设计要求 (2)2 设计方案 (2)3 硬件设计 (3)3.1 电路原理图 (3)3.2总体设计电路图 (3)3.2.1 振荡电路 (4)3.2.2 复位电路 (4)3.2.3 加减分电路及蜂鸣器报警电路 (5)3.2.4 抢答电路及裁判控制开始停止电路 (5)3.2.5 数码管显示电路 (6)4 仿真过程示意 (7)4.1 开始抢答 (7)4.2 抢答倒计时 (8)4.3 答题及答题倒计时 (8)4.4 违规抢答 (9)4.5 答题正确加分 (9)4.6 答题错误减分 (9)4.7 抢答结束 (10)5 程序流程图 (11)6 课程设计总结 (11)参考文献 (12)附录:源程序清单 (13)1 引言1.1 设计目的现如今电视节目日益丰富其中的竞赛环节也越来越多,其中智力抢答器是不可或缺的器材。
在本学期学习了单片机这门课之后,我觉得可以试着自己来实现抢答器的功能,令它能准确、公正、直观地判断出第一抢答者,并通过抢答器的数码管显示和蜂鸣器报警指出抢答组别。
最终做出一种数字式抢答器的设计方案,通过Proteus设计完成,利用keil2软件编辑程序,仿真验证,适用于多种竞赛场合。
1.2 设计要求设计一个用于智力竞赛的抢答器,其功能的实现是由单片机控制的,满足:(1)能容许2-6组进行抢答。
(2)能显示抢答组号。
(3)各组记分,并能记分显示。
(4)比赛结束时,能发出报警声。
2 设计方案在设计中采用的单片机是AT89C51,它主要负责控制各个部分协调工作。
P1.0和P1.7由裁判控制,分别是抢答开始和停止键。
P1.1—P1.6是6组抢答的输入口,按下对应按钮即为抢答。
P0口为数码管的段选口,位选口用的是P2口的低4位,外部中断0。
外部中断1,P3.3用于控制有组答题完成后结束计时。
P3.4—P3.5分别实现了分数的加一和减一。
P3.6为蜂鸣器的控制口。
外部中断和内部中断并存,单片机有硬件复位端,只要输入持续4个机器周期的高电平即可实现复位。
外部还接有蜂鸣器用来发出报警音。
采用7SEG-MPX4-CC-BLUE显示,它是共阴极的由高电平点亮。
系统仿真用到了Proteus软件,通过仿真可以显示所设计系统的功能,对于程序的调试等有很大的帮助。
3 硬件设计3.1 电路原理图电路原理图如图3.1所示。
图3.1 电路原理图3.2总体设计电路图整个系统分为:外部振荡电路、复位电路、加减分电路及蜂鸣器报警电路、抢答电路及裁判控制开始停止电路、数码管显示电路几个部分。
本设计的核心是单片机AT89C51。
AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
3.2.1 振荡电路振荡电路使用外部振荡电路,由两个1nF的电容和一个晶体振荡、外部振荡电路。
图3.2.1 晶振振荡电路3.2.2 复位电路外部中断和内部中断并存,单片机有硬件复位端,只要输入持续4个机器周期的高电平即可实现复位。
硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值。
因为本设计功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软复位。
软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序开始。
图3.2.2 复位电路3.2.3 加减分电路及蜂鸣器报警电路P3.3接口的开关按下意味着答题结束,P3.4接口开关表示给抢答相应组加上一分,P3.5接口开关按下表示相应组减去一分。
裁判示意开始抢答、有组抢答成功、违规抢答、最后5s倒计时都会触发蜂鸣器发出警报。
P3.6为蜂鸣器控制口。
图3.2.3 加减分电路及蜂鸣器报警电路3.2.4 抢答电路及裁判控制开始停止电路P1.0和P1.7由裁判控制,分别是抢答开始和停止键。
P1.1-P1.6是6组抢答的输入口,按下按钮抢答。
图3.2.4 抢答电路及裁判控制开始停止电路3.2.5 数码管显示电路采用排阻RESPACK-8来做为上拉电阻,排阻一般应用在数字电路上,通常作为某个并行口的上拉或者下拉电阻用。
排阻具有方向性,与色环电阻相比具有整齐、少占空间的优点,比用若干只固定电阻更方便。
图3.2.5 排阻RESPACK-8数码管7SEG-MPX4-CC-BLUE,它是共阴极的数码管图3.2.6 数码管7SEG-MPX4-CC-BLUE4 仿真过程示意4.1 开始抢答开始抢答时,数码管显示000。
图4.1 开始抢答4.2 抢答倒计时允许抢答后,开始倒计时从15s直到0s。
在最后5s蜂鸣器会发出警报。
图4.2 抢答倒计时4.3 答题及答题倒计时第四组抢答,答题时间有30s,在最后5s蜂鸣器会发出警报。
图4.3 第四组答题及答题倒计时4.4 违规抢答若还没有允许抢答就有人按下抢答器,那么蜂鸣器会发出警报,并显示是哪一组违规抢答。
如图为第二组违规抢答。
图4.4 第二组违规抢答4.5 答题正确加分如图为第四组回答正确加一分图4.5 第四组答题正确加一分4.6 答题错误减分如图为第四组回答错误减一分图4.6 第四组答题错误减一分4.7 抢答结束抢答结束后电路复位,并记录各组抢答得分,待下次抢答得分累计。
5 程序流程图图5.1 程序流程图6 课程设计总结在这次课程设计中,我们运用到了以前所学的专业课知识,如:汇编语言、模拟和数字电路知识等。
虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。
要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。
发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。
设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。
在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
参考文献[1] 周立功.夏宇闻.单片机与CPLD综合应用技术[M].北京:北京航空航天大学出版[2] 丁元杰.单片微机原理及应用[M].北京:机械工业出版社.[3] 靳达编.单片机应用系统开发实例导航[M].北京:人民邮电出版社.[4] 李光飞.单片机课程设计实例指导[M].北京:北京航空航天大学出版社.[5] 胡宴如.高频电子线路[M].北京:高等教育出版社.[6] 白驹珩.雷晓平.单片计算机及其应用[M].成都:电子科技大学出版社.[7] 李广弟.单片机基础[M].北京:北京航空航天大学出版社.[8] 沈美明.温冬婵.IBM汇编语言程序设计[M].北京:清华大学出版社.[9] 彭传正.林春景.凌阳单片机原理与实践[M].北京:北京航空航天大学出版社.[10] 李荣正.陈学军.PIC单片机实践教程[M].北京:北京航空航天大学出版社。
附录:源程序清单OK EQU 20HRING EQU 22HORG 0000HAJMP MAINORG 000BHAJMP T0INTORG 0013HAJMP INT1SUBORG 001BHAJMP T1INTORG 0040HMAIN:MOV R1,#15;设置抢答倒计时时间15sMOV R2,#30;设置答题倒计时时间30sMOV TMOD,#11H;设置未定时器/工作方式1(16位计数器)MOV TH0,#0F0H;MOV TL0,#0FFH;越高发声频率越高,越尖(3.842ms)MOV TH1,#3CH;MOV TL1,#0B0H;50ms为一次溢出中断SETB EASETB ET0SETB ET1SETB EX1;允许3个中断,T0/T1/INT0/INT1CLR OKCLR RINGSETB TR1SETB TR0;开始就运行定时器,初始显示888如果想重新计数,重置TH1/TL1;=====查询程序=====START: MOV R5,#00HMOV R4,#00HMOV R3,#00HACALL DISPLAY;未开始抢答时候显示888JB P1.0,NEXTACALL 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;=====INT1(答题对错加减分数程序)===== INT1SUB:MOV R4,#0AHMOV R5,#0AHJNB P3.4,INC1JNB P3.5,DEC1JNB P1.7,BACK1ACALL DISPLAYAJMP INT1SUBMOV A,R3SUBB A,#01HJZ XXY1SUBB A,#02HJZ XXY2SUBB A,#03HJZ XXY3SUBB A,#04HJZ XXY4SUBB A,#05HJZ XXY5SUBB A,#06HJZ XXY6XXY1:MOV R7,41HXXY2:MOV R7,42HXXY3:MOV R7,43HXXY4:MOV R7,44HXXY5:MOV R7,45HXXY6:MOV R7,46HINC1:INC R7CJNE R3,#01H,L1MOV 51H,R7L1:CJNE R3,#02H,L2MOV 52H,R7L2:CJNE R3,#03H,L3MOV 53H,R7L3:CJNE R3,#04H,L4MOV 54H,R7L4:CJNE R3,#05H,L5MOV 55H,R7L5:CJNE R3,#06H,LLMOV 56H,R7LL:ACALL DELAY1AJMP INT1SUBDEC1:DEC R7ACALL DELAY1AJMP INT1SUBBACK1:RETI;=====倒计时程序(抢答倒计时和回答倒计时都跳到该程序)=====COUNT: MOV R0,#00H;重置定时器中断次数MOV TH1,#3CH;MOV TL1,#0B0H;重置定时器(53ms)RECOUNT:MOV A,R6;R6保存了倒计时的时间,之前先将抢答时间或回答时间给R6MOV 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,TRUE6AJMP RECOUNTQUIT:CLR OK;如果按下了"停止键"执行的程序CLR RINGAJMP START;=====正常抢答处理程序=====TRUE1: ACALL BARK;按键发声MOV A,R2MOV R6,A;抢答时间R2送R6MOV R7,41HCLR OK;因为答题的计时不再查询抢答,所以就锁了抢答AJMP COUNTTRUE2:ACALL BARK;MOV A,R2MOV R6,AMOV R3,#02HMOV R7,42HCLR OKAJMP COUNTTRUE3:ACALL BARK;MOV A,R2MOV R6,AMOV R3,#03HMOV R7,43HCLR OKAJMP COUNTTRUE4:ACALL BARK;MOV A,R2MOV R6,AMOV R3,#04HMOV R7,44HCLR OKAJMP COUNTTRUE5:ACALL BARK;MOV A,R2MOV R6,AMOV R3,#05HMOV R7,45HCLR 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 41H,51HMOV 42H,52HMOV 43H,53HMOV 44H,54HMOV 45H,55HMOV 46H,56HMOV 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 DELAYMOV A,R7MOVC A,@A+DPTRMOV P2,#08HMOV 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 R0RETIENDPLC程设计成绩评定表指导教师签字:年月日。