基 于 8 9 C 5 1的电子秒表毕业设计论文.doc_第1页
基 于 8 9 C 5 1的电子秒表毕业设计论文.doc_第2页
基 于 8 9 C 5 1的电子秒表毕业设计论文.doc_第3页
基 于 8 9 C 5 1的电子秒表毕业设计论文.doc_第4页
基 于 8 9 C 5 1的电子秒表毕业设计论文.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

XX职业技术学院毕业设计(论文)题 目 电子秒表电路 系 别 XXX系 学生姓名 XX 学 号 XXXXX 专业名称 应用电子技术 指导教师 XXX 2013年5月14日目 录一、 设计功能与要求(1)(一)、系统功能(1)(二)、设计要求(1)二、 设计构思(2)三 、软件设计(2)(一)、程序设计思想(2)(二)、系统资源的分配(3)(三)、主程序设计(3)(四)、中断程序设计(5)四 、硬件电路的设计与实现(10)(一)、AT89C51微处理器介绍(10)(二)、总线锁存器74HC573功能结构(11)(三)、译码器74HC138功能结构(13)(四)、LED数码显示电路的实现(14)致 谢(15)结束语(16)参考文献(17)附录一 程序(18)附录二 电路原理图(22)附录三 硬件实物图(23)电子秒表电路XXX摘要:近年来随着科技的飞速发展,单片机的应用正在不断的走向深入。本文阐述了基于单片机的数字电子秒表设计。本设计主要特点是计时精度达到0.001s,解决了传统的由于计时精度不够造成的误差和不公平性,是各种体育竞赛的必备设备之一。另外硬件部分设置了查看按键,可以对秒表上一次计时时间进行保存,供使用者查询。本设计的数字电子秒表系统采用AT89C52单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现五位LED显示,显示时间为099.999秒,计时精度为0.001秒,能正确地进行计时,同时能记录一次时间,并在下一次计时后对上一次计时时间进行查询。其中软件系统采用汇编语言编写程序,包括显示程序,定时中断服务,外部中断服务程序,延时程序等,并在WAVE中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。 关键词:单片机 数字电子秒表 仿真 一、 设计功能与要求(一)、系统功能数字式电子秒表系统具有毫秒、秒、分的累进显示功能(到59分后自动复零),并可以任意设置时钟初值,即可以在任意时刻开机运行。作为秒表,系统可通过按键开始记录时间,在某一事件结束时,又通过按键使秒表停止运行,并显示该事件经历的时间,要求精确到0.01s(即10ms)。(二)、设计要求1、采用单片机(AT89C51)为核心器件,构成数字式电子秒表系统。2、用6位LED数码管分别显示分、秒、毫秒(显示格式要求为XX、XX、XX)。3、通过按键,实现下列人机对话功能:按OK键,电子秒表开始计时;按设置键,设置时钟初值;按清零键,时钟清零;按暂停键,电子秒表暂停计时。4、利用定时器/计数器/作10ms的定时,当定时时间到后,进入中断服务程序,在中断服务程序中实现时钟累进。5、通过4个按键实现时钟运行,停止等人机对话功能,利用74HC573和74HC138芯片驱动LED数码管,实现时钟的显示。二、 设计构思首先,以微处理器AT89C51为核心,利用微处理器的P0端口和P2端口实现数据、地址的传送。由于P0端口无锁存功能,所以P0端在进行地址传送时需加74HC573锁存器。因微处理器AT89C51芯片内有程序存储器EPROM 8K和数据存储器RAM 256字节,所以微处理器没有进行外存储器的扩展,直接利用微处理器内部的程序存储器和数据存储器。其次,利用74HC138芯片,将8个LED数码显示管实现动态显示。由于是8个LED数码管将扫描线中三根线经74HC138译码器产生8个扫描线分别接到八个数码管共阴极控制端。再次,系统软件的主程序,它包括三个部分:第一部分为初始化设置,包括设置定时器/计数器初始化、显示缓冲区初始化、开中断、定时器/计数器启动等。第二部分是对键盘进行扫描,判断是否键按下,按的是哪一个键,根据不同的按键实现各种人机对话功能;第三部分是实现电子秒表的显示。最后,中断服务程序,它的主要功能是实现时钟累进,以及如何判断是否已到24小时。三 、软件设计(一)、程序设计思想本设计采用了汇编语言编写,汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。汇编语言的特点:1、面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。2、保持了机器语言的优点,具有直接和简捷的特点。3、可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。4、目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。5、经常与高级语言配合使用,应用十分广泛。在程序设计过程中,为了有效地完成任务,把所要完成的任务精心的分割成若干个相互独立但相互又仍可有联系的任务模块,这些任务模块使得任务变得相对单纯,对外的数据交换相对简单,容易编写,容易检测,容易阅读和维护。这种程序设计思想称为模块化程序设计思想。模块化结构程序的设计,可以使系统软件便于调试与优化,也使其他人更好地理解和阅读系统的程序设计。因此,本医院病床呼叫系统在软件的设计上,运用了模块化程序的结构对软件进行设计,使得程序变得更加直观易懂。程序的主要模块有:主程序、显示程序、定时溢出中断服务程序、外部中断服务程序。(二)、系统资源的分配本设计系统所用到的单片机端口数比较多,所以在这里将对数字电子秒表的硬件资源的大概分配加以说明。片内RAM的分配、各功能键的定义以及各端口的分配安排如表2.1所示。表2.1 端口的分配安排表名称功能描述初始化值79H-7DH1ms-10s位显示寄存区00H69H-6DH1ms-10s位中间寄存区00H59H-5DH1ms-10s位最终寄存区00HR1- R51ms-10s位溢出计数区定时器T0控制秒表的最小精度E018H外部中断INT0停止中断信号入口外部中断INT1开始中断信号入口(三)、主程序设计本系统程序主要模块由主程序、定时中断服务程序、外部中断0服务程序和外部中断1服务程序组成。其中主程序是整个程序的主体。可以对各个中断程序进行调用。协调各个子程序之间的联系。系统(上电)复位后,进入主程序,主程序流程图如图2.1。首先对系统进行初始化,包括设置各入口地址、中断的开启、对各个数据缓存区清“0”、赋定时器初值,初始化完毕后,就进入数码管显示程序。数码管显示程序对显示缓存区内的数值进行调用并在数码管上进行动态显示。显示一次就对P1.1和P2.5进行一次扫描,查询复位键P1.1是否按下,当复位键按下后,程序返回开始,重新对系统进行初始化。当没有按下复位键时,程序则扫描P2.5是否按下,当P2.5没有按下则返回显示程,不断地调用显示缓存区的数据进行显示。使用户能清楚的看到当前电子秒表所记录的时间。当查询到P2.5按下后则跳转到另外一段显示程序并调用最红缓存区的数据进行显示,此时显示的时间即为上一次计时的时间。与此同时,在P2.5按下后单片机执行显示程序的同时也在对P2.5进行扫描,当P2.5断开后立即跳转回之前的显示程序显示当前的计时时间。在主程序中还进行了赋寄存区的初始值、设置定时器初值以及开启外部中断等操作,当定时时间到后就转去执行定时中断程序。当外部中断有请求则去执行外部中断服务程序。并在执行完后返回主程序。图2.1 主程序流程图(四)、中断程序设计现在方案中采用了三个中断,外部中断INT0,INT1和定时中断T0。CPU在响应中断时,先处理高级中断,在处理低级中断,若有多个同级中断时,则按自然优先顺序处理。例如当CPU正在处理一个中断申请时,有出现了另一个优先级比它高的中断请求,这是,CPU就暂停终止对当前优先级较低的中断源的服务,转去响应优先级比它高的中断请求,并为其服务。待服务结束,再继续执行原来较低级的中断服务程序。而当CPU为级别高的终端服务程序服务时,如果级别低的中断发出中断请求,此时CPU是不会响应的,所以为了避免开始和暂停两个按键中的一个出现没有响应的情况,在进行程序编辑时要注意对中断的使用,避免出现中断的嵌套。,合理分配中断对本设计的实现是至关重要的。另外由于数字式电子秒表的最小精度位1ms,属于高精度电子秒表。定时器T0的定时周期也为1ms,为了使电子秒表暂停键按下后CPU能马上去响应中断程序,必须将暂停的外部中断级别高于定时计数器的中断级别。避免出现CPU执行完定时溢出中断程序后再响应外部中断程序,影响计时精度。AT89C52的自然优先级顺序排列如下:中断源 最高外部中断0定时/计数器0溢出中断外部中断1定时/计数器1溢出中断串行口中断 最低数字式秒表中的两个按键采用了中断实现功能。开始采用外部中断INT0,暂停采用外部中断INT1。另外程序中还用到了定时/计数器0溢出中断进行计时。依据设计要求,暂停的外部中断INT1中断级别最高,计时的定时/计数器0溢出中断次之,开始的外部中断INT0级别最低。1、外部中断0服务程序:外部中断0服务程序结合外部P3.2停止键实现数字电子秒表的停止功能,具体流程图如图2.2。当按下P3.2停止键按下向CPU发出外部中断请求,CPU转向外部中断0服务程序执行,停止定时器。另外将当前显示的时间进行一次存储,存进中间寄存区。最后中断返回。图2.2 外部中断0服务程序流程图2、外部中断1服务程序外部中断1服务程序结合外部P3.3停止键实现数字电子秒表的启动功能,具体流程图如图2.2。当按下P3.3启动键按下向CPU发出外部中断请求,CPU转向外部中断1服务程序执行,启动定时器。另外进行二次存储,将之前进行一次存储的数码管显示数据存入最终缓存区,避免下次计时暂停时一次存储将数据掩盖,从而起到保护数据的作用。二次存储后就中断返回。图2.3 外部中断1服务程序流程图3、定时中断服务程序当定时/计数器T0器溢出后,向CPU发出中断请求信号。CPU跳转到定时中断程序执行,具体流程如图2.4。定时中断程序是一个进位程序,主要负责对1ms的加一。1ms位没有满十就跳出中断程序,返回显示程序。当1ms位满十后就对1ms位清零,向10ms位加一,同时检测10ms位是否满十,没有满十就跳出中断程序,返回显示程序。如果满十就向100ms位加一,依次类推,最终达到99.999秒后归零,从零开始再次计时。定时/计数器T0工作在方式0下,TH0和TL0组成一个13位的二进制数计数器。单片机开机或复位时,它的值为00H,当T0启动后,从第一个输入脉冲开始计时,每来一个脉冲计数加一,即从0000000000000开始计数到1111111111111,再计数一个脉冲时TH0和TL0组成的13位计数器将会从13个1变成13个0,并产生溢出,溢出位将被送到TF0标志位,通过溢出标志产生溢出中断请求。显然,T0定时器在方式0下引起一次中断所允许计数的最多脉冲个数为213 个。但如果定时计数器如果每次都固定从0开始计数,到计满后,再向CPU发出溢出中断请求信号那是毫无意义的。为了使定时计数器在规定的计数脉冲个数字之后(此时应小于213 个脉冲),向CPU发出溢出中断请求,可采取预先向TH0和TL0中放入一个初值X的方法,使计数器以X值为起始值开始计数,即X+1,X+2,直至计数器计满,从1全变为0。设需要计数的脉冲个数为Y,则有:X+Y=213 在定时方式下:定时时间间隔位t=(213X)*振荡周期*12现在本设计要求1ms实现一次中断,选择定时器T0工作在方式0。所以需要根据以上条件计算出T0的初值。设T0的初值为X,则 (213X)*12/12*106 =1*10-3 转换位十六进制数X=7192=1110000011000B即TH0=0E0H(取X的高8位)TL0=18H(取X的低5位)由于定时1ms只是一个理想化的时间,其中并没有考虑到中断后单片机执行语句所花的时间。虽然执行语句所花的时间很短只有即微秒,但积少成多,数字秒表一秒中要溢出中断1000次,积累起来误差就能达到毫秒级,这对于精度到达毫秒级的数字电子秒表来说是很大的误差。所以要在后期编程时还要将单片机读程序的时间考虑进去,在对定时器赋初值时将单片机需要执行的语句所花的时间加上,这样就能使数字电子秒表的误差达到最小。四 、硬件电路的设计与实现(一)、AT89C51微处理器介绍1、AT89C51微处理器的背景AT89C系列单片机(微处理器)是ATMEL公司1993年开始研制生产的,优越的性能价格比使其成为颇受欢迎的8位单片机。AT89C系列与MCS51系列单片机在软、硬件上相互兼容,但AT89C系列与MCS51系列单片机相比有两大优势:第一,片内程序存储器采用闪速存储器,使程序的写入更加方便;第二,提供了更小尺寸的芯片(AT89C2051/1051),使整个硬件电路的体积更小。AT89C系列单片机有四种型号:AT89C51、AT89C52、AT89C1051、AT89C2051,其中AT89C2051/1051是ATMEL公司AT89C系列的新成员。它的较小的体积、良好的性能价格比倍受青睐,在家电产品、工业控制、计算机产品、医疗器械等应用方面成为用户降低成本的首选器件2、AT89C51单片机的功能结构AT89C51单片机芯片为40个引脚,HMOS工艺制造的芯用片采双列直插(DIP)方式,其引脚示意及功能分类如图4.1所示。它具有如下主要特性:AT89C51与MCS-51兼容;内部带4KB可编程闪速存储器;寿命为1000次擦/写循环;数据保留时间为10年;工作电压范围为2.7V6V;令静态工作频率为0Hz24Hz;1288位内部RAM;32条可编程I/O线;2个16位定时器/计数器;5个两级中断源;可编程全双工串行UART通道;图4.1 AT89C51引脚图3、AT89C51单片机的应用在本电路中AT89C51单片机只用到了P0端口和P2端口的一部分以及中断 (P3.3)、定时器/计数器(P3.5)、读/写状态线(P3.6、P3.7)、复位端RST/VP0(9脚)、ALE/(30脚)允许地址锁存信号端。(29脚)片外程序存储器读选通信号输出端,按高电平;/VPP为访问外部程序存储器控制信号端,按高电平;中断0(P3.2)按高电平;将P0端口与接口芯片8279的8位数据线DB0DB7相连,读/写状态线(/)与接口芯片8279的读/写状态线(/)相连。XTAL1、XTAL2(18、19脚)外接12MHZ的晶体振荡器。(二)、总线锁存器74HC573功能结构74HC573是3 态非反转透明锁存器芯片,当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。输出能直接接到CMOS,NMOS 和TTL 接口上操作电压范围:2.0V6.0V 低输入电流:1.0uA CMOS 器件的高噪声抵抗特性。 管脚功能如图:74HC573功能表74HC573逻辑图:原理说明:74HC573的八个锁存器都是透明的D 型锁存器,当使能(G)为高时,Q 输出将随数据(D)输入而变。当使能为低时,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。特别适用于缓冲寄存器,I/O 通道,双向总线驱动器和工作寄存器。当OE1是,无论Dn、LE为何,输出端为高阻态; 当OE0、LE0时,输出端保持不变; 当OE0、LE1时,输出端数据等于输入端数据。在实际应用的时候是这样做的: 1、 OE0; 2、先将数据从单片机的口线上输出到Dn; 3、再将LE从0-1-0 4、 这时,你所需要输出的数据就锁存在On上了,输入的数据在变化也影响不到输(三)、译码器74HC138功能结构38译码器74HC138为一种常用的地址译码器芯片,其管脚图如图4.3所示。其中,G1、2A、2B为3个控制端,只有当G1为“1”且2A、2B均为“0”时,译码器才能进行译码输出。否则译码器的8个输出端全为高阻状态。译码输入端与输出端之间的译码关系表4.1所示。图4.3 74HC138引脚图表4.1 74HC138的译码关系A2A1A0输出有效000001010011100101110111(四)、LED数码显示电路的实现由于LED数码显示器为多位,采用动态显示扫描显示方式,即逐个地循环地点亮各位显示器。这样虽然在任一时刻只有1位显示器被点亮,但是由于人眼具有视觉残觉效益,看起来与全部显示器持续点亮的效果基本一样。为了实现8个LED显示器的动态扫描显示,段码控制信号经74HC573芯片使显示器刷新寄存器输出。而位控制信号由单片机的P2口经译码器74HC138输出、共8个扫描线与LED显示器数码管共阴极相连。8位LED显示器的每位显示段码通过显示字符子程序以查看方式(MOVC A,A+DPTR)进行确定和输出显示子程序(Display),显示缓冲区的首地址为50H。致 谢我这次毕业设计是在XXX老师的精心指导下完成的,XXX老师为我对本文的完成提供了良好的设施和环境,从论文的选定到实验研究,从资料收集到方案确定,唐朝仁老师都给了我大量的中肯的建议和意见,我的每步工作都凝聚了老师们辛勤汗水。同时,周老师的严谨的治学态度和忘我的工作精神以及高尚的师德给我留下了深深的影响,这将激励我更好地完成今后的学习和工作。借此机会对周老师的精心教育和指导表示忠心的感谢;也借此机会,感谢大学五年来辛勤教育指导我的各科任老师。我也很感谢论文答辩的各位评委老师,感谢他们在百忙之中抽出时间帮我们答辩。还要感谢班里的同学对我不懈的支持与帮助。通过这次设计,我学到了很多知识,同时也认识到在团队工作中需要有合作精神,我想这会为今后自己踏上工作岗位、更好地融入新的团队打下良好的基础。24结束语本设计的数字电子秒表是由AT89S52单片机、共阴数码显示管、控制按键、三极管等器件构成的,设有六位计时显示,开始、暂停、复位、查看按键以及一个系统整机复位按钮。计时精度能到达1ms,能调看上一次计时时间,设计精简,使用简单易懂。系统设计合理,线路简单、功能先进,性能稳定,程序精简。并给出了详细的电路设计方法。本系统是以单片机为核心,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。所以采用汇编语言来进行软件设计,利用汇编语言面向机器并能较好的发挥机器的特性,得到较高的程序,同时汇编语言目标代码简短,占用内存少,执行速度快,能提高秒表的精度。通过毕业设计,复习巩固我们以前所学习的数字、模拟电子技术、单片机原理及接口等课程知识,加深对各门课程及相互关系的理解,同时,在毕业设计的过程中,我也发现了本系统的许多不足和可以改进的地方。但因时间紧迫等原因没能改进。本设计的数字电子秒表缺少对多次计时时间进行记录的功能。应给在单片机的内部存储区多设置一些存储空间,用来存储多次计时时间。并在程序中编入对多次计时时间的调用显示。虽然存在不足,但本设计开发的数字电子秒表仍具有它的实用性。参考文献郑毛祥.单片机应用基础.人民邮电出版社,2006.6:21-42李邓化,彭书华,许晓飞智能检测技术及仪表科学出版社,2007:194-201戴佳. 单片机C51语言应用程序设计. 电子工业出版社, 2006.7:168-169朱民雄.计算机语言技术. 北京航空航天大学出版社,2002.1:103-105李鸿. 单片机原理及应用. 湖南大学出版社. 2004:8:72-73刘建清. 单片机技术. 国防工业出版社, 2006.8: 104-105 杨宁,胡学军单片机与控制技术北京航空航天大学出版社,2005-03:306-322马忠梅等单片机C语言应用程序设计北京航空航天大学出版社,1997:201-211附录一 程序;P0接数码管段,P2接数码管位。 DATA1 EQU 30H; DATA2 EQU 31H; DATA3 EQU 32H; DATA4 EQU 33H; DATA5 EQU 34H; DATA6 EQU 35H; DISBUF EQU 2FH; DISDIG EQU 2EH; ORG 0000H; LJMP MAIN; ORG 000BH; LJMP DISPLAY; ORG 0030HMAIN: MOV SP,#20H MOV DISBUF,#30H; MOV DISDIG,#00000001B; MOV A,#00H; MOV DATA1,A ; MOV DATA2,A ; MOV DATA3,A; MOV DATA4,A; MOV DATA5,A; MOV DATA6,A; MOV TMOD,#01H; MOV TH0,#0FCH; MOV TL0,#17H; SETB EA; SETB ET0; SETB TR0;Q00: LCALL UPDATA; LCALL DELAY; LJMP Q00;UPDATA: ;刷新显示子程序 inc DATA1;个位显示缓冲单元加一 mov a,DATA1 cjne a,#10,EXITUPDATA;还没加到十,退出 mov DATA1,#00h;加到十了,个位清零 inc DATA2;十位显

温馨提示

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

评论

0/150

提交评论