1、沈阳理工大学应用技术学院毕业设计(论文)题 目: 基于单片机数字电子秒表设计与实现 系 别: 信息工程系 专 业: 自动化 学生姓名: 胡 培 指引教师: 唐朝仁 年 月 日摘 要近年来随着科技飞速发展,单片机应用正在不断走向进一步。本文阐述了基于单片机数字电子秒表设计。本设计重要特点是计时精度达到0.001s,解决了老式由于计时精度不够导致误差和不公平性,是各种体育竞赛必备设备之一。此外硬件某些设立了查看按键,可以对秒表上一次计时时间进行保存,供使用者查询。本设计数字电子秒表系统采用AT89C52单片机为中心器件,运用其定期器/计数器定期和记数原理,结合显示电路、LED数码管以及外部中断电路
2、来设计计时器。将软、硬件有机地结合起来,使得系统可以实现五位LED显示,显示时间为099.999秒,计时精度为0.001秒,能对的地进行计时,同步能记录一次时间,并在下一次计时后对上一次计时时间进行查询。其中软件系统采用汇编语言编写程序,涉及显示程序,定期中断服务,外部中断服务程序,延时程序等,并在WAVE中调试运营,硬件系统运用PROTEUS强大功能来实现,简朴切易于观测,在仿真中就可以观测到实际工作状态。 核心字:单片机;数字电子秒表;仿真 AbstractWith the rapid development of science and technology in recent year
3、s,SCM applications are constant-depth manner. In this paper,based on single chip design of digital electronic stopwatch. The main characteristics of this design timing accuracy of 0.001s,to solve the traditional result of a lack accuracy due to timing errors and unfair,and is a variety of sports com
4、petitions,one of the essential equipment. In addition the hardware part of the set View button on the stopwatch can be the last time to save time for user queries.The design of the multi-function stopwatch system uses STC89C52 microcontroller as the central device,and use its timer / counter timing
5、and the count principles,combined with display circuit,LED digital tube,as well as the external interrupt circuit to design a timer. The software and hardware together organically,allowing the system to achieve two LED display shows the time from 0 to 99.999 seconds,Timing accuracy of 0.001 seconds,
6、Be able to correctly time at the same time to record a time,and the next time after the last time the time to search.automatically added a second in which software systems using assembly language programming,including the display program,timing,interrupt service,external interrupt service routine,de
7、lay procedures,key consumer shaking procedures,and WAVE in the commissioning,operation,hardware system uses to achieve PROTEUS powerful,simple and easy to observe the cut in the simulation can be observed on the actual working condition.Keyword:LED display;High-precision stopwatch;STC89C52目 录绪 论11 硬
8、件设计41.1 总体方案设计41.2 单片机选取51.3 显示电路选取与设计81.4 按键电路选取与设计111.5 时钟电路选取与设计121.6 复位电路选取与设计141.7 系统总电路设计162 软件设计192.1 程序设计思想192.2 系统资源分派192.3 主程序设计202.4 中断程序设计213 数字电子秒表安装与调试263.1 软件仿真与调试263.2 硬件安装与调试263.3 系统程序烧录273.4 数字电子秒表精度调试28结 论29致 谢30参照文献31附录A 资料翻译32A.1 英文原文32A.2 中文翻译39附录B 程序44附录C 电路原理图51附录D 硬件实物图52绪 论
9、秒表计时器是电器制造,工业自动化控制、国防、实验室及科研单位抱负计时仪器,它广泛应用于各种继电器、电磁开关,控制器、延时器、定期器等时间测试。奥运男子百米飞人大战中,牙买加飞人博尔特以9秒69成绩夺得冠军。而博尔特冲过终点瞬间,荧屏显示其成绩为9秒68。相差这个0.01秒,系由电子计时系统确认。奥运会男子100米蝶泳决赛上,美国选手菲尔普斯以50秒58成绩惊险夺冠,距离“八金梦想”仅一步之遥。塞尔维亚选手查维奇以50.59秒获得银牌,只比菲尔普斯慢0.01秒。这种细微差距,虽然是现场大屏幕用典型超慢镜头回放,也无法辨别。8月28日15点15分,中华人民共和国选手孟关良/杨文军在雅典奥运会男子5
10、00米划艇决赛中,以1分40秒278成绩获得中华人民共和国在雅典奥运会第28金。这是中华人民共和国皮划艇项目第一枚奥运金牌,也是中华人民共和国水上项目在历届奥运会上所获得第一枚金牌。孟关良/杨文军成绩比获得银牌古巴选手只快了 0.072秒,以至于两人在夺冠之后还不敢相信。自首届当代奥运会在希腊雅典举办以来,奥运计时技术始终在不断地向前发展。一百近年过去了,首届当代奥运会上计时所用跑表如今换成了一系列高科技计时装 置,如高速数码摄像机、电子触摸垫、红外光束、无线应答器等等。鉴于当今计时技术迅速发展,即便千分之一秒(为眨眼40倍)毫微差距,也决定着冠军归属。在当前体育竞技比赛中,随着运动员水平不断
11、提高,差距也在不断缩小。有些运动对时间精度规定也越来越高,有时比赛冠亚军之间差距只有几毫秒,因而就需要高精度秒表来记录成绩。关于计时钟表发展历史,大体可以分为三个演变阶段。一、从大型钟向小型钟演变。二、从小型钟向袋表过渡。三、从袋表向腕表发展。每一阶段发展都是和当时技术创造分不开。1088年,当时国内宋朝科学家苏颂和韩工廉等人制造了水运仪象台,它是把浑仪、浑象和机械计时器组合起来装置。它以水力作为动力来源,具备科学擒纵机构,虽然几十年后毁于战乱,但它在世界钟表史上具备极其重要意义。1656年,荷兰科学家惠更斯应用伽利略理论设计了钟摆,次年,在她指引下年轻钟匠S.Coster制导致功了第一种摆钟
12、。1675年,她又用游丝取代了原始钟摆,这样就形成了以发条为动力、以游丝为调速机构小型钟,同步也为制造便于携带袋表提供了条件。18世纪期间创造了各种各样擒纵机构,为袋表进一步产生与发展奠定了基本。英国人George Graham在1726年完善了工字轮擒纵机构,它和之前创造垂直放置机轴擒纵机构不同,因此使得袋表机芯相对变薄。20世纪初,特别是第一次世界大战爆发,袋表已经不能适应作战军人需要,腕表生产成为大势所趋。许多新设计和技术也被应用在腕表上,成为真正意义上带在手腕上计时工具。紧接着二战使腕表生产量大幅度增长,价格也随之下降,使普通大众也可以拥有它。腕表年代到来了!1998年:建立超冷铯原子
13、钟,比微微秒又要精准10万倍。 从国内水运仪像台创造到当前各国都在研制原子钟这几百年钟表演变过程中,咱们可以看到,各个不同步期科学家和钟表工匠用她们聪颖智慧和不断实践融合成了一座时间隧道,同步也为咱们勾勒了一条钟表文化和科技发展轨迹。本设计运用AT89C52单片机定期器/计数器定期和记数原理,使其能精准计时。运用中断系统使其能实现开始暂停功能。P0口输出段码数据,P2.0-P2.4口作列扫描输出,P1.1、P3.2、P3.3、P2.5分别接四个按钮开关,分别实现开始、暂停、清零和查看上次时间功能。显示电路由五位共阴极数码管构成。初始状态下计时器显示00.000,当按下开始键时,外部中断INT1
14、向CPU发出中断祈求,CPU转去执行外部中断1服务程序,即启动定期器T0。计时采用定期器T0中断完毕,定期溢出中断周期为1ms,当一处中断后向CPU发出溢出中断祈求,每发出一次中断祈求就对毫秒计数单元进行加一,达到10次就对十毫秒位进行加一,依次类推,直到99.999秒重新复位。在计时过程中,只要按下暂停键,外部中断INT0向CPU发出中断祈求,CPU转去执行外部中断0服务程序,即关闭定期器T0,调用显示程序,实现暂停功能,同步将本次计时时间存入寄存区。然后对P1.1进行扫描。当P1.1按下时就跳转回主程序。等待下一次计时开始。在按下暂停键时,将此时计时时间存入中间缓存区,当再次按下开始键时,
15、则讲中间缓存区数据转入最后缓存区。秒表停止后对查看键P2.5进行扫描,P2.5按下为低电平时,调用最后缓存区数据进行显示,即显示上一次计时成绩。当P2.5位高电平时,调用显示缓存区数据进行显示,即显示当此计时成绩。依照以上设计思路从而实现数字电子秒表计时和查看上一次计时时间功能。本文重要内容涉及三某些:第一某些简介硬件某些设计思路及方案;第二某些简介了软件某些设计思路和设计;最后一某些则是整个系统安装与调试过程。1 硬件设计1.1 总体方案设计数字电子秒表具备显示直观、读取以便、精度高等长处,在计时中广泛使用。本设计用单片机构成数字电子秒表,力求构造简朴、精度高为目的。设计中涉及硬件电路设计和
16、系统程序设计。其硬件电路重要有主控制器,计时与显示电路和回零、启动和停表电路等。主控制器采用单片机AT89C52,显示电路采用共阴极LED数码管显示计时时间。本设计运用AT89C52单片机定期器/计数器定期和记数原理,使其能精准计时。运用中断系统使其能实现开始暂停功能。P0口输出段码数据,P2.0-P2.4口作列扫描输出,P1.1、P3.2、P3.3、P2.5口接四个按钮开关,分别实现开始、暂停、清零和查看上次计时时间功能。电路原理图设计最基本规定是对的性,另一方面是布局合理,最后在对的性和布局合理前提下力求美观。硬件电路图按照图1.1进行设计。图1.1 数字秒表硬件电路基本原理图依照规定懂得
17、秒表设计重要实现功能是计时和显示。因而设立了四个按键和五位数码管显示时间,三个按键分别是开始,停止、复位和查看上次计时时间按键。运用这四个建来实现秒表所有功能,而五位数码管则能显示最多99.999秒计时。本设计中,数码管显示数据存储在内存单元79H7DH中。其中79H存储毫秒位数据,7AH存储十毫秒位数据,7BH存储百毫秒位数据,7CH存储秒位数据,7DH存储十秒位数据,每一地址单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据相应段码存储在ROM表中。显示时,先取出79H-7dH某一地址中数据,然后查得相应显示用段码,并从P0口输出,P2口将相应数码管选
18、中供电,就能显示该地址单元数据值。最后缓存区则设立为59H-5DH,数据存储规则和79H-7DH同样。分别相应存储毫秒位至十秒位数据。与79H-7DH存储区不同样是:59H-5DH存储内容为数字秒表上一次计时显示时间。而79H-7DH为当前计时时间存储区。计时采用定期器T0中断完毕,定期溢出中断周期为1ms,当一处中断后向CPU发出溢出中断祈求,每发出一次中断祈求就对毫秒计数单元进行加一,达到10次就对十毫秒位进行加一,依次类推,直到99.999秒重新复位。 再看按键解决。这四个键可以采用中断办法,也可以采用扫描办法来辨认。复位键和查看重要功能在于数值复位和查询上次计时时间,对于时间规定不是很
19、严格。而开始和停止键则是用于对时间锁定,需要比较精确控制。因而可以对复位和查看按键采用扫描方式。而对开始和停止键采用外部中断方式。设计中涉及硬件电路设计和系统程序设计。其硬件电路重要有主控制器,显示电路和回零、启动、查看、停表电路等。主控制器采用单片机AT89C52,显示电路采用共阴极LED数码管显示计时时间,四个按键均采用触点式按键。1.2 单片机选取本课题在选用单片机时,充分借鉴了许多成形产品使用单片机经验,并依照自己实际状况,选取了ATMEL公司AT89S51。ATMEL公司89系列单片机以其卓越性能、完善兼容性、快捷便利电擦写操作,低便宜格、超强加密功能,完全代替87C51/62和87
20、51/52,低电压、低电源、低功耗,有DIP、PLCC、QFP封装,有民用型、工业级、汽车级、军品级等各种温度级别,是当今世界上性能最佳、价格最低、最受欢迎八位单片机3。AT89C52P为40 脚双列直插封装8 位通用微解决器,采用工业原则C51内核,在内部功能及管脚排布上与通用8xc52 相似,其重要用于会聚调节时功能控制。功能涉及对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件初始化,会聚调节控制,会聚测试图控制,红外遥控信号IR接受解码及与主板CPU通信等。单片机外部构造AT89S52单片机采用40引脚双列直插封装方式。图1.2为引脚排列图, 40条引脚阐明如下:主电源引脚Vss
21、和Vcc Vss接地 Vcc正常操作时为+5伏电源外接晶振引脚XTAL1和XTAL2 XTAL1内部振荡电路反相放大器输入端,是外接晶体一种引脚。当采用外部振荡器时,此引脚接地。 XTAL2内部振荡电路反相放大器输出端。是外接晶体另一端。当采用外部振荡器时,此引脚接外部振荡源。图1.2 单片机引脚图控制或与其他电源复用引脚RST/VPD,ALE/,和/Vpp RST/VPD 当振荡器运营时,在此引脚上浮现两个机器周期高电平(由低到高跳变),将使单片机复位在Vcc掉电期间,此引脚可接上备用电源,由VPD向内部提供备用电源,以保持内部RAM中数据。 ALE/正常操作时为ALE功能(容许地址锁存)提
22、供把地址低字节锁存到外部锁存器,ALE 引脚以不变频率(振荡器频率1/6)周期性地发出正脉冲信号。因而,它可用作对外输出时钟,或用于定期目。但要注意,每当访问外部数据存储器时,将跳过一种ALE脉冲,ALE 端可以驱动(吸取或输出电流)八个LSTTL电路。对于EPROM型单片机,在EPROM编程期间,此引脚接受编程脉冲(功能) 外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间,在每个机器周期内两次有效。同样可以驱动八LSTTL输入。 /Vpp、/Vpp为内部程序存储器和外部程序存储器选取端。当/Vpp为高电平时,访问内部程序存储器,当/Vpp为低电平时,则访问外部程序存储器。
23、对于EPROM型单片机,在EPROM编程期间,此引脚上加21伏EPROM编程电源(Vpp)。输入/输出引脚P0.0 - P0.7,P1.0 - P1.7,P2.0 - P2.7,P3.0 - P3.7。 P0口(P0.0 - P0.7)是一种8位漏极开路型双向I/O口,在访问外部存储器时,它是分时传送低字节地址和数据总线,P0口能以吸取电流方式驱动八个LSTTL负载。 P1口(P1.0 - P1.7)是一种带有内部提高电阻8位准双向I/O口。能驱动(吸取或输出电流)四个LSTTL负载。 P2口(P2.0 - P2.7)是一种带有内部提高电阻8位准双向I/O口,在访问外部存储器时,它输出高8位地
24、址。P2口可以驱动(吸取或输出电流)四个LSTTL负载。 P3口(P3.0 - P3.7)是一种带有内部提高电阻8位准双向I/O口。能驱动(吸取或输出电流)四个LSTTL负载6。AT89C52具备如下原则功能:8k字节Flash,256字节RAM,32 位I/O口线,看门狗定期器,2个数据指针,三个16位定期器/计数器,一种6向量2级中断构造,全双工串行口,片内晶振及时钟电路。此外,AT89C52可降至0Hz 静态逻辑操作,支持2种软件可选取节电模式。空闲模式下,CPU停止工作,容许RAM、定期器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,
25、直到下一种中断或硬件复位为止。CPU是单片机核心部件。它由运算器和控制器等部件构成2。(1) 运算器运算器功能是进行算术运算和逻辑运算。可以对半字节(4位)、单字节等数据进行操作。例如能完毕加、减、乘、除、加1、减1、BCD码十进制调节、比较等算术运算和与、或、异或、求补、循环等逻辑操作,操作成果状态信息送至状态寄存器。89C52运算器还包具有一种布尔解决器,用来解决位操作。它是以进位标志位C为累加器,可执行置位、复位、取反、等于1转移、等于0转移、等于1转移且清0以及进位标志位与其她可寻址位之间进行数据传送等位操作,也能使进位标志位与其她可移位寻址位之间进行逻辑与、或操作5。(2) 程序计数
26、器PC程序计数器PC用来存储即将要执行指令地址,共16位,可对64K程序存储器直接寻址。执行指令时,PC内容低8位经P0口输出,高8位经P2口输出。(3) 令寄存器指令寄存器中存储指令代码。CPU执行指令时,由程序存储器中读取指令代码送入指令寄存器,经译码后由定期与控制电路发出相应控制信号,完毕指令功能。本设计采用ATMELAT89C52微解决器,重要基于如下几种因素: AT89C52为51内核,仿真调试软硬件资源丰富。 性价比高,货源充分。 功耗低,功能强,灵活性高。 DIP40封装,体积小,便于产品小型化。 为EEPROM程序存储介质,1000次以上擦写周期,便于编程调试。 工作电压范畴宽
27、:2.7V6V,便于交直流供电。1.3 显示电路选取与设计对于数字显示电路,普通采用液晶显示或数码管显示。对于普通段式液晶屏,需要专门驱动电路,并且液晶显示作为一种被动显示,可视性差,不适合远距离观看;对于具备驱动电路和单片机接口液晶显示模块(字符或点阵),普通多采用并行接口,对单片机接口规定较高,占用资源多;此外,AT89S52单片机自身无专门液晶驱动接口。而数码管作为一种积极显示屏件,具备亮度高、响应速度快、防潮防湿性能好、温度特性极性、价格便宜、易于购买等长处,并且有远距离视觉效果,很适合夜间或是远距离操作。因而,本设计显示电路采用7段数码管作为显示介质。数码管显示可以分为静态显示和动态
28、显示两种。由于本设计需要采用五位数码管显示时间,如果静态显示则占用口线多,硬件电路复杂。因此采用动态显示。图1.3 显示电路基本原理图动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示屏方式称为位扫描。普通各位数码管段选线相应并联在一起,由一种8位I/O口控制;各位公共阴极位选线由此外I/O口线控制。动态方式显示时,各数码管分时轮流选通,要使其稳定显示必要采用扫描方式,即在某一时刻只选通一位数码管,并送出相应段码,在另一时刻选通另一位数码管,并送出相应段码,依此规律循环,即可使各位数码管显示将要显示字符,虽然这些字符是在不同步刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短
29、就可以给人同步显示感觉。数码显示管分为共阳数码管和共阴数码管两种共阳极数码管8个发光二极管阳极(二极管正端)连接在一起,如图1.4(b),普通,公共阳极接高电平(普通接电源),其他管脚接段驱动电路输出端。当某段驱动电路输出端为低电平时,则该端所连接字段导通并点亮,依照发光字段不同组合可显示出各种数字或字符。此时,规定段驱动电路能吸取额定段导通电流,还需依照外接电源及额定段导通电流来拟定相应限流电阻。共阴极数码管8个发光二极管阴极(二极管负端)连接在一起,如图(c),普通,公共阴极接低电平(普通接地),其他管脚接段驱动电路输出端,当某段驱动电路输出端为高电平时,则该端所连接字段导通并点亮,依照发
30、光字段不同组合可显示出各种数字或字符。此时,规定段驱动电路能提供额定段导通电流,还需依照外接电源及额定段导通电流来拟定相应限流电阻。 图1.4 (a)数码管引脚图 (b)共阳极内部构造图 (c)共阴极内部构造图本设计采用共阴极数码显示管做显示电路,由于采用是共阴数码显示管,因此只要数码管a、b、c、d、e、f、g、h引脚为高电平,那么其相应二极管就会发光,使数码显示管显示09编码见表1.1。表1.1 共阴极数码显示管字型代码字型共阴极代码字型共阴极代码03FH56DH106H67DH25BH707H34FH87FH466H96FH动态显示电路由显示块、字形码驱动模块、字位驱动模块三某些构成。如
31、图1.3所示为本系统5位LED动态显示屏接口电路。图中,5个数码管8段段选线分别与外接上拉电阻单片机P0口相应相连,而5个数码管位控制端则和NPN型三极管集电极相连接。单片机P2.0P2.4口则分别相应数码显示管最低位到最高位,P2.0P2.4口分别和五个NPN型三极管基极相连,做三极管导通控制端,而NPN型三极管选用9013型三极管。依照9013资料显示:其耐压值为40V,最大功率为0.65W,最大电流为0.5A,电气性能完全满足本设计规定。此外数码管显示是采用动态显示,因此对三极管开关频率有一定规定。依照电子秒表设计计算可知动态显示频率最高为3KHz,而9013导通频率为150MHz,完全
32、能满足本设计规定,因此最后选用9013三极管最为位控制开关。由于数码管是有P0口来驱动,它内部没有上拉电阻,作为输出口时驱动能力比较弱,不能点亮数码显示管,因而P0口必要接上拉电阻来提高驱动能力。此外一位共阴数码管驱动电流普通为20mA左右,如果电流太大容易导致数码管损坏,因此也需要依照电源电压值来拟定上拉电阻大小。如果电阻过小,势必会形成灌电流过大,导致单片机IO损坏,如果电阻过大,那么对拉电流没有太大影响。电源供电电压为5V,当上拉电阻选用220电阻时灌电流为22mA。不会损坏单片机I/O口,同步也可觉得数码显示管起到限制电流保护作用。 1.4 按键电路选取与设计本设计中有四个按键,分别实
33、现开始、暂停、复位和查看功能。这三个键可以采用中断办法,也可以采用查询办法来辨认。对于复位键和查看键,重要功能在于数值复位和对上次计时时间查看,对于时间规定不是很严格,而开始和暂停键重要用于时间锁定,需要比较精确控制。因而可以考虑,对复位键和查看键采用查询方式,而对于开始和暂停键采用外部中断。四个按键均采用低电平有效,详细电路连接图如图1.5所示。当按键没有按下时,单片机I/O口直接连接电源,因而需要接上拉电阻来进行限流,本设计中选用阻值为2k 电阻作为上拉电阻,依照计算可知此时灌电流为2.5mA,查看AT89C52资料得知次电流在安全范畴内,符合安全设计规定。图1.5 按键电路按键电路中由于
34、采用了外部中断,因此需要用到P3口第二功能。P3口引脚第二功能如表1.2表1.2 P3口引脚第二功能表 P3口引脚特殊功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外部中断0祈求输入端)P3.3INT1(外部中断1祈求输入端)P3.4 T0(定期器/计数器0计数脉冲输入端)P3.5 T1(定期器/计数器1计数脉冲输入端)P3.6WR(片外数据存储器写选通信号输出端)P3.7 RD(片内数据存储器读选通信号输出端)1.5 时钟电路选取与设计单片机时钟信号用来提供单片机内各种微操作时间基准,89S52片内设有一种由反向放大器所构成振荡电路,XTAL1和 XTAL2分
35、别为振荡电路输入和输出端,89S52单片机时钟信号通惯用两种电路形式得到:内部振荡方式与外部振荡方式。外部方式时钟很少用,若要用时,只要将XTAL1接地,XTAL2接外部振荡器就行。对外部振荡信号无特殊规定,只要保证脉冲宽度,普通采用频率低于12MHz方波信号。时钟发生器把振荡频率两分频,产生一种两相时钟信号P1和P2供单片机使用。P1在每一种状态S前半某些有效,P2在每个状态后半某些有效。本设计采用内部振荡方式,内部振荡方式所得时钟信号比较稳定,实用电路中使用较多。本设计系统时钟电路如图1.4所示。只要按照图1.6所示电路进行设计连接就能使系统可靠起振并能稳定运营。图中,电容器C1、C2起稳
36、定振荡频率、迅速起振作用,电容值普通为533pF。但在时钟电路实际应用中一定要注意对的选取其大小,并保证电路对称性,尽量匹配,选用正牌瓷片或云母电容,如果也许话,温度系数尽量低。本设计中采用大小为30pF电容和12MHz晶振8。图1.6 内部振荡电路(4) 时序AT89S52典型指令周期(执行一条指令时间称为指令周期)为一种机器周期,一种机器周期由六个状态(十二振荡周期)构成。每个状态又被提成两个时相P1和P2。因此,一种机器周期可以依次表达为S1P1,S1P2,S6P1,S6P2。普通算术逻辑操作在P1时相进行,而内部寄存器传送在P2时相进行。图1.7 89S52时序图1.7给出了AT89S
37、52单片机取指和执行指令定期关系。这些内部时钟信号不能从外部观测到,所用XTAL2振荡信号作参照。在图中可看到,低8位地址锁存信号ALE在每个机器周期中两次有效:一次在S1P2与S2P1期间,另一次在S4P2与S5P1期间。对于单周期指令,当操作码被送入指令寄存器时,便从S1P2开始执行指令。如果是双字节单机器周期指令,则在同一机器周期S4期间读入第二个字节,若是单字节单机器周期指令,则在S4期间仍进行读,但所读这个字节操作码被忽视,程序计数器也不加1,在S6P2结束时完毕指令操作。图1.7(a)和(b)给出了单字节单机器周期和双字节单机器周期指令时序。89S52指令大某些在一种机器周期完毕。
38、乘(MUL)和除(DIV)指令是仅有需要两个以上机器周期指令,占用4个机器周期。对于双字节单机器周期指令,普通是在一种机器周期内从程序存储器中读入两个字节,唯有MOVX指令例外。MOVX是访问外部数据存储器单字节双机器周期指令。在执行MOVX指令期间,外部数据存储器被访问且被选通时跳过两次取指操作。图1.7中(c)给出了普通单字节双机器周期指令时序9。1.6 复位电路选取与设计关于单片机置位和复位,都是为了把电路初始化到一种拟定状态,普通来说,单片机复位电路作用是把一种例如状态机初始化到空状态,而在单片机内部,复位时候单片机是把某些寄存器以及存储设备装入厂商预设一种值,复位是一种很重要操作方式
39、。但单片机自身是不能自动进行复位,必要配合相应外部电路才干实现。当AT89C52单片机复位引脚RST(全称RESET)浮现2个机器周期以上高电平时,单片机就完毕了复位操作。如果RST持续为高电平,单片机就处在循环复位状态,而无法执行程序。因而规定单片机复位后能脱离复位状态。而本系统选用是12MHz晶振,因而一种机器周期为1s,那么复位脉冲宽度最小应为2s。在实际应用系统中,考虑到电源稳定期间,参数漂移,晶振稳定期间以及复位可靠性等因素,必要有足够余量。依照应用规定,复位操作普通有两种基本形式:上电复位、手动复位。上电复位规定接通电源后,自动实现复位操作。80C51单片机上电复位POR(Powe
40、r On Reset)实质上就是上电延时复位,也就是在上电延时期间把单片机锁定在复位状态上。在单片机每次初始加电时,一方面投入工作功能部件是复位电路。复位电路把单片机锁定在复位状态上并且维持一种延时(记作TRST),以便予以电源电压从上升到稳定一种等待时间;在电源电压稳定之后,再插入一种延时,予以时钟振荡器从起振到稳定一种等待时间;在单片机开始进入运营状态之前,还要至少推迟2个机器周期延时。上述一系列延时,都是运用在单片机RST引脚上外接一种RC支路充电时间而形成。典型复位电路如图1.8(a)所示,其中阻容值是原始手册中提供。在经历了一系列延时之后,单片机才开始按照时钟源工作频率,进入到正常程
41、序运营状态。在电源电压以及振荡器输出信号稳定之后,又等待了一段较长延时才释放RST信号,使得CPU脱离复位锁定状态;而RST信号一旦被释放,立即在ALE引脚上就可检测到持续脉冲信号8。图1.8 上电复位延时电路由于原则80C51复位逻辑相对简朴,复位源只有RST一种(相对新型单片机来说,复位源比较单一),因而各种因素所导致复位活动以及复位状态进入,都要依托在外接引脚RST上施加一定期间宽度高电平信号来实现。原则80C51不但复位源比较单一,并且还没有设计内部上电复位延时功能,因而必要借助于外接阻容支路来增长延时环节,如图1.8(a)所示。其实,外接电阻R还是可以省略,理由是某些CMOS单片机芯
42、片内部存在一种现成下拉电阻Rrst。例如,AT89系列Rrst阻值约为50200 k;P89V51Rx2系列Rrst阻值约为40225 k,如图1.9所示。因而,在图1.8(a)基本上,上电复位延时电路还可以精简为图1.8(b)所示简化电路(其中电容C容量也相应减小了)。图1.9 复位引脚RST内部电路在每次单片机断电之后,须使延时电容C上电荷立即放掉,以便为随后也许在很短时间内再次加电作好准备。否则,在断电后C还没有充分放电状况下,如果不久又加电,那么RC支路就失去了它应有延迟功能。因而,在图1.8(a)基本上添加一种放电二极管D,上电复位延时电路就变成了如图1.8(c)所示改进电路。也就是
43、说,只有RC支路充电过程对电路是有用,放电过程不但无用,并且会带来潜在危害。于是附加一种放电二极管D来大力缩短放电持续时间,以便消除隐患。二极管D只有在单片机断电瞬间(即VCC趋近于0 V,可以看作VCC对地短路)正向导通,平时始终处在反偏截止状态。手动复位规定在电源接通条件下,在单片机运营期间,如果发生死机,用按钮开关操作使单片机复位。单片机要完毕复位,必要向复位端输出并持续两个机器周期以上高电平,从而实现复位操作。本设计采用上电且开关复位电路,如图1.10所示上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运营之中时,按下复位键也能使RST持续一段时间高电平,从而实现上电且开
44、关复位操作。普通选取C=1030F,R=1K,本设计采用电容值为22F电容和电阻为1K电阻。图1.10 单片机复位电路1.7 系统总电路设计系统总电路由以上设计显示电路,时钟电路,按键电路和复位电路构成,只要将单片机与以上各某些电路合理连接就构成了系统总电路。系统总电路图如图1.11所示。AT89C52单片机为主电路核心某些,各个电路均和单片机相连接,由单片机统筹和协调各个电路运营工作。AT89C52单片机提供了XTAL1和XTAL2两个专用引脚接晶振电路,因而只要将晶振电路接到两个专用引脚即可为单片机提供时钟脉冲,但在焊接晶振电路时要尽量使晶振电路接近单片机,这样可觉得单片机提供稳定始终脉冲
45、。图1.11 系统总电路图复位电路同晶振电路,单片机设有一种专用硬件复位接口,并设立为高电平有效。按键电路与单片机端口连接可以由顾客自己设定,本设计中软件复位键和查看键分别接单片机P1.1和P2.5,均设为低电平有效。而此外开始键和暂停键两键使用了外部中断,因此需要连接到单片机特殊接口P3.3和P3.2,这两个I/O口第二功能分别为单片机外部中断1端口和外部中断0端口。同样设立为位低电平有效。显示电路由五位数码管构成,采用动态显示方式,因而有8位段控制端和5位位控制端,八位段控制接P0口,P0.0P0.7分别控制数码显示管a、b、c、d、e、f、g、dp显示,AT89C52P0口没有集成上拉电
46、阻,高电平驱动能力很弱,因此需要接上拉电阻来提高P0高电平驱动能力。五位位控制则由低位到高位分别接到P2.0P2.4口,NPN三极管9013做为位控制端开关,当P2.0P2.4端口任意一种端口为高电平时,与其相相应三极管就导通,相应数码管导通显示。通过以上设计已经将各某些电路与单片机有机结合到一起,硬件某些设计以大功告成,剩余某些就是对单片机编程,使单片机按程序运营,实现数字电子秒表所有功能。2 软件设计2.1 程序设计思想本设计采用了汇编语言编写,汇编语言由于采用了助记符号来编写程序,比用机器语言二进制代码编程要以便些,在一定限度上简化了编程过程。汇编语言特点是用符号代替了机器指令代码,并且
47、助记符与指令代码一一相应,基本保存了机器语言灵活性。使用汇编语言能面向机器并较好地发挥机器特性,得到质量较高程序。汇编语言特点:(1).面向机器低档语言,普通是为特定计算机或系列计算机专门设计。(2).保持了机器语言长处,具备直接和简捷特点。(3).可有效地访问、控制计算机各种硬件设备,如磁盘、存储器、CPU、I/O端口等。(4).目的代码简短,占用内存少,执行速度快,是高效程序设计语言。(5).经常与高档语言配合使用,应用十分广泛。在程序设计过程中,为了有效地完毕任务,把所要完毕任务精心分割成若干个互相独立但互相又仍可有联系任务模块,这些任务模块使得任务变得相对单纯,对外数据互换相对简朴,容易编写,容易检测,容易阅读和维护。这种程序设计思想称为模块化程序设计思想。模块化构造程序设计,可以使系统软件便于调试与优化,也使其她人更好地理解和阅读系统程序设计。因而,本医院病床呼喊系统在软件设计上,运用了模块