烟台大学单片机课程设计电子秒表设计说明书_第1页
烟台大学单片机课程设计电子秒表设计说明书_第2页
烟台大学单片机课程设计电子秒表设计说明书_第3页
烟台大学单片机课程设计电子秒表设计说明书_第4页
烟台大学单片机课程设计电子秒表设计说明书_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、新编单片机原理及应用课程设计电子秒表说明书 目录一、绪论 (31.1概述 (31.2设计目的 (31.3设计任务和内容 (3二、总体设计及核心器件简介 (42.1总体设计 (42.2硬件设计 (42.3软件设计 (13三、数字秒表的安装与调试 (173.1软件的仿真与调试 (173.2硬件的安装与调试 (173.3汇编程序 (18四、设计体会与总结 (22参考文献 (23第一章绪论1.1概述单片微型计算机简称单片机,又称微控制器,是微型计算机的一个重要分支。单片机是20世纪七十年代中期发展起来的一种大规模集成电路芯片,是集CPU、RAM、ROM、I/O接口和终端系统与同一硅片的器件。20世纪八

2、十年代以来单片机发展迅速各类新产品不断涌现出现许多新产品,出现了许多高性能新型机种现已成为工业控制和各控制领域的支柱产业之一。由于单片机功能强、体积小、可靠性好、价格便宜等独特优点因而受到人们的高度重视并取到了一系列的科研成果,成为传统工业技术改造和新产品更新换代的理想机种,并具有广阔的发展前景。本设计运用所学的单片机知识,将单片机与普通秒表相结合设计了电子秒表,具有显示直观、读取方便、精度高等优良特点,在计时中应用广泛。1.2设计目的加强对51系列单片机的构造了解及应用,熟悉汇编语言或C语言编程,综合掌握和理解设计各部分的工作原理、设计过程、芯片器件的选择方法、模块化编程等多项知识。(1用单

3、片机模拟实现具体应用使个人设计系统能够真正使用;(2把理论知识与实践知识相结合,充分发挥个人能力,并在实践中得到锻炼;(3提高利用已学的知识分析和解决问题的能力;(4提高动手实践能力。1.3设计任务及内容结合教材及参考资料,用80C51单片机模拟实现电子秒表的开启,计时,停止并显示时间等功能。(1填写设计任务书;(2进行总体设计,画出设计原理图;(3用PROTEUS软件画出设计电路图;(4用Keil软件编写程序;(5在PROTEUS里模拟并调试程序达到期望功能。第二章总体设计及核心器件简介2.1 总体设计本设计中包括硬件电路的设计和系统程序的设计。其硬件电路的设计主要包括单片机的选择、显示电路

4、的选择与设计、按键电路的选择与设计、时钟电路的选择与设计、复位电路的选择与设计等。系统程序的设计包括系统程序设计思路、系统资源的分配、汇编程序的设计等。2.2 硬件设计主控制器选用80C51单片机,显示电路采用共阴极LED数码管显示计时时间,四个按键均采用触点式按键。1.利用80C51单片机的定时器/计数器定时和记数的原理,使其能精确计时。利用中断系统使其实现开始暂停的功能。P0口输出段码数据,P2.2-P2.4口作列扫描输出, P1.0、P3.2、P3.3口接三个按钮开关,分别实现电子秒表的启动、开始、暂停功能。电路原理图设计最基本的要求是正确性,其次是布局合理,最后在正确性和布局合理的前提

5、下力求美观。硬件电路图按照图2.1进行设计。 图2.1 数字秒表硬件电路基本原理图2.根据要求知道秒表设计主要实现的功能是计时和显示。因此设置了四个按键和三位数码管显示时间,三个按键分别是启动、开始,停止和复位按键。利用这四个键来实现秒表的全部功能,而三位数码管则能显示00.0-99.9秒的计时。本设计中,数码管显示的数据存放在内存单元7BH-7DH中。其中7BH存放0.1秒位数据,7CH存放1秒位数据,7DH存放10秒位数据,每一地址单元内均为十进制BCD 码。由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM表中。显示时,先取出7BH-7DH某一地址中的数

6、据,然后查得对应的显示用段码,并从P0口输出,P2口将对应的数码管选中供电,就能显示该地址单元的数据值。3.计时采用定时器T0中断完成,定时溢出中断周期为0.1s,当一处中断后向CPU发出溢出中断请求,每发出一次中断请求就对0.1秒计数单元进行加一,达到10次就对1秒位进行加一,依次类推,直到99.9秒重新复位。4.按键的处理。这两个键采用中断的方法来识别,对开始和停止键采用外部中断INT0、INT1的方式,即A、B键分别接P3.2、P3.3口。本课题在选取单片机时,充分借鉴了许多成形产品使用单片机的经验,并根据自己的实际情况,选择了80C51。80C51是MCS-51系列单片机中的一个子系列

7、,是一族高性能兼容型单片机。其内部资源分配和性能如下;8位CPU;寻址能力2X64K;4KB的内部ROM和128B内部RAM;四个8位I/O接口电路;一个串行全双工异步接口;五个中断源和两个中断优先级;采用CMOS工艺电流小,低功耗。80C51各引脚主要功能简介:(1Vss(20脚:接地(2VCC(40脚: 主电源+5V(3XTAL1(19脚:接外部晶体的一端。在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,对于HMOS单片机,该端引脚必须接地;对于CHMOS单片机,此引脚作为驱动端。XTAL2(18脚:接外部晶体的另一端。在片内它是一个振荡电路反相放大器的输出端,振荡电路的频率是晶体

8、振荡频率。若需采用外部时钟电路,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机,此引脚应悬浮。(4 RST(9脚: 单片机刚接上电源时,其内部各寄存器处于随机状态,在该脚输入24个时钟周期宽度以上的高电平将使单片机复位(RESET(5PSEN(29脚: 在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。PSEN端同样可驱动8个LSTTL 负载。我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。(6A

9、LE/PROG(30脚:在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。PSEN端同样可驱动8个LSTTL负载。我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。(7EA/VPP(31脚:当EA端输入高电平时,CPU从片内程序存储器地址0000单元开始执行程序。当地址超出4KB时,将自动执行片外程序存储器的程序。当EA输入低电平时,CPU仅访问片外程序存储器。在对87C51EPROM编程时,此引脚用于施加编程电 压

10、VPP。(8输入/输出引脚:1P0.0P0.7 (39脚32脚2P1.0P1.7 (01脚08脚3P2.0P2.7 (26脚21脚4P3.0P3.7 (10脚17脚图2.2 80C51引脚图1.对于数字显示电路,通常采用液晶显示或数码管显示。对于一般的段式液晶屏,需要专门的驱动电路,而且液晶显示作为一种被动显示,可视性差,不适合远距离观看;对于具有驱动电路和单片机接口的液晶显示模块(字符或点阵,一般多采用并行接口,对单片机的接口要求较高,占用资源多。而数码管作为一种主动显示器件,具有亮度高、响应速度快、防潮防湿性能好、温度特性极性、价格便宜、易于购买等优点,而且有远距离视觉效果,很适合夜间或是

11、远距离操作。因此,本设计的显示电路采用7段数码管作为显示介质。2. 数码管显示可以分为静态显示和动态显示两种。由于本设计需要采用五位数码管显示时间,如果静态显示则占用的口线多,硬件电路复杂。所以采用动态显示。动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。通常各位数码管的段选线相应并联在一起,由一个8位的I/O口控制;各位的公共阴极位选线由另外的I/O口线控制。动态方式显示时,各数码管分时轮流选通,要使其稳定显示必须采用扫描方式,即在某一时刻只选通一位数码管,并送出相应的段码,在另一时刻选通另一位数码管,并送出相应的段码,依此规律循环,即可使各位数码管显示将要显示的

12、字符,虽然这些字符是在不同的时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人同时显示的感觉。 图2.3 显示电路基本原理图3. 数码显示管分为共阳数码管和共阴数码管两种共阳极数码管的8个发光二极管的阳极(二极管正端连接在一起,如图2.4(b,通常,公共阳极接高电平(一般接电源,其它管脚接段驱动电路输出端。当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。 图2.4(a数码管引脚图(b共阳极内部结构图(c共阴极内部

13、结构共阴极数码管的8个发光二极管的阴极(二极管负端连接在一起,如图2.4(c,通常,公共阴极接低电平(一般接地,其它管脚接段驱动电路输出端,当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。本设计采用共阴极数码显示管做显示电路,由于采用的是共阴的数码显示管,所以只要数码管的a、b、c、d、e、f、g、dp引脚为高电平,那么其对应的二极管就会发光,使数码显示管显示09的编码见表2.1。表2.1 共阴极数码显示管字型代码字型共阴极代码字型共阴

14、极代码0 3FH 5 6DH1 06H 6 7DH2 5BH 7 07H3 4FH 8 7FH4 66H 9 6FH4. 动态显示电路由显示块、字形码驱动模块、字位驱动模块三部分组成。如图2.3所示为本系统的3位LED动态显示器接口电路。图中,3个数码管的8段段选线分别与外接上拉电阻的单片机P0口对应相连,而3个数码管的位控制端则和NPN型三极管的集电极相连接。单片机的P2.2P2.4口则分别对应数码显示管的最低位到最高位, P2.2P2.4口分别和三个NPN型三极管的基极相连,做三极管导通的控制端,而NPN 型三极管选用9013型三极管。根据9013的资料显示:其耐压值为40V,最大功率为0

15、.65W,最大电流为0.5A,电气性能完全满足本设计的要求。另外数码管显示是采用动态显示,所以对三极管的开关频率有一定的要求。根据电子秒表的设计计算可知动态显示的频率最高为3KHz,而9013的导通频率为150MHz,完全能满足本设计的要求,所以最终选取9013三极管最为位控制开关。5.由于数码管是有P0口来驱动,它内部没有上拉电阻,作为输出口时驱动能力比较弱,不能点亮数码显示管,因此P0口必须接上拉电阻来提高驱动能力。另外一位共阴数码管的驱动电流一般为20mA左右,如果电流太大容易造成数码管损坏,所以也需要根据电源的电压值来确定上拉电阻的大小。如果电阻过小,势必会形成灌电流过大,造成单片机I

16、O的损坏,如果电阻过大,那么对拉电流没有太大的影响。电源供电电压为5V,当上拉电阻选用220电阻时灌电流为22mA。不会损坏单片机的I/O口,同时也可以为数码显示管起到限制电流的保护作用。本设计中有四个按键,分别实现启动、开始、暂停和复位功能。按设计要求对开始和停止键采用外部中断INT0、INT1的方式,即A、B键分别接P3.2、P3.3口。四个按键均采用低电平有效,具体电路连接图如图2.5所示。1.当按键没有按下时,单片机的I/O口直接连接电源,因此需要接上拉电阻来进行限流,本设计中选取阻值为100的电阻作为上拉电阻,根据计算可知此时的灌电流为50mA,查看80C51的资料得知次电流在安全范

17、围内,符合安全设计要求。2.按键电路中由于采用了外部中断,所以需要用到P3口的第二功能。P3口引脚的第二功能如表2.2图2.5 按键电路表2.2 P3口引脚第二功能表P3口引脚特殊功能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(片内数据存储器读选通信号输出端单片机的时钟信号用来提供单片机内各种微操作的时间基准,80C51片内设有一个由反向放大器所构成的

18、振荡电路,XTAL1和 XTAL2分别为振荡电路的输入和输出端, 80C51单片机的时钟信号通常用两种电路形式得到:内部振荡方式与外部振荡方式。外部方式的时钟很少用,若要用时,只要将XTAL1接地,XTAL2接外部振荡器就行。对外部振荡信号无特殊要求,只要保证脉冲宽度,一般采用频率低于12MHz的方波信号。时钟发生器把振荡频率两分频,产生一个两相时钟信号P1和P2供单片机使用。P1在每一个状态S的前半部分有效,P2在每个状态的后半部分有效。本设计采用的内部振荡方式,内部振荡方式所得的时钟信号比较稳定,实用电路中使用较多。本设计系统的时钟电路如图2.6所示。只要按照图2.6所示电路进行设计连接就

19、能使系统可靠起振并能稳定运行。图中,电容器C1、C2起稳定振荡频率、快速起振的作用,电容值一般为533pF。但在时钟电路的实际应用中一定要注意正确选择其大小,并保证电路的对称性,尽可能匹配,选用正牌的瓷片或云母电容,如果可能的话,温度系数尽可能低。本设计中采用大小为30pF的电容和12MHz的晶振。 (a原理图(b电路连接图图2.6 内部振荡电路关于单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值,复位是一个很重要的操作方式。但单片机本身是不能自

20、动进行复位的,必须配合相应的外部电路才能实现。根据应用的要求,复位操作通常有两种基本形式:上电复位、手动复位。上电复位要求接通电源后,自动实现复位操作。80C51单片机的上电复位POR (Power On Reset实质上就是上电延时复位,也就是在上电延时期间把单片机锁定在复位状态上。在单片机每次初始加电时,首先投入工作的功能部件是复位电路。复位电路把单片机锁定在复位状态上并且维持一个延时(记作TRST,以便给予电源电压从上升到稳定的一个等待时间;在电源电压稳定之后,再插入一个延时,给予时钟振荡器从起振到稳定的一个等待时间;在单片机开始进入运行状态之前,还要至少推迟2个机器周期的延时。上述一系

21、列的延时,都是利用在单片机RST引脚上外接一个RC支路的充电时间而形成的。典型复位电路如图2.7(a所示,其中的阻容值是原始手册中提供的。在经历了一系列延时之后,单片机才开始按照时钟源的工作频率,进入到正常的程序运行状态。在电源电压以及振荡器输出信号稳定之后,又等待了一段较长的延时才释放RST信号,使得CPU脱离复位锁定状态;而RST信号一旦被释放,立刻在ALE引脚上就可检测到持续的脉冲信号。由于标准80C51的复位逻辑相对简单,复位源只有RST一个(相对新型单片机来说,复位源比较单一,因此各种原因所导致的复位活动以及复位状态的进入,都要依靠在外接引脚RST上施加一定时间宽度的高电平信号来实现

22、。标准80C51不仅复位源比较单一,而且还没有设计内部上电复位的延时功能,因此必须借助于外接阻容支路来增加延时环节,如图2.7(a所示。其实,外接电阻R还是可以省略的,理由是一些CMOS单片机芯片内部存在一个现成的下拉电阻Rrst。如图2.8所示。因此,在图2.7(a的基础上,上电复位延时电路还可以精简为图2.7(b所示的简化电路(其中电容C的容量也相应减小了。 手动复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。单片机要完成复位,必须向复位端输出并持续两个机器周期以上的高电平,从而实现复位操作。 RSET(a原理图(b电路连接图图2.9 单片机复位电路

23、本设计采用上电且开关复位电路,如图 2.9所示上电后,由于电容充电,使RST 持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。通常选择C=1030F,R=1001K,本设计采用的电容值为22F的电容和电阻为1K的电阻。系统总电路由以上设计的显示电路,时钟电路,按键电路和复位电路组成,只要将单片机与以上各部分电路合理的连接就组成了系统总电路。系统总电路图如图2.10所示。80C51单片机为主电路的核心部分,各个电路均和单片机相连接,由单片机统筹和协调各个电路的运行工作。80C51单片机提供了XTAL1和XTAL2两个专用引脚接

24、晶振电路,因此只要将晶振电路接到两个专用引脚即可为单片机提供时钟脉冲,但在焊接晶振电路时要尽量使晶振电路靠近单片机,这样可以为单片机提供稳定的始终脉冲。 图2.10 系统总电路图复位电路同晶振电路,单片机设有一个专用的硬件复位接口,并设置为高电平有效。断INT0端口和外部中断INT1端口。同样设置为位低电平有效。显示电路由三位数码管组成,采用动态显示方式,因此有8位段控制端和3位位控制端,八位段控制接P0口,P0.0-P0.7分别控制数码显示管的a、b、c、d、e、f、g、dp显示,80C51的P0口没有集成上拉电阻,高电平的驱动能力很弱,所以需要接上拉电阻来提高P0的高电平驱动能力。三位位控

25、制则由低位到高位分别接到P2.2-P2.4口, NPN三极管9013做为位控制端的开关,当P2.2-P2.4端口任意一个端口为高电平时,与其相对应的三极管就导通,对应的数码管导通显示。通过以上设计已经将各部分电路与单片机有机的结合到一起,硬件部分的设计以大功告成,剩下的部分就是对单片机的编程,使单片机按程序运行,实现数字电子秒表的全部功能。2.3 软件设计结合电路,程序的总体思路如图2.11。本设计系统所用到的单片机端口数比较多,所以在这里将对数字电子秒表的硬件资源的大概分配加以说明。片内RAM的分配、各功能键的定义以及各端口的分配安排如表2.3所示。表2.3 端口的分配安排表名称功能描述初始

26、化值7BH-7DH 0.1s-10s位显示寄存区00HR3- R5 0.1s-10s位溢出计数区定时器T0 控制秒表的最小精度3CB0H外部中断INT0 停止中断信号入口外部中断INT1 开始中断信号入口本系统程序主要模块由主程序、定时中断服务程序、外部中断INT0服务程序和外部中断INT1服务程序组成。其中主程序是整个程序的主体。可以对各个中断程序进行调用,协调各个子程序之间的联系。系统(上电复位后,进入主程序,主程序流程图如图2.11。首先对系统进行初始化,包括设置各入口地址、中断的开启、对各个数据缓存区清“0”、赋定时器初值,初始化完毕后,就进入数码管显示程序。数码管显示程序对显示缓存区

27、内的数值进行调用并在数码管上进行动态显示。显示一次就对P1.0进行一次扫描,查询启动键P1.0是否按下,当启动键按下后,数码管全零显示,没有按下则返回开始,重新循环显示数字8。在主程序中还进行了赋寄存区的初始值、设置定时器初值以及开启外部中断等操作,当定时时间到后就转去执行定时中断程序。当外部中断有请求则去执行外部中断服务程序,并在执行完后返回主程序。现在方案中采用了两个中断,外部中断INT0,INT1。CPU在响应中断时,先处理高级中断,在处理低级中断,若有多个同级中断时,则按自然优先顺序处理。例如当CPU 正在处理一个中断申请时,有出现了另一个优先级比它高的中断请求,这是,CPU就暂停终止

28、对当前优先级较低的中断源的服务,转去响应优先级比它高的中断请求,并为其服务。待服务结束,再继续执行原来较低级的中断服务程序。而当CPU为级别高的终端服务程序服务时,如果级别低的中断发出中断请求,此时CPU是不会响应的,所以为了避免开始和暂停两个按键中的一个出现没有响应的情况,在进行程序编辑时要注意对中断的使用,避免出现中断的嵌套。,合理分配中断对本设计的实现是至关重要的。80C51的自然优先级顺序排列如下:中断源最高外部中断INT0定时/计数器T0溢出中断外部中断INT1定时/计数器T1溢出中断串行口中断最低数字式秒表中的两个按键采用了中断实现功能。开始采用外部中断INT0,停止采用外部中断I

29、NT1。另外程序中还用到了定时/计数器0溢出中断进行计时。依据设计要求,停止的外部中断INT1中断级别最高,计时的定时/计数器0溢出中断次之,开始的外部中断INT0级别最低。(1外部中断INT0服务程序外部中断INT0服务程序结合外部P3.2开始键实现数字电子秒表的计时开始功能,具体流程图如图2.12。当按下P3.2开始键按下向CPU发出外部中断请求,CPU转向外部中断0服务程序执行,启动定时器T0。 图2.11 主程序流程图 图2.12外部中断1服务程序流程图 图2.13外部中断0服务程序流程图(2外部中断INT1服务程序:外部中断INT1服务程序结合外部P3.3停止键实现数字电子秒表的停止

30、功能,具体流程图如图2.13。当按下P3.2停止键按下向CPU 发出外部中断请求,CPU 转向外部中断1服务程序执行,停止定时器T0。(3定时中断服务程序当定时/计数器T0器溢出后,向CPU 发出中断请求信号。CPU 跳转到定时中断程序执行。定时中断程序是一个进位程序,主要负责对0.1s 的加一。当如果满十就向0.1s 位加一,依次类推,最终达到99.9秒后归零,从零开始再次计时。但如果定时计数器如果每次都固定从0开始计数,到计满后,再向CPU 发出溢出中断请求信号那是毫无意义的。为了使定时计数器在规定的计数脉冲个数字之后(此时应小于216 个脉冲,向CPU 发出溢出中断请求,可采取预先向TH

31、X 和TLX 中放入一个初值X 的方法,使计数器以X 值为起始值开始计数,即X+1,X+2,直至计数器计满,从1全变为0。设需要计数的脉冲个数为N ,则有:N=216-X 。在定时方式下:定时时间T=N*Tcy=(216X *12/fosc 。现在本设计要求50ms 实现一次中断,选择定时器T0工作在方式1。所以需要根据以上条件计算出T0的初值。设T0的初值为X ,则 X =21650ms/1us=15536D=3CB0H 。即THX=3CH (取X 的高8位TLX=0B0H (取X 的低5位由于定时50ms 只是一个理想化的时间,其中并没有考虑到中断后单片机执行语句要溢出中断20次,积累起来

32、误差就能达到毫秒级,这对于精度到达毫秒级的数字电子秒表来说是很大的误差。所以要在后期编程时还要将单片机读程序的时间考虑进去,在对定时器赋初值时将单片机需要执行的语句所花的时间加上,这样就能使数字电子秒表的误差达到最小。第三章数字电子秒表的安装与调试3.1 软件的仿真与调试Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件,它可以仿真、分析(SPICE各种模拟器件和集成电路。该软件的主要特点总结后有以下四点:实现了单片机仿真和SPICE电路仿真相结合的功能。支持目前主流单片机系统的仿真。提供了软件调试功能,并可以与WAVE联合仿真调试。具有强大的原理图绘制功能。总之

33、,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。在电子领域中也起到了很大的作用,它的出现仿真不需要先焊接电路,可以先仿真调试通过后在焊电路,节省了不少在硬件调试上所花的时间。Proteus ISIS的工作界面是一种标准的Windows界面。它包括标题栏、主菜单、状态栏、标准工具栏、绘图工具栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口等十几个工具,方便了使用者的使用。Proteus SISI绘制原理图的操作与Protel 99se绘制原理图的操作基本相同,在这里就不再作赘述。下面拿本设计中的一个仿真例子作简述说明。运行Pr

34、oteus SISI后,绘制病床呼叫系统的原理图。首先打开已经画好的proteus DSN文件,双击图中的80C51芯片,就弹出一个窗口,在Program File项中通过路径选择在WAVE中生成的HEX文件,双击选中后确定,这样仿真图中的80C51芯片就已经读取了本设计中的HEX文件。单击“三角形按钮”进行仿真。通过对仿真结果的观察来对程序进行修改,最终使程序到达设计要求。3.2 硬件的安装与调试按照之前设计好的数字电子秒表原理图,详细计算系统中各个元件的参数,选择相应器件,制作实际电路板。由于考虑到万能板大小的问题及元件之间连线的方便,在焊接元器件前必须考虑元件的布局然后进行实际操作。制作

35、好的电路板可以用万用表(200欧姆档的红、黑表笔测试电路板的每条走线,当其电阻非常小时,证明走线没有断开,当其电阻很大时,证明该条走线断了,应该重新走线,使电路板在电气上得到正确地连接。选用万用表的20K欧姆档,检测电路中是否存在短路。因为系统采用的是共阴极数码管作为显示电路,必须确保数码管的公共端接的是低电平。(1晶振电路的测试在单片机正常运行的必要条件是单片机系统的时钟稳定正常。实际中,因为各种原因导致系统时钟不正常而出现系统无法正常运行的情况时有,因此系统时钟是否振是通电检查的首要环节。在系统通电的状况下,用万用表的直流电压档(20V,分别测量XTAL1和XTAL2引脚的电压,看是否正常

36、,在调试过程中,测得电压XTAL1引脚应为2.05V,XTAT2应为2.15V。(2复位电路的测试复位不正常也会导致系统不能工作。如果复位引脚始终为高电平,系统将始终处于复位状态;如果始终为低电平,不能产生复位所需的高电平信号脉冲,则系统也可能无法正常工作。单片机正常工作时,RST复位引脚应为0V,按下复位按键时,复位引脚为高电平5V左右。(3显示电路的测试显示电路是数字电子秒表正常运行最直观的观察窗口,我们可以通过观察显示电路的显示结果观察系统能否正常运行。当显示电路按照电路图焊接好后,用万用表的测二极管档位,将黑表笔接共阴数码管的公共段,然后将红表笔接数码管的各段,当数码管的段能正常显示,

37、说明各点焊接正常。3.2 汇编程序ORG 0000HLJMP MAINORG 0003H ;外部中断INT0中断入口LJMP STARTORG 000BH ;定时器T0中断入口LJMP UPDATEORG 0013H ;外部中断INT1中断入口LJMP STOPMAIN: MOV DPTR, #TAB ;存入表头地址MOV TMOD, #01H ;置T0为方式1MOV TH0, #3CH ;赋定时器初值,50毫秒MOV TL0, #0B0HMOV 7BH, #00H ;0.1秒的存储空间MOV 7CH, #00H ;1秒的存储空间MOV 7DH, #00H ;10秒的存储空间MOV R2, #

38、00H ;R2、R3、R4寄存器置零MOV R3, #00HMOV R4, #00HSETB EA ;开中断总允许SETB EX0 ;开外部中断INT0SETB EX1 ;开外部中断INT1SETB IT0 ;外部中断0位边沿触发方式SETB IT1 ;外部中断1位边沿触发方式SETB ET0 ;定时器T0允许位XIAN1: MOV P0, #07FH ;显示数字8SETB P2.2 ;接通0.1s数码管LCALL DELAY1 ;调用延时子程序1CLR P2.2 ;断开0.1s数码管MOV P0, #0FFH ;显示数字8及小数点SETB P2.3 ;接通1s数码管LCALL DELAY1

39、;调用延时子程序1CLR P2.3 ;断开1s数码管MOV P0, #07FH ;显示数字8SETB P2.4 ;接通10s数码管LCALL DELAY1 ;调用延时子程序1CLR P2.4 ;断开10s数码管JNB P1.0,XIAN2 ;按下启动键,跳转到XIAN2(P1.0=0跳转 LJMP XIAN1 ;返回显示程序,重新进行显示XIAN2: MOV A, 7BH ;显示0.1s位数字MOVC A, A+DPTR ;查表MOV P0, ASETB P2.2LCALL DELAY2 ;调用DELAY2CLR P2.2MOV A, 7CH ;显示1s位数字MOVC A, A+DPTRMOV

40、 P0, ASETB P2.3CLR P2.3MOV A, 7DH ;显示10s位数字MOVC A, A+DPTRMOV P0, ASETB P2.4LCALL DELAY2CLR P2.4MOV P0, #80H ;显示小数点SETB P2.3LCALL DELAY2CLR P2.3LJMP XIAN2 ;返回显示程序,重新进行显示START: LCALL DELAY3 ;调用延时子程序3SETB TR0 ;启动定时器T0RETI ;中断返回STOP: CLR TR0 ;停止定时器T0RETIUPDATE: MOV TH0, #3CH ;重赋定时器初值MOV TL0, #0B0HMOV R5

41、, #0FFHMOV A, 7BHADD A, #01H ;0.1s位加1MOV 7BH, AMOV A, R2ADD A, #01HMOV R2, ACJNE R2, #0AH, EXIT ;判断0.1s位是否满10,不满10跳出MOV 7BH, #00H ;对0.1s位清零MOV R2, #00HMOV A, 7CHADD A, #01H ;1s位加一MOV 7CH, AMOV A, R3单片机课程设计 第三章 MOV CJNE R3, R3, A #0AH, EXIT ;判断 1s 位是否满 10,不满 10 跳出 ;对 1s 位清零 MOV 7CH, #00H MOV R3, #00H MOV A, 7DH ADD A, #01H MOV 7DH, A MOV A, R4 ADD A, #01H MOV R4, A CJNE R4, #0AH, MOV 7DH, #00H ;10s 位加一 EXIT ;判断 10s 位是否满 10,不满 10 跳出 ;对 10s 位清零 EX

温馨提示

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

评论

0/150

提交评论