资源描述
职业技术学院毕业论文(设计) 论文题目: 智能八路抢答器制作研究 学科专业: 机电一体化技术 选题背景选题的目的、意义(理论意义、现实意义):选题目的:通过这次毕业设计,让我了解到了八路智能抢答器的结构组成和工作原理,也初步掌握八路智能抢答器的调整及测试方法,提高实践动手能力和思考问题的能力。同时通过本次毕业设计,也让我巩固了以前学习的理论知识,建立逻辑数字电路的理论和实践的结合,了解了八路智能抢答器各单元电路之间的关系及相互影响。初步掌握了八路智能抢答器的调整及测试方法。现实意义:本毕业设计通过参考大量文献对八路智能抢答器的工作原理进行了系统的介绍,通过详细的调查和权威技术资料及相关情报的收集,为我们更深刻的了解电子技术提供了很好的平台,使得更好的让理论与实践相结合。选题的研究现状(理论渊源及演化、国外相关研究综述、国内相关研究综述):智能抢答器是一种应用十分广泛的设备,在各种竞赛、抢答场合中,它都能客观、迅速地判别出最先获得发言权的选手。早期的抢答器只是由几个三极管、可控硅、发光管等器件组成的,能通过发光管的指示辩认出选手号码。现在大多数智能抢答器都由单片机或数字集成电路构成的,并且新增了许多功能,如选手号码显示,抢按前或抢按后的计时,选手得分显示等功能。毕业论文进度安排:1(2周)熟悉毕业设计内容,查资料,做出初步设计方案,准备开题报告2(1周)收集资料,准备进行详细设计3(5周)根据初步设计,查阅资料,进行详细设计(含图纸绘制、设备选型、撰写设计说明书等)4(1周)整理毕业设计,查缺补漏,准备答辩指导教师意见: 指导教师签名: 年 月 日III毕业论文(设计)写作提纲一、论文题目智能八路抢答器制作研究二、论题观点来源:了解了八路智能抢答器各单元电路之间的关系及相互影响;初步掌握了八路智能抢答器的调整及测试方法。三、基本观点:为我们更深刻的了解电子技术提供了很好的平台,使得更好的让理论与实践相结合。四、论文结构: 第一章:绪论。简要介绍了八路智能抢答器的发展现状;简要概述了本毕业设计的研究内容。第二章:抢答器系统概述。说明了八路智能抢答器的工作过程和主要功能。第三章:抢答器的单元电路设计。详细概述了本毕业设计中,八路智能抢答器各单元电路的设计。第四章:抢答器的电路设计图。展示了八路智能抢答器的电路图、工作原理电路图、PCB板电路图,更形象的表现出电路设计的思路。第五章:总结与展望。总结课题设计,指出设计中的一些问题,提出改善的意见,并展望抢答器的未来设计。毕业论文(设计)工作中期检查表系别: 自动化控制系 班级: 10机电一体化技术(1)班 学生姓名学号指导教师 职称论文(设计)题目智能八路抢答器制作研究选题是否有变化否如有,请填写原因是否一人一题是是否进行了选题背景、及写作提纲是是否进行了文献调研是本论文拟解决的关键问题了解了八路智能抢答器各单元电路之间的关系及相互影响;初步掌握了八路智能抢答器的调整及测试方法。教师填写部分论文(设计)进度情况: 提前完成 正常进行 延期滞后(请写出原因)工作态度情况(学生对毕业论文(设计)的认真程度、完成指导教师布置任务情况): 认真 较认真 一般 不认真中期质量评价(学生已完成部分的工作质量情况): 好 中 差存在的问题与建议: 指导教师(签名): 年 月 日系毕业论文(设计)工作领导小组意见(如被查学生为差的,请系毕业论文设计领导小组写出处理意见): 领导小组组长(签名): 年 月 日目 录 智能八路抢答器制作研究1中 文 摘 要1前 言21、设计任务31.1、设计方案31.1.1、确定单片机的型号:31.1.2、任务:31.2、系统的功能与要求31.3、八路抢答器的概述32、硬件电路设计及其功能介绍42.1、方案论证42.2、方案比较分析42.3、AT89C51简介42.3.1、MSC-51系列单片机简介42.3.2、MCS-51单片机的指令程序52.4、系统的硬件构成及功能72.5、抢答器的原理图82.5.1、单元电路的设计及硬件介绍82.6、LED数码显示器及驱动电路113、硬件电路图简介133.1原理图133.2原理图简要说明144、软件设计 程序流程图及程序154.1、系统主要程序设计154.1.1、系统主程序设计154.1.2抢答器的源程序155、调试295.1、硬件调试过程295.2、软件调试29结论31附录 参考文献33智能八路抢答器制作研究中 文 摘 要本次的毕业设计8路抢答器,就是一种利用单片机功能而做出来的产品。本文介绍了单片机控制、数码显示八路抢答器的电路组成、设计思路及功能。该抢答器除具有基本的抢答功能外,还具有定时、计时和报警功能。 主持人通过时间预设开关预设供抢答的时间,系统将完成自动倒计时。若在规定的时间内有人抢答,则计时将自动停止;若在规定的时间内无人抢答,则系统中的蜂鸣器将发响,提示主持人本轮抢答无效,实现报警功能。关键词: 八路 抢答器 定时 报警Abstract: The graduation design - 8 Responder, MCU is a function of the use of the product done. In this paper, MCU control, eight-way digital display Responder s circuit, design ideas and functions. With the exception of the Responder basic functions, but also with time, time and alarm functions. Moderator default by switching the default time for Responder time, the system will automatically complete the countdown. If the required time someone Responder, the time will automatically stop if the specified time no one Responder, the system will be in the ring for the buzzer, the moderator suggested that this round of Responder invalid, and alarm functions. Key words: eight-way Responder regularly with the police。34前 言智能抢答器是一种应用十分广泛的设备,在各种竞赛、抢答场合中,它都能客观、迅速地判别出最先获得发言权的选手。早期的抢答器只是由几个三极管、可控硅、发光管等器件组成的,能通过发光管的指示辩认出选手号码。现在大多数智能抢答器都由单片机或数字集成电路构成的,并且新增了许多功能,如选手号码显示,抢按前或抢按后的计时,选手得分显示等功能。通过这次毕业设计,让我了解到了八路智能抢答器的结构组成和工作原理,也初步掌握八路智能抢答器的调整及测试方法,提高实践动手能力和思考问题的能力。同时通过本次毕业设计,也让我巩固了以前学习的理论知识,建立逻辑数字电路的理论和实践的结合,了解了八路智能抢答器各单元电路之间的关系及相互影响。初步掌握了八路智能抢答器的调整及测试方法。目前多数智能抢答器存在一下几点不足:首先,现场线路连接复杂。因为每个选手位于抢答现场的不同位置,每个选手与控制台之间要有长长的连接线。选手越多,连接线就越多、越乱,这些连接线不仅影响了现场的美观,而且降低了抢答器的可靠性,增加了安装的难度,甚至影响了现场人员的走动。其次,电路复杂。因为简单逻辑电路只完成号码处理、计时、数据运算等功能,其它功能如选手号码的识别、译码、计分显示等仍只能通过数字集成电路完成。采用简单逻辑电路扫描技术识别选手抢按号码时,电路的延迟时间较大。最后,容易出现选手抢按成功现象。本毕业设计通过参考大量文献对八路智能抢答器的工作原理进行了系统的介绍,通过详细的调查和权威技术资料及相关情报的收集,为我们更深刻的了解电子技术提供了很好的平台,使得更好的让理论与实践相结合。1、设计任务1.1、设计方案1.1.1、确定单片机的型号:根据系统的功能与要求,选择AT89C51比较宜。1.1.2、任务:设计一个供8名选手参加的八路扫描式抢答器。每组设计一个抢答按扭供参加者使用。电路具有第一抢答信号的鉴别和锁定存储功能。在主持人将系统复位并发出抢答指令后,如果参赛者在第一时间按抢答开关,则按钮指示灯灯亮并用组别电路显示出抢答者的组别。同时扬声器发出声音。电路应具有自锁功能,使其他组不起作用。1.2、系统的功能与要求 每名选手有一个抢答按扭,按扭的编号与选手的编号相对应,抢答器具有信号的鉴别和数据的锁存、显示的功能。抢答开始后,若有选手抢答按扭,则选手指示灯亮,并在数码管上显示相应的编号,蜂鸣器发出音响提示。同时,电路应具备自锁功能,禁止其他选手再抢答,优先抢答选手的编号一直保持到主持人将系统清零为止。抢答器具有定时抢答的功能。在主持人发出抢答指令后,定时器立即进行减计时,并在显示器上显示,同时蜂鸣器发出短暂的声响,声响持续0.5s左右。选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器显示选手编号,并保持到主持人将系统清零为止。1.3、八路抢答器的概述 本文介绍的八路数显抢答器具有电路简单、成本较低、操作方便、灵敏可靠等优点,经使用效果良好,具有较高的推广价值。可用于8组或8组以下的智力竞赛中。比赛前,将参赛组从0至7编号,每组发给对应的的一个抢答按钮。主持人按一下总控制启动键后,抢答开始。此后,哪一组最先按下抢答按钮,数码显示器就立即显示该组的组号并锁定,同时蜂鸣器发出声响。以后,按下任何一路抢答按钮均不起反应。只有主持人再次按动启动键后,才能进行下一次抢答该电路。 2、硬件电路设计及其功能介绍2.1、方案论证 有许多比赛活动中,为了更准确、公正、直观地判断出第一个抢答者,通常设置一个抢答器,通过数字显示,灯光及音响等多种手段显示第一抢答者,同时还可设置记分,犯规及奖惩记录等多种功能,传统的数电控制电路可靠性虽好,但不能显示台几号给主持人带来一定的麻烦,而模拟电子控制电路可靠性较差。1)8路抢答器可以利用硬件电子元器件实现,但电路结构复杂,调试困难,涉及到的外围元件多,不便于安装,实验给实际操作带来很大的麻烦。2)核芯是一片AT89C51,其片内带有的4KFLASHROM,128B的RAM,以及15根I/O口线能满足设计要求。 利用单片机可以用很少元件实现相同功能,而且单片机性能可操作性强。可以只用P0口连接上拉电阻,完成驱动LED的功能,串接按键可以由选手自己控制抢答机会,利用P3口的RXD接AT89C51的A,B端,TXD接移位脉冲做时钟信号。利用单片机程序判断选手按键是否有效,但选手违规抢答,利用简单程序显示选手序号,启动蜂鸣器并不间断,告诉主持人有人违规操作,抢答无效。给出相应的延时,选手按正常的操作抢答,软件倒记时,利用AT89C51移位寄存8段数码管,实现倒记时显示时间,到5秒相应时间提醒选手时间快到了,要及时作答,并启动蜂鸣器。2.2、方案比较分析从第一个方案我们可以看出,这个抢答器是由抢答电路,定时电路,报警电路,时序控制电路四个电路组成。扩展电路是由秒钟脉冲信号产生电路,译码电路,显示电路等,它的功能很齐全,设计的电路也很稳定。但是它的造价却很高。仅仅是集成电路它就用了八个,这跟我们当初的设计理念是相冲突的。我们要的是功能齐全,但是造价比较低的设计。所以我们放弃了这项设计。而本设计采用单片机,可靠性好,结构简单,具有显示出台号,分机得分显示,倒计时功能以及奖惩情况。该模式充分体现了原有系统性能的改进,功能的扩展及与其它同类系统的不同之处,它包括硬件逻辑图与软件流程图,比较经济实用,所以我们选用单片机方案。2.3、AT89C51简介2.3.1、MSC-51系列单片机简介MSC-51系列单片机是英特尔公司于1980年起推出的第二代产品。与8084相比,8051的硬件结构和指令系统均有很大改进,可支持更大的存贮空间,扩充了更多的硬件功能I/O功能,速度提高了2- 5倍,可完成逻辑运算等。近年来推出的一些增强的MSC-51系统单片机,片内还集成了许多特殊功能单元,只需要加一些扩展电路及必要的通道接口即可构成各种计算机应用系统。因MSC-51系统单片机在智能仪表、智能接口、功能模块等领域得到了非常广泛的应用。主要技术特性:1) 适于控制应用的8位CPU。2) 扩展的逻辑处理能力。3) 64K程序存贮器空间和64K数据存贮器空间。4) 4KB片内程序存贮器。5) 128B片内数据RAM。6) 32根双向和可单独寻址的输入输出线。7) 2个16位定时/计数器,片内时钟发生器。8) 全双工异步发送/接收器。 9) 6源5向量中断结构,具有两个优先级。128个字节的片内数据存储器RAM。其片外数据存储器的寻址范围为64KB用于存放可读写的数据,如运算的中间结果或最终结果等。 图2-1 MSC-51系列a) 4KB的片内程序只读存储器ROM或EPROM。其片外可寻址范围为64KB,主要用于存放已编程的程序,也可以存放一些原始数据和表格。b) 18个特殊功能寄存器SFR。它用于控制和管理片内算术逻辑部件、并行I/O口、串行I/O口、定时器/计数器、中断系统等功能模块的工作。c) 4个8位并行输入输出I/O接口:P0口、P1口、P2口、P3口,用于并行输入或输出数据。d) 1个串行I/O接口。他可使数据1位串行地在计算机与外设之间传送,可用软件设置4种工作方式,用于多处理机通信、I/O扩展或全双工通用异步接受器。e) 个16位定时器/计数器。他可以设置为计数方式对外部事件进行计数,也可以设置为定时方式进行定时。f) 具有5个中断源,可编程为2个优先级的中断系统。他可以接受外部中断申请、定时器/计数器中断申请和串行口中断申请。MCS-51系列单片机的40个引脚中有2 个专用于主电源的引脚,2个外接晶体的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。2.3.2、MCS-51单片机的指令程序时序是用定时单位来描述的,MCS-51的时序单位有四个,它们分别是节拍、状态、机器周期和指令周期,接下来我们分别加以说明。1)节拍与状态我们把振荡脉冲的周期定义为节拍(为方便描述,用P表示),振荡脉冲经过两个分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义为状态(用S表示),这样一个状态就有两个节拍,前半周期相应的节拍我们定义为1(P1),后半周期对应的节拍定义为2(P2)。2)机器周期MCS-51有固定的机器周期,规定一个机器周期有6个状态,分别表示为S1-S6,而一个状态包含两个节拍,那么一个机器周期就有12个节拍,我们可以记着S1P1、S1P2、S6P1、S6P2,一个机器周期共包含12个振荡脉冲,即机器周期就是振荡脉冲的12分频,显然如果使用6MHZ的时钟频率,一个机器周期就是2us,而如果使用12MHZ的时钟频率,一个机器周期就是us。3)引脚说明(1)VCC:供电电压。(2)GND:接地。(3)P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。(4)P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 (5)P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 (6)P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 (7)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 (8)ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 (9)/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 (10)/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 (11)XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 (12)XTAL2:来自反向振荡器的输出。2.4、系统的硬件构成及功能我们这里用的单片机是MCS51系列的AT89C51作为控制系统,它外接了八个键盘,也就是它可以为八个人同时提供抢答。它的显示系统为两个数码显示管(共阳级接法);另外还有一个扬声器和八个发光二极管作为提示装置。当接通电源时,单片机将会对键盘进行扫描,当有按键按下时,单片机将会向数码显示关发出信号,于是数码显示管将显示按下键盘所对应的显示号(18)。同时,单片机还会将扬声器连接的接口设置为零(低电平),而扬声器的另一端接的是+5v 电压,从而将扬声器接通并发出报警声;单片机还会将按下的按键所对应的发光二极管的接口至低电平,而发光二极管用的是共阳极接法,从而点亮发光二极管。2.5、抢答器的原理图CPU定时电路声响抢答按扭30秒控制手动复位数码显示台位显示 图2-2 原理框图2.5.1、单元电路的设计及硬件介绍1) 抢答器电路如图2.2所示电路,该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键,即使其他选手操作无效。抢答器具有锁存、定时、显示和报警功能。即当抢答开始后,选手抢答按动按钮,锁存器锁存相应的选手编码,同时用LED数码管把选手的编码显示出来,并且开始抢答时间的倒计时,同时用LED数码管把选手的所剩抢答时间显示出来。而在选手按键抢答以及抢答时间倒计时到时的时候都有报警以提醒主持人和选手。图2-3 抢答器电路2)时序控制电路时序控制电路是抢答器设计的关键,它要完成以下功能:A主持人将控制开关拨到“开始”位置时,抢答电路和定时电路进入正常抢答状态。B当参赛选手按动抢答键时,蜂鸣器声响,抢答电路和定时电路停止工作。图2-4 时序控制电路3) 复位电路的设计复位是计算机的一个重要工作状态。在单片机工作时,接电之前要复位,断电后也要复位,发生故障也要复位,在抢答器中复位则是为定时做铺垫的,在抢答之前要复位,抢答完毕业要复位,按了复位键之后,LED的显示的是0。单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。整个复位电路包括芯片内外二部分。外部电路产生的复位信号通过复位引脚RST进入片内的斯密特触发器(抑制噪声作用)再与片内复位电路相连。复位电路每个机器周期对斯密特触发器的输出采样一次。当RST引脚端保持两个机器周期(24个时钟周期)以上的高电平时,AT89C51进入复位状态.图2-5 复位电路4) 定时电路的设计a) 设置一个系统清除和抢答控制开关S即复位键,该开关由主持人控制。 b) 抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动总控制启动复位键后,定时器进行减计时,并在显示器上显示。c) 抢答器要具有数据锁存和显示的功能,参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,并在LED数码管上显示,同时扬声器发出报警声响提示。显示器上显示选手的编号,同时其他人在按就无效,并一直保持到主持人将系统清除为止。d) 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示0,并发出一段时间的报警声。5) 报警电路设计 4.7K的电阻,一个三级管和一个蜂鸣器就组成了一个报警的电路,当选手开始抢答是蜂鸣器便提醒主持人是哪一个台号,当在设定的时间内没有人抢答,倒计时完毕后蜂鸣器也会发出短时间的叫声。图(2)中,接在三极管基极的4.7K电阻为限流电阻,在此利用晶体管的高电流增益,以达到电路快速饱和的目的。图2-6 报警电路2.6 LED数码显示器及驱动电路LED是发光二极管的缩写,LED显示器由若干个发光二极管构成的,当发光二极管导通时,显示对应的字符。LED显示器由7个发光二极管组成,也称为7段显示器,排列形状如图2-6所示。LED显示器还有一个圆点型的发光二极管,用于显示小数点,有时也称为8段LED显示器。LED显示器的发光二极管有共阴极和共阳极两种接法。共阴极接法,各发光二极管的阴极连在一起并接地,当某一发光二极管的阳极输入高电平时,则该段发光;图右为共阳极接法,各发光二极管的阳极连在一起并接+5V,当阴极输入低电平时,该段发光二极管发光。 2-7七段LED显示器图 2.7 电源电路图2-8 电源电路电源电路是由整流桥,7805稳压块和前后滤波电容组成,整流器接收变压器送来的低压交流信号,经整流后变成直流电,在经过100F的电解电容滤波后,送到7805稳压块后,输出稳定的正5V电压,再次滤波后送到单片机内。3、硬件电路图简介3.1原理图 3.2原理图简要说明基于这个设计的上述要求,根据功能要求,须设计有抢答电路、显示电路、主持人控制电路、定时电路、报警电路,各个电路都有其自己的功能。通过复位键SW,电路进入就绪状态,等待抢答。首先由主持人发布抢答命令,按下S9进入倒计时状态和抢答状态。在电路中“S1S8”为八路抢答器的8个按键,如果有人按下按键,如果有人按下按键,程序就会判断是谁先按下的,然后从P2口输出抢答者号码的七段码值,送到码管显示,并封锁键盘,保持刚才按键按下时刻的时间,禁止其他人按键的输入,从而实现了抢答的功能。如果在设定的时间中没有一个人按下按键,一到时间则产生报警信号已超时,不可以抢答。当要进行下一次抢答时,由主持人先按一下复位按键SW,电路复位,进入下一次抢答的就绪状态。4、软件设计 程序流程图及程序4.1、系统主要程序设计4.1.1、系统主程序设计 为了能达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前设定抢答的时间。当时间设好了之后,主持人发布抢答命令。按下S9按键后,程序开始打开,定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序。当扫描到有人按下了键,马上关闭T0,调用显示程序,并封锁键盘。4.1.2抢答器的源程序P1.0-P1.7为八路抢答器的输入端口,数码管断选P0口,位选P2口,蜂鸣器输出为P3.6。 完整的源程序:BEEP BIT 00HORG 0000HLJMP MAIN ORG 0003H ;定义四个中断的入口地址 LJMP STARTORG 000BHLJMP STARTORG 0013HLJMP START1ORG 001BHLJMP START3ORG 0030HMAIN : MOV P1, #0FFH ;P1口全置1 SETB P3.0 ;串行输入端置1 SETB P3.1 ;串行输出端置1 CLR BEEP ;清零 MOV R0, #40H ;个位送“0” MOV R1, #0FFH ;十位全灭 MOV IP, #01H MOV IE, #8FHLOOP: CLR P3.6 ;串行输入端清零 MOV P0, R1 LCALL DEL ;延时 SETB P3.0 CLR P3.1 MOV P0, R0 LCALL DEL ;延时 SETB P3.1 ;串行输出端置1 SJMP LOOPDEL: MOV R4, #20H ;立即数送R4DLY1: MOV R3, #49 ;立即数送R4DLY2: DJNZ R3, DLY2 ;(R3)1不为0,继续 DJNZ R4, DLY1 ;(R4)1不为0,继续 RET ;返回START0: CLR EA MOV A, P1ML0: CJNE A, #0FEH, ML1 ;1”字符码送P0口 MOV R0, 0F9H CLR P2.0 SJMP ML8ML1: CJNE A, #0FEH, ML2 ;2字符码送P0口 MOV R0, 0A4H CLR P2.1 SJMP ML8ML2: CJNE A, #0FBH, ML3 ;“3字符码送P0口 MOV R0, 0B0H CLR P2.2 SJMP ML8ML3: CJNE A, #0F7H, ML4 ;“4字符码送P0口 MOV R0, 99H CLR P2.3 SJMP ML8ML4: CJNE A, #0EFH, ML5 ;“5字符码送P0口 MOV R0, 92H CLR P2.4 SJMP ML8ML5: CJNE A, #0DFH, ML6 ;“6字符码送P0口 MOV R0, 82H CLR P2.5 SJMP ML8ML6: CJNE A, #0BFH, ML7 ;“7字符码送P0口 MOV R0, F8H CLR P2.6 SJMP ML8ML7: CJNE A, #7FH, ML8 ;“8”字符码送P0口 MOV R0, 80HML8: CLR P3.6 ;蜂鸣器响 RET ISTART1: CLR EA ;关中断 MOV R7, #30 ;立即数30送R7 MOV R0, #0L0H MOV R1, #0B0H MOV TMOD, #42H MOV TH0, #80H ;80H送TH0 MOV TH1, #83H ;83H送TH1 MOV TL1, #00H SETB TR0 SETB TR1 SETB EA RET ISTART2: SETB P3.4 ;定时/计数器0外部信号输入端置1 NOP NOP CLR P3.4 RET ISTRAT3: DEC R7 ;秒减1 LCALL DISP ;调显示处理程序 MOV A, R7 ; (R7)送累加器A JZ ML10 CJNZ R7, #00H, ML10 MOV TH1, #83H ;将83H送到TH1 MOV TL1, #00H ;将00H送到TL1 SETB TR1 SETB TR0 SETB EA ;开中断 LJMP ML11ML10: CLR P3.6 ;蜂鸣器响 CLR TR0 ;关闭定时器T0 CLR TR1 ;关闭定时器T0 CLR EAML11: RET IDISP MOV A, R7 MOV B, #2 MUL AB MOV B, A ADD A, #09H MOVC A, A+PC MOV R1, A MOV A, B ADD A, #02H INC A MOVC A, A+PC MOV R0, A RETTAB: DB 0FFH, 40H, 0FFH, 79H, 0FFH, 24H DB 0FFH, 30H, 0FFH, 19H, 0FFH, 12H DB 0FFH, 02H, 0FFH, 78H, 0FFH, 00H DB 0FFH, 10H, 0F9H, 40H, 0F9H, 79H DB 0F9H, 24H, 0F9H, 30H, 0F9H, 19H DB 0F9H, 12H, 0F9H, 02H, 0F9H, 18H DB 0F9H, 00H, 0F9H, 10H, 0A4H, 40H DB 0A4H, 79H, 0A4H, 24H, 0A4H, 30H DB 0A4H, 19H, 0A4H, 12H, 0A4H, 02H DB 0A4H, 78H, 0A4H, 00H, 0A4H, 10HEND. ;程序结束 开 始主程序框图:P1 口 全 置1 关 闭 显 示 个位送“0”,十位全灭(送FF) 设定中断方式,下 降沿有效 开 四 个 中 断 关 提 示 音 十位位码取低电平(即0送到p3.0口) 十位字符码送P0口 延 时 十位位码取高电平(即1送P3.0口) 个位位码去低电平(即0送P3.1口) 个位字符码送P0口 延 时 个位位码取高电平(即1送P3.1口) 主程序:BEEP BIT 00HORG 0000HLJMP MAIN ORG 0003H ;定义四个中断的入口地址 LJMP STARTORG 000BHLJMP STARTORG 0013HLJMP START1ORG 001BHLJMP START3ORG 0030HMAIN : MOV P1, #0FFH ;P1口全置1 SETB P3.0 ;串行输入端置1 SETB P3.1 ;串行输出端置1 CLR BEEP ;清零 MOV R0, #40H ;个位送“0” MOV R1, #0FFH ;十位全灭 MOV IP, #01H MOV IE, #8FHLOOP: CLR P3.6 ;串行输入端清零 MOV P0, R1 LCALL DEL ;延时 SETB P3.0 CLR P3.1 MOV P0, R0 LCALL DEL ;延时 SETB P3.1 ;串行输出端置1 SJMP LOOP延时程序:开始20H送R449送R3(R3)1=0?(R4)1=0?返回DEL: MOV R4, #20H ;立即数送R4DLY1: MOV R3, #49 ;立即数送R4DLY2: DJNZ R3, DLY2 ;(R3)1不为0,继续 DJNZ R4, DLY1 ;(R4)1不为0,继续 RET ;返回显示处理程序: 开始表首址送到DPTR(R7)送A,立即数10送B秒数分解成十位,个位十位值=0?0AH送A(不显示)取十位字符码送R1B 送 A取个位字符码送R0返回DISP: MOV DPTR,#TAB MOV A,R7 ;(R7)送A,立即数10送B MOV B,#10 ;秒数分解成十位,个位 DIV AB CJNZ A,#00H,MLR MOV A,#0AHML12:MOV A,A+DPTR MOV R0,A ;取个位字符码送R0 RETTAB:DB 00H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H,0FFHINT0中断服务程序:开始关中断P1口数据送A(A)=FEH?1字符码送P0口P2.0置0亮灯(A)=FDH?“2”字符码送P0口P2.1口置0亮灯(A)=FBH?“3”字符码送P0口P2.2口置0,亮灯(A)=F7H?“4”字符码送P0口123P2.3置0,亮灯21(A)=EFH?3“5”字符码送P0口P2.4置0,亮灯(A)=DFH?“6”字符码送P0口P2.5置0,亮灯(A)=BFH?“7”字符码送P0口P2.6置0,亮灯(A)=7FH?“8”字符码送P0口P2.7置0,亮灯P3.6置0,报警返回 START0: CLR EA MOV A, P1ML0: CJNE A, #0FEH, ML1 ;1”字符码送P0口 MOV R0, 0F9H CLR P2.0 SJMP ML8ML1: CJNE A, #0FEH, ML2 ;2字符码送P0口 MOV R0, 0A4H CLR P2.1 SJMP ML8ML2: CJNE A, #0FBH, ML3 ;“3字符码送P0口 MOV R0, 0B0H CLR P2.2 SJMP ML8ML3: CJNE A, #0F7H, ML4 ;“4字符码送P0口 MOV R0, 99H CLR P2.3 SJMP ML8ML4: CJNE A, #0EFH, ML5 ;“5字符码送P0口 MOV R0, 92H CLR P2.4 SJMP ML8ML5: CJNE A, #0DFH, ML6 ;“6字符码送P0口 MOV R0, 82H CLR P2.5 SJMP ML8ML6: CJNE A, #0BFH, ML7 ;“7字符码送P0口 MOV R0, F8H CLR P2.6 SJMP ML8ML7: CJNE A, #7FH, ML8 ;“8”字符码送P0口 MOV R0, 80HML8: CLR P3.6 ;蜂鸣器响 RET IINT1中断服务程序:开始关中断30送R7“0”字符码送R0(个位)“3字符码送R1(十位)T1计数,T0定时80H送TH083H送TH100H送TL1开启T0 T1,中断返回START1: CLR EA ;关中断 MOV R7, #30 ;立即数30送R7 MOV R0, #0L0H MOV R1, #0B0H MOV TMOD, #42H MOV TH0, #80H ;80H送TH0 MOV TH1, #83H ;83H送TH1 MOV TL1, #00H SETB TR0 SETB TR1 SETB EA RET IT0中断服务程序:开始P3.4置1空操作2次(延时)P3.4置0返回START2: SETB P3.4 ;定时/计数器0外部信号输入端置1 NOP NOP CLR P3.4T1中断服务程
展开阅读全文