1、基于单片机的数字电子秒表的设计与实现(完整资料)(可以直接使用,可编辑 优秀版资料,欢迎下载)沈阳理工大学应用技术学院毕业设计(论文)题 目:基于单片机的数字电子秒表的设计与实现系 别: 信息工程系 专 业: 自动化 学生姓名: 胡 培 指导教师: 唐朝仁 年 月 日摘 要近年来随着科技的飞速发展,单片机的应用正在不断的走向深入.本文阐述了基于单片机的数字电子秒表设计.本设计主要特点是计时精度达到00,解决了传统的由于计时精度不够造成的误差和不公平性,是各种体育竞赛的必备设备之一。另外硬件部分设置了查看按键,可以对秒表上一次计时时间进行保存,供使用者查询。本设计的数字电子秒表系统采用A8C52
2、单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、D数码管以及外部中断电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现五位D显示,显示时间为99。99秒,计时精度为0001秒,能正确地进行计时,同时能记录一次时间,并在下一次计时后对上一次计时时间进行查询。其中软件系统采用汇编语言编写程序,包括显示程序,定时中断服务,外部中断服务程序,延时程序等,并在WAE中调试运行,硬件系统利用PRTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。 关键字:单片机;数字电子秒表;仿真AbsratWiththe radvlopef ciece d te
3、cnology n recet yas, Saplcatios are cnstant-dp mnrI tis ppe, aeon singlp esign ofdgitl elctronstopwath. Thmanchractritcs o thisdesi tiing accuacyof 0。00s,toole the tadinl eut of a lak accuray de to tming errrs an fir, nd is a vait f spors cmpiton,one oftheessential euimet。 In diion the hardwar pat o
4、f the set View utton ontsopth an b th ast tme to sav time fouequeries.The dig o the mutifutnopat sysm uses SC8C microtrller as the entral evce, an ue its timer countrtiing an the cont prncis,combined wih dispaycrcut, LD digit tu,a wl e xtrnl nerrupt circuit to dsign a time。 he softwre and ardwaretog
5、ehr organically, alowinghsystem toachive tw LED dislay shws he time fom 0 to 9999 econds, Tming acuray o.001ond, abo corectytime athe ame tm rcord a tme, n te nexme aer theat tie heime to earch.uoacayadded a seod i ihftware stes uing assebly lana rgamng, inclng the dislypgam,timin, iterup servi, ext
6、ernal nterrut service rotne, dela rceurs, key osumer haking rocedurs,ndWAVin te omsinig, operaton, harware sem sestochve POTEUowrfu, imled eas to bserve the tnte imultion cnbeobserved on tua wokng oditionKeyword:ED display;Highprecisiotwach;STC9C2目 录绪论1 硬件设计4 总体方案的设计1.2 单片机的选择5。3 显示电路的选择与设计81.4 按键电路
7、的选择与设计111。5 时钟电路的选择与设计12.6 复位电路的选择与设计141。7 系统总电路的设计62 软件设计19.1 程序设计思想192。2 系统资源的分配12.3 主程序设计02.4 中断程序设计213 数字电子秒表的安装与调试26.软件的仿真与调试263.2 硬件的安装与调试263.3 系统程序的烧录73. 数字电子秒表的精度调试28结论29致谢30参考文献附录A 资料翻译2A。1英文原文2A2 中文翻译3附录B 程序4附录C 电路原理图51附录D 硬件实物图52绪 论秒表计时器是电器制造,工业自动化控制、国防、实验室及科研单位理想的计时仪器,它广泛应用于各种继电器、电磁开关,控制
8、器、延时器、定时器等的时间测试。奥运男子百米飞人大战中,牙买加飞人博尔特以9秒69的成绩夺得冠军。而博尔特冲过终点的瞬间,荧屏显示其成绩为9秒。相差的这个1秒,系由电子计时系统确认.奥运会男子00米蝶泳决赛上,美国选手菲尔普斯以50秒5的成绩惊险夺冠,距离“八金梦想”仅一步之遥。塞尔维亚选手查维奇以50。59秒获得银牌,只比菲尔普斯慢.01秒。这种细微的差距,即使是现场大屏幕用经典超慢镜头回放,也无法分辨.204年月8日15点15分,中国选手孟关良杨文军在雅典奥运会男子50米划艇决赛中,以1分0秒8的成绩获得中国在雅典奥运会的第28金.这是中国皮划艇项目的第一枚奥运金牌,也是中国水上项目在历届
9、奥运会上所获得的第一枚金牌。孟关良杨文军的成绩比获得银牌的古巴选手只快了 007秒,以至于两人在夺冠之后还不敢相信。自首届现代奥运会在希腊雅典举办以来,奥运计时技术一直在不断地向前发展。一百多年过去了,首届现代奥运会上计时所用的跑表如今换成了一系列高科技计时装 置,如高速数码摄像机、电子触摸垫、红外光束、无线应答器等等。鉴于当今计时技术的快速发展,即便千分之一秒(为眨眼的40倍)的毫微差距,也决定着冠军的归属。在现在的体育竞技比赛中,随着运动员的水平不断提高,差距也在不断缩小。有些运动对时间精度的要求也越来越高,有时比赛冠亚军之间的差距只有几毫秒,因此就需要高精度的秒表来记录成绩。有关计时钟表
10、的发展历史,大致可以分为三个演变阶段。一、从大型钟向小型钟演变.二、从小型钟向袋表过渡。三、从袋表向腕表发展.每一阶段的发展都是和当时的技术发明分不开的。188年,当时我国宋朝的科学家苏颂和韩工廉等人制造了水运仪象台,它是把浑仪、浑象和机械计时器组合起来的装置.它以水力作为动力来源,具有科学的擒纵机构,虽然几十年后毁于战乱,但它在世界钟表史上具有极其重要的意义.156年,荷兰的科学家惠更斯应用伽利略的理论设计了钟摆,第二年,在他的指导下年轻钟匠SCstr制造成功了第一个摆钟。165年,他又用游丝取代了原始的钟摆,这样就形成了以发条为动力、以游丝为调速机构的小型钟,同时也为制造便于携带的袋表提供
11、了条件.18世纪期间发明了各种各样的擒纵机构,为袋表的进一步产生与发展奠定了基础.英国人Geogeaam在17年完善了工字轮擒纵机构,它和之前发明的垂直放置的机轴擒纵机构不同,所以使得袋表机芯相对变薄。2世纪初,尤其是第一次世界大战的爆发,袋表已经不能适应作战军人的需要,腕表的生产成为大势所趋.许多新的设计和技术也被应用在腕表上,成为真正意义上的带在手腕上的计时工具。紧接着的二战使腕表的生产量大幅度增加,价格也随之下降,使普通大众也可以拥有它。腕表的年代到来了!98年:建立超冷铯原子钟,比微微秒又要精确1万倍。 从我国水运仪像台的发明到现在各国都在研制的原子钟这几百年的钟表演变过程中,我们可以
12、看到,各个不同时期的科学家和钟表工匠用他们的聪明的智慧和不断的实践融合成了一座时间的隧道,同时也为我们勾勒了一条钟表文化和科技发展的轨迹。本设计利用9C5单片机的定时器/计数器定时和记数的原理,使其能精确计时。利用中断系统使其能实现开始暂停的功能.P0口输出段码数据,P22.口作列扫描输出,1.1、P32、P3。3、分别接四个按钮开关,分别实现开始、暂停、清零和查看上次时间的功能。显示电路由五位共阴极数码管组成.初始状态下计时器显示0.00,当按下开始键时,外部中断INT1向PU发出中断请求,PU转去执行外部中断服务程序,即开启定时器T0。计时采用定时器T0中断完成,定时溢出中断周期为ms,当
13、一处中断后向CPU发出溢出中断请求,每发出一次中断请求就对毫秒计数单元进行加一,达到10次就对十毫秒位进行加一,依次类推,直到9。99秒重新复位.在计时过程中,只要按下暂停键,外部中断IT0向CPU发出中断请求,CPU转去执行外部中断0服务程序,即关闭定时器0,调用显示程序,实现暂停功能,同时将此次计时时间存入寄存区.然后对P。1进行扫描。当P1。1按下时就跳转回主程序.等待下一次计时开始.在按下暂停键时,将此时的计时时间存入中间缓存区,当再次按下开始键时,则讲中间缓存区的数据转入最终缓存区。秒表停止后对查看键P2.进行扫描,P2.按下为低电平时,调用最终缓存区的数据进行显示,即显示上一次计时
14、成绩.当P2位高电平时,调用显示缓存区的数据进行显示,即显示当此计时的成绩。根据以上设计思路从而实现数字电子秒表的计时和查看上一次计时时间的功能。本文主要内容包括三部分:第一部分介绍硬件部分设计思路及方案;第二部分介绍了软件部分的设计思路和设计;最后一部分则是整个系统的安装与调试过程。1 硬件设计.1 总体方案的设计数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制器,计时与显示电路和回零、启动和停表电路等。主控制器采用单片机AT89C52,显示电路采用
15、共阴极LE数码管显示计时时间。本设计利用A952单片机的定时器/计数器定时和记数的原理,使其能精确计时。利用中断系统使其能实现开始暂停的功能。P口输出段码数据,2。P.口作列扫描输出,P1。1、P3.2、3.3、2.5口接四个按钮开关,分别实现开始、暂停、清零和查看上次计时时间功能.电路原理图设计最基本的要求是正确性,其次是布局合理,最后在正确性和布局合理的前提下力求美观。硬件电路图按照图1进行设计。图1数字秒表硬件电路基本原理图根据要求知道秒表设计主要实现的功能是计时和显示。因此设置了四个按键和五位数码管显示时间,三个按键分别是开始,停止、复位和查看上次计时时间按键。利用这四个建来实现秒表的
16、全部功能,而五位数码管则能显示最多99999秒的计时。本设计中,数码管显示的数据存放在内存单元9H7H中。其中9H存放毫秒位数据,7AH存放十毫秒位数据,BH存放百毫秒位数据,7CH存放秒位数据,DH存放十秒位数据,每一地址单元内均为十进制BC码.由于采用软件动态扫描实现数据显示功能,显示用十进制CD码数据的对应段码存放在ROM表中。显示时,先取出77dH某一地址中的数据,然后查得对应的显示用段码,并从P0口输出,2口将对应的数码管选中供电,就能显示该地址单元的数据值。最终缓存区则设置为59H,数据存放规则和7H7H一样。分别对应存放毫秒位至十秒位数据。与79H7H存储区不一样的是:59H存储
17、的内容为数字秒表上一次计时显示的时间。而97DH为当前计时时间存储区.计时采用定时器T0中断完成,定时溢出中断周期为m,当一处中断后向PU发出溢出中断请求,每发出一次中断请求就对毫秒计数单元进行加一,达到0次就对十毫秒位进行加一,依次类推,直到99。99秒重新复位。再看按键的处理。这四个键可以采用中断的方法,也可以采用扫描的方法来识别.复位键和查看主要功能在于数值复位和查询上次计时时间,对于时间的要求不是很严格。而开始和停止键则是用于对时间的锁定,需要比较准确的控制.因此可以对复位和查看按键采取扫描的方式.而对开始和停止键采用外部中断的方式。设计中包括硬件电路的设计和系统程序的设计。其硬件电路
18、主要有主控制器,显示电路和回零、启动、查看、停表电路等.主控制器采用单片机T8952,显示电路采用共阴极LED数码管显示计时时间,四个按键均采用触点式按键.2 单片机的选择本课题在选取单片机时,充分借鉴了许多成形产品使用单片机的经验,并根据自己的实际情况,选择了ATMEL公司的A9S51.TL公司的89系列单片机以其卓越的性能、完善的兼容性、快捷便利的电擦写操作,低廉的价格、超强的加密功能,完全替代87C51/62和75152,低电压、低电源、低功耗,有I、PCC、QFP封装,有民用型、工业级、汽车级、军品级等多种温度等级,是当今世界上性能最好、价格最低、最受欢迎的八位单片机3。A89C52P
19、为 脚双列直插封装的8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的x5 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RA及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号I的接收解码及与主板CPU通信等。单片机的外部结构AT89S5单片机采用0引脚的双列直插封装方式。图1。2为引脚排列图, 40条引脚说明如下:主电源引脚Vs和Vcc ss接地 Vc正常操作时为+伏电源外接晶振引脚XTAL和XTAL2 XAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用外部振荡器时,此引脚接地。 L2内部振荡电路
20、反相放大器的输出端.是外接晶体的另一端。当采用外部振荡器时,此引脚接外部振荡源。图12单片机引脚图控制或与其它电源复用引脚RPD,ALE/,和Vpp RST/VD 当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位在cc掉电期间,此引脚可接上备用电源,由D向内部提供备用电源,以保持内部M中的数据。ALE/正常操作时为ALE功能(允许地址锁存)提供把地址的低字节锁存到外部锁存器,AE 引脚以不变的频率(振荡器频率的1)周期性地发出正脉冲信号.因此,它可用作对外输出的时钟,或用于定时目的。但要注意,每当访问外部数据存储器时,将跳过一个AL脉冲,AE 端可以驱动(吸收
21、或输出电流)八个STTL电路。对于EPRM型单片机,在ER编程期间,此引脚接收编程脉冲(功能)外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间,在每个机器周期内两次有效。同样可以驱动八LSL输入。/Vpp、/pp为内部程序存储器和外部程序存储器选择端.当/V为高电平时,访问内部程序存储器,当Vpp为低电平时,则访问外部程序存储器.对于EPROM型单片机,在EROM编程期间,此引脚上加21伏EPRM编程电源(Vpp).输入/输出引脚P0 P0.7,1.0 - 1。7,.0 - P2.7,P3.0 P3.7. 0口(P0。0 P0。7)是一个位漏极开路型双向IO口,在访问外部存
22、储器时,它是分时传送的低字节地址和数据总线,P0口能以吸收电流的方式驱动八个LTTL负载。 P1口(1 P。7)是一个带有内部提升电阻的位准双向IO口。能驱动(吸收或输出电流)四个LTT负载。 P2口(P2。0 P2.)是一个带有内部提升电阻的位准双向IO口,在访问外部存储器时,它输出高8位地址。P2口可以驱动(吸收或输出电流)四个LST负载。 P口(P.0 - 3。)是一个带有内部提升电阻的8位准双向I/口。能驱动(吸收或输出电流)四个LTTL负载6。AT89C52具有以下标准功能:8k字节Flas,256字节RA,3 位/口线,看门狗定时器,个数据指针,三个16位定时器计数器,一个6向量2
23、级中断结构,全双工串行口,片内晶振及时钟电路。另外,T85可降至Hz 静态逻辑操作,支持种软件可选择节电模式。空闲模式下,CPU停止工作,允许RM、定时器计数器、串口、中断继续工作.掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。CPU是单片机的核心部件.它由运算器和控制器等部件组成2.(1)运算器运算器的功能是进行算术运算和逻辑运算.可以对半字节(4位)、单字节等数据进行操作.例如能完成加、减、乘、除、加1、减、CD码十进制调整、比较等算术运算和与、或、异或、求补、循环等逻辑操作,操作结果的状态信息送至状态寄存器。8C2运算器还包含有一个布尔
24、处理器,用来处理位操作。它是以进位标志位C为累加器的,可执行置位、复位、取反、等于转移、等于0转移、等于转移且清0以及进位标志位与其他可寻址的位之间进行数据传送等位操作,也能使进位标志位与其他可移位寻址的位之间进行逻辑与、或操作。(2) 程序计数器PC程序计数器PC用来存放即将要执行的指令地址,共1位,可对64程序存储器直接寻址.执行指令时,PC内容的低位经P0口输出,高位经口输出.(3) 令寄存器指令寄存器中存放指令代码。CP执行指令时,由程序存储器中读取的指令代码送入指令寄存器,经译码后由定时与控制电路发出相应的控制信号,完成指令功能。本设计采用ATE的AT895微处理器,主要基于以下几个
25、因素: AT892为51内核,仿真调试的软硬件资源丰富。 性价比高,货源充足。功耗低,功能强,灵活性高. DI40封装,体积小,便于产品小型化。 为EEPRM程序存储介质,00次以上擦写周期,便于编程调试。 工作电压范围宽:27V6V,便于交直流供电.1. 显示电路的选择与设计对于数字显示电路,通常采用液晶显示或数码管显示。对于一般的段式液晶屏,需要专门的驱动电路,而且液晶显示作为一种被动显示,可视性差,不适合远距离观看;对于具有驱动电路和单片机接口的液晶显示模块(字符或点阵),一般多采用并行接口,对单片机的接口要求较高,占用资源多;另外,AT8S2单片机本身无专门的液晶驱动接口。而数码管作为
26、一种主动显示器件,具有亮度高、响应速度快、防潮防湿性能好、温度特性极性、价格便宜、易于购买等优点,而且有远距离视觉效果,很适合夜间或是远距离操作。因此,本设计的显示电路采用7段数码管作为显示介质。数码管显示可以分为静态显示和动态显示两种。由于本设计需要采用五位数码管显示时间,如果静态显示则占用的口线多,硬件电路复杂。所以采用动态显示。图.3显示电路基本原理图动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描.通常各位数码管的段选线相应并联在一起,由一个8位的I/口控制;各位的公共阴极位选线由另外的I/O口线控制.动态方式显示时,各数码管分时轮流选通,要使其稳定显示必须采
27、用扫描方式,即在某一时刻只选通一位数码管,并送出相应的段码,在另一时刻选通另一位数码管,并送出相应的段码,依此规律循环,即可使各位数码管显示将要显示的字符,虽然这些字符是在不同的时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人同时显示的感觉.数码显示管分为共阳数码管和共阴数码管两种共阳极数码管的个发光二极管的阳极(二极管正端)连接在一起,如图14(b),通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流
28、,还需根据外接电源及额定段导通电流来确定相应的限流电阻。共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起,如图(c),通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端,当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。 图14 (a)数码管引脚图 ()共阳极内部结构图(c)共阴极内部结构图本设计采用共阴极数码显示管做显示电路,由于采用的是共阴的数码显示管,所以只要数码管的、c、d、e、f、引脚为高电平,那么其对应的
29、二极管就会发光,使数码显示管显示09的编码见表11。表1.1 共阴极数码显示管字型代码字型共阴极代码字型共阴极代码F56DH10H6DH2BH77H34H8FH466H96FH动态显示电路由显示块、字形码驱动模块、字位驱动模块三部分组成。如图1。3所示为本系统的5位LE动态显示器接口电路。图中,5个数码管的段段选线分别与外接上拉电阻的单片机P0口对应相连,而5个数码管的位控制端则和NP型三极管的集电极相连接。单片机的P2.0P2。口则分别对应数码显示管的最低位到最高位,P2.0P。4口分别和五个PN型三极管的基极相连,做三极管导通的控制端,而NPN型三极管选用03型三极管。根据90的资料显示:
30、其耐压值为0,最大功率为0。65W,最大电流为0.A,电气性能完全满足本设计的要求。另外数码管显示是采用动态显示,所以对三极管的开关频率有一定的要求。根据电子秒表的设计计算可知动态显示的频率最高为3KHz,而901的导通频率为Hz,完全能满足本设计的要求,所以最终选取013三极管最为位控制开关。由于数码管是有P0口来驱动,它内部没有上拉电阻,作为输出口时驱动能力比较弱,不能点亮数码显示管,因此P0口必须接上拉电阻来提高驱动能力。另外一位共阴数码管的驱动电流一般为20mA左右,如果电流太大容易造成数码管损坏,所以也需要根据电源的电压值来确定上拉电阻的大小。如果电阻过小,势必会形成灌电流过大,造成
31、单片机的损坏,如果电阻过大,那么对拉电流没有太大的影响。电源供电电压为V,当上拉电阻选用220电阻时灌电流为2m。不会损坏单片机的I/O口,同时也可以为数码显示管起到限制电流的保护作用。.4 按键电路的选择与设计本设计中有四个按键,分别实现开始、暂停、复位和查看功能。这三个键可以采用中断的方法,也可以采用查询的方法来识别。对于复位键和查看键,主要功能在于数值复位和对上次计时时间的查看,对于时间的要求不是很严格,而开始和暂停键主要用于时间的锁定,需要比较准确的控制。因此可以考虑,对复位键和查看键采用查询的方式,而对于开始和暂停键采用外部中断。四个按键均采用低电平有效,具体电路连接图如图15所示。
32、当按键没有按下时,单片机的/O口直接连接电源,因此需要接上拉电阻来进行限流,本设计中选取阻值为2k 的电阻作为上拉电阻,根据计算可知此时的灌电流为2。mA,查看A89C5的资料得知次电流在安全范围内,符合安全设计要求。图1。5按键电路按键电路中由于采用了外部中断,所以需要用到P3口的第二功能。P3口引脚的第二功能如表12表1。2P3口引脚第二功能表P3口引脚特殊功能P3。RX(串行输入口)3.TXD(串行输出口)P.2IN0(外部中断0请求输入端)P.IN1(外部中断1请求输入端)3.40(定时器/计数器0计数脉冲输入端)P3.5T1(定时器/计数器计数脉冲输入端)6R(片外数据存储器写选通信
33、号输出端)P3RD(片内数据存储器读选通信号输出端)1。5 时钟电路的选择与设计单片机的时钟信号用来提供单片机内各种微操作的时间基准,8952片内设有一个由反向放大器所构成的振荡电路,XTAL1和XA2分别为振荡电路的输入和输出端,89S5单片机的时钟信号通常用两种电路形式得到:内部振荡方式与外部振荡方式。外部方式的时钟很少用,若要用时,只要将AL1接地,XTAL2接外部振荡器就行。对外部振荡信号无特殊要求,只要保证脉冲宽度,一般采用频率低于1MHz的方波信号。时钟发生器把振荡频率两分频,产生一个两相时钟信号P1和P2供单片机使用.P在每一个状态的前半部分有效,2在每个状态的后半部分有效。本设
34、计采用的内部振荡方式,内部振荡方式所得的时钟信号比较稳定,实用电路中使用较多.本设计系统的时钟电路如图1.4所示。只要按照图16所示电路进行设计连接就能使系统可靠起振并能稳定运行。图中,电容器C1、C2起稳定振荡频率、快速起振的作用,电容值一般为53F。但在时钟电路的实际应用中一定要注意正确选择其大小,并保证电路的对称性,尽可能匹配,选用正牌的瓷片或云母电容,如果可能的话,温度系数尽可能低.本设计中采用大小为3pF的电容和1Hz的晶振。图16内部振荡电路(4) 时序A82典型的指令周期(执行一条指令的时间称为指令周期)为一个机器周期,一个机器周期由六个状态(十二振荡周期)组成。每个状态又被分成
35、两个时相P1和P2。所以,一个机器周期可以依次表示为S1,S12,SP1,SP2.通常算术逻辑操作在P1时相进行,而内部寄存器传送在P2时相进行。图. 89S时序图1。7给出了A89S2单片机的取指和执行指令的定时关系。这些内部时钟信号不能从外部观察到,所用XTA2振荡信号作参考。在图中可看到,低位地址的锁存信号AL在每个机器周期中两次有效:一次在S1P2与S21期间,另一次在SP2与S51期间。对于单周期指令,当操作码被送入指令寄存器时,便从S2开始执行指令。如果是双字节单机器周期指令,则在同一机器周期的S4期间读入第二个字节,若是单字节单机器周期指令,则在期间仍进行读,但所读的这个字节操作
36、码被忽略,程序计数器也不加1,在S6P2结束时完成指令操作。图1的(a)和(b)给出了单字节单机器周期和双字节单机器周期指令的时序.895指令大部分在一个机器周期完成。乘(ML)和除(DIV)指令是仅有的需要两个以上机器周期的指令,占用4个机器周期。对于双字节单机器周期指令,通常是在一个机器周期内从程序存储器中读入两个字节,唯有MV指令例外。VX是访问外部数据存储器的单字节双机器周期指令。在执行MOVX指令期间,外部数据存储器被访问且被选通时跳过两次取指操作。图1中(c)给出了一般单字节双机器周期指令的时序9。6复位电路的选择与设计关于单片机的置位和复位,都是为了把电路初始化到一个确定的状态,
37、一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现.当A8C52单片机的复位引脚(全称ESET)出现2个机器周期以上的高电平时,单片机就完成了复位操作.如果RST持续为高电平,单片机就处于循环复位状态,而无法执行程序.因此要求单片机复位后能脱离复位状态。而本系统选用的是12MHz的晶振,因此一个机器周期为1,那么复位脉冲宽度最小应为2s。在实际应用系统中,考虑到电源的稳定时间,参数漂移,晶振稳定时间以及复位的可靠
38、性等因素,必须有足够的余量.根据应用的要求,复位操作通常有两种基本形式:上电复位、手动复位。上电复位要求接通电源后,自动实现复位操作。85单片机的上电复位PR(Power OnReset)实质上就是上电延时复位,也就是在上电延时期间把单片机锁定在复位状态上。在单片机每次初始加电时,首先投入工作的功能部件是复位电路。复位电路把单片机锁定在复位状态上并且维持一个延时(记作TRST),以便给予电源电压从上升到稳定的一个等待时间;在电源电压稳定之后,再插入一个延时,给予时钟振荡器从起振到稳定的一个等待时间;在单片机开始进入运行状态之前,还要至少推迟个机器周期的延时。上述一系列的延时,都是利用在单片机R
39、ST引脚上外接一个RC支路的充电时间而形成的.典型复位电路如图1.(a)所示,其中的阻容值是原始手册中提供的。在经历了一系列延时之后,单片机才开始按照时钟源的工作频率,进入到正常的程序运行状态。在电源电压以及振荡器输出信号稳定之后,又等待了一段较长的延时才释放T信号,使得P脱离复位锁定状态;而RT信号一旦被释放,立刻在E引脚上就可检测到持续的脉冲信号8.图。 上电复位延时电路由于标准80C51的复位逻辑相对简单,复位源只有ST一个(相对新型单片机来说,复位源比较单一),因此各种原因所导致的复位活动以及复位状态的进入,都要依靠在外接引脚RS上施加一定时间宽度的高电平信号来实现.标准5不仅复位源比
40、较单一,而且还没有设计内部上电复位的延时功能,因此必须借助于外接阻容支路来增加延时环节,如图1.8()所示。其实,外接电阻R还是可以省略的,理由是一些OS单片机芯片内部存在一个现成的下拉电阻Rrst。例如,A89系列的Rrst阻值约为020 k;P89V5x2系列的Rs阻值约为02k,如图1。9所示。因此,在图1。8(a)基础上,上电复位延时电路还可以精简为图.8(b)所示的简化电路(其中电容C的容量也相应减小了)。图1.9 复位引脚RT内部电路在每次单片机断电之后,须使延时电容上的电荷立刻放掉,以便为随后可能在很短的时间内再次加电作好准备。否则,在断电后还没有充分放电的情况下,如果很快又加电
41、,那么RC支路就失去了它应有的延迟功能。因此,在图1。8()的基础上添加一个放电二极管,上电复位延时电路就变成了如图1.(c)所示的改进电路.也就是说,只有RC支路的充电过程对电路是有用的,放电过程不仅无用,而且会带来潜在的危害。于是附加一个放电二极管D来大力缩短放电持续时间,以便消除隐患。二极管D只有在单片机断电的瞬间(即VC趋近于0 V,可以看作VCC对地短路)正向导通,平时一直处于反偏截止状态。手动复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。单片机要完成复位,必须向复位端输出并持续两个机器周期以上的高电平,从而实现复位操作。本设计采用上电且开关
42、复位电路,如图1.10所示上电后,由于电容充电,使RT持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使T持续一段时间的高电平,从而实现上电且开关复位的操作。通常选择=10,R=1K,本设计采用的电容值为22F的电容和电阻为1K的电阻。图1.10 单片机复位电路1。7 系统总电路的设计系统总电路由以上设计的显示电路,时钟电路,按键电路和复位电路组成,只要将单片机与以上各部分电路合理的连接就组成了系统总电路。系统总电路图如图1。11所示.AT89C2单片机为主电路的核心部分,各个电路均和单片机相连接,由单片机统筹和协调各个电路的运行工作。AT9C52单片机提供了XAL1和XTL2两个专
43、用引脚接晶振电路,因此只要将晶振电路接到两个专用引脚即可为单片机提供时钟脉冲,但在焊接晶振电路时要尽量使晶振电路靠近单片机,这样可以为单片机提供稳定的始终脉冲。图1。1 系统总电路图复位电路同晶振电路,单片机设有一个专用的硬件复位接口,并设置为高电平有效。按键电路与单片机的端口连接可以由用户自己设定,本设计中软件复位键和查看键分别接单片机的P.1和P。5,均设为低电平有效。而另外的开始键和暂停键两键使用了外部中断,所以需要连接到单片机的特殊接口P3。3和P3.2,这两个O口的第二功能分别为单片机的外部中断1端口和外部中断0端口。同样设置为位低电平有效。显示电路由五位数码管组成,采用动态显示方式
44、,因此有8位段控制端和位位控制端,八位段控制接0口,P.0P0。分别控制数码显示管的a、b、c、d、e、f、g、dp显示,89C52的P0口没有集成上拉电阻,高电平的驱动能力很弱,所以需要接上拉电阻来提高P0的高电平驱动能力。五位位控制则由低位到高位分别接到P2024口,NPN三极管913做为位控制端的开关,当P202。端口任意一个端口为高电平时,与其相对应的三极管就导通,对应的数码管导通显示。通过以上设计已经将各部分电路与单片机有机的结合到一起,硬件部分的设计以大功告成,剩下的部分就是对单片机的编程,使单片机按程序运行,实现数字电子秒表的全部功能。 软件设计2。 程序设计思想本设计采用了汇编语言编写,汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程.汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。汇编语言的特