基于MCS-51单片机的四路抢答器
- 格式:doc
- 大小:117.00 KB
- 文档页数:9
信息与电气工程学院课程设计说书(2010 /2011 学年第二学期)课程名称:单片机课程设计题目:四路抢答器设计成绩:2013 年6 月23 日目录第一节课程设计目的 (2)1.1 概述 (2)1.2 设计要求 (2)第二节四路抢答器设计正文 (2)2.1 总体设计 (2)2.1.1 抢答器的工作原理 (2)2.1.2 抢答器的总体设计 (3)2.2 硬件电路详细设计 (3)2.2.180c51芯片 (3)2.2.2 芯片的选择 (6)2.2.3 复位电路的设计 (6)2.2.4 晶振电路的设计 (7)2.2.5 数码显示电路的设计 (8)2.2.6 报警电路的设计 (8)2.2.7 总电路的设计 (9)2.2.8 PCB版图的绘制 (9)2.3 软件详细设计 (10)2.3.1 主程序的设计 (10)2.3.2 显示子程序的设计 (10)2.3.3 定时器T0、T1中断服务程序的设计 (11)2.3.4 抢答处理程序的设计 (11)2.3.5 总程序 (11)第三节实验结果及结论 (14)第四节参考文献 (15)第一节课程设计目的1.1概述单片机原理及应用课程设计是学生综合运用所学知识,全面掌握单片微型计算机及其接口的工作原理、编程和使用方法的重要实践环节。
通过独立或协作提出并论证设计方案,进行软、硬件调试,最后获得正确的运行结果,可以加深和巩固对理论教学和实验教学内容的掌握,进一步建立计算机应用系统整体概念,初步掌握单片机软、硬件开发方法,为以后进行实际单片机软、硬件应用开发奠定良好的基础。
课程设计的主要内容:根据单片机原理及应用课程的要求,主要进行两个方面的设计,即单片机最小系统和接口技术应用设计。
其中,单片机最小系统主要要求学生熟悉单片机的内部结构和引脚功能、引脚的使用、复位电路、时钟电路、4个并行接口和一个串行接口的实际应用,从而可构成最小应用系统,并编程进行简单使用。
接口技术应用设计主要要求学生能综合运用单片机、存储器、常用接口芯片构成单片机应用系统,有针对性地进行软、硬件设计与开发。
单片机四路抢答器课程设计-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN课程设计(论文)题目名称简易四路抢答器设计课程名称单片机原理及应用学生姓名瞿永学号 04系、专业电气工程系测控类指导教师杨波2010年 7 月 1 日邵阳学院课程设计(论文)评阅表学生姓名瞿永学号 04系别电气工程系专业班级 08电本二班题目名称简易四路抢答器课程名称单片机原理及应用二、指导教师评定目录摘要 .............. 错误!未定义书签。
一,设计任务与要求 .. 错误!未定义书签。
二,方案设计与论证 .. 错误!未定义书签。
三,硬件电路设计 .. 错误!未定义书签。
四,软件设计... 错误!未定义书签。
五,器件选型方案 .. 错误!未定义书签。
六,调试: ...... 错误!未定义书签。
七,结论与心得...... 错误!未定义书签。
八,参考文献... 错误!未定义书签。
单片机四路抢答器设计摘要抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。
但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低。
作为一个单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因此设计了本抢答器。
本设计是以四路抢答为基本理念。
考虑到依需设定限时回答的功能,利用AT49C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。
用开关做键盘输出,扬声器发生提示。
同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可在1-99s设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法。
基于51单片机智能抢答器的设计一、引言二、设计思路1.系统功能需求智能抢答器主要包括以下功能:(1)抢答功能:允许学生在教师提出问题后进行抢答;(2)提前设置答题时间:教师可以设置每次抢答的时间;(3)显示抢答结果:显示学生选手的抢答结果和答题情况;(4)记录抢答情况:记录学生的抢答情况,方便教师进行统计和评估。
2.系统硬件设计系统采用51单片机作为核心,通过按键、显示屏等外设实现系统的各项功能。
系统还需配备一套抢答设备,每位学生需要配备一个手持式抢答器,用于进行抢答操作。
3.系统软件设计系统需要设计相关的软件程序,包括抢答逻辑、结果显示、数据统计等功能。
需要考虑系统的稳定性和易用性,确保教师和学生可以轻松操作系统。
三、系统设计与实现1.抢答器的设计抢答器采用51单片机作为核心,通过按键输入学生答案,再通过无线通信将答题结果发送给主控系统。
抢答器还需配备显示屏,显示学生的抢答结果。
为了保证系统的安全性,还需设计防作弊功能。
2.主控系统的设计主控系统也采用51单片机作为核心,通过接收抢答器的信号,处理并显示抢答结果。
主控系统还需要设计相应的操作界面,方便教师进行设置和操作。
系统还需设计数据存储和统计功能,记录学生的抢答情况。
四、系统性能测试及改进1.系统性能测试完成系统的硬件和软件设计后,需要进行系统的性能测试,主要包括以下几个方面:(1)抢答功能测试:测试学生抢答器的响应速度和稳定性;(2)结果显示测试:测试主控系统的抢答结果显示效果;(3)数据统计测试:测试系统的数据统计和记录功能。
2.系统改进根据测试结果,对系统进行相应的改进和调整,确保系统能够稳定运行并满足实际教学需求。
需要特别关注系统的稳定性、易用性和安全性等方面的改进。
五、系统应用与展望1.系统应用智能抢答器可以广泛应用于教育教学领域,提高课堂互动和学生的参与度。
还可以应用于各类知识竞赛、学科竞赛等活动中。
2.系统展望智能抢答器作为新型的教学辅助工具,具有较大的市场前景。
课程设计(论文)题目名称多路数字抢答器设计课程名称单片机原理及其应用学生姓名学号系、专业指导教师2013年6月24日摘要近年来随着科技的飞速发展单片机的应用正在不断深入同时带动传统控制检测日新月异。
此次设计提出一种用AT89C51单片机作为核心控制元件与电阻、液晶显示屏、蜂鸣器等构成硬件操作再利用C语言编程来控制抢答器的功能实现。
本论文对抢答器的背景与现状、硬件设计、软件设计及其仿真都做了详细的介绍使我们不仅对抢答器的原理及设计有了深入的了解也对单片机的设计研发过程有了更加深刻的体会。
本次设计的系统主要采用单片机控制、采用手动抢答的方式。
有人抢答后,系统自动封锁其他选手的抢答按钮,使其不再抢答,从而实现抢答功能。
该系统还增加了抢答倒计时功能,可以调整。
通过自主的设计、编程和调试出一个简单的四路抢答并在液晶屏显示抢答成功者号码;熟悉C语言编程;了解单片机仿真系统的使用方法,达到提高综合运用相关知识的能力;进一步熟悉和掌握Proteus7的使用方法;掌握单片机系统设计全部过程的目的。
关键字:抢答单片机液晶屏显示目录第1章前言 (1)第2章方案设计 (2)第3章硬件电路的工作原理 (3)3.1抢答器的电路图 (3)3.2液晶屏显示电路 (3)3.3按键控制电路 (3)第4章软件设计 (5)4.1软件编程 (5)4.2系统调试和结果分析 (6)总结 (9)参考文献 (10)附录1 源程序 (11)第1章前言电子技术和微型计算机的迅速发展,促进微型计算机测量和控制技术的迅速发展和广泛应用,单片机(单片微型计算机)的应用已经渗透到国民经济的各个部门和领域,它起到了越来越重要的作用。
单片微型计算机就是将中央处理单元、存储器、定时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。
因此一块芯片就构成了一台计算机。
它已成为工业控制领域、智能仪器仪表、尖端武器、日常生活中最广泛使用的计算机。
抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。
四人抢答器模拟试验♦设计目的:1.培养综合利用MCS-51单片机的软硬件知识进行程序设计的能力,解决一些实际问题。
2.进一步加深对MCS-51单片机内部结构和程序设计方法的理解。
3.提高建立程序文档、归纳总结的能力。
♦总体描述:1.功能描述:(1)记时,按要求记时20S,若需要可进行累加记时。
(2)显示抢答人的号码和当时的时间;若抢答时间小于20S,并且回答不正确,可继续抢答。
(3)警告:若20S到时,红灯亮,并显示无人抢答2.设计方案描述:用三个LED数码管分别显示抢答人号码和时间;有人抢答后,时间及号码均显示,但不再进行加时;给一个脉冲后,说明刚才强答的回答不正确,可继续抢答和累加记时,若到达20S后,显示最后一个抢答人的号码。
无人答对时,显示无人抢答。
♦硬件系统设计:1.所需设备:2.接线方式:(1)P1.0-P1.3分别接到四个开关1、2、3、4上,来分别表示1、2、3、4个选手号。
(2)P1.7接到红灯上,当20S到时加以警告。
(3)P3.2接脉冲按钮,以控制开始记时及继续记时。
♦软件系统设计:否是是是程序清单及注释:org 0000hajmp mainorg 0003hajmp start ;跳转到中断子程序org 000bhajmp time ;跳转到计时程序org 0030hmain: mov tmod,#1mov th0,#0b1hmov tl0,#0e0hmov ie, #83hsetb tr0 ;置位mov r3,#0mov r4,#0mov 30h,#0mov 31h,#0mov 32h,#0 ;初始化所用的寄存器和存储器disp: mov sp,5fh ;显示时间和号码程序mov a,#03h ;mov dptr,#0ff20hmovx @dptr,aloop: mov r5,#1mov r0,#30hmov a,r5loop1: mov dptr,#0ff21hmovx @dptr,amov dptr,#0ff22hmov a,@r0add a,#0ehmovc a,@a+pcmovx @dptr,aacall dlay ;调用子程序inc r0 ;寄存器加1mov a,r5jb acc.2,ld ;判断rl a ;a寄存器左移mov r5,aajmp loop1 ;跳转ld: sjmp looptable: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0c8h ;数据列表dlay: mov r7,#02hdl1: mov r6,#0ffhdl2: djnz r6,dl2djnz r7,dl1rettime: mov th0,#0b1h ;计时程序mov tl0,#0e0hpush psw ;标志入栈push acc ;累加器入栈mov a,#0fhorl p1,amov a,p1anl a,#0fhcjne a,#0,go_oninc r3cjne r3,#25,back ;判断是否相等mov r3,#0inc r4mov a,r4mov b,#10div abmov 31h,amov 30h,bcjne r4,#20,back ;判断是否相等cpl p1.7mov 32h,#10clr tr0 ;清零sjmp backgo_on: clr tr0jnb acc.0,two ;判断mov 32h,#01hsjmp back ;跳转two: jnb acc.1,threemov 32h,#02hsjmp backthree: jnb acc.2,fourmov 32h,#03hsjmp backfour: mov 32h,#04hback: pop accpop pswretistart: setb tr0retiend♦调试:♦自评分和收获体会:通过本次试验,是我更深一步的学习了单片机,加深了对单片机的结构的认识,增强了对单片机软硬件知识及汇编语言的应用能力,收获很大。
基于51单片机的抢答器设计设计一个基于51单片机的抢答器,可以用于教育培训、竞赛等场合。
抢答器由主控制器、抢答器模块和显示器等组成,可以实现多人同时抢答、自动计分和答题结果显示等功能。
1.系统结构设计:系统由主控制器、抢答器模块和显示器组成。
主控制器使用51单片机,通过IO口与抢答器模块和显示器进行通信。
抢答器模块包括按钮、指示灯和计分器等,用于获得用户的抢答信号和显示计分信息。
显示器用于显示抢答排名、答题结果以及题目等信息。
2.功能设计:-多人抢答功能:主控制器通过轮询方式检测抢答器模块的按钮状态,记录首先按下按钮的参与者信息,并显示其抢答排名。
-自动计分功能:主控制器根据参与者的抢答顺序和答题正确与否,自动计算得分。
得分可以通过显示器进行实时显示。
-答题结果显示功能:在抢答结束后,主控制器将抢答排名、得分和题目等信息发送给显示器,显示器将其显示。
3.系统硬件设计:主控制器部分由51单片机、外围电路和通信接口组成。
外围电路包括时钟电路、复位电路和按键矩阵扫描电路。
通信接口与抢答器模块和显示器相连,通过IO口进行通信。
抢答器模块由按钮和指示灯组成,用于用户抢答和显示抢答状态。
计分功能可以通过数字显示器实现。
显示器部分包括LCD显示屏和控制电路,用于显示抢答排名、答题结果和题目等信息。
4.系统软件设计:主控制器的软件设计主要包括抢答状态检测、计分规则实现和与外围设备的通信。
-抢答状态检测:通过轮询方式检测抢答器模块的按钮状态,记录首先按下按钮的参与者信息,并显示其抢答排名。
-计分规则实现:根据参与者的抢答顺序和答题正确与否,自动计算得分并更新显示器上的得分信息。
-与外围设备通信:与抢答器模块和显示器进行通信,发送抢答排名、得分和题目等信息。
5.系统优化:为提高系统的稳定性和可靠性-设计合理的接口电路,提高抗干扰能力。
-采用合适的检测算法,提高抢答状态检测的准确性。
-优化算法,提高计分规则的实时性和正确性。
工程大学机电学院课程设计说明书课程设计名称:单片机原理及应用课程设计题目:基于单片机的四路抢答器的设计指导教师:王国义专业班级:电气2124 班学生姓名:武云学号:312107040432起止日期:2014/7/7—7/18总评成绩:课程设计任务书设计目的:设计一个基于单片机的四路抢答器包含计时和锁存功能设计要求:(1)抢答器同时供4名选手或4个代表队比赛,分别用4个按钮① ~ ④表示。
(2)设置一个系统清除S1和抢答控制开关S2,该开关由主持人控制。
(3)抢答器具有锁存与显示功能。
即选手按动按钮,锁存相应的编号,并在1602液晶屏上显示,同时蜂鸣器发出报警声响提示。
选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
(4)抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如10秒)。
当主持人启动"开始"键后,定时器进行减计时。
(5)如果定时时间已到,无人抢答,本次抢答无效,系统禁止抢答,定时显示器上显示01s。
指导教师(签名):年月日前言电子技术和微型计算机的迅速发展,促进了微型计算机测量和控制技术的迅速发展和广泛应用,单片机的应用已经渗透到国民经济的各个部门和领域,它起到了越来越重要的作用。
它已成为工业控制领域、智能仪器仪表、尖端武器、日常生活中最广泛使用的计算机,抢答器就是常见的单片机。
随着我国经济和文化事业的发展,在很多公开竞争场合要求有公正的竞争裁决,诸如证券、股票交易及各种智力竞赛等,因此出现了抢答器。
抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。
因此我们设计了以单片机为核心的新型智能的抢答器,在保留了原始抢答器的基本功能的同时又增加一系列的实用功能。
并简化其电路结构。
控制系统的三个模块为:显示模块、存储模块、抢答开关模块。
该系统通过开关电路四个按键输入抢答信号,利用1602液晶屏来完成显示功能,用按键来让选手进行抢答,在液晶屏上显示抢答最快的及时间,从而实现整个抢答过程。
课程设计(论文)课程设计名称单片机原理及其在电气和测控学科中的应用题目名称基于单片机的四路抢答器设计系别专业电气工程系、姓名学号指导教师2011年6月21日课程设计(论文)任务书注:1.此表由指导教师填写,经系、教研室审批,指导教师、学生签字后生效;2.此表1式3份,学生、指导教师、教研室各1份。
指导教师(签名):学生(签名):目录........摘要 (1)第一章抢答器总体设计 (2)1.1 设计任务与要求 (2)1.2 方案设计与论证 (2)第二章单片机应用系统简介 (3)2.1 单片机结构 (3)2.2 单片机的封装形式,引脚定义及功能 (3)第三章硬件电路设计 (4)3.1 抢答器的电路图 (5)3.2 单元电路设计 (5)3.3 复位电路设计 (6)3.4 报警电路设计 (6)3.5 显示电路 (7)第四章软件设计 (7)4.1 系统主程序设计 (8)4.2 主程序清单 (9)第五章调试及性能分析 (23)第六章设计总结及心得 (24)附录:参考文献摘要随着现代娱乐节目及其它游戏环节的需要,也为了完善节目的紧张气氛和观众的互动,就出现了多路抢答器。
它是人们常用于各种需要抢答比赛时用的电路器材,是一名公正的裁判员。
抢答器的出现给人们带来极大的方便,他能准确无误的从若干名参赛中确定出最先抢答者,并且有显示,声效等功能。
DigestWith modern entertainment programs and other game loop, also need in order to improve the program of tension and the audience interaction, appeared more road vies to answer first device. It is often used in all kinds of people in the game to vies to answer first circuit equipment, is a fair judge. The emergence of the vies to answer first people brings great convenience, he can accurate from several of participating in the first vies to answer first determine the, and have a show, sound effects, and other functions.第一章 抢答器的总体设计1.1设计任务与要求要求实现功能:将其中3个按键定义为1—4号,第一位数码管用于计时,第二位数码管用于显示当前抢答着。
西安文理学院物理与机械电子工程学院专业课程设计陈述专业班级测控技巧与仪器课程51单片机技巧与设计题目基于51单片机的抢答器设计学号学生姓名指点教师2014年 5月基于51单片机的八位抢答器设计摘要跟着电子技巧的飞速成长,基于单片机的控制体系已应用于工业.农业.电力.电子.智能楼宇等行业,微型盘算机作为嵌入式控制体系的主体与焦点,代替了传统的控制体系的通例电子线路.抢答器作为一种对象,已普遍应用于各类智力和常识比赛场合.但抢答器的应用频率较低,且有的要么制造庞杂,要么靠得住性低.作为一个单位,假如专门购一台抢答器固然在经济上可以推却,但每年应用的次数少少,往往因长期存放使(电子器件的)抢答器破坏,再购买的麻烦和实时性就会影响运动的开展,是以设计了本抢答器.本设计是以八路抢答为根本理念.斟酌到依需设定限时答复的功效,应用AT89C51单片机及外围接话柄现的抢答体系,应用单片机的准时器/计数器准时和记数的道理,将软.硬件有机地联合起来,使得体系可以或许准确地进行计时.同时使液晶显示屏可以或许准确地显示时光,并且给出指令的提醒,扬声器产生提醒.体系可以或许实现:在抢答中,只有开端后抢答才有用,假如在开端抢答前抢答为无效;抢答限准时光和答复问题的时光可在1-99s设定;可以显示是哪位选手有用抢答和无效抢答,准确按键后有声音的提醒;抢答时光和答复问题时光倒记时显示,满时后体系计时有声音提醒;抢答倒计不时光和答复问题时光均可经由过程硬件的按键调剂.症结词:AT89C51;单片机;液晶显示屏;抢答器;智能目次1 引言12 设计义务与请求概述12.1 标题12.2 设计义务12.3 设计请求12.4 设计目标13 计划总体设计23.1 计划23.1.1 控制芯片23.1.2 显示方法23.1.3 程序说话的选择23.2 道理框图34 硬件电路设计34.1 抢答器的工作道理34.2 单元电路设计34.2.2 发声电路设计44.2.3 开端.复位按键输入电路的设计44.2.5 设准时光.加减时光电路设计44.2.6 显示电路的设计55 软件设计65.1 抢答器工作流程65.2 流程框图66 电路仿真调试76.1 上电预备状况76.2 开端抢答76.3 不法抢答86.4 正常抢答87 试验仪器及元器件清单98 设计总结99 申谢910 参考文献10附录一体系电路图11附录二程序清单111 引言今朝各类各样的比赛越来越多,无论是黉舍.工场.部队照样益智性电视节目,个顶用到抢答器的概率异常大.今朝很多抢答器根本上采取小范围数字集成电路设计,应用起来不敷幻想.是以设计一款更易于应用和区分度高的抢答器成了异常急切的义务.如今单片机已进入各个范畴,以其功耗小.智能化而著称.所以若应用单片机来设计抢答器,便使以上问题得以解决.针对以上情形,本课程设计出以AT89C51单片机为焦点的八路抢答器.它能依据不合的抢答输入旌旗灯号,经由单片机的控制处理并产生不合的与输入旌旗灯号相对应的输出旌旗灯号,最后经由过程液晶显示屏显示响应的路数和答题时光以及各项敕令等,使比赛真正达到公平.公开.公平.2 设计义务与请求概述2.1 标题8路比赛抢答器2.2 设计义务应用8051单片机中止体系,制造一个有8个按键的比赛抢答器,可供8名选手比赛的抢答,每组设置一个抢答按钮,按钮的编号与选手的编号对应,主持人设置控制开关,用来控制体系的清零和抢答的开端,在有人按键时进行对应选手显示.2.3 设计请求1 完成体系的硬件电路设计与软件设计;2 采取汇编或C说话编程;3 采取Proteus.KeilC等软件实现体系的仿真调试;4 论文请求思绪清楚,构造合理,说话流利,书写格局相符请求.2.4 设计目标1 分解应用相干课程中所学的理论常识去完成这一设计课题.2 经由过程查阅手册和相干文献材料,造就本身自力剖析息争决问题的才能.3 进一步熟习单片机和经常应用接口电路,加深对专业常识和理论常识进修的熟习和懂得.4 学会电路的设计与程序的调试.5 学会撰写课程设计论文.6 造就严正卖力的工作风格和严谨的科学立场.3 计划总体设计3.1 计划3.1.1 控制芯片我们采取51系列单片机AT89C51作为控制焦点,该体系可以完成运算控制.旌旗灯号辨认以及显示功效的实现.单片机技巧比较成熟,应用起来便利.简略并且单片机四周的帮助电路也比较少,便于控制和实现.全部体系具有极其灵巧的可编程性,能便利地对体系进行功效的扩大和更改.MCS-51单片机特色如下:a.靠得住性好:单片机按照工业控制请求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,很多旌旗灯号通道都在统一芯片,是以靠得住性高,易扩充.b.单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各类范围的微电脑体系.c.控制功效强:单片机指令除了输入输出指令,逻辑断定指令外还有更丰硕的前提分支跳跃指令.3.1.2 显示方法在实现根本功效时,我们采取了四位数码管显示,后两位显示倒计不时光,第一位显示抢答组号,第三地位空,在此基本上还在程序里加了更改抢答时光和倒计不时光的模块,也可经由过程数码管显示,成为一个比较完全的体系.后来在实现拓展功效时,我们想参加语音显示的模块,发明proteus软件无法仿真,就改为用液晶显示屏1602显示.1602液晶显示屏也叫1602字符型液晶,它是一种专门用来显示字母.数字.符号等的点阵型液晶模块1602液晶模块内部的字符产生计储器(CGROM)已经存储了160个不合的点阵字符图形,这些字符有:阿拉伯数字.英文字母的大小写.经常应用的符号.和日文化名等,每一个字符都有一个固定的代码,它可以经由过程简短的英文提醒和数字使人明白看到比赛进行的全部进程.3.1.3 程序说话的选择一开端实现根本功效时,应用数码管作为显示,采取了汇编说话,比较高效,层次也清楚;后来做拓展功效时改用液晶显示屏显示,发明液晶显示屏应用c说话编程更便捷高效,就整体应用了c说话.3.2 道理框图抢答按扭优先编码器锁存器译码电路译码显示主持人按钮开关控制电路报警电路秒脉冲产生电路准时电路译码电路显示电路图3.1 道理框图4 硬件电路设计4.1 抢答器的工作道理用单片机的两个外部中止作为修正时光的选择按钮,选择修正抢答倒计不时光照样答复问题时光;用准时器1作为时光的控制.4.2 单元电路设计4该电路有八个按钮分离接于可实现两个功效:一是分辩出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是制止其他选手按键操纵无效.若有再次抢答需由主持人将S开关从新置,“消除”然后再进行下一次抢答.如图抢答器电路4.2.2 发声电路设计用P3.6口和扬声器相连,主持人将控制开关拨到"开端"地位时,会发声,抢答电路和准时电路进人正常抢答工作状况;当参赛选手按动抢答键时,扬声器发声,抢答电路和准时电路停滞工作.如图4.2.3 开端.复位按键输入电路的设计复位是盘算机的一个重要工作状况.开端和复位键分离接于P3.0和P3.1口,在单片机工作时,接电之前,断电后也要复位.在抢答器中复位则为准时做铺垫,在抢答之前要复位,抢答完也要复位.按了复位键,显示屏的状况是“start……”.如图发声电路图4.3 开端.复位电路CPU的操纵须要准确的准时,可用一个晶体振荡器产生稳固的时钟脉冲来控制AT89C51单片机上的XTAL1和XTAL2分离为振荡电路的输入和输出.如图4.2.5 设准时光.加减时光电路设计该电路主如果对答题时光和抢答时光调剂设计的,抢答时光接P3.2,答题时光接,加一秒接,减一秒接.如图图4.4时钟振荡电路图4.5 加减时光电路4.2.6 显示电路的设计本体系经由过程液晶显示屏来显示各提醒信息.如图图4.6 显示时光电路5 软件设计5.1 抢答器工作流程为了可以或许达到抢答的公平.公平.合理,应当在主持人宣告抢答敕令之前必须先设定抢答的时光,因而在编开端抢答前的程序得先编写设准时光的程序,当时光设好了之后,主持人宣告抢答敕令按下按键,程序开端打开准时中止开端倒计时,然后挪用键盘扫描子程序,编写键盘扫描程序.当在扫描到有人按下了答题键,立时封闭T0.挪用显示程序.封锁键盘.接通电源后,液晶显示屏显示“Ready……”,抢答器处于制止状况,处于等待开端状况,此时有人抢答,会显示“error”,也可以调剂抢答时光和答复问题时光,;主持人将开关置,“开端”状况,宣告“开端”抢答器工作,显示屏显示“go!”,扬声器给出声响提醒,准时器倒计时;选手在准不时光内抢答时,抢答器完成,显示组号,并且倒计时,时光到扬声器提醒.当一轮抢答之后,准时器停滞.制止二次抢答.准时器显示残剩时光.假如再次抢答必须由主持人再次操纵"开端.停滞"状况开关.5.2 流程框图图5.1 流程框图6 电路仿真调试6.1 上电预备状况图6.1 上电预备状况6.2 开端抢答图6.2 开端抢答6.3 不法抢答图6.3 不法抢答6.4 正常抢答图6.4 正常抢答7 试验仪器及元器件清单表7-1 试验仪器及元器件清单8 设计总结经由过程此次课程设计,我更进一步地熟习了抢答器的工作道理,控制了它的调剂及测试办法.本体系经由过程采取AT89C51单片机作为焦点,以八个按键输入抢答旌旗灯号,以液晶显示屏显示,依据烧录到单片机中的程序控制全部体系的工作流程,整体性好,效力高,实现了抢答器的智能化.在这进程之中也碰到了一些问题,比方对汇编说话懂得还不敷,将其转化为C说话时在时序上消失一些问题,还有C说话基本也须要增强,编程才能有待进步.9申谢经由过程此次的课程设计,让我更进一步的巩固了单片机的各类常识.但在设计的进程中,碰到了很多的问题,有一些常识已经不太清楚了,但是经由过程一些材料又从新的翻阅并且卖力的温习了相干教科书中的内容.此次的课程设计建立了对本身工作才能的信念,信任会对往后的进修工作生涯都有异常重要的影响,并且大大的进步了着手才能,使我充分的领会到了创造进程中的摸索的艰苦和成功的喜悦.固然此次做出的作品还消失很多须要改良的地方,但是在全部设计进程中所进修到的器械是此次实训所得到的最大收成跟财宝,使我毕生受益.最后,我要感激指点先生先生和杨浩辉同窗在我将体系的汇编说话改为C说话时对我忘我的帮忙.10 参考文献【2】(美)Bruce Eckel 著陈昊鹏译《JAVA编程思惟》(第四版),机械工业出版社,北京,2007.6(2013.11重印)附录一体系电路图图附录体系电路图附录二程序清单#include<reg51.h> //包含单片机的头文件#include<intrins.h> //包含_nop_()函数界说的头文件sbit RS=P2^0; //存放器选择位,将RS位界说为引脚sbit RW=P2^1; //读写选择位,将RW位界说为引脚sbit E=P2^2;sbit ring=P3^6;sbit start=P3^0;sbit ok=P3^1;sbit add=P3^4;sbit sub=P3^5;sbit D0=P1^0;sbit D1=P1^1;sbit D2=P1^2;sbit D3=P1^3;sbit D4=P1^4;sbit D5=P1^5;sbit D6=P1^6;sbit D7=P1^7;unsigned char num=0;unsigned char a=30,b=60,n=0,qd,hd,d;void display();void delay1ms(){unsigned char i,j;for(i=0;i<10;i++)for(j=0;j<33;j++);}void delay(unsigned char n){unsigned char i;for(i=0;i<n;i++)delay1ms();}void nopp(unsigned char n){unsigned char i;for(i=0;i<n;i++)_nop_();}bit lcd_bz(){bit result;RS=0; //依据划定,RS为低电平,RW为高电日常平凡,可以读状况RW=1;E=1; //E=1,才许可读写nopp(4); //空操纵四个机械周期,给硬件反响时光result=(bit)(P0&0x80); //将劳碌标记电平赋给resultE=0;return result;}void WriteInstruction (unsigned char dictate){while(lcd_bz()==1); //假如忙就等待RS=0; //依据划定,RS和R/W同时为低电日常平凡,可以写入指令 RW=0;E=1; //E置低电平nopp(2); //空操纵两个机械周期,给硬件反响时光P0=dictate; //将数据送入P0口,即写入指令或地址nopp(4); //空操纵四个机械周期,给硬件反响时光E=1; //E置高电平(正跳变)nopp(4);//空操纵四个机械周期,给硬件反响时光E=0; //当E由高电平跳变成低电日常平凡,液晶模块开端履行敕令 }void WriteData(unsigned char y){while(lcd_bz()==1);RS=1; //RS为高电平,RW为低电日常平凡,可以写入数据RW=0;E=1; //E置低电平P0=y; //将数据送入P0口,即将数据写入液晶模块nopp(4);//空操纵四个机械周期,给硬件反响时光E=1; //E置高电平(正跳变)nopp(4);//空操纵四个机械周期,给硬件反响时光E=0; //当E由高电平跳变成低电日常平凡,液晶模块开端履行敕令 }void LcdInitiate(void){delay(15); //延时15ms,初次写指令时应给LCD一段较长的反响时光 WriteInstruction(0x30); //显示模式设置:8位数据,16×2显示,5×7点阵, delay(5); //延时5msWriteInstruction(0x38);delay(5);WriteInstruction(0x0c); //显示模式设置:显示开,有光标,光标闪耀delay(5);WriteInstruction(0x06); //显示模式设置:光标右移,字符不移delay(5);WriteInstruction(0x01); //清屏幕指令,将以前的显示内容消除delay(5);}void Display(unsigned char string[]){unsigned char i;i = 0;while(string[i] != '\0'){ // 显示字符WriteData(string[i]);i++;}}/*void bark(){ring=1;delay(10);ring=0;} */void answer(){ring=1;delay(500);ring=0;WriteInstruction(0x01);delay(1);Display(" go! ");TR1=1 ;qd=1;d=a;while(1){//TR0=1;if(!D0){n=1;break;}if(!D1){n=2;break;}if(!D2){n=3;break; }if(!D3){n=4;break; }if(!D4){n=5;break; }if(!D5){n=6;break; }if(!D6){n=7;break; }if(!D7){n=8;break;}}WriteInstruction(0x01);switch(n){case 1:Display(" number:1 ");hd=1;break;case 2:Display(" number:2 ");hd=1;break;case 3:Display(" number:3 ");hd=1;break;case 4:Display(" number:4 ");hd=1;break;case 5:Display(" number:5 ");hd=1;break;case 6:Display(" number:6 ");hd=1;break;case 7:Display(" number:7 ");hd=1;break;case 8:Display(" number:8 ");hd=1;break;}n=0;//WriteInstruction(0x01);delay(5000);d=b;while(d+1) ;}void display(){unsigned char tm[3]={0x20,0,0};unsigned char a1,b1;a1=d/10;tm[1]=a1+0x30;b1=d%10;tm[2]=b1+0x30;WriteInstruction(0x01);delay(1);Display(tm);}void main(void) //主函数{TMOD=0X11; //选择准时器方法1TH0=0X00; //给准时器赋处置TL0=0XFF;TH1=0X3C;TL1=0XB0;EA=1;ET1=1;//开总中止EX0=1;ET0=1;EX1=1;TR1=1;LcdInitiate(); //挪用LCD初始化函数 Display("ready......");while(1){if(start){if(!(D0&D1&D2&D3&D4&D5&D6&D7)){WriteInstruction(0x01);delay(1);Display(" error ");ring=1;delay(500);delay(500);WriteInstruction(0x01);}}elseanswer();}}void Int0() interrupt 0 //中止办事程序{WriteInstruction(0x01);Display(" setting qd_tm");delay(1000);WriteInstruction(0x01);d=a;display();while(1){if(!add){ a++;d=a;display();delay(500);}else if(!sub){ a--;d=a;display();delay(500);}if(!ok)break;}}void T0_timer() interrupt 1 //中止办事程序{TH0=0X00;TL0=0XFF;ring=0;}void Int1() interrupt 2 //中止办事程序{WriteInstruction(0x01);delay(1);Display(" setting hd_tm");delay(1000);WriteInstruction(0x01);display();while(1){if(!add){ b++;d=b;display();delay(500);}else if(!sub){ b--;d=b;display();delay(500);}if(!ok)break;}}void T1_timer() interrupt 3 //中止办事程序{TH1=0X3C; //重装初值TL1=0XB0;num++;if(num==20){num=0;display();d--;}if(d==0){ TR1=0 ;ring=1;delay(500);ring=0; }}。
单片机实现四路抢答器调试的方法一、绪论单片机实现四路抢答器是一种常见的电子应用技术,广泛应用于各种竞赛、考试、培训等场合。
其基本功能是通过按钮或其他触发方式,实现对不同参赛者的答题速度和准确性的记录。
为了确保四路抢答器的正常运行和准确性,需要对其进行充分的调试。
本文将介绍单片机实现四路抢答器调试的方法及步骤,以帮助工程师或爱好者顺利完成调试工作。
二、单片机实现四路抢答器的基本原理单片机实现四路抢答器一般采用微处理器或微控制器作为控制核心,利用其强大的处理能力和丰富的外设接口,通过设置中断、定时器/计数器等功能,实现对四路抢答器的控制和监测。
四路抢答器的基本组成部分包括按钮输入模块、数字显示模块、音频提示模块等。
在调试过程中,需要依次测试和验证这些模块的功能,保证其正常工作。
三、单片机实现四路抢答器调试的方法1. 硬件连接调试首先需要进行硬件连接调试,确保四路抢答器的各模块连接正确、接触良好。
包括检查按钮与单片机的连接、数字显示模块与单片机的连接、音频提示模块与单片机的连接等。
同时检查电源线的接触情况,保证各部件能够正常供电。
2. 功能测试在硬件连接调试完成后,需要对各个功能模块进行测试。
包括测试按钮输入模块的响应速度和稳定性,测试数字显示模块的显示效果和准确性,测试音频提示模块的声音播放效果等。
通过这些功能测试,可以确保各模块的功能正常,能够满足四路抢答器的使用要求。
3. 系统集成测试在单个模块的功能测试完成后,需要进行系统集成测试,测试四路抢答器整体的运行情况。
包括测试四路抢答器对多路信号的处理能力、测试按键的抢答效果、测试多个抢答信号的协调工作等。
通过系统集成测试,可以发现各个模块之间的交互问题,及时进行调整和优化。
4. 软件程序调试需要进行软件程序调试。
针对单片机的程序代码进行单步调试,检查各个功能的实现情况和逻辑正确性,确保程序能够按预期运行。
需要对程序中可能出现的错误和异常情况进行充分测试,保证四路抢答器的稳定性和可靠性。
基于MCS-51单片机的四路抢答器 基于MCS-51单片机的四路抢答器
抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决器电路,广泛应用于各种知识竞赛、文娱活动等场合。能够实现抢答器功能的方式有多种,可以采用前期的模拟电路、数字电路或模拟与数字电路相结合的方式,但这种方式制作过程复杂,而且准确性与可靠性不高,成品面积大,安装、维护困难。本节介绍一种利用8051单片机作为核心部件进行逻辑控制及信号产生的四路抢答器。 硬件设计 硬件电路应能完成以下功能:参加竞赛者对主持人提出的问题要在最短的时间内作出判断,并按下抢答按键回答问题。当第一个人按下按键后,则在显示器上显示此竞赛者的号码并进行声音提示,同时电路将其他抢答按键封锁,使其不起作用。若有人在可以抢答之前按键,应该有违规提示。电路应该具有倒计时功能,倒计时时间可以设置并显示,在规定时间内没有人抢答则本题作废。回答完或超时后,由主持人将所有按键恢复,重新开始下一轮。 完成上述功能的电路包括时间设定开关、声光显示、按键控制以及按键锁存等部分,如图所示。 各电路模块的功能如下。 · 单片机部分:通过读取P3.7~P3.3的状态决定倒计时时间;通过读取P1.3~P1.0的状态读取按键情况;通过P2.4~P2.2控制显示模块以显示按键者的号码和倒计时所剩时间;通过P0.1控制蜂鸣器。 · 时间设定模块:以拨码开关U3作为倒计时时间的选择信号。若P3.7通过U3接地,倒计时时间为10s;若P3.6通过U3接地,倒计时时间为8s,若P3.5通过U3接地,倒计时时间为6s,若P3.4通过U3接地,倒计时时间为4s。判断时P3.7优先级最高,P3.4优先级最低。 · 按键模块:KEY1~KEY4的信息可以直接传输到P1.3~P1.0。单片机一旦检测到有按键按下,立即将P1.4置为低电平,将按键信息锁存,以免后来的按键对其产生影响。KEY1~KEY4为抢答按键,KEY5为主持人控制按键。 · 数码管显示模块:数码管显示模块由一片MAX7219和3个数码管组成。其中U5用来显示按键者的编号,U6、U7在倒计时时显示还有多长时间,如果有人犯规抢答,U6~U7显示“FF”。 · 蜂鸣器模块:蜂鸣器在主持人发出可以抢答信号、有人按下抢答按键和倒计时时间到等3种情况下发出蜂鸣声。
程序设计 抢答器工作过程如下。 · 首先主持人选定倒计时时间,单片机扫描U3以获取此信息。如果没有人为设置,默认为10s。 · 在按下抢答按键之前,3个数码管全部显示“0”。 · 按下抢答按键之后,蜂鸣器响一声,单片机开始倒计时,数码管U6和U7显示倒计时时间,数码管U5显示“0”。 · 如果有竞赛者率先在规定时间内按键,则蜂鸣器响一声,数码管U5显示该竞赛者的编号,U6和U7停止更新。 · 如果在主持人未按下抢答按键的时候有选手抢答,则此时蜂鸣器响一声,U5显示犯规者的编号,U6和U7显示“FF”以指示有人犯规。 · 如果在规定时间内无人按键,则U5显示“0”,U6和U7显示“EE”以指示无人按键。 · 无论是在规定时间内有人按键、在规定时间内无人按键或者是有人犯规,都需要主持人再按一下抢答按键,之后单片机根据U3状态决定倒计时时间,3个数码管全部显示“0”,恢复到初始状态,准备下一轮抢答。 程序流程如图所示。
图 四路抢答器程序流程图 程序如例1所示。 【例1】用8051单片机控制的四路抢答器程序。限于篇幅,这里没有给出显示程序,参见节中例 #include typedef unsigned char uchar; sbit LE=P1^4; sbit KEY5=P3^7; sbit DIN=P2^4; //定义P2.5控制MAX7219的串行数据输入端 sbit LOAD=P2^3; //定义P2.4控制MAX7219的载入使能端 sbit CLK=P2^2; //定义P2.3控制MAX7219的时钟信号 sbit BUZ=P0^1; #define TIMER_HBYTE -50000/256 //定时50ms #define TIMER_LBYTE -50000%256 uchar intr_counter; //设定的时间用需要产生的中断次数表示 uchar bdata byte; //在bdata区定义一个变量,便于位操作 sbit byte_7=byte^7; bit foul_flg; //是否有人犯规标志 bit time_over_flg; //是否倒计时超时标志 bit key_flg; //是否有人在规定时间内按键标志 void max7219_reset(void); //初始化MAX7219 void write_reg(uchar,uchar); //向控制寄存器写数据 void write_digit(uchar,uchar); //向字型寄存器写数据 void send_data(uchar); //底层的硬件驱动 uchar set_time(void); //函数功能:设置倒计时时间 bit control_key(void); //函数功能:检测主持人是否按键 uchar get_key_num(void); //函数功能:检测哪个参赛者按键 void display_time(void); //函数功能:显示倒计时剩余时间 void foul_handle(uchar); //函数功能:犯规处理 void key_handle(uchar); //函数功能:按键处理 void time_over_handle(void); //函数功能:超时处理 void init_t0(void); //函数功能:初始化T0定时器 void delay_20ms(void); //函数功能:延时20ms,按键去抖动 void buz_on(void) //函数功能:蜂鸣器响500ms void main(void) { uchar key_number; max7219_reset(); //初始化MAX7219 while(1) { foul_flg=0; //设置初始环境 time_over_flg=0; TR0=0; //禁止T0运行 write_digit(DIGIT0,LED_code[0x0]);//上电后3个数码管全部显示0 write_digit(DIGIT1,LED_code[0x0]); write_digit(DIGIT2,LED_code[0x0]); while((control_key()==1)&&(foul_flg==0)) //如果主持人没有按键 { key_number=getkey_num(); //检查是否有人犯规 if(key_number==0) //如果没有,进行下一次循环 continue; else //如果有人犯规 { foul_handle(); //犯规处理 foul_flg=1; //设置犯规标志 } } if(foul_flg==1) //如果有人犯规 { while(control_key()==1); //等待主持人按键以进入下一轮 continue; //主持人按键后进入下一轮 } else //如果没有人犯规,必定是主持人允许答题 { intr_counter=set_time(); //读取倒计时时间 init_t0(); //定时器T0开始计时 buz_on(); //蜂鸣器响500ms while(time_over_flg==0&&key_flg==0) { key_number=getkey_num(); //在规定时间内检查是否有按键 if(key_number!=0) //如果有 { key_handle(key_number);//按键处理 key_flg=1; //设置有人按键答题标志 TR0=0; //停止T0运行 } else //否则循环检测 { display_time(); //并显示剩余时间 continue; } } if(key_flg==1) //如果有人在规定时间内答题 { while(control_key==1); //等待主持人按键以进入下一轮 continue; //主持人按键后进入下一轮 } else //倒计时时间到仍无人按键 { time_over_handle(); //超时处理 while(control_key==1); //等待主持人按键以进入下一轮 continue; //主持人按键后进入下一轮 } } } } bit control_key(void) //检测主持人是否按键 { if(KEY5==1) //如果KEY5为高,说明没有按键 return 1; //返回1,表示没有按键动作 else //如果KEY5为低,说明可能有按键动作 delay_20ms(); //延时20ms,去抖动 if(KEY5==1) //如果20ms后KEY5变为高电平,是干扰 return 1; //返回1 else //如果20ms后仍为低电平,确认有按键动作 return 0; //返回0 } uchar set_time(void) //根据设置决定倒计时时间 { uchar intr_counter; if(P3^6==0) intr_counter=200; //10s else if(P3^5==0) intr_counter=160; //8s else if (P3^4==0) intr_counter=120; //6s else if (P3^3==0) intr_counter=80; //4s else intr_counter=200; //如果没有设置,默认为10s return intr_counter; } uchar get_key_num() //检测哪个参赛者按键 { uchar key_state=0; key_state=P1; key_state&=0x0f; //读取P1端口的低4位 if(key_state==0x0f) //若均为高电平,说明无人按键 return 0; //返回1 else { key_state^=0xff; if(key_state&0x01) return 1; //如果KEY1被按下,返回1 else if(key_state&0x02) return 2; //如果KEY2被按下,返回2 else if(key_state&0x04) return 3; //如果KEY3被按下,返回3 else return 4; //如果KEY4被按下,返回4 }