1、毕业设计论文说明书课题名称单片机秒表系统的设计学生姓名专业机电一体化班级机电时间指导教师电子与电气工程系1摘要近年来随着科技的飞速发展,微电子的发展可谓是日新月异,特别是单片机更是百花争艳。在电子时代的大潮流中,MCS51系列的单片机以其特有的简单、易用、易学、应用技术成熟、应用技术人员多、性价比高的优势占有8位微控制器市场大约50以上的份额,由此可见单片机在实际生活的广泛运用。单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。本次设计内容为以AT89C51单片机为核心的秒表。设计的主要特点是计时器从0099秒的计时,每秒
2、自动加1,同时设置有暂停键和复位键,在任何情况下都可以暂停和复位。利用单片机定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现3位LED显示,显示时间为099秒,计时精度为1秒,能正确地进行计时。其中软件系统采用汇编语言编写程序,包括显示程序,中断服务,外部中断服务程序,复位程序等。本系统相对简单,指令中有较丰富的逻辑控制功能指令,能叫方便的直接操作外部的I/O设备。关键字单片机;定时器;计数器2目录一、硬件简介与电路设计错误未定义书签。11单片机AT89C51介绍3111单片机AT89C51管脚说明3112振荡器
3、特性5113芯片擦除512复位和按键电路设置513显示电路的选择与设计714晶振电路和电源电路的设计10二、软件设计1121程序设计思想1122系统资源的分配1223主程序设计1224中断程序设计13241外部中断0服务程序14242外部中断1服务程序1425定时器T0子程序设计14三、数字电子秒表的安装与调试1531软件的仿真与调试1532硬件的安装与调试16321晶振电路的测试17322复位电路的测试17323显示电路的测试17四、程序设计18五、结束语21致谢22参考文献233一硬件简介与电路设计11单片机AT89C51介绍AT89C51单片机介绍AT89C51是一种带4K字节闪烁可编程
4、可擦除只读存储器(FPEROMFALSHPROGRAMMABLEANDERASABLEREADONLYMEMORY)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容。由于将多功图1AT89C51能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。111单片机AT89C51管脚说明VCC供电电压。GND接地。P0口P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为
5、高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口4被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为
6、输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示
7、口管脚备选功能P30RXD(串行输入口)P31TXD(串行输出口)P32/INT0(外部中断0)P33/INT1(外部中断1)P34T0(记时器0外部输入)P35T1(记时器1外部输入)P36/WR(外部数据存储器写选通)P37/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对
8、外部输出的脉冲或用于定时目的。然而要注意的是每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。5/EA/VPP当/EA保持低电平时,则在此期间外部程序存储器(0000HFFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/E
9、A端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2来自反向振荡器的输出。112振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。113芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10MS来完成
10、。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。12复位和按键电路设计数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。本方案采用AT89C51单片机为中心器件,利用其定时器/计数器定时和计数的原理,结合硬件电
11、路如电源电路,晶振电路,复位电路,显示电路,以及一些案件电路来设计计时器,将软、硬件结合起来。设计中包括硬件电路的设计和系统程序的设计。其硬件电路主控制采用单片机AT89C51,显示电路采用二位共阳6极LED数码管显示计时时间。利用中断系统使其能实现开始、继续/暂停、复位和分/秒显示转换的功能。图2电路设计图初始状态下计时器显示00,当按下开始键时,外部中断INT0向CPU发出中断请求,CPU转去执行外部中断0服务程序,即开启定时器T0。计时采用定时器T0中断完成,定时溢出中断周期为1S,当一处中断后向CPU发出溢出中断请求,每发出一次中断请求就对计数单元进行加一,达到1次就对秒位进行加一,依
12、次类推,直到99秒重新复位。在计时过程中,只要按下继续/暂停键,外部中断INT1向CPU发出中断请求,CPU转去执行外部中断1服务程序,即关闭定时器T0,调用显示程序,实现暂停功能,同时将此次计时时间存入中间缓存区。再次按下继续/暂停键,定时器T0在次开启,调用中间缓存区的数据,秒表继续加一。当秒表计时超过99时,则程序跳转从0开始。在秒表暂停时,按下复位开关,中间缓存区中的数据清零,程序回到开始。而在秒表暂停时,按下分/秒显示转换开关,则将中间缓存区中的数据转换为以分秒显示的状态送入显示区。根据要求秒表设计主要实现的功能是计时和显示。因此设置了四个按键和二位数码管显示时间,四个按键分别是开始
13、、继续/暂停、复位、分/秒显示转换。利用这四个键来实现秒表的全部功能,而二位数码管则能显示最多99秒的计时。7图3开始、继续/暂停电路图4复位电路本设计中,数码管显示的数据存放在内存单元7CH7DH中。7CH存放秒位数据,7DH存放十秒位数据,每一地址单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM表中。显示时,先取出7CH7DH某一地址中的数据,然后查得对应的显示用段码,并从P0口输出,P2口将对应的数码管选中供电,就能显示该地址单元的数据值。按键处理方面,四个键可以采用中断的方法,也可以采用扫描的方法来识别。复位键和分/秒显示转
14、换键主要功能在于数值复位和转换,对于时间的要求不是很严格。而开始、继续/暂停键则是用于对时间的锁定,需要比较准确的控制。因此可以对开始、继续/暂停键采用外部中断的方式。13显示电路的选择与设计对于数字显示电路,通常采用液晶显示或数码管显示。一般的段式液晶屏,需要专门的驱动电路,而且液晶显示作为一种被动显示,可视性差,不适合远距离观看;对于具有驱动电路和单片机接口的液晶显示模块字符或点阵,一般多采用并行接口,对单片机的接口要求较高,占用资源多;另外,AT89C51单片机本身无专门的液晶驱动接口。而数码管作为一种主动显示器件,具有亮度高、响应速度快、防潮防湿性能好、温度特性极性、价格便宜、易于购买
15、等优点,而且有远距离视觉效果,很适合夜间或是远距离操作。因此,本设计的显示电路采用8段数码管作为显示介质。数码管显示可以分为静态显示和动态显示两种。本设计采用二位数码管显示8时间,动/静态显示皆可。则本设计应任务要求选用动态显示。图5显示电路基本原理图动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。通常各位数码管的段选线相应并联在一起,由一个8位的I/O口控制。动态方式显示时,各数码管分时轮流选通,要使其稳定显示必须采用扫描方式,即在某一时刻只能选通一位数码管,并送出相应的段码,在另一时刻选通另一位数码管,并送出相应的段码,依此规律循环,即可使各位数码管显示将要显示
16、的字符,虽然这些字符是在不同的时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人同时显示的感觉。数码显示管分为共阳数码管和共阴数码管两种。共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起,如图6(C),通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起,如图(B),通常,公共阴极接低
17、电平(一般接地),其它管脚接段驱动电路输出端,当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。9图6(A)数码管引脚图(B)共阳极内部结构图(C)共阴极内部结构图显示电路由二位数码管组成,采用动态显示方式,有8位段控制端和2位位控制端,八位段控制接P0口,P00P07分别控制数码显示管的A、B、C、D、E、F、G、DP显示,AT89C51的P0口没有集成上拉电阻,高电平的驱动能力很弱,所以需要接上拉电阻来提高P0的高电平驱动能力。二位位
18、控制则由低位到高位分别接到P20P21口,NPN三极管9013做为位控制端的开关,当P20P21端口任意一个端口为高电平时,与其相对应的三极管就导通,对应的数码管导通显示。本设计采用共阳极数码显示管做显示电路,由于采用的是共阳的数码显示管,所以只要数码管的A、B、C、D、E、F、G、H引脚为低电平,那么其对应的二极管就会发光,使数码显示管显示09的编码见表11。表11共阴极数码显示管字型代码字型共阳极代码字型共阳极代码0C0H592H1F9H682H2A4H7F8H3B0H880H499H990H显示时采用查表程序显示MOVA,R3MOVDPTR,TABMOVCA,ADPTR10MOVP0,A
19、MOVA,R4MOVDPTR,TABMOVCA,ADPTRMOVP2,ARETTABDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H由于数码管是有P0口来驱动,它内部没有上拉电阻,作为输出口时驱动能力比较弱,不能点亮数码显示管,因此P0口必须接上拉电阻来提高驱动能力。电源供电电压为5V,当上拉电阻选用220电阻时灌电流为22MA。不会损坏单片机的I/O口,同时也可以为数码显示管起到限制电流的保护作用。14晶振电路和电源电路的设计系统总电路除以上设计的显示电路,按键电路和复位电路组成外,其次还剩晶振电路和电源电路。再将单片机与以上各部分电路合理的连接就
20、组成了系统总电路。AT89C51单片机为主电路的核心部分,各个电路均和单片机相连接,由单片机统筹和协调各个电路的运行工作。AT89C51单片机提供了XTAL1和XTAL2两个专用引脚接晶振电路,因此只要将晶振电路接到两个专用引脚即可为单片机提供时钟脉冲,但在焊接晶振电路时要尽量使晶振电路靠近单片机,这样可以为单片机提供稳定的始终脉冲。图7晶振电路11在这个系统中电源采用由7805构成的稳压电路,它可以提供非常恒定的5V电压,不会因为电压不稳儿引入新的干扰,保证系统更加稳定运行。通过以上设计已经将各部分电路与单片机有机的结合到一起,硬件部分的设计以大功告成,剩下的部分就是对单片机的编程,使单片机
21、按程序运行,实现数字电子秒表的全部功能。二、软件设计21程序设计思想本设计采用了汇编语言编写,汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。汇编语言的特点1面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。2保持了机器语言的优点,具有直接和简捷的特点。3可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。4目标代码简短,占用内存少,执
22、行速度快,是高效的程序设计语言。5经常与高级语言配合使用,应用十分广泛。在程序设计过程中,为了有效地完成任务,把所要完成的任务精心的分割成若干个相互独立但相互又仍可有联系的任务模块,这些任务模块使得任务变得相对单纯,对外的数据交换相对简单,容易编写,容易检测,容易阅读和维护。这种程序设计思想称为模块化程序设计思想。模块化结构程序的设计,可以使系统软件便于调试与优化,也使其他人更好地理解和阅读系统的程序设计。因此,本医院病床呼叫系统在软件的设计上,运用了模块化程序的结构对软件进行设计,使得程序变得更加直观易懂。程序的主要模块有主程序、显示程序、定时溢出中断服务程序、外部中断服务程序。1222系统
23、资源的分配本设计系统所用到的单片机端口数比较多,所以在这里将对数字电子秒表的硬件资源的大概分配加以说明。片内RAM的分配、各功能键的定义以及各端口的分配。表21端口的分配安排表名称功能描述7CH7DH1S99S位显示寄存区6CH6DH1S99S位中间寄存区定时器T0控制秒表的最小精度P32外部中断INT0开始中断信号入口P33外部中断INT1继续/暂停中断信号入口RST复位键P11分/秒转换键P00数码管的位选端AP01数码管的位选端BP02数码管的位选端CP03数码管的位选端DP04数码管的位选端EP05数码管的位选端FP06数码管的位选端GP07数码管DP端P20十位数字显示P21个位数字
24、显示P22分钟位显示23主程序设计本系统程序主要模块由主程序、定时中断服务程序、外部中断0服务程序和外部中断1服务程序组成。其中主程序是整个程序的主体。可以对各个中断程序进行调用。协调各个子程序之间的联系。系统(上电)复位后,进入主程序。如图8首先对系统进行初始化,包括设置各入口地址、中断的开启、对各个数据缓存区清“0”、赋定时器初值,初始化完毕后,就进入数码管显示程序。数码管显示程序对显示缓存区内的数值进行调用并在数码管上进行动态显示。查询复位键RST是否按下,当复位键按下后,程序返回开始,重新对系统进行初始化。13图8主程序流程图在主程序中还进行了赋寄存区的初始值、设置定时器初值以及开启外
25、部中断等操作,当定时时间到后就转去执行定时中断程序。当外部中断有请求则去执行外部中断服务程序。并在执行完后返回主程序。24中断程序设计现在方案中采用了三个中断,外部中断INT0,INT1和定时中断T0。CPU在响应中断时,先处理高级中断,在处理低级中断,若有多个同级中断时,则按自然优先顺序处理。例如当CPU正在处理一个中断申请时,有出现了另一个优先级比它高的中断请求,这是,CPU就暂停终止对当前优先级较低的中断源的服务,转去响应优先级比它高的中断请求,并为其服务。待服务结束,再继续执行原来较低级的中断服务程序。而当CPU为级别高的终端服务程序服务时,如果级别低14的中断发出中断请求,此时CPU
26、是不会响应的,所以为了避免开始和暂停两个按键中的一个出现没有响应的情况,在进行程序编辑时要注意对中断的使用,避免出现中断的嵌套。,合理分配中断对本设计的实现是至关重要的。另外由于数字式电子秒表的最小精度位1MS,属于高精度电子秒表。定时器T0的定时周期也为1MS,为了使电子秒表暂停键按下后CPU能马上去响应中断程序,必须将暂停的外部中断级别高于定时计数器的中断级别。避免出现CPU执行完定时溢出中断程序后再响应外部中断程序,影响计时精度。AT89C51的自然优先级顺序排列如下中断源最高外部中断0定时/计数器0溢出中断外部中断1定时/计数器1溢出中断串行口中断最低数字式秒表中的两个按键采用了中断实
27、现功能。开始采用外部中断INT0,暂停采用外部中断INT1。另外程序中还用到了定时/计数器0溢出中断进行计时。依据设计要求,暂停的外部中断INT1中断级别最高,计时的定时/计数器0溢出中断次之,开始的外部中断INT0级别最低。241外部中断0服务程序外部中断0服务程序结合外部P32停止键实现数字电子秒表的停止功能。当按下P32停止键按下向CPU发出外部中断请求,CPU转向外部中断0服务程序执行,停止定时器。另外将当前显示的时间进行一次存储,存进中间寄存区。最后中断返回。242外部中断1服务程序外部中断1服务程序结合外部P33停止键实现数字电子秒表的启动功能。当按下P33启动键按下向CPU发出外
28、部中断请求,CPU转向外部中断1服务程序执行,启动定时器。另外进行二次存储,将之前进行一次存储的数码管显示数据存入最终缓存区,避免下次计时暂停时一次存储将数据掩盖,从而起到保护数据的作用。二次存储后就中断返回。15在对定时器赋初值时将单片机需要执行的语句所花的时间加上,这样就能使数字电子秒表的误差达到最小。25定时器T0子程序设计图9定时器T0子程序图框三、数字电子秒表的安装与调试31软件的仿真与调试PROTEUSISIS是英国LABCENTER公司开发的电路分析与实物仿真软件,它可以仿真、分析SPICE各种模拟器件和集成电路。该软件的主要特点总结后有以下四点实现了单片机仿真和SPICE电路仿
29、真相结合的功能。支持目前主16流单片机系统的仿真。提供了软件调试功能,并可以与WAVE联合仿真调试。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。在电子领域中也起到了很大的作用,它的出现仿真不需要先焊接电路,可以先仿真调试通过后在焊电路,节省了不少在硬件调试上所花的时间。PROTEUSISIS的工作界面是一种标准的WINDOWS界面。它包括标题栏、主菜单、状态栏、标准工具栏、绘图工具栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口等十几个工具,方便了使用者的使用。PROTEUSSISI绘制原理
30、图的操作与PROTEL99SE绘制原理图的操作基本相同,在这里就不再作赘述。下面拿本设计中的一个仿真例子作简述说明。运行PROTEUSSISI后,绘制病床呼叫系统的原理图。首先打开已经画好的PROTEUSDSN文件,双击图中的AT89S52芯片,就弹出一个窗口,在PROGRAMFILE项中通过路径选择在WAVE中生成的HEX文件,双击选中后确定,这样仿真图中的AT89S52芯片就已经读取了本设计中的HEX文件。单击“三角形按钮”进行仿真。通过对仿真结果的观察来对程序进行修改,最终使程序到达设计要求。32硬件的安装与调试按照之前设计好的数字电子秒表原理图,详细计算系统中各个元件的参数,选择相应器
31、件,制作实际电路板。由于考虑到万能板大小的问题及元件之间连线的方便,在焊接元器件前必须考虑元件的布局然后进行实际操作。制作好的电路板可以用万用表(200欧姆档)的红、黑表笔测试电路板的每条走线,当其电阻非常小时,证明走线没有断开,当其电阻很大时,证明该条走线断了,应该重新走线,使电路板在电气上得到正确地连接。选用万用表的20K欧姆档,检测电路中是否存在短路。因为系统采用的是共阴极数码管作为显示电路,必须确保数码管的公共端接的是低电平。321晶振电路的测试在单片机正常运行的必要条件是单片机系统的时钟稳定正常。实际中,因为各种原因导致系统时钟不正常而出现系统无法正常运行的情况时有,因此系统时钟是否
32、振是通电检查的首要环节。在系统通电的状况下,用万用表的直流电压档17(20V),分别测量XTAL1和XTAL2引脚的电压,看是否正常,在调试过程中,测得电压XTAL1引脚应为205V,XTAT2应为215V。322复位电路的测试复位不正常也会导致系统不能工作。如果复位引脚始终为高电平,系统将始终处于复位状态;如果始终为低电平,不能产生复位所需的高电平信号脉冲,则系统也可能无法正常工作。单片机正常工作时,RST复位引脚应为0V,按下复位按键时,复位引脚为高电平5V左右。323显示电路的测试显示电路是数字电子秒表正常运行最直观的观察窗口,我们可以通过观察显示电路的显示结果观察系统能否正常运行。当显
33、示电路按照电路图焊接好后,用万用表的测二极管档位,将黑表笔接共阴数码管的公共段,然后将红表笔接数码管的各段,当数码管的段能正常显示,说明各点焊接正常。18四、程序设计原程序ORG0000HAJMPMAINORG0003HAJMPX0_INTORG000BHAJMPT0_INTORG0013HAJMPX1_INTMAINMOVTMOD,01HT0定时方式1MOVTH0,6553650000/25650MS12MHZMOVTL0,6553650000MOD256SETBTR0SETBET0开启定时中断SETBEX0SETBEX1SETBEA开中断MOVR1,0099秒计数MOVR2,001秒数MO
34、VR7,150MS计数MOVP0,0C0H显示000MOVP2,0C0HMOVP1,0C0HLOOPSJMPLOOPDELAY延时子程序MOVR4,019DJNZR4,DJNZR4,RETX0_INT启动/停止CPLF0RETIX1_INT清零MOVR1,0MOVP0,0C0HMOVP2,0C0HMOVP1,0C0HRETIT0_INT50MS中断执行一次MOVTL0,6553650000MOD256MOVTH0,6553650000/25650MS12MHZDJNZR7,T0_END中断不到20次MOVR7,220JNBF0,T0_ENDMOVA,R2ADDA,1DAAANLA,0FHMOV
35、R2,AJNZDISPMOVA,R1ADDA,1DAA20MOVR1,ADISPMOVA,R2ANLA,0FHMOVCA,ADPTR查出段码MOVP1,A显示01秒MOVA,R1ANLA,0FHMOVDPTR,TABMOVCA,ADPTR查出段码MOVP2,A显示个位MOVA,R1SWAPAANLA,0FHMOVCA,ADPTR查出段码MOVP0,A显示十位T0_ENDRETITABDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND21五结束语本篇论文是利用单片机(SINGLECHIPMICROCOMPUTER)和接口外围电路组成的时钟和秒表双重
36、功能的电子秒表电路。整个电路由硬件电路和软件程序两部分组成。硬件电路使用元件少,电路结构简单,功能强,在文中有很多地方叙述的并不是很清楚,因此用图示出以便更好的了解;软件程序设计结构合理,思路清晰,利用中断服务程序对各种事件进行处理,提高微处理器的工作效率。硬件电路由单片机AT89C51微处理器CPU、接口芯片8279、8位LED数码管显示电路、按键电路等构成。系统总电路由以上设计的显示电路,时钟电路,按键电路和复位电路组成,只要将单片机与以上各部分电路合理的连接就组成了系统总电路。AT89C52单片机为主电路的核心部分,各个电路均和单片机相连接,由单片机统筹和协调各个电路的运行工作。通过以上
37、设计已经将各部分电路与单片机有机的结合到一起,硬件部分的设计以大功告成,剩下的部分就是对单片机的编程,使单片机按程序运行,实现数字电子秒表的全部功能这次的单片机秒表设计在显示方面侧重的多一些,至于按键方面则设置有两个,一个是“暂停”键,另一个是“复位”键。而这次的的程序则是用C语言编写的,虽然在同学的帮助下编写完成,但是还有很多不足的地方,比如在中断程序的那一块就有很多不足的地方。22致谢在这次的毕业设计中我的毕业设计老师给了我很大的帮助老师为我们指点迷津,帮助我开拓设计思路,精心点拨、鼓励。在设计过程中,不管我遇到任何问题都热心的帮我们解决。在我想松懈,放弃的时,适时给我们打气,从图纸的绘制
38、到毕业论文的的完成,每一步都给予详细的解释和说明,在此,感谢老师。总的来说,通过此次毕业实习,完成了毕业设计任务书规定的各项要求。1、通过这次毕业设计使我学习了工程设计的一般设计理念和思路以及工程资料和文查阅、检索方法等,为今后从事电子工程设计打下良好基础。2、通过这次毕业设计使我在学习单片机AT89C51、接口电路7085和PROTE2004等内容的基础上,进一步学习并实践了电路制作、电路图的绘制、WORD的熟练使用、电子元器件的选择和使用方法等多种实用技术,成功设计出了基于单片机的数字式电子秒表电路。3、通过这次毕业设计使我学习了不少新的知识和技术,又亲身体验方案设计、电路绘制,个人觉得收
39、获颇丰。23参考文献1张培仁单片机原理与应用M北京清华大学出版社,20032朱宇光单片机应用新技术教程M北京电子工业出版社,20023邹久朋80C51单片机实用技术M北京北京航空航天大学出版社,200854付家才单片机控制工程实践技术M北京化学工业出版社,2004115林全新,苏丽娟单片机应用与接口技术M北京人民电邮出版社,20036汪德彪MCS51单片机原理及接口技术M北京电子工业出版社,20037李晓荃单片机原理及应用技术M北京电子工业出版社,20008李全利单片机原理及应用技术M北京高等教育出版社,20049王秀山李广第等单片机基础M北京化学航天航空大学出版社,2001810万国春交通电子技术M上海同济大学出版社,2007911李晓明电路与电子技术M北京高等教育出版社,2004612雷丽文等微机原理与接口技术M北京电子工业出版社,1997213张毅坤单片微型计算机原理及应用M西安西安电子科技大学出版社1998614李华MCS51系列单片机实用接口技术M北京北京航空航天大学出版社,1993515朱定华单片机原理及接口技术学习M北京电子工业出版社,2001