基于AT89C51单片机的电子抢答器设计.doc_第1页
基于AT89C51单片机的电子抢答器设计.doc_第2页
基于AT89C51单片机的电子抢答器设计.doc_第3页
基于AT89C51单片机的电子抢答器设计.doc_第4页
基于AT89C51单片机的电子抢答器设计.doc_第5页
已阅读5页,还剩45页未读, 继续免费阅读

下载本文档

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

文档简介

基于AT89C51单片机的电子抢答器设计摘 要此次设计提出了用AT89C51单片机为核心控制元件,设计一个简易的抢答器, 本方案以AT89C51单片机作为主控核心,与MAX232、发光二极管、数码管、蜂鸣器等构成四路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时/中断等电路,设计的抢答器具有实时显示抢答选手的号码和抢答时间的特点,还有复位电路,使其再开始新的一轮的答题和比赛,同时还利用C语言编程,使其实现一些基本的功能。本设计的系统实用性强、判断精确、操作简单、扩展功能强。它的功能实现是比赛开始,主持人读完题之后按下总开关,即计时开始,此时数码管开始进行1s的加计时,直到有一个选手抢答时,对应的会在数码管上显示出该选手的编号和抢答所用的时间,同时该选手对应的发光二极管会发出相应的光,蜂鸣器也会发出声音,以提示有人抢答本题,如果在规定的60s时间内没有做出抢答,则此题作废,即开始重新一轮的抢答。关键字:STC89C52单片机、动态显示、中断、按键控制AT89C51 microcontroller based design of electronic ResponderABSTRACTThe design proposed using AT89C51 microcontroller as the core control elements, design a simple Responder, the program is the control center with AT89C51 microcontroller, and MAX232, LED, digital tube, buzzer, etc. posed four Responder to use a single chip delay circuit, button reset circuit, clock circuit, timing / interrupt other circuits, designed Responder Responder players with real-time display number and answer in the time features, but also reset the circuit, it then start a new round of answers and competition, while also using C language programming, to implement some basic functions .The practical design of the system to determine accurate, simple, powerful extensions. Its function is to achieve start of the race, the host read the question after the press the main switch, that time began, this time to begin 1s digital control time increases, until a player Responder, the corresponding pipe will be shown in the digital The players number and the answer in the time spent at the same time the player will be issued corresponding to the corresponding LED light, buzzer will sound to prompt some answer in this question, if there is no provision in the 60s to make answer in time, then This issue aside, began to re-round the Responder.KEY WORDS: STC89C52 microcontroller, dynamic display, interrupt, key control4目录前言1第1章 绪论21.1 单片机抢答器的背景21.2 单片机抢答器的意义21.3 抢答器的应用31.4系统设计要点4第2章 抢答器硬件系统设计52.1系统整体方案设计52.2 抢答器显示模块52.3 控制器模块(单片机的选择)62.4电源方案的选择72.5 键盘的选择82.6蜂鸣器及选择102.7 模块的最终方案10第3章 抢答器电路原理图设计113.1 电源电路设计113.2 复位电路设计113.3 时钟电路设计113.4 输入模块电路设计123.5 显示模块电路设计123.6 声光电路12第4章 抢答器软件系统设计134.1单片机使用资源134.2各模块功能简要介绍134.2.1 显示模块134.2.2 定时模块134.2.3 中断模块134.3 主程序15第5章 系统的仿真195.1 proteus软件的介绍及使用195.1.1 什么是Proteus软件195.1.2 怎样操作Proteus仿真软件195.2 抢答器protenus软件的仿真235.3 系统的调试245.4 软件调试问题及解决25第6章 单片机干扰防护及硬件实现276.1 采用隔离技术276.2 正确的接地措施276.3 设计结论286.4 使用说明286.5 抢答器硬件实现28结论29谢 辞30参考文献31附录33外文资料翻译37前言在电子科学技术高速发展的今天,高科技产品越来越多的应用在我们的日常生活中,每时每秒我们都能感受到产品的更新换代。产品乃至技术革新的日新月有都让人对以相信。象日常我们工作所用的电脑、手机等等,这些高科技产品给我们带来了极大的方便,但这要归功于科学技术的高速发展。数显抢答器是我们所要的毕业设计课题。数显抢答器整个电路包括开关编码电路、译码显示电路、锁存控制电路、复位控制电路和声音提示电路五部分。数显抢答器涉及到模拟电子技术、数字电子技术和电路分析中的相关知识。本文介绍的八路数显抢答器电路设计新颖具有电路结构简单、成本较低、操作方便、灵敏可靠等优点,经使用效果良好,具有较高的推广价值,适用于工厂、学校和电视台等单位常举办各种智力竞赛,为竞赛的公平公正提供有利的保证。第1章 绪论1.1 单片机抢答器的背景 二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系統、家用電器等。各種產品一旦用上了單片機,就能起到使產品升級換代的功效,常在产品名称前冠以形容词“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。在知识竞赛中,特别是做抢答题时,在抢答过程中,为了更确切的知道哪一组或哪一位选手先抢答到题,必须要有一个系统来完成这个任务。若在抢答中,只靠人的视觉(或者是听觉)是很难判断出哪一组(或哪一个选手)先抢答到题的。利用单片机编程来设计抢答器,可以使以上问题得以解决,即使两组的抢答时间相差几微秒,也能轻松的分辨出哪一组(或哪个选手)先抢答到题的。本文主要介绍了抢答器的工作原理及设计,以及它的实际用途。1.2 单片机抢答器的意义本系统采用单片机作为整个控制核心。控制系统的四个模块为:显示模块、存储模块、语音模块、抢答开关模块。该系统通过开关电路四个按键输入抢答信号;利用一个数码管来完成显示功能;用按键来让选手进行抢答,在数码管上显示哪一组先答题的,从而实现整个抢答过程。在知识比赛中, 特别是做抢答题目的时候, 在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。系统工作原理本系统采用89c52单片机作为核心。控制系统的四个模块分别为:存储模块、显示模块、语音模块、抢答开关模块。该抢答器系统通过开关电路四个按键输入抢答信号; 利用一个数码管来完成显示功能。工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理, 输出控制信号,单片机控制的智能抢答器设计。1.3 抢答器的应用随着我国经济和文化事业的发展,在很多公开竞争场合要求有公正的竞争裁决,诸如证券、股票交易及各种智力竞赛等,因此出现了抢答器。抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。因此我们设计了以单片机为核心的新型智能的抢答器,在保留了原始抢答器的基本功能的同时又增加一系列的实用功能并简化其电路结构。抢答器又称为第一信号鉴别器,其主要应用于各种知识竞赛、文艺活动等场合。传统普通抢答器主要存在以下缺陷:(一)、在一次抢答过程中,当出现超前违规抢答时,只能处理违规抢答信号,而对没有违规的有效抢答信号不能进行处理,因而使该次抢答过程变为无效。(二)、当有多个违规抢答时,普通抢答器或采用优先编码电路选择其中一个,或利用抢答电路电子元件的“竞争”选择其中一个。对于后者由于抢答电路制作完毕后电子元件被固定。各路抢答信号的“竞争”能力也被固定,因而本质上也有优先权。普通抢答器存在不公平性。(三)、当有多个违规抢答时,普通抢答器只能“抓住”其中一个而出现“漏洞”。1.4系统设计要点系统设计主要包括硬件和软件两大部分,依据控制系统的工作原理和技术性能,将硬件和软件分开设计。硬件设计部分包括合理选择元器件、绘制电路原理图、绘制线路图,然后对硬件进行调试、测试,以达到设计要求。软件设计部分,首先在总体设计中完成系统总框图和各模块的功能设计,拟定详细的工作计划;然后进行具体设计,包括各模块的流程图,选择合适的编程语言和工具,进行电路模拟仿真等;最后是对软件进行调试、测试,达到所需功能要求。在系统设计中设计方法的选用是系统设计能否成功的关键。硬件电路是采用结构化系统设计方法,该方法保证设计电路的标准化、模块化。硬件电路的设计最重要的选择在于控制的单片机,并确定与之配套的外围芯片,使所设计的系统既经济又高性能。硬件电路设计还包括输入输出接口设计,画出详细电路图,标出芯片的型号、器件参数值,根据电路图在仿真机上进行调试,发现设计不当及时修改,最终达到设计目的。软件设计的方法与开发环境的选取有着直接的关系,本系统由于是采用51系列单片机,因此使用Keil C语言进行开发。此编程工具相比汇编语言具有结构化、适用范围大、可移植性好等特点。本系统软件设计采用模块化系统设计方法,先编写各个功能模块子程序,然后进行组合与调整,经过调试后,达到设计功能要求。第2章 抢答器硬件系统设计2.1系统整体方案设计本设计以AT89C51单片机为核心设计的四路抢答器方案是:主持人按抢答开始键,会有提示音,并立刻进入抢答倒计时(预设60s抢答时间),如有选手抢答,会有提示音,并会显示其号数及所用时间,不进行抢答查询,所以只有第一个按抢答的选手有效。倒数时间到小于5s会每秒响一下提示音。 如倒计时期间,主持人想停止倒计时可以随时按停止按键,系统会自动进入准备状态,等待主持人按抢答开始进入下次抢答计时。 如果主持人未按抢答开始键,而有人按了抢答按键,犯规抢答,LED上不断闪烁FF和犯规号数并响个不停,直到按下停止 键为止。2.2 抢答器显示模块显示模块主要是显示抢答的时间,组别号码等。我考虑有以下两种显示方案。方案1:使用液晶屏显示时间。液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影像稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强的特点。但由于只需要显示时间和组别的数字,信息量比较少,且由于液晶是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器的资源占用较多,其成本也偏高。在使用时,不能有静电干扰,否则易烧坏液晶显示芯片,不易维护。方案2:使用传统的数码管显示。数码管(LED)具有:低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护,同时其精度高,称量快,精确可靠,操作简单。数码显示是采用BCD编码显示数字,程序编译容易,资源占用较少。图2-1 七段发光二极管根据以上的论述,采用方案二,如图(2-1)2.3 控制器模块(单片机的选择)ATMEL公司的89C52单片机,是增强型RISC内载Flash的单片机,芯片上的Flash存储器附在用户的产品中,可随时编程,再编程,使用户的产品设计容易,更新换代方便。89C52单片机采用增强的RISC结构,使其具有高速处理能力,在一个时钟周期内可执行复杂的指令,每MHz可实现1MIPS的处理能力。89C52单片机工作电压为2.76.0V,可以实现耗电最优化。89C52的单片机广泛应用于计算机外部设备,工业实时控制,仪器仪表,通讯设备,家用电器,宇航设备等各个领域.由于单片机的种类很多,在选择单片机时要依据实际设计要求选择合适的单片机。例如当设计仅仅需要一个单片机定时器那么选择89C1051或89C2051即可,而不选择89C52,因为后者的价格较高一些。当然若程序和数据区的要求较高那么选择的单片机还要满足程序空间的要求。下面我们来比较89C51和89C52:表2-1 51和52的比较数据存储器程序存储器定时器中断51系列128B4KB2552系列256B8KB38图2-2 51单片机在本课题中,我们选用现在较为流行的51系列单片机,即选用ATMEL公司的STC89C51,如图(2-2)2.4电源方案的选择系统需要多个电源,AT89C51使用5V稳压电源,驱动芯片需要5-50V电压驱动,步进电机等需要12V稳压电源。方案一:采用升压型稳压电路。用两片MC34063芯片分别将3V的电池电压进行直流崭波调压,得到5V和12V的稳压输出。只需使用两节电池,既节省了电池,又减小系统体积重量但该电路供电电流小,供电时间短,无法使相对庞大的系统稳定运作。方案二:采用三端稳压集成7805与7812分别得到5V和12V的稳定电压。利用该方法方便简单,工作稳定可靠。如图(2-3)所示:图2-3 三端稳压电路综上所述,选择方案二,采用三端稳压器电路。2.5 键盘的选择键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。键盘按结构形式可以分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者则用硬件方法来产生键码。在单片机中使用的都是非编码键盘,因为非编码键盘结构简单,成本低廉,非编码键盘的类型很多,常用的有独立式键盘,行列式键盘等。方案1:独立式键盘键盘接口中使用多少根I/O线,键盘中就有几个按键,键盘接口使用了4根I/O口线,该键盘就有4个按键,这种类型的键盘,其按键比较少,且键盘中各按键的工作互不干扰。因此可以根据实际需要对键盘中的按键灵活的编码。如图2-4。 图2-4 独立式键盘 最简单的编码方式就是根据I/O输入口所直接反映的相应按键,按下的状态进行编码,称按键直接状态码,对于这样编码的独立式键盘,CPU可以通过直接读取I/O口的状态来获取按键的直接状态编码值,根据这个值直接进行按键识别,这样形式的键盘结构简单,按键识别容易。独立式键盘的缺点是需要占用比较多的I/O口线,当单片机应用系统键盘中需要的按键比较少或I/O口线比较富余时,可以采用这样类型的键盘。方案2:行列式键盘行列式键盘是用N条I/O线作为行线,M条I/O线作为列线组成的键盘,在行线和列线的每个交叉点上设置一个按键,按键的个数是M*N个。这种形式的键盘结构,能够有效的提高单片机系统中I/O的利用率,列线接P1.0P1.3行线接P1.4P1.7,行列式适用于按键输入多的情况。CPU对键盘的扫描可以采用程序控制的随机方式,即只有在CPU空闲时才去扫描键盘,响应操作人员的键盘输入,但CPU在执行应用程序的过程中,不能响应键盘输入,对键盘的扫描可以采用定时方式,即利用单片机内部定时器每隔一定时间对键盘扫描一次,这样控制方式,不管键盘上有无键闭合,CPU总是定时的关心键盘状态。在大多数情况下,CPU对键盘可能进行空扫描。为了提高CPU的效率而又能及时响应键盘输入,可以采用中断方式,既CPU平时不必扫描键盘,只要当键盘上有键盘闭合时就产生中断请求,向CPU申请中断后,立即对键盘上有操作的键盘进性扫描,识别闭合键,并做相应的处理。如图2-2所示。0123456789ABCDEFP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7图2-4b 行列式盘根据以上的论述,采用方案一,在本系统中采用了独立式键盘,其按键比较少,且键盘中各个按键的工作互不干扰。2.6蜂鸣器及选择 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机,打印机,复印机,报警器,电子玩具,汽车电子设备,电话机,定时器等。电子产品中做发声器件,主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器有两类3大品种一类是压电式,一类是电磁式,电磁式又有两大品种,铁振膜式和动圈式,二者原理一样只是结构不同。所有蜂鸣器都有两种类型;纯蜂鸣器和带驱动的蜂鸣器,蜂鸣器都是因音频信号驱动的,通上支流电就可工作而已。1、压电式蜂鸣器 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.515支流工作电压),多谐振荡器起振,输出1.52.5kHz的音频信号,阻抗匹配器推动压电蜂鸣片发声。压电蜂鸣片由铅钛酸铅式铌镁酸铅压电陶瓷材料制成。 2、电磁式蜂鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振荡膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。根据以上的叙述,本设计采用方案二。2.7 模块的最终方案主控制器模块:采用AT89C51单片机控制。抢答器显示模块:数码管显示。电源方案的选择:三端稳压器电路。抢答器键盘模块:独立式键盘。蜂鸣器的选择:电磁式蜂鸣器。10洛阳理工学院毕业设计(论文)第3章 抢答器电路原理图设计3.1 电源电路设计由于单片机工作时需要的+5V电压,所以在设计电源电路时,需要一个电子元件能够提供+5V电压,本设计采用最典型的7805提供的电压,即在7805的1脚和公共接地端之间接入0.47uF的电容,在公共接地端和三脚+5V电压输出端之间接入0.15uF的电容。3.2 复位电路设计 AT89C51的复位输入引脚RST为AT89C51提供了初始化的手段,可以使程序从指定处开始执行,在AT89C51的时钟电路工作后,只要RST引脚上出现超过两个机器周期以上的高电平时,即可产生复位的操作,只要RST保持高电平,则AT89C51循环复位,只有当RST有高电平变低电平以后,AT89C51才从0000H地址开始执行程序,本系统采用按键复位方式的复位电路。3.3 时钟电路设计AT89C51的时钟可以由两种方式产生,一种是内部方式,利用芯片内部的振荡电路;另外一种为内部方式,本论文根据实际需要和方便,采用内部振荡方式。AT89C51内部有一个用于构成振荡器的高增益方向放大器,引脚ATAL1和XTAL2分别是此放大器的输入端和输出端,这个放大器与作为反馈元件的片内晶体或陶瓷谐振器一起构成一个自激振荡器。 AT89C51虽然有内部振荡电路,但要形成时钟,必须外接元件所以实际构成的震荡时钟电路,外接晶体以及电容C1和C2构成并联谐振电路接在放大器的反馈电路中。对接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的高低、振荡器的稳定性、起针的快速性和温度的稳定性。晶体频率可在1.2MHz-12MHz之间任选,电容C1-C2的典型值在20pF-100Pf 之间任选,考虑到本系统对于外接晶体的频率稳定性要求不高,所以采取比较廉价的12MHz陶瓷谐振器,根据调试电容选择30pF。3.4 输入模块电路设计抢答器输入信号由四个小按钮控制。当有键按下的时候,就产生了有效地输入信号,本文使用了上拉电阻把输入信号先嵌位在高电平,当有按键按下的时候便使与这个按键相连的引脚变为低电平,产生一个低电平的输入信号,本模块有4个10K的电阻和4个按钮构成。3.5 显示模块电路设计该模块由4个共阴极7段LED数码管和MAX7219锁存器构成,其位选线分别连接于MAX7219的DIG0-DIG3,此数据驱动线路置显示器共阴极为低电平。关闭时7219此管脚输出高电平。每位的段选线(a-dp)分别于MAX7219的输出连接,显示字符一确定,相应锁存器的段码输出将维持不变,直到送入另一个段码为止,且显示的亮度高;静态显示时,较小的电流能得到较高的亮度且字符不闪烁,所以可有MAX7219的输出口直接驱动。3.6 声光电路这里的声音电路是指实现报警的,本设计使用的是一个蜂鸣器报警器,当莫一按键按下蜂鸣器报警,当用人抢答时同时报警警告。抢答器同时供4名选手或4个代表队比赛,分别用4个按钮S1S4表示。设置一个系统清除和抢答控制按扭,该按扭由主持人控制。抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。12第4章 抢答器软件系统设计4.1单片机使用资源本设计利用了单片机的复位电路以及晶振电路,并且使用了P0口来控制数码管的段选, P1口作抢答按键接口和P3.6外接蜂鸣器 ,P3.0和P3.1分别控制抢答的开始和停止。 4.2各模块功能简要介绍4.2.1 显示模块首先在主程序中启动定时器显示P PP,再通过判断是否是正常抢答,是则显示选手号及时间,否则显示* PP,*为选手号,所以可通过显示来判断抢答状态及总体情况。 4.2.2 定时模块设计中,一开始就运行定时器,以开始显示PPP.如果想重新计数,重置TH1/TL1就可以了。 主持人按下开始抢答按钮,倒计时60S,这里我们采用的用定时器1工作方式1定时50ms,在中断程序设置变量叠加的方法,来得到一秒的基本定时,定时器定时一秒之后,单片机通过数码管显示出来。4.2.3 中断模块中断是对定时器完成基本定时溢出时的处理,即硬件自动将定时器相应的溢出标志位清零,完成基本定时的叠加来得到60S定时时间。46图4-1 抢答器主程序流程图图4-2 抢答器定时器中断流程图图4-3 外部中断程序图4.3 主程序我们组所设计的抢答器的程序采用的是C程序设计,C语言的显著特点是用二进制来编写程序,程序的各个部分除了必要的信息交流外彼此之间相互独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。本次设计的主程序中包括时钟设计程序,定时器中断子程序,LED显示程序以及按键控制子程序,程序设计如下: #includesbit k0=P10;sbit k1=P11;sbit k2=P12;sbit k3=P13;sbit d0=P14;sbit d1=P15;sbit d2=P16;sbit d3=P17;sbit B0=P37;sbit l0=P20;sbit l1=P22;sbit l2=P23;sbit l3=P24;sbit kz=P30;unsigned char qiangdanum=0x3f;unsigned char code table=0x3f,0xxx,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;unsigned char ge=0,shi=0;unsigned int num=0,time=0;void display(); /*显示函数*/void delay(unsigned int);main()TMOD=0X01; /*采用方式一,即十六位计数器*/TH0=(65536-50000)/256; /*设置初始值*/TL0=(65536-50000)%256;IT0=0;EA=1;ET0=1; /*开启总中断源*/EX0=1; /*启动外部中断0*/while(1)display(); if(kz=0) TR0=1; /*开启定时器0中断*/ if(num=20) num=0; time+; if(time=60) /*60秒的计时*/ time=0; void exter0() interrupt 0 /*外部中断程序*/EA=0;l0=0; if(k0=0) /*开关0按下*/d0=0;qiangdanum=1;B0=1; /* 1号选手抢答成功,数码管显示1,蜂鸣器响,第1个二极管亮*/if(k1=0) /*开关1按下*/ d1=0;qiangdanum=2;B0=1; /* 2号选手抢答成功,数码管显示2,蜂鸣器响,第2个二极管亮*/if(k2=0) /*开关2按下*/ d2=0;qiangdanum=3;B0=1; /* 3号选手抢答成功,数码管显示3,蜂鸣器响,第3个二极管亮*/if(k3=0) /*开关3按下*/ d3=0;qiangdanum=4;B0=1; /* 4号选手抢答成功,数码管显示4,蜂鸣器响,第4个二极管亮*/void time0() interrupt 1num+;TH0=(65536-50000)/256;TL0=(65536-50000)%256; /*1秒定时函数*/void delay(unsigned int z)unsigned int x,y; for(x=z;x0;x-) for(y=110;y0;y-); /*延迟函数*/void display(void) shi=time/10;ge=time%10;P2=0xef;P0=tablege;delay(5);P2=0xf7;P0=tableshi;delay(5);P2=0xFE;P0=tableqiangdanum;delay(5); /*显示函数:来显示0-60的计数*/第5章 系统的仿真5.1 proteus软件的介绍及使用5.1.1 什么是Proteus软件Proteus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。5.1.2 怎样操作Proteus仿真软件在进行下面的操作前,我先说明一点:我的Proteus版本是7.1,如果你使用的是6.9以前的版本,可能你发现在鼠标操作上会略有不同。这主要表现在6.9以前的版本鼠标左右键的作用与一般软件刚好相反,而7.0以后已经完全改过。首先我们把压缩文件解压到D盘,然后找到ISIS Manage找到Find key 然后再安装即可使用,双击打开桌面是上的那个软件即可使用。下面我们首先来熟悉一下Proteus的界面。Proteus是一个标准的Windows窗口程序,和大多数程序一样,没有太大区别,其启动界面如下图所示:图5-1 proteus 启动界面图如图中所示,区域为菜单及工具栏,区域为预览区,区域为元器件浏览区,区域为编辑窗口,区域为对象拾取区,区域为元器件调整工具栏,区域为运行工具条。下面我们就以建立一个和我们在Keil简介中所讲的工程项目相配套的Proteus工程为例来详细讲述Proteus的操作方法以及注意事项。首先点击启动界面区域中的“P”按钮(Pick Devices,拾取元器件)来打开“Pick Devices”(拾取元器件)对话框从元件库中拾取所需的元器件。对话框如下图所示:图5-2 用proteus软件查找元器件在对话框中的“Keywords”里面输入我们要检索的元器件的关键词,比如我们要选择项目中使用的AT89C51,就可以直接输入。输入以后我们能够在中间的“Results”结果栏里面看到我们搜索的元器件的结果。在对话框的右侧,我们还能够看到我们选择的元器件的仿真模型、引脚以及PCB参数。搜索到所需的元器件以后,我们可以双击元器件名来将相应的元器件加入到我们的文档中,那么接着我们还可以用相同的方法来搜索并加入其他的元器件。当我们已经将所需的元器件全部加入到文档中时,我们可以点击“OK”按钮来完成元器件的添加。添加好元器件以后,下面我们所需要做的就是将元器件按照我们的需要连接成电路。首先在元器件浏览区中点击我们需要添加到文档中的元器件,这时我们就可以在浏览区看到我们所选择的元器件的形状与方向,如果其方向不符合你的要求,你可以通过点击元器件调整工具栏中的工具来任意进行调整,调整完成之后在文档中单击并选定好需要放置的位置即可。接着按相同的操作即可完成所有元器件的布置,接下来是连线。事实上Proteus的自动布线功能是如此的完美以至于我们在做布线时从来都不会觉得这是一项任务,而通常像是在享受布线的乐趣。布线时我们只需要单击选择起点,然后在需要转弯的地方单击一下,按照你所需走线的方向移动鼠标到线的终点单击即可。本例我们布线的结果如下图所示(仿真我们在上面的Keil操作介绍中的简单例子)。因为该工程十分简单,我们没有必要加上复位电路,所以这点在图中予以忽略,请大家注意。除此以外,你可能还发现,单片机系统没有晶振,这一点你需注意。事实上在Proteus中单片机的晶振可以省略,系统默认为12MHz,而且很多时候,当然也为了方便,我们只需要取默认值就可以了。Proteus中单片机芯片默认已经添加电源与地,所以我们可以省略。然后在添加电源与地以前,我们先来看一下上面第一个图中区域的对象拾取区,在这里只说明本文中可能会用得到的以及比较重要的工具。l:(Selection Mode)。选择模式,通常情况下我们都需要选中它,比如布局时和布线时。l :(Component Mode)。组件模式,点击该按钮,能够显示出区域中的元器件,以便我们选择。l :(Wire Label Mode)。线路标签模式,选中它并单击文档区电路连线能够为连线添加标签。经常与总线配合使用。l :(Text Script Mode)。文本模式,选中它能够为文档添加文本。l :(Buses Mode)。总线模式,选中它能够在电路中画总线。关于总线画法的详细步骤与注意事项我们在下面会进行专门讲解。l :(Terminals Mode)。终端模式,选中它能够为电路添加各种终端,比如输入、输出、电源、地等等。l :(Virtual Instruments Mode)。虚拟仪器模式,选中它我们能够在区域中看到很多虚拟仪器,比如示波器、电压表、电流表等等。关于它们的用法我们会在后面的相应章节中详细讲述。添加电源:首先点击,选择终端模式,然后在元器件浏览区中点击POWER(电源)来选中电源,通过区域中的元器件调整工具进行适当的调整,然后就可以在文档区中单击放置电源了。连接好电路图以后我们还需要做一些修改,由上5-1-3图我们可以看出,图中的R1电阻值为10k,这个电阻作为限流电阻显然太大,将使发光二极管D1亮度很低或者根本就不亮,影响我们的仿真结果。故要进行修改,修改方法:首先我们双击电阻图标,这时软件将弹出“Edit Component”对话框(见下图所示的对话框),对话框中的“Component Referer”是组件标签之意,可以随便填写,也可以取默认,但要注意在同一文档中不能有两个组件标签相同;“Resistance”就是电阻值了,我们可以在其后的框中根据需要填入相应的电阻值。填写时需注意其格式,如果直接填写数字,则单位默认为;如果在数字后面加上K或者k,则表示k之意。这里我们填入220,表示220。修改好各组件属性以后就要将程序(HEX文件)载入单片机了。首先双击单片机图标,系统同样会弹出“Edit Component”对话框,如下图。在这个对话框中我们点击“Program files”框右侧的,来打开选择程序代码窗口,选中相应的HEX文件后返回,这时,按钮左侧的框中就填入了相应的HEX文件,我们点击对话框的“OK”按钮,回到文档,程序文件就添加完毕了。图5-4 装载程序装载好程序,我们就可以进行仿真了。首先来熟悉一下上面第一个图中区域的运行工具条。因为比较简单,我们只作一下介绍。工具条从左到右依次是“Play”、“Step”、“Pause”、“Stop”按钮,即运行、步进、暂停、停止。下面我们点击“Play”按钮来仿真运行,效果如下图所示,可以看到系统按照我们的程序在运行着,而且我们还能看到其高低电平的实时变化。如果我们已经观察到了结果就可以点击“Stop”来停止运行。5.2 抢答器protenus软件的仿真绘制抢答器的软件仿真图步骤分一下四步:(1)、查找所需要的元器件;(2)、根据电路图进行连线;(3)、l是用来写线所对应的坐标,即下图所示的P1.1等坐标;(4)、下载所写完的C程序即可以仿真。通过以上步骤,来实现抢答器设计的仿真实现,仿真如下图所示:图5-2-1 抢答器的proteus仿真图5.3 系统的调试系统调试包括硬件调试和软件调试,而且两者是密不可分的。我们设计好的硬件电路和软件程序,只有经过联合调试,才能验证其正确性;软硬件的配人情况以及是否达到设计任务的要求,也只有经过调试,才能发现问题并加以解决、完善,最终开发成实用产品。硬件调试分单元电路调试和联机调试,单元电路试验在硬件电路设计时已经进行,这里的调试只是将其制成印刷电路板后试验电路是否正确,并排除一些加工工艺性错误(如错线、开路、短路等)。这种调试可单独模拟进行,也可通过开发装置由软件配合进行。硬件联机调试则必须在系统软件的配合下进行。软件调试一般包括分块调试和联机调试两个阶段。程序的分块调试一般在单片机开发装置上进行,可根据所调程序功能块的入口参量初值编制一个特殊的程序段,并连同被调程序功能块一起在开发装置上运行;也可配合对应硬件电路单独运行某程序功能块,然后检查是否正确,如果执行结果与预想的不一致,可以通过单步运行或设置断点的方法,查出原因并加以改正,直到运行结果正确为止。这时该 程序功能块已调试完毕,可去掉附加程序段。其它程序功能块可按此法进行调试。程序联机调试就是将已调试好的各程序功能块按总体结构联成一个完整程序,在所研制的硬件电路上运行。从而试验程序整体运行的完整性、正确性和与硬件电路的配合情况。在联调中可能会有某些支路上的程序、功能块因受条件制约而得不到相应的输入参数,这时,调试人员应创造条件进行模拟调试。在联调中如发现硬件问题也应及时修正,直到单片机系统的软件、硬件全部调试成功为止。系统调试完成后,还要进行一段时间的试运行,从而检验系统的稳定性和抗干扰能力,验证系统功能是否达到设计要求,是否达到预期的效果。5.4 软件调试问题及解决首先对所用软件及使用方法介绍如下:1、Keil是德国开发的一个51单片机开发软件平台,最开始只是一个支持C语言和汇编语言的编译器软件。后来随着开发人员的不断努力以及版本的不断升级,使它已经成为了一个重要的单片机开发平台,不过KEIL的界面并不是非常复杂,操作也不是非常困难,很多工程师的开发的优秀程序都是在KEIL的平台上编写出来的。可以说它是一个比较重要的软件,熟悉他的人很多很多,用户群极为庞大,要远远超过伟福等厂家软件用户群,操作有不懂的地方只要找相关的书看看,到相关的单片机技术论坛问问,很快就可以掌握它的基本使用了。2、 总调,即应用软件的链接调试,程序固化,软、硬件结合的应用系统。软硬件联合仿真系统由一个硬件执行环境和一个软件执行环境组成,通常软件环境和硬件环境都有自己的除错和控制界面,Keil与Proteus的整合调试可以实现系统的总调,在该系统中,Keil作为软件调试界面,Proteus作为硬件仿真和调试界面,下面说一下如何在keil中调用proteus进行MCU外围器件的仿真。(1)、安装keil 与 proteus。(2)、把安装proteus MODELS目录下 VDM51.dll文件复制到Keil安装目录的 C51BIN目录中。(3)、修改keil安装目录下 Tools.ini文件,在C51字段加入TDRV5=BINVDM51.DLL (Proteus VSM Monitor-51 Driver),保存。(注意:不一定要用TDRV5,根据原来字段选用一个不重复的数值就可以了。引号内的名字随意)3、打开proteus,画出相应电路,在proteus的debug菜单中选中use remote debug monitor4、在keil中编写C语言程序5、进入KEIL的project菜单option for target 工程名。在DEBUG选项中右栏上部的下拉菜单选中 Proteus VSM Monitor-51 Driver。6、在keil中进行debug吧,同时在proteus中查看直观的结果(如LCD显示)这样就可以像使用仿真器一样调。问题:有时候在自己创建的元器件的管脚上无法实现连线。回答:应该是管脚的间距太小了。因为在ISIS中,每个元器件的管脚都要占据一块区域(就像自己的保护区一样,不容别人随意侵犯),该区域会排斥外部的走线。解决问题的方法是在走线的同时按住 “CTRL”键,直到走线绕过狭窄的保护区。当然最根本的办法是重新编辑元器件,把其管脚间距调大一些。主持人按键来控制总开关,主持人按下开关那么选手开始抢答,此时数码管开始060计数,并且选手们必须在规定的时间内进行抢答,若过了60秒还没抢答那么抢答失效,选手们若有一个在规定的时间内抢答成功则其余的选手不可以再抢答,即该选手抢答成功。第6章 单片机干扰防护及硬件实现单片机应用系统在实际工作过程中,难免会受到各种外部或内部的干扰,使系统发生异常情况。比如,因干扰使程序指针发生错误时,

温馨提示

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

评论

0/150

提交评论