收藏 分享(赏)

基于51单片机的数字秒表设计.doc

上传人:精品资料 文档编号:8723429 上传时间:2019-07-09 格式:DOC 页数:22 大小:451.09KB
下载 相关 举报
基于51单片机的数字秒表设计.doc_第1页
第1页 / 共22页
基于51单片机的数字秒表设计.doc_第2页
第2页 / 共22页
基于51单片机的数字秒表设计.doc_第3页
第3页 / 共22页
基于51单片机的数字秒表设计.doc_第4页
第4页 / 共22页
基于51单片机的数字秒表设计.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、 单片机课程设计设计题目 基于单片机数字秒表的设计 学院名称 电气学院 指导教师 朱卫华 班 级 电子 11 级 02 班 学 号 学生姓名 摘要本设计是基于 AT89S51 单片机的简易数字秒表设计,主要组成是以 51 单片机最小系统为核心,通过运用单片机的振荡电路实现计时同时用数码管同步显示。本秒表最大计时为 99 秒。本设计的特点是:大部分功能通过软件实现,使电路简单明了,系统稳定性好。关键词:AT89S51 振荡电路 计时 数码管 目录1 设计概述 11.1 AT89S51 概述 11.2 系统设计功能概述 .12 系统设计 22.1 设计思路 .22.2 硬件设计 .22.2.1 单

2、片机最小系统的设计 .22.2.2 数码管显示电路设计 .32.3 软件设计 .72.3.1 软件设计流程图 .72.3.2 消除开关抖动 .92.3.3 数码管延时显示程序 .92.3.4 延时 1 秒的程序 .103 软件调试和结果 103.1 软件调试与下载 .103.2 硬件仿真 .114 心得体会 12参考文献 .14附录 .15I 基于单片机的数字秒表设计主程序 .15IIPCB 电路图 .17III 实物图 .1711 设计概述1.1 AT89S51 概述AT89S51 是一个低功耗,高性能 CMOS 8 位单片机,片内含 4k Bytes ISP(In-system progr

3、ammable)的可反复擦写 1000 次的 Flash 只读程序存储器,器件采用ATMEL 公司的高密度、非易失性存储技术制造,兼容标准 MCS-51 指令系统及80C51 引脚结构,芯片内集成了通用 8 位中央处理器和 ISP Flash 存储单元,功能强大的微型计算机的 AT89S51 可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51 具有如下特点: 40 个引脚,4k Bytes Flash 片内程序存储器,128 bytes 的随机存取数据存储器(RAM ) ,32 个外部双向输入 /输出(I/O)口,5个中断优先级 2 层中断嵌套中断, 2 个 16 位可编程定时计

4、数器,2 个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。AT89S51 引脚图在实际应用中,因为 STC 的单片机比 AT 的单片机更加容易下载程序,它们的端口是一模一样的,所以本次设计实际应用的是 STC51 单片机。1.2 系统设计功能概述本设计展现的是一个计时用的秒表。功能为两位七段数码管在开机时显示2“00“,并在系统中添加一个按钮开关。当第一次按下按钮开关后秒表开始计时,第二次按下后计时停止,第三次按下后两个数码管清 0,并回到一开始计时状态。由于只设计了两位数码管,故该秒表最大计时 99 秒。2 系统设计2.1 设计思路根据系统功能,易知我们先要设计一个单片机最小系统,

5、包括振荡电路、复位电路,然后设计一个数码管控制、显示电路,再用软件来控制秒表的计时以及数码管的显示。2.2 硬件设计2.2.1 单片机最小系统的设计1 时钟电路设计如图 2.2.1,为了方便计算,本设计采用 12MHz 的晶振,一个机器周期为1 秒。图 2.2.1单片机最小系统分设计数码管显示、控制电路设计软件设计32 复位电路设计如图 2.2.2,为了更好的控制复位电路,用了一个接触式按钮开关。图 2.2.22.2.2 数码管显示电路设计一般来说,不直接用 I/O 端口直接连接数码管,如图 2.2.3,本设计采用74ls48 译码器和共阴极数码管。4图 2.2.374ls48 芯片是一种常用

6、的七段数码管译码器驱动器,常用在各种数字电路和单片机系统的显示系统中,如下图,为 74Ls48 真值表以及特性表。5图 2.2.4 真值表图 2.2.5 特性表因为 74ls48 输出电流最大为 6mA,在数码管的工作电流之内,所以不必用电阻。共阴极数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极 COM 接到地线 GND 上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,x 相应字段就不亮。6图 2.2.6 数码管引脚图图 2.2.7 数码管真值表7将共阴极数码管一端接地,一端接在单片机上,通过操纵单片机

7、的高低电平,从而控制数码管。图 2.2.5如图 2.2.5,当按钮没有按下时,单片机的 I/O 口直接连接电源,所以须要上拉电阻进行限流,计算的灌电流为 2.5mA,查看 AT89S51 的数据手册知该电流在其范围内,满足设计要求。2.3 软件设计2.3.1 软件设计流程图8否否是否否是否 是第 2 次按钮按下计时开始数码管显示第 1 次按钮按下 第 3 次按钮按下92.3.2 消除开关抖动当手指按下开关时,如果我们的动作足够完美,那么 P1.0 应该立即出现一个低电平,并且这个低电平一直保持到我们抬起手指为止。但实际情况是,我们没有经过专业的按开关训练和开关自身存在着接触点接触不良的问题,导

8、致在按下开关的过程中产生一个微妙的跳变电平接触过程:开关在一个很短的时间内,会出现多次的接通与断开过程。这样在 P1.0 端口出现一个电平在 VCC和 0V 之间抖动的过程。这对于具有高灵敏触角的单片机来说,会产生误动作。因此,如图 2.3.1,本设计采用延时程序设计来避开抖动电平。图 2.3.1 延时程序上述程序所花时间为(248*2+2+2)*60=30ms,30ms 足以消除抖动。2.3.3 数码管延时显示程序在本次的秒表系统电路设计图中,两位七段数码管与 P0 口相连,并分别占了 P0.0-P0.3 和 P0.4-P0.7.因为有译码器为接口,只要控制 I/O 口输出 BCD 码便能得

9、到相应数字了。如显示 0,由于 0 的 BCD 码为 0000,所以指令为 MOV P0,#00H。秒表启动后,当第一次按下按钮开关后秒表开始计时。系统延时 1 秒,然后利用 ADD 指令,把显示的数字加一,这样就显示 01,再延时再显示,如此循环,直到显示至 99 后,又返回 00 重新开始计时。102.3.4 延时 1 秒的程序MOV R5,#10ADD_1:MOV R6,#200CALL DELAYDJNZ R5,ADD_1DELAY:MOV R7,#248JNB P1.0,PRESS_2DJNZ R7,$DJNZ R6,DELAYRET上述程序所花时间为(2+2+248*2)*200*

10、10=1s。3 软件调试和结果将完整的程序在 uVision 中进行编辑和汇编,编译成功后就可以通过 51 开发板下载到硬件平台中。3.1 软件调试与下载单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为 CPU 可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于 MCS-51 单片机的汇编软件有早期的 A51,随着单片机开发技11术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil 软件是目前最流行开发 MCS-51 系列单片机的软件,如图

11、 3.1 所示,利用 keil 软件生成 hex 文件。图 3.1 在 keil 中编辑程序生成 hex 文件后,利用单片机开发板用 stc-isp 软件下载到单片机中。3.2 硬件仿真如图,利用 proteus 仿真电路。12图 3.2 数字秒表数字电路4 心得体会单片机可以应用于各个领域,而单片机本身也是融合了各个领域的知识。我们可以通过单片机去实现很多的电子产品,因为它的应用领域非常的广泛,所以发展很迅速。本次设计时以单片机为中心进行设计,但是仅仅有单片机的知识还不够,同时还需要具有硬件的知识和软件的知识,并将它们有机的结合起来。因此,我重新复习了下模拟电路和单片机原理,并查阅了相应的资

12、料,才理清了思路。本次设计,先通过 KEIL 软件对软件进行编辑、调试、编译。然后通过 STC-ISP 软件学习如果在单片机种下载程序代码;最后通过 proteus 软件,对数字秒表的硬件进行仿真。在编译程序的过程中,刚开始一直不出结果,经过查资料得知,原来没有将文件变成 asm 格式。在下载程序到单片机的时候,刚开始一直下不成功,通过询问同学,得知我用的是 AT89S51,要下载程序的话,还要用专门的驱动,因此,我改成了 STC 的。在做实物图的时候,虽然我用的是洞洞板,不用画 PCB,但是为了更好的布局,我画了 pcb 版,实际证明这也是对的,尽管我的线很复13杂,但由于之前统筹帷幄了,我

13、的布局还算整洁。14参考文献1康华光.模拟电子技术基础M.北京:高等教育出版社, 2006 年 5 月第 5 版2杨欣.51 单片机应用从零开始M.北京:清华大学出版社, 2008 年 1 月第一版3李广弟、朱月秀、冷祖祁等.单片机基础M.北京:北京航空航天大学出版社,2007 年 6 月第三版15附录I 基于单片机的数字秒表设计主程序ORG 00HSTART:MOV P0,#00HJB P1.0,$CALL FILTERJNB P1.0,$MOV R0,#00HPRESS_1:MOV A,R0MOV P0,AMOV R5,#10ADD_1:MOV R6,#200CALL DELAYDJNZ R5,ADD_1MOV A,R0ADD A,#01HDA A16MOV R0,AJMP PRESS_1PRESS_2:CALL FILTERJB P1.0,PRESS_3JMP PRESS_2PRESS_3:JB P1.0,$CALL FILTERRELEASE:JB P1.0,STARTJMP RELEASEDELAY:MOV R7,#248JNB P1.0,PRESS_2DJNZ R7,$DJNZ R6,DELAYRETFILTER:MOV R6,#60F1:17MOV R7,#248DJNZ R7,$DJNZ R6,F1RETENDIIPCB 电路图III 实物图18

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报