1、基于Proteus的抢答器的设计与仿真摘 要单片机作为微型计算机的一个分支,发展十分迅速,被广泛地应用于各个领域,单片机的发展是控制技术的一次革命。市面上的抢答器各种各样,五花八门,种类繁多。大体上分两种,一种是用数字电路制作的抢答器,另一种是用单片机控制的抢答器。本文介绍了以AT89C51为核心的单片机数字抢答器。该简易设计可以使用一个LED数码管显示获得抢答权的选手号码,另一个进行倒计时,可通过二极管发光及蜂鸣器报警提示。扩展设计可通过编写程序来实现抢答器的基本功能,提供了限时答题,抢答未开始的抢答违规处理,抢答时间和限时的修改。通过一个四位共阴二极管显示器来显示选手编号和倒时时间显示,通
2、过二极管发光及蜂鸣器报警提示。本文详细介绍了两种抢答器的设计过程,通过软件Proteus设计电子电路原理图,最后使用Keil uVision3编写程序,转换成hex的文件使用Proteus进行模拟仿真。关键词:单片机 抢答器 Proteus Keil uVision3The design and simulation of the responder based on ProteusAbstractMicro Controller Unit(MCU)which develops quickly is one embranchment of the Microcomputer. It is us
3、ed widely in various fields. The development of MCU is a revolution of the control technology. The quiz answers in the market are diversity and variety. Generally there are two kinds. One is made by digital circuits. Another is controlled by MCU.This paper introduces an digital quiz answer controlle
4、d by MCU, which core is the AT89C51 chip. The simple design we can use one LED numerical tube to display the number of the player who gets the first right to answer. Another LED numerical tube is used to count down, and can warn through diode radiation and buzzer alarm. Expand design can achieve the
5、 variety of functions through programming. It provides limited answer; the responder on illegal processing vies to answer first. To modify the vies to answer first time and restricted time. Though a four public cathode diodes monitor to display contestants numbers and countdown .And can warn through
6、 diode radiation and buzzer alarm. This paper introduces the process of the design of the two quiz answers in detail. Draw the electronics principle schema with the Proteus. Finally write the procedures use the software which is called Keil uVision3. Then use the Proteus to simulateKey words:MCU; Qu
7、iz answer; Proteus; Keil uVision3摘 要IABSTRACTII第一章概述111单片机简介112单片机的发展和应用领域113单片机抢答器简介314 Proteus软件的简介3第二章 相关元器件简介521 AT89C51功能简述522 AT89C51引脚功能说明623七段数码管简介7第三章 方案设计831设计要求832设计思想833方案论证9第四章 硬件设计1041简易方案电路原理图设计1042扩展方案电路原理图设计13第五章 软件设计1851设计思想以及流程图1852中断分析2253部分代码设计24第六章 系统的仿真和调试2661 Proteus软件的使用介绍26
8、62系统的调试29第七章 总结与展望3171总结3172 展望31参考文献33致谢34III南京工业大学本科生毕业设计(论文)第一章概述11单片机简介单片微机(Single-Chip Microcomputer)简称单片机,统称微型处理部件(Micro Controller Unit 简写MCU),是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),可能还包括定时/计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路
9、(PWM),模拟多路转换器及A/D转换器等电路集成到一块芯片上,构成一个最小而完善的计算机系统。这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对提及要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74
10、系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板,但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别,只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性。12单片机的发展和应用领域1946年第一台电子计算机诞生至今,只有50年的时间,依靠微电子技术和半导体技术的进步,从电子管、晶体管、集成电路、大规模集成电路,现在一块芯片上完全可以集成几百万甚至上千万只晶体管,使得计算机体积更小,功能更强。1976年美国INTEL公司推出了MCS-48单片机,这个时期的单片机才是真正的8位单片微型计算机,并推向市场。1980年美国INTEL
11、公司又推出了MCS51单片机,与MCS48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品。MCS-51把微型计算机的主要部件都集成在一块芯片上,使得数据传送距离大大缩短,可靠性更高,运行速度更块。由于属于芯片化的微型计算机,各功能部件在芯片中的布局和结构达最优化,抗干扰能力加强,工作亦相对稳定。因此,在工业测控系统中,使用单片机是最理想的选择。单片机属于典型的嵌入式系统,所以它是低端控制系统最佳器件。8051是MCS-51系列单片机中的代表产品,它内部集成了功能强大的中央处理器,包含了硬件乘除法器、
12、21个专用控制寄存器、4kB的程序存储器、128字节的数据存储器、4组8位的并行口、两个16位的可编程定时/计数器、一个全双工的串行口以及布尔处理器。8051中还集成了各种中断源,用户可十分方便地控制和使用其功能,使得它的应用范围加大,可以说它可以满足绝大部分的应用场合。8031单片机是INTEL公司生产的MCS-51系列单片机中的一种,除无片内ROM外,其余特性与MCS-51单片机基本一样。1982年以后,16位单片机问世,代表产品是INTEL公司的MCS-96系列。现在ATMEL公司的功能强大、低价位的AT89S51单片机占主流地位,可提供许多高性价比的应用场合,可灵活应用于各种控制领域。
13、此期间,单片机园地里,单片机品种异彩纷呈,争奇斗艳。有8位、16位,甚至32位机,但8位单片机仍以它的价格低廉、品种齐全、应用软件丰富、支持环境充分、开发方便等特点而占着主导地位。而INTEL公司凭着他们雄厚的技术,性能优秀的机型和良好的基础,目前仍是单片机的主流产品。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:1. 在智能仪器仪表上的应用:如精密的测量设备(功率计,示波器,各种分析仪)。2. 在工业控制中的应用:如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。3. 在家用电器中的应
14、用:从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤,五花八门,无所不在。4. 在计算机网络和通信领域中的应用:从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。5. 单片机在医用设备领域中的应用:如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。13单片机抢答器简介在知识竞赛中,特别是做抢答题时,在抢答过程中,为了更确切的知道哪一组或哪一位选手先抢答到题,必须要有一个系统来完成这个任务。若在抢答中,
15、只靠人的视觉或者是听觉是很难判断出哪一组或哪一个选手先抢答到题目的。抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。利用单片机编程来设计抢答器,可以使以上问题得以解决,即使两组的抢答时间相差几微秒,也能轻松的分辨出哪一组或哪个选手先抢答到题目的。因此我们设计了以单片机为核心的新型的抢答器,在保留了原始抢答器的基本功能的同时又增加一系列的实用功能并简化其电路结构。抢答器又称为第一信号鉴别器,其主要应用于各种知识竞赛、文艺活动等场合。14 Proteus软件的简介Proteus软件是Labcenter Electronics公司的一款
16、电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。它除了具有和其它EDA 工具一样的原理布图、PCB 自动或人工布线及电路仿真的功能外,其革命性的功能是,它的电路仿真是交互的,可视化的,针对微处理器的应用,还可以直接在基于原理图的
17、虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,可以测量仿真的波形及记录仿真数据。在不需要硬件设备投入的情况下,Proteus 软件可以建立完整的电子学习设计开发环境,缩短研发周期,并且降低开发成本。Proteus 组合了高级原理布图、混合模式SPICE 仿真,PCB 设计以及自动布线来实现一个完整的电子设计系统。此系统受益于多年来的持续开发,被电子世界在其对PCB 设计系统的比较文章中评为最好产品“The Route to PCB CAD”。Proteus 产品系列也包含了我们革命性的VSM 技术,用户可
18、以对基于微控制器的设计连同所有的周围电子器件一起仿真。用户甚至可以实时采用诸如LED/LCD、键盘、RS232 终端等动态外设模型来对设计进行交互仿真。其功能模块:个易用而又功能强大的ISIS 原理布图工具;PROSPICE 混合模型SPICE 仿真; ARES PCB 设计。PROSPICE 仿真器的一个扩展PROTEUS VSM:便于包括所有相关的器件的基于微处理器设计的协同仿真。此外,还可以结合微控制器软件使用动态的键盘,开关,按钮,LED 甚至LCD 显示CPU 模型。33第二章 相关元器件简介本设计将采用AT89C51芯片,AT89C51是美国ATMEL公司生产的低电压、高性能CMO
19、S8位单片机。AT89C51芯片不仅包括CPU、RAM、ROM、定时器、串行口、I/O接口等主要功能部件之外,还有驱动器、锁存器、指令寄存器、地址寄存器等辅助部分。CPU是单片机最核心的部分,是单片机的大脑和心脏,主要完成运算和控制功能。RAM用于存放变化的数据,其地址空间为256个RAM单元,但其中能作为数据存储器供用户使用的仅有前面128个,后128个被专用寄存器占用。ROM用于存放程序和固定不变的常数等等。通常采用只读存储器,且其有多种类型,在89系列单片机中全部采用闪存、定时/计数器用于实现定时和计数功能。21 AT89C51功能简述AT89C51提供以下标准功能:4K字节Flash闪
20、存存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。支持两种软件可选的节电工作方式,空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作,掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到一个硬件复位。AT89C51采用40Pin封装的双列直接DIP结构。40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。AT89C51中有一个用与构成内部振荡器的高增益反相放大器,引
21、脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。外接石英晶体或陶瓷谐振器及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,推荐电容使用30pF10pF。而如使用陶瓷谐振器建议选择40pF10F。22 AT89C51引脚功能说明图2-1 AT89C51的引脚图RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上的高电平将单片机复位。/VPP:外部访问允许
22、。要使CPU只访问外部程序存储器(地址0000HFFFFH),EA端就要保持低电平(接地)。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上12V的编程电压VPP。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。P0口:P0口是一组双向I/O口,即地址/数据总线复用口。P1口:P1口是一组具有内部上拉电阻的8位双向I/O口。P2口:P2口也是一组具有内部上拉电阻的8位双向I/O口,在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX DPTR 指令)时,P2口送出高8位地址数据。P3
23、口:P3是一组具有内部上拉电阻的8位双向I/O口, P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能。P3口第二功能:P3.0第二功能RXD串行输入口,P3.1第二功能串行输出口,P3.2第二功能外中断0,P3.3第二功能外中断1,P3.4第二功能T0定时/计数器0,P3.5第二功能T1定时/计数器1,P3.6第二功能外部数据存储器写选通,P3.7第二功能外部数据存储器读选通。23七段数码管简介LED显示器是由发光二极管显示字段的显示器件。由图2-2可知它由8个发光二极管构成,通过不同的组合可用来显示09、AF及小数点“.”等字符。图中dp表示小数点,COM表示公共端。数码管通常有
24、共阴极和共阳极两种型号。共阴极数码管如图2-3所示,它的发光二极管公共端接低电平,当某一发光二极管的阳极连到高电平时,此发光二极管点亮;共阳极数码管如图2-4所示,它的发光二极管是公共端并接到高电平,须点亮的发光二极管阴极接低电平即可。显然,要显示某字形就应使此字形的相应字段点亮,实际就是送一个用不同电平组合代表的数据到数码管。 图2-2数码管引脚图 图2-3 共阴极数码管引脚图图2-4共阳极数码管引脚图第三章 方案设计31设计要求使用AT89C51设计一个能够容许5-8人进行抢答,能显示倒计时,显示抢答选手的号码,在适当的时候会有提示灯和报警声,有复位控制电路。在这个基础上增加一些功能,当有
25、选手违规抢答时显示其号码,抢答之后答题时间限制的倒计时,可以提供抢答时间和答题时间的调整。32设计思想1、简易方案设计思想由于之前生产实习焊接过一个简易抢答器,所以可以参考那个的制作方案。(1). 系统设置复位按钮,按动后,可以开始抢答。(2). 抢答开始时,LED数码管1显示序号“0”,选手抢答实行优先锁存,优先抢答选手的编号一直保持到将系统清除为止。抢答后显示优先抢答者序号,同时发出声响,并且不出现其他后抢答者的序号。(3). 抢答器具有定时抢答功能,本抢答器的时间设定为10秒,当启动“复位”开关后,定时器开始倒计时。(4). 在设定的抢答时间内,选手可以进行抢答,抢答后定时器停止工作,L
26、ED数码管1上显示获得优先答题权的选手号码,LED数码管2显示抢答时间,并保持到按“复位”键。(5). 当设定的10s时间到,而无人抢答时,本次抢答无效,报警器发出声响,并禁止抢答,LED数码管1仍显示“0”,LED数码管2不显示任何数字。2、扩展方案设计思想(1)此抢答器设计使用AT89C51单片机为工作的核心,它主要负责控制各个部分协调工作,在其外围接上复位电路,上拉电阻,数码管,按钮及扬声器。元件主要有:晶振X1,电容C1、C2、C3,上拉电阻RP1,7SEG-MPX4-CC。AT89C51的P1.0-P1.7由选手控制来进行抢答,P0口为数码管的段选口,位选口用的是P2口的低4位, 外
27、部中断0,P3.1控制发光二极管,P3.0抢答开始,P3.2答题开始,P3.3抢答时间调节,P3.4答题时间调节,3.7蜂鸣器的控制口。(2). 蜂鸣器在按下开始之后会出现长鸣,在抢答时间和答题还剩3秒时会响三声,随着时间一秒响一次,当有人违规抢答时会发出一声短促的鸣叫。(3). 数码管采用共阴极七段显示,其内部发光二极管为共阴极接低电平。当Proteus模拟开始之后四个数码管一三四分别显示“F”,当按下开始之后,显示初始设置的时间开始倒计时,当有人抢答,显示其相应号码,并显示抢答停止的时间,当按下答题开始之后,同样显示倒计时,此时抢答键无效,当结束后显示三个“F”,时间调节键按一下显示时间加
28、一下之后的时间。(4)此设计还设置了一个违规处理,既开始还没按下就开始抢答,屏幕上将显示违规选手号码和两个“F”。按下复位可恢复到开始前状态。33方案论证该系统采用MCS-51系列单片机AT89C51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改性。 MCS-51单片机特点如下:1、可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU ,程序指令和数据都可以写在ROM许多信号通道都在同一芯片
29、,因此可靠性高。2、易扩充:单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。3、 控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。该方案不但从性能上优越,而且在使用上及其功能的实现上都较简洁,并且由于单片机具有优越的高集成电路性,使其工作速度更快、效率更高。另外AT89C51单片机采用12MHz的晶振,提高了信号的测量精度,并且使该系统可以通过软件改进来扩展功能。南京工业大学本科生毕业设计(论文)第四章 硬件设计41简易方案电路原理图设计在使用Proteus软件进行电路原理图绘制之前先手画简化的原理图,如图
30、4-1所示:P1P0 INT1AT89C51 P3.5 P3 P2 按键组LED灯组 蜂鸣器LD2 LD1图4-1简易方案原理设计图各部件所对应AT89C51的端口如表4-1所示:表4-1 对应AT89C51端口控制元件名对应端口复位开关RST晶振电路XTAL1和XTAL2外部中断P3.3()蜂鸣器P3.5K1K5P1.0P1.4LED1P3.0LED2P3.1LED3P3.4LED4P3.6LED5P3.7LD1的agP0.0P0.6LD2的agP2.0P2.6经过设计分析在Proteus软件中找出相应元件,画出原理图。首先设计各小部分电路然后整体调整。1晶振电路 外部振荡电路单片机必须在A
31、T89C51的驱动下才能工作,在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元。外部震荡电路如图4-2所示:图4-2晶振电路2复位电路 单片机外部中断和内部中断并存,它有硬件复位端RST,只要输入持续4个机器周期的高电平既可实现复位。硬件复位后的各状态可知寄存器和存储器的值都恢复到了初始值,应该为本设计功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能使用软复位。软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程。复位电路虽然简单,但其作用非常重要。一个单片机系统能否正常运行,首先要检查是否复位成功。此复位
32、电路直接接在AT89C51的RST端口上,RST引脚是复位信号的输出端,复位信号是高电平有效,因为使用的是12M晶振,其有效时间应持续24个振荡周期(即两个机器周期)以上。具体设计如图4-3所示。图4-3复位电路3抢答按键电路图4-4是抢答器的输入部分,K1K5是5个按钮,是选手抢答时使用的抢答按键,按键是一种常开型按钮开关,常态时,即没有进行抢答时,按键的两个触点处于断开状态,接的是VCC,是高电平,一旦有人抢答按键了,两个触点闭合,则接通了低电平,转入抢答中断程序。这K1K5分别接在图4-4的15引脚上,用AT89C51的P1.0P1.4来查询按键,分辨出是谁先按抢答键。其中的74LS30
33、是八输入的与非门,74LS04是非门,这两个器件连接在一起实际上实现的是与门的功能,只是本单片机智能数字抢答器是供5人使用的,与门一般没有那么多输入口。引脚6、11、12可以悬空,表示接高电平,为了安全起见,就接VCC,表示“1”。74LS04的输出端2接在抢答器的核心芯片AT89C51的中断1(INT1)上。图4-4 按键及其所连接的输入部分4显示电路 这边显示电路使用的是两个LED数码管显示,只要按照图4-5所示连接好就行。图4-5 显示电路图5指示灯电路图4-6是单片机抢答器的输出部分,当输入部分(P1.0P1.4)中有人按键,输出部分则LED灯点亮,发光二极管一端接着阻值相同的排阻,另
34、一端接在AT89C51的P3.0、P3.1、P3.4、P3.6和P3.7上。 图4-6 LED发光部分整个电路的设计原理图如图4-7所示。图4-7整体电路原理图42扩展方案电路原理图设计扩展方案电路原理图在绘制之前也先手画简化原理图,如图4-8所示:P0 P1 P3.0 P3.2AT89C51RST P3.7 P3.1 P3.3 P3.4 按键组LED显示指示灯抢答开始答题开始抢答时间调节答题时间调节复位蜂鸣器图4-8扩展方案原理设计图各部件对应AT89C51的端口如表4-2所示:表4-2对应AT89C51端口控制元件名对应端口复位开关RST晶振电路XTAL1和XTAL2蜂鸣器P3.7K1K8
35、P1.0P1.7指示灯P3.1开始键P3.0答题开始P3.2抢答时间调节P3.3答题时间调节P3.4LED显示A-GP0.0P0.6通过设计分析在Proteus软件中找出相应元件,画出原理图晶振电路和复位电路的设计和上面一样就不再做相应介绍,下面是不同部分的设计。1抢答按键抢答按键直接连接到单片机的P1端口,一个端口连接一个按键。由线路比较的多,在其中加入了总线,使得线路更加简单,但要注意端口对应按键的标上号。图4-9按键电路2显示电路由于使用的是7SEG-MPX4-CC来显示,而这个是四个共阴极的数码管显示器,由高电平点亮。图4-10显示器所以只需A-G连P0端口的P0.0-P0.6,然后将
36、1234四个位选口连到P2的低四位即可。但是还得加上上拉电阻,这里使用的是排阻RESPACK-7,所谓排阻就是若干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚。图4-11排阻图4-12显示电路3开始、调整、蜂鸣以及指示灯电路功能的完成由程序来实现,首先这边将对应的端口连接好即可。蜂鸣器和指示灯如图4-13所示,这部分的电路如图4-14所示。图4-13蜂鸣器和指示灯图4-14调节部分、蜂鸣器和指示灯的连接电路通过以上的各个电路的设计,最终完成全部的原理图如图4-15所示:图4-15扩展功能后的原理图南京工业大学本科生毕业设计(论文)第五章 软件设计51设计思想以及流程图 抢答器的
37、软件设计主要分主程序、抢答中断、定时中断以及违规处理几个部分。每个功能模块对于整体设计都是非常重要的,单片机AT89C51通过软件程序才能更好的实现抢答器的功能。1简易方案电路的主程序流程开始初始化部分开中断,数码管开始显示倒计时是否有选手抢答关中断,数码管2显示选手的标号数码管1显示停止时间YN倒计时结束数码管1显示0,数码管2无显示。图5-1简易方案电路主程序流程图2简易方案电路外部中断程序图:外部中断0中断K0键按下K1键按下K2键按下K3键按下K4键按下中断返回与K0键对应的发光二极管亮及数码管显示与K1键对应的发光二极管亮及数码管显示与K2键对应的发光二极管亮及数码管显示与K3键对应
38、的发光二极管亮及数码管显示与K4键对应的发光二极管亮及数码管显示YYYYYNNNNN图5-2 简易方案电路外部中断程序图 2扩展方案的主程序流程图:开始初始化读键盘是否有键按下中断条件是否满足复位键进入中断程序NNY判断按键类型Y调用相应调节子程序抢答按键调节按键调用显示抢答违规并报警子程序图5-3扩展方案电路主程序流程图3扩展方案的中断服务程序的流程图:开中断并响声提示设定初值并开始倒计时调用读键程序作为延时程序是否有键按下结束前3秒发出警报,时间到中断返回显示选手号码时间停止,指示灯亮并发出蜂鸣声YN图5-4扩展方案的电路中断流程图4答题小程序的流程图:开中断并响声提示显示选手号码并倒计时
39、结束前3秒发出警报,时间到并响声提示RET图5-5答题小程序流程图5抢答器定时器中断流程图:定时器0中断1秒时间到?中断返回N秒减1数码管显示秒值Y图5-6定时中断流程图52中断分析中断是指由于某种随机事件的发生,计算机暂停现行的程序的运行,转去执行另一个程序,以处理发生的事件,处理完毕后又自动返回原来的程序继续运行。AT89C51有五种中断源:外部中断0、外部中断1、定时器中断0、定时器中断1、串行中断。它们的描述如表5-1所示:表5-1中断介绍中断源符号名称终端引起的原因中断矢量地址INT0外部中断0由P3.2低电平或下降沿信号0003HT0定时器中断0定时/计数器0回零溢出P3.4001
40、3HINT1外部中断1由P3.3低电平或下降沿信号000BHT1定时器中断1定时/计数器1回零溢出P3.5001BHTI/RI串行中断串行口接收或发送完帧数据引起的中断0023H定时器/计数器中所介绍的寄存器:(1)、定时器/计数器控制寄存器TCONTCON的作用是控制定时器的启动、停止,标志定时器的溢出和中断情况;(2)、中断允许控制寄存器IE对中断源的开放或屏蔽是由中断寄存器IE控制的,地址为0A8H,即可以按字节寻址,也可以按位寻址。当单片机复位时,IE被清零。(3)、定时/计数器控制方法定时/计数器的控制方法:在启动定时/计数器工作之前CPU必须将一些命令(称为控制字)写入定时/计数器
41、中,这个过程称为定时/计数的初始化。(定时/计数器的初始化通过定时/计数器的方式寄存器TMOD和控制寄存器TCON来完成。)定时/计数器方式寄存器TMOD:表5-2定时/计数器寄存器TMOD D7 D6 D5 D4 D3 D2 D1 D089HGATEC/M1M0GATEC/M1M0定时器T1定时器T0 选择定时方式表:表5-3定时方式介绍M1M0工作方式功能说明00方式013位计数器01方式116位计数器10方式2自动再装入8位计数器11方式3定时器0:分成两个8位计数器;定时器1:停止计数当T0工作在方式1,每个机器周期包括12个振荡周期,对于1s钟是这样处理的:因为使用的晶振频率为12M
42、Hz,则1个机器周期(Tp)= 12/晶振频率12/12*106 1s,在时钟程序中要计时1s,可以定时为Tc4ms,4ms中断一次,那么只要计数250次,就可以计时1s(250*4ms1s),当然也可以定时为5ms,计数200次也可以计时1s,在本抢答器的程序中,Tc=4ms,选用的计数值XTc / Tp4*10-3 /1*10-64000,则应装入定时/计数器的时间常数为:216400065536400061536F060H,即 TH0=F0H=240,TL0=60H=96。中断传送方式:中断是指由于某种随机事件的发生,计算机暂停现行的程序,转去执行另一程序以处理发生的 事件,处理完毕后又
43、自动返回原来的程序继续运行。它的优点有:(1)、实现分时操作:CPU分为多个I/O设备服务,提高计算机的利用率(提前安排好的函数而中断不同);(2)、实时响应:CPU能够及时处理应用系统的随机事件,系统的实时性大大增强;(3)、可靠性高:CPU具有处理设备故障及掉电等突发性事件的能力,从而使系统的可靠性提高。定时器的初始化步骤:(1)确定工作方式-对TMOD赋值;(2)设置初始值-直接将初值写入THO,TLO;(3)开启定时器的中断-ETO=1 EA=1;(4) 启动定时器-将TR0或TRI置“1”。53部分代码设计我所设计的抢答器的程序采用的是C程序设计这种结构化方式可使程序层次清晰, 便于
44、使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。1简易方案电路的一些代码注释:void init()EA = 1;/初始化中断EX1 = 1;ET0 = 1;IT1 = 0;TMOD = 0x01; /初始化定时器0每20ms中断TH0 = 0xb8;TL0 = 0x00;num = 50; /20ms * 50 = 1stime = 9;P0 = tabletime;P2 = table10;TR0 = 1;2扩展方案电路的部分代码
45、注释:延时函数:void delay(uchar ms)uchar y;for(;ms0;ms-)for(y=120;y0;y-);中断部分:void T0_Init(void)TMOD=0X01; /采用方式一,即十六位计数器TH0=(65536-2000)/256; /设置初始值2msTL0=(65536-2000)%256;TH1=(65536-2000)/256;TL1=(65536-2000)%256;ET0=1; /*开启总中断源*/ET1=1;EA=1;P0=0;第六章 系统的仿真和调试61 Proteus软件的使用介绍在使用前首先要熟悉一下Proteus的界面,所使用的是Proteus7.1,Proteus是一个标准的Windows窗口程序,和大多数程序一样,没