基于单片机的多路抢答器设计_第1页
基于单片机的多路抢答器设计_第2页
基于单片机的多路抢答器设计_第3页
基于单片机的多路抢答器设计_第4页
基于单片机的多路抢答器设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计(论文)题目名称基于单片机的多路抢答器设计课程名称单片机原理及在电气测控学科中的应用学生姓名莫贤超学号1141203035系专业电气工程系、11级测控指导教师王跃球2013年6月14日邵阳学院课程设计(论文)任务书年级专业11测控学生姓名莫贤超学号1141203035题目名称基于单片机的多路抢答器设计设计时间2013年6月3日—2013年6月14日课程名称单片机原理及在电气测控学科中的应用课程编号121200105设计地点数字控制与PLC实验室\创新实验室(214)(305)课程设计(论文)目的课程设计是在校学生素质教育的重要环节,是理论与实践相结合的桥梁和纽带。单片机课程设计,要求学生更多的完成软硬结合的动手实践方案,解决目前学生课程设计过程中普遍存在的缺乏动手能力的现象。《单片机课程设计》是继《电子技术》、和《单片机原理与应用》课程之后开出的实践环节课程,其目的和任务是训练学生综合运用已学课程“电子技术基础”、“单片机原理及应用”的基本知识,独立进行单片机应用技术和开发工作,掌握单片机程序设计、调试和应用电路设计、分析及调试检测。已知技术参数和条件1、89C51系列单片机;2、KEIL软件;Wave软件;3、任务和要求1、设计一款6路或以上的抢答器;2、设计一个抢答控制开关(开始抢答后才允许答题者抢答),供主持人用;3、设定抢答时间限制,超过时间后,该题作废;4、要求设计出电气原理图;设计出程序流程图;设计出程序。注:1.此表由指导教师填写,经系、教研室审批,指导教师、学生签字后生效;2.此表1式3份,学生、指导教师、教研室各1份。四、参考资料和现有基础条件(包括实验室、主要仪器设备等)1、单片机课程设计指导,中南大学出版社,张一斌等2009年9月2、单片机实验与实践教程,北京航空航天大学出版社,何立民等2004年7月4、数字控制与PLC实验室”五、进度安排2013年6月3日-4日:收集和课程设计有关的资料,熟悉课题任务和要求总体方案设计2013年6月5日-6日:硬件电路设计2013年6月7日-9日:软件设计2013年6月10日-12日:系统调试改进2013年6月13日:整理书写设计说明书2013年6月14日:答辩并考核六、教研室审批意见教研室主任(签名):年月日七|、主管教学主任意见主管主任(签名):年月日八、备注指导教师(签字):学生(签字):邵阳学院课程设计(论文)评阅表学生姓名莫贤超学号1141203035系电气工程系专业班级11测控题目名称基于单片机的多路抢答器课程设计课程名称单片机原理及在电气测控学科中的应用一、学生自我总结这是大学第一次做课程设计,刚开始拿到课程计划的时候觉得它很简单,应该很容易就会做出来。但是动手做了之后我才知道困难,完全不知道该怎么下手做。心里一下子就没底了,跟着也焦急了起来。后来,找到了小组成员在一起商量,一起找资料。网上的,图书馆的,书本的……。最后,在大家的努力和指导老师的耐心指导下,终于完成了。尽管这样,也花费了几天的时间。经历了这次实验,我懂得了团队合作的重要性,也认识到了做任何事都不能有轻视的心理。课程设计完成时,那感觉是甜蜜的,没有耕耘,哪来得收获的喜悦,不懂付出怎么能知道回报的快乐,一分耕耘一分收获,有付出才会有回报,就在这样的痛与快乐的交换中,我学到了知识,学到了做人的道理。学生签名:年月日二、指导教师评定评分项目平时成绩论文答辩综合成绩权重304030单项成绩指导教师评语:指导教师(签名):年月日注:1、本表是学生课程设计(论文)成绩评定的依据,装订在设计说明书(或论文)的“任务书”页后面;2、表中的“评分项目”及“权重”根据各系的考核细则和评分标准确定。摘要此次设计使用AT89C51单片机为核心控制元件,设计一个简易的抢答器,与数码管、报警器等构成八路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时/中断电路等。设计的抢答器具有实时显示抢答选手的号码和抢答时间的特点,而复位电路,则使其能再开始新的一轮答题和比赛,与此同时还利用汇编语言编程,使其能够实现一些基本的功能。本次设计系统实用性强、判断精确、操作简单、扩展功能强等。它的功能实现是比赛开始,主持人读完题之后按下总开关,则计时开始,此时数码管开始进行1s的减计时,直到有一个选手按下抢答按钮,这时对应的数码管上会显示出该选手的编号和抢答所用的时间,同时该选手的报警器也会发出声音,来提示有人抢答本题。如果在规定的30s时间内没有选手做出抢答,则此题作废,即开始重新一轮的抢答。关键词:AT89C51;LED;数码管;抢答器;计时;报警

目录摘要Ⅰ1绪论11.1课题研究背景及国内外现状11.2设计任务与要求.11.3系统主要功能..22系统主要硬件电路设计...32.1单片机控制系统原理图32.2单片机主机系统电路42.3发声62.4系统复位63系统软件设计83.1主程序系统结构图83.2程序流程图83.3系统程序94调试及性能分析20总结 23参考文献241绪论1.1课题研究背景及国内外现状抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。早期的抢答器只由几个三极管、可控硅、发光管等组成,能通过发光管的指示辩认出选手号码。现在大多数抢答器均使用单片机(如MCS-51型)和数字集成电路,并增加了许多新功能,如选手号码显示、抢按前或抢按后的计时、选手得分显示等功能。抢答器作为一种电子产品,早已广泛应用于各种智力和知识竞赛场合,但目前所使用的抢答器有的电路较复杂不便于制作,可靠性低,实现起来很困难;有的则用一些专用的集成块,而专用集成块的购买又很困难。为适应高校等多代表队单位活动的需要而设计一个多功能抢答器,这种抢答器具有电路简单,元件普通,易于购买等优点,很好地解决了制作者制作困难和难于购买的问题。在国内外已经开始了普遍的应用[1]。1.2设计任务与要求任务:设计一款数字抢答器1.2.1基本要求(1)抢答器同时供6名选手或6个代表队比赛,分别用6个按钮S0~S5表示。(2)设置一个系统清除和抢答控制开关S,该开关由主持人控制。(3)抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。(4)抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动"开始"键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。(5)参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。(6)如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。优点:与普通抢答器相比,本作品有以下几方面优势①具有清零装置和抢答控制,可由主持人操纵避免有人在主持人说“开始”前提前抢答违反规则。②具有定时功能,在30秒内无人抢答表示所有参赛选手或参赛队对本题弃权。③30秒时仍无人抢答其报警电路工作表示抢答时间耗尽并禁止抢答。1.3系统主要功能抢答器原理:该抢答器供不多于四个的抢答比赛使用。每个选手的座位前安装一只抢答按钮开关和一只信号灯。主持人的座位前安装一只复原按钮开关、一只蜂鸣器和一只抢答器工作状态指示灯。每当主持人口头发出允许抢答的号令之后,哪个队先按下座位上的按钮开关,该座位的信号灯就先被点亮,同时封锁其他按钮开关的活动。并且熄灭主持人座位上的状态指示灯和发出3声类似于电话振铃的提示声,以“声明”此次抢答动作已经完成。在主持人确认后,按下复原按钮,状态指示灯重新点亮,并且同时发出“笛——笛——”声,为下一次的抢答作好准备。电路中的蜂鸣器FM是一只带有助音腔的压电陶瓷蜂鸣器,用于模拟发出报警声的功率放大器和喇叭。在FM发声的同时,灯D6也在发光。FM可以看作是一个电容性负载,本身不能流过直流电流。发声的原理是,作用在两个电极极板的电位在发生变化时,陶瓷材料就发生弯曲,从而振动空气发出声音。FM和4只按钮开关SWa~SWd以及4只电阻Ra~Rd都是在演示板的基础上额外添加的。由于RB端口内部具有上拉电阻,只要用软件设置其有效,即可省略在4只端口引脚上外接上拉电阻。2系统主要硬件电路设计为使硬件电路设计尽可能合理,应注意以下几方面:(1)尽可能采用功能强的芯片,以简化电路,功能强的芯片可以代替若干普通芯片,随着生产工艺的提高,新型芯片的的价格不断下降,并不一定比若干普通芯片价格的总和高。(2)留有设计余地。在设计硬件电路时,要考虑到将来修改扩展的方便。因为很少有一锤定音的电路设计,如果现在不留余地,将来可能要为一点小小的修改或扩展而被迫进行全面返工。(3)程序空间,选用片内程序空间足够大的单片机,本设计采用AT89C51单片机。(4)I/O端口,在样机研制出来后进行现场试用时,往往会发现一些被忽视的问题,而这些问题不是靠单纯的软件措施来解决的。如有些新的信号需要采集,就必须增加输入检测端;有些物理量需要控制,就必须增加输出端。如果在硬件电路设计就预留出一些I/O端口,虽然当时空着没用,那么用的时候就派上用场了。2.1单片机控制系统原理图如图2.1,P1.0为开始抢答,P1.7为停止,P1.1-P1.6为六路抢答输入,数码管段选P0口,位选P2口低3位,蜂鸣器输出为P3.6口。P3.2为时间加1调整,P3.3为时间减1调整。图2.1系统原理图2.2单片机主机系统电路该六路抢答器的设计细分为时钟频率电路的设计,复位电路的设计,显示电路的设计和键盘扫描电路的设计等。2.2.1时钟频率电路的设计单片机必须在时钟的驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。图2.2外部振荡源电路一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容C1,C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1,C2的典型值为30PF。单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数,常用fosc表示。如时钟频率为12MHz,即fosc=12MHz,则时钟周期为1/12µs。2.2.2复位电路的设计单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图2.3所示。图2.3复位电路值得注意的是,在设计当中使用到了硬件复位和软件复位两种功能,由上面的硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值,而前面的功能介绍中提到了倒计时时间的记忆功能,该功能的实现的前提条件就是不能对单片机进行硬件复位,所以设定了软复位功能。软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。2.2.3显示电路的设计显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的前提下提供尽可能丰富的信息,全靠软件来解决。2.2.4键盘扫描电路的设计键盘是人与微机系统打交道的主要设备。关于键盘硬件电路的设计方法也可以在文献和书籍中找到,配合各种不同的硬件电路,这些书籍中一般也提供了相应的键盘扫描程序。站在系统监控软件设计的立场上来看,仅仅完成键盘扫描,读取当前时刻的键盘状态是不够的,还有不少问题需要妥善解决,否则,人们在操作键盘就容易引起误操作和操作失控现象。在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘。它们各有自己的特点,其中独立键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中;矩阵键盘与独立键盘有很大区别。图2.4独立键盘首先在硬件电路上它要比独立键盘复杂得多,而且在程序算法上比它要烦琐,但它在节省端口资源上有优势得多,因此它更适合于多按键电路。其次就是消除在按键过程中产生的“毛刺”现象。这里采用最常用的方法,即延时重复扫描法,延时法的原理为:因为“毛刺”脉冲一般持续时间短,约为几ms,而我们按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后再延时一段时间(这里我们取10ms)后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。2.3发声我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单片机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使喇叭发出不同的声音。2.4系统复位使CPU进入初始状态,从0000H地址开始执行程序的过程叫系统复位。从实现系统复位的方法来看,系统复位可分为硬件复位和软件复位。硬件复位必须通过CPU外部的硬件电路给CPU的RESET端加上足够时间的高电位才能实现。上电复位,人工按钮复位和硬件看门狗复位均为硬件复位[2]。硬件复位后,各专用寄存器的状态均被初始化,且对片内通用寄存器的内容没有影响。但是,硬件复位还能自动清除中断激活标志,使中断系统能够正常工作,这样一个事实却容易为不少编码人员所忽视。软件复位就是用一系列指令来模拟硬件复位功能,最后通过转移指令使程序从0000H地址开始执行。对各专用寄存器的复位操作是容易的,也没有必要完全模拟,可根据实际需要去主程序初始化过程中完成。而对中断激活标志的清除工作常被遗忘,因为它没有明确的位地址可供编程。有的编程人员用020000(LJMP0000H)作为软件陷阱,认为直接转向0000H地址就完成了软件复位,就是这类错误的典型代表。软件复位是使用软件陷阱和软件看门狗后必须进行的工作,这时程序出错完全有可能发生在中断子程序中,中断激活标志已置位,它将阻止同级中断响应。由于软件看门是高级中断,它将阻止说要中断响应,由此可见清除中断激活标志的重要性[2]。在所有的指令中,只有RETI指令能够清除中断激活标志。前文各处提案到的出错处理程序ERR主要完成这一功能,其他的善后工作交由复位后的系统去完成。这部分程序如下:POWERDATA67H;上电标志存放单元ERR:CLREA;关中断MOVDPTR,#ERR1;准备返回地址PUSHDPLPUSHDPHRETI;清除高级中断激活标志ERR1:MOVPOWER,#0AAH;重建上电标志CLRA;准备复位地址PUSHACC;压入复位地址0000HPUSHACCRETI;清除低级中断激活标志,从程序0000H开始执行这段程序先关中断,以便后续处理能顺利进行,然后用两个RETI指令代替两个LJMP指令,从而清除了两级中断激活标志。有相应软件陷阱捕捉来的程序可能没有全部激活两个标志,这也无妨。3系统软件设计软件任务分析和硬件电路设计结合进行,哪些功能由硬件完成,哪些任务由软件完成,在硬件电路设计基本定型后,也就基本上决定下来了。3.1主程序系统结构图调整回答时间调整回答时间数码显示模块数码显示模块非法抢答模块正确抢答模块调整抢答时间按键模块系统初始化模块图3.1软件系统结构图3.2程序流程图在本设计中包括了以下八个主要的程序:主程序、非法抢答序、抢答时间调整程序、回答时间调整程序、倒计时程序、正常抢答处理程序、犯规处理程序、显示及发声程序[3]。主流程图如3.2所示。开始键按下?开始键按下?加一键按下?减一键按下?正常抢答回答时间非法抢答处理调整抢答时间显示犯规显示抢答号并倒计时显示FFF初值始化YY图3.2程序设计流程图3.3系统程序P1.0为开始抢答,P1.7为停止,p1.1-p1.6为六路抢答输入数码管段选P0口,位选P2口,蜂鸣器输出为P3.6口。程序代码如下:OKEQU20H;抢答开始标志位RINGEQU22H;响铃标志位ORG0000HAJMPMAINORG0003HAJMPINT0SUBORG000BHAJMPT0INTORG0013HAJMPINT1SUBORG001BHAJMPT1INTORG0040HMAIN:MOVR1,#0FH;初设抢答时间为15sMOVR2,#0AH;初设答题时间为10sMOVTMOD,#11H;设置未定时器/模式1MOVTH0,#0F0HMOVTL0,#0FFH;越高发声频率越高,越尖MOVTH1,#3CHMOVTL1,#0B0H;50ms为一次溢出中断SETBEASETBET0SETBET1SETBEX0SETBEX1;允许四个中断T0/T1/INT0/INT1CLROKCLRRINGSETBTR1SETBTR0;一开始就运行定时器,以开始显示FFF;果想重新计数重置TH1/TL1就可以了查询程序:START:MOVR5,#0BHMOVR4,#0BHMOVR3,#0BHACALLDISPLAY;未开始抢答时候显示FFFJBP1.0,NEXTACALLDELAYJBP1.0,NEXT;去抖动,如果"开始键"按下就向下执行;否者跳到非法抢答查询ACALLBARK;按键发声MOVA,R1MOVR6,A;送R1->R6,因为R1中保存了抢答时间SETBOK;抢答标志位,用于COUNT只程序中判断;是否查询抢答MOVR3,0AH;抢答只显示计时,灭号数AJMPCOUNT;进入倒计时程序,"查询有效抢答的程序";在COUNT里面NEXT:JNBP1.1,FALSE1JNBP1.2,FALSE2JNBP1.3,FALSE3JNBP1.4,FALSE4JNBP1.5,FALSE5JNBP1.6,FALSE6AJMPSTART非法抢答处理程序:FALSE1:ACALLBARK;按键发声MOVR3,#01HAJMPERRORFALSE2:ACALLBARKMOVR3,#02HAJMPERRORFALSE3:ACALLBARKMOVR3,#03HAJMPERRORFALSE4:ACALLBARKMOVR3,#04HAJMPERRORFALSE5:ACALLBARKMOVR3,#05HAJMPERRORFALSE6:ACALLBARKMOVR3,#06HAJMPERRORINT0(抢答时间R1调整程序):INT0SUB:MOVA,R1MOVB,#0AHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAY;先在两个时间LED上显示R1JNBP3.2,INC0JNBP3.3,DEC0JNBP1.7,BACK0AJMPINT0SUBINC0:MOVA,R1CJNEA,#4BH,ADD0;如果不是59,R2加1,如果加到59了;R1就置0新加起MOVR1,#00HACALLDELAY1AJMPINT0SUBADD0:INCR1ACALLDELAY1AJMPINT0SUBDEC0:MOVA,R1JZSETR1;如果R1为0,R1就置59DECR1ACALLDELAY1AJMPINT0SUBSETR1:MOVR1,#4BHACALLDELAY1AJMPINT0SUBBACK0:RETIINT1(回答时间R2调整程序):INT1SUB:MOVA,R2MOVB,#0AHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAYJNBP3.2,INC1JNBP3.3,DEC1JNBP1.7,BACK1AJMPINT1SUBINC1:MOVA,R2CJNEA,#63H,ADD1MOVR2,#00HACALLDELAY1AJMPINT1SUBADD1:INCR2ACALLDELAY1AJMPINT1SUBDEC1:MOVA,R2JZSETR2DECR2ACALLDELAY1AJMPINT1SUBSETR2:MOVR2,#4BHACALLDELAY1AJMPINT1SUBBACK1:RETI倒计时程序(抢答倒计时和回答倒计时都跳到该程序):COUNT:MOVR0,#00H;重置定时器中断次数MOVTH1,#3CHMOVTL1,#0B0H;重置定时器RECOUNT:MOVA,R6;R6保存了倒计时的时间之前;先将抢答时间或回答时间给R6MOVB,#0AHDIVAB;除十分出个位/十位MOV30H,A;十位存于(30H)MOV31H,B;个位存于(31H)MOVR5,30H;取十位MOVR4,31H;取个位MOVA,R6SUBBA,#07HJNCLARGER;大于5s跳到LARGER;小于等于5s会提醒MOVA,R0CJNEA,#0AH,FULL;1s中0.5s向下运行CLRRINGAJMPCHECKFULL:CJNEA,#14H,CHECK;下面系1s的情况,响并显示号数;并清R0,重新计时SETBRINGMOVA,R6JZQUIT;计时完毕MOVR0,#00HDECR6;一秒标志减1AJMPCHECKLARGER:MOVA,R0CJNEA,#14H,CHECKDECR6;计时一秒R6自动减1MOVR0,#00HCHECK:JNBP1.7,QUIT;如按下停止键退出ACALLDISPLAYJBOK,ACCOUNT;如果是抢答倒计时,如是则查询;抢答,否者跳过查询继续倒数AJMPRECOUNTACCOUNT:JNBP1.1,TRUE1JNBP1.2,TRUE2JNBP1.3,TRUE3JNBP1.4,TRUE4JNBP1.5,TRUE5JNBP1.6,TRUE6AJMPRECOUNTQUIT:CLROK;如果按下了"停止键"执行的程序CLRRINGAJMPSTART正常抢答处理程序:TRUE1:ACALLBARK;按键发声MOVA,R2MOVR6,A;抢答时间R2送R6MOVR3,#01HCLROK;因为答题的计时不再查询抢答;所以就锁了抢答AJMPCOUNTTRUE2:ACALLBARK;MOVA,R2MOVR6,AMOVR3,#02HCLROKAJMPCOUNTTRUE3:ACALLBARK;MOVA,R2MOVR6,AMOVR3,#03HCLROKAJMPCOUNTTRUE4:ACALLBARK;MOVA,R2MOVR6,AMOVR3,#04HCLROKAJMPCOUNTTRUE5:ACALLBARK;MOVA,R2MOVR6,AMOVR3,#05HCLROKAJMPCOUNTTRUE6:ACALLBARK;MOVA,R2MOVR6,AMOVR3,#06HCLROKAJMPCOUNT犯规抢答程序:ERROR:MOVR0,#00HMOVTH1,#3CHMOVTL1,#0B0HMOV34H,R3;犯规号数暂存与(34H)HERE:MOVA,R0CJNEA,#0AH,FLASH;0.5s向下运行->灭并停响CLRRINGMOVR3,#0AHMOVR4,#0AHMOVR5,#0AH;三灯全灭AJMPCHECK1FLASH:CJNEA,#14H,CHECK1;下面系1s的情况,响并显示号数;并清R0,重新计算SETBRINGMOVR0,#00HMOVR3,34H;取回号数MOVR5,#0BHMOVR4,#0BH;显示FF和号数AJMPCHECK1CHECK1:JNBP1.7,QUIT1ACALLDISPLAYAJMPHEREQUIT1:CLRRINGCLROKAJMPSTART显示程序:入口参数:R5,R4,R3存入的分别为第一,二,三为数码所显示的位码[3]出口参数:无DISPLAY:MOVDPTR,#DAT1;查表显示程序,利用P0口做段选码口;输出/P2低三位做位选码输出MOVA,R5MOVCA,@A+DPTRMOVP2,#01HMOVP0,AACALLDELAYMOVDPTR,#DAT2MOVA,R4MOVCA,@A+DPTRMOVP2,#02HMOVP0,AACALLDELAYMOVA,R3MOVCA,@A+DPTRMOVP2,#04HMOVP0,AACALLDELAYRETDAT1:DB00H,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,71H;"灭","1","2","3","4","5","6","7","8","9","灭","F"DAT2:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,71H;第一个为零,其他与上相同,因为十位如果为零显示熄灭加减时间延时(起到不会按下就加N个数):DELAY1:MOV35H,#08HLOOP0:ACALLDISPLAYDJNZ35H,LOOP0RET延时(显示和去抖动用到):DELAY:MOV32H,#12HLOOP:MOV33H,#0AFHLOOP1:DJNZ33H,LOOP1DJNZ32H,LOOPRET发声程序:BARK:SETBRINGACALLDELAY1ACALLDELAY1CLRRING;按键发声RETTO溢出中断(响铃程序):T0INT:MOVTH0,#0ECHMOVTL0,#0FFHJNBRING,OUTCPLP3.6;RING标志位为1时候P3.6口不短;取反使喇叭发出一定频率的声音OUT:RETIT1溢出中断(计时程序):T1INT:MOVTH1,#3CHMOVTL1,#0B0HINCR0RETIEND4调试及性能分析(1)具有清零装置和抢答控制,可由主持人操纵避免有人在主持人说“开始”前提前抢答违反规则。(2)具有定时功能,在30秒内无人抢答表示所有参赛选手获参赛队对本题弃权。(3)30秒时仍无人抢答其报警电路工作表示抢答时间耗尽并禁止抢答。(4)如果想调节抢答时间或答题时间,按"抢答时间调节"键或"答题时间调节"键进入调节状态,此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下"加1s"键,如果想减一秒按一下"-1s"键,时间LED上会显示改变后的时间,调整范围为0s~59s,0s时再减1s会跳到59,59s时再加1s会变到0s。(5)主持人按"抢答开始"键,会有提示音,并立刻进入抢答倒计时(预设15s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设10s抢答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。倒数时间到小于5s会每秒响一下提示音。(6)如倒计时期间,主持人想停止倒计时可以随时按"停止"按键,系统会自动进入准备状态,等待主持人按"抢答开始"进入下次抢答计时。(7)如果主持人未按"抢答开始"键,而有人按了抢答按键,犯规抢答,LED上不断闪烁FF和犯规号数并响个不停,直到按下"停止"键为止[4]。图4.1正常抢答状态图4.2违规抢答状态图4.3没人抢答状态图4.4复位状态图片分析如下。图4.1表示正常抢答状态下,主持人按下“OK”键后,2号选手开始抢答,26s为回答时间。图4.2表示违规抢答状态下,主持人没按下“OK”键,5号选手违规抢答。图4.3表示没人抢答状态下,主持人按下“OK”键后,没人抢答。图4.4表示复位状态下,有电源,主持人没按下“OK”键时的状态。总结通过本次课程设计使我对Proteus仿真软件的使用和汇编语言有了更进一步的了解和掌握。并且在老师的耐心指导和自己的不懈努力下,我终于顺利的完成了这次科研实践。在最初编写过程中,我也曾经因为实践经验的缺乏失落过,也曾经因仿真成功而热情高涨。特别是Proteus仿真软件的使用,一开始因为对软件不熟悉,要慢慢摸索,后来差不多会了以后,画仿真图又浪费了我大量的时间,最后在不断努力中终于把仿真图画出来了,最后要把写好的程序导入芯片。其实这也是一大难事,由于对于书本上的很多知识还不能灵活运用,尤其是对程序语言的理解和运用,不能够充分理解每个语句的具体含义,导致编程的程序过于复杂。但后来通过自己和同学的仔细的分析,并认真分析了原来已有的代码和应有的硬件后,经过多次调试和测试终于成功了。平心而论,这次课程设计耗费了我不少的心血。虽说这次课程设计有点辛苦,但是苦中还是有乐的,和同学们相互帮助,当LED亮了起来,喇叭响了起来是对我这段日子以来最好的告慰。而且对于论文的总体构思也有了很多经验,相信自己经过这一次的训练与学习,对于今后的毕业论文会有更多帮助。同时在查找资料的过程中我也学到了许多新的知识,在和同学协作的过程中增进同学友谊,使我对团队精神的积极性和重要性有了更加充分的理解,为以后进入社会奠定了一些基础。参考文献[1]李光飞.单片机课程设计实例指导.北京航天航空大学出版社,2004.[2]李朝青.单片机原理及接口技术(第3版).北京航空航天大学出版社,2002.[3]胡伟.单片机C程序设计及应用实例.人民邮电出版社,2003.[4]冯育长.单片机系统设计与实例指导.西安电子科技大学出版社,2007.基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论