收藏 分销(赏)

数字式秒表-《单片机技术》课程设计说明书.docx

上传人:a199****6536 文档编号:2232602 上传时间:2024-05-23 格式:DOCX 页数:43 大小:1.97MB 下载积分:12 金币
下载 相关 举报
数字式秒表-《单片机技术》课程设计说明书.docx_第1页
第1页 / 共43页
数字式秒表-《单片机技术》课程设计说明书.docx_第2页
第2页 / 共43页


点击查看更多>>
资源描述
《单片机技术》课程设计说明书 数字式秒表 学 院: 电气与信息工程学院 学生姓名: 指导教师: 职称/学位 讲师/硕士 专 业: 自动化 班 级: 学 号: 完成时间: 2016年6月 湖南工学院《单片机技术》课程设计课题任务书 学院:电气与信息工程学院 专业:自动化 指导教师 学生姓名 课题名称 数字式秒表 内内容及任务 一、设计任务 设计一个具有特定功能的数字式秒表。 二、设计内容 1、秒表的硬件系统 (1)、单片机最小系统模块 (2)、供电模块 (3)、显示模块 (4)、键盘模块 2、秒表的软件系统 (1)、系统监控程序模块 (2)、显示程序模块 (3)、键盘程序模块 三、设计要求 该数字式秒表上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。该数字式秒表应具有开始、暂停、连续、清零和停止功能。 主主要参考资料 [1]李广弟.单片机基础[M].第3版.北京:北京航空航天大学出版社,2003.6. [2]李全利.单片机原理及应用(C51编程)[M].北京:高等教育出版社,2012.12. [3]马忠梅.单片机的C语言应用程序设计[M].第4版.北京:北京航空航天大学出版社,2003.6.     [4]李光飞.单片机C程序设计指导[M].北京:北京航空航天大学出版社,2003.01. [5]李光飞.单片机课程设计实例指导[M].北京:北京航空航天大学出版社,2004.9. 教教研室 意见 教研室主任:(签字) 年 月 日 摘 要 电子技术的飞速发展,使电子产品渗透进了社会的各个方面。数字式秒表的设计使人们对于时间有了更直观,更精确的认识。相比于传统秒表,数字电子钟的设计具有走时准确,显示直观,稳定的优点。 数字式秒表的设计方案:采用以AT89S52单片机为核心,加上按键模块和数码管显示模块等来实现硬件电路的设计;软件设计则通过汇编语言来实现,有监控程序、显示程序、键盘程序、中断程序、进位程序和延时程序等组成。 数字式秒表设计中共有6个按键,1个电源按键,1个复位按键,4个独立按键:S1、S2、S3和S4。按下S1,秒表开始计时;按下S2,暂停;按下S3,继续计时;按下S4,秒表停止计时。 关键词:数字式秒表;单片机;数码管显示 II 目 录 1 设计课题任务、功能、性能要求说明及总体方案介绍 1 1.1 设计课题任务 1 1.2 功能、性能要求说明 1 1.3 设计课题总体方案介绍及工作原理说明 1 2 设计课题硬件系统的设计 2 2.1 设计课题硬件系统各模块功能介绍 2 2.2 设计课题电路原理图、实物图 5 2.3 设计课题元器件清单 5 3 设计课题软件系统的设计 6 3.1 设计课题使用单片机资源的情况 6 3.2 设计课题软件系统各模块功能介绍 6 3.3 设计课题软件系统程序流程框图 7 3.4 设计课题软件系统程序清单 9 4 设计课题操作使用说明、测试过程、误差分析、设计结论、设计体会 10 4.1 设计课题的操作使用说明 10 4.2 设计课题的测试过程 10 4.3 设计课题的误差分析 11 4.4 设计课题的设计结论、设计体会 11 结束语 13 参考文献 14 致 谢 15 附 录 16 附录A 原理图 16 附录B 实物图 18 附录C 元器件清单 19 附录D 程序清单 20 IV 1 设计课题任务、功能、性能要求说明及总体方案介绍 1.1 设计课题任务 设计一个具有特定功能的数字式秒表。 1.2 功能、性能要求说明 数字式秒表上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。该数字式秒表应具有开始、暂停、连续、清零和停止功能。 1.3 设计课题总体方案介绍及工作原理说明 数字式秒表主要由单片机AT89S52、电源电路、振荡电路、复位电路、下载电路、键盘和数码管显示模块组成。设计的系统框图如图1所示。 图1 课题的系统框图 数字式秒表的所有的软件、参数均存放在AT89S52芯片中。键盘采用动态扫描方式。利用单片机定时器/计数器产生定时效果通过编程形成秒表效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。通过对定时/计数器0设定一个62.5ms的初值,当溢出满16次时计为1s,实线秒表1s的计时。 2 设计课题硬件系统的设计 2.1 设计课题硬件系统各模块功能介绍 设计的硬件系统主要采用以下基本模块来实现,单片机最小系统模块,按键模块、显示模块。 (1) 单片机最小系统模块:包括单片机AT89S52、复位电路、晶振电路、电源电路、下载电路。AT89S52单片机系统复位由复位电路接RST引脚完成,单片机内部有一个高增益、反相放大器,输入端为引脚XTAL1,输出端为引脚XTAL2。通过两个引脚在芯片外并接石英晶体振荡器和两只电容,构成一个稳定的自激振荡器。AT89S52引脚图如图2所示。 图2 AT89S52引脚图 (2)按键模块:主要为秒表提供输入信号。当按键没有按下时两个触点断开,单片机I/O口输入高电平;当按键闭合时,I/O口输入低电平。模块中一共用到6个按键,1个电源按键,1个复位按键,4个独立按键。在独立按键中,S1键控制秒表的开始,S2键为秒表的暂停,S3为秒表的继续,S4键为秒表的停止。S1、S2、S3、S4任一键都独自连一个I/O(P1.0、P1.1、P1.2、P1.3)口线,说明它们可以独立实现相应的电子钟功能。按键模块如图3所示。 图3 按键模块电路图 (3)显示模块:采用两个四位一体的数码管(共阳极)作为显示器,分别显示时、分、秒。数码管驱动芯片为74HC573。秒表设计中采用共阳极接法,其中所有阳极连接起来形成公共端,阴极相互独立。采用动态显示方式。电路中的470起限流作用,防止数码管损坏。显示模块如图4所示。 图4 显示模块电路图 (4)下载电路:如图5所示,电路中1脚接P1.5;2脚悬空;3脚接RET;4脚接P1.7;5脚接P1.6;6脚接VCC;7、8、9、10脚接GND用下载线将单片机与电脑相连,实现程序的下载和擦除,在这里还要充当电源来使用。 图5 下载模块电路图 2.2 设计课题电路原理图、实物图 设计课程原理图见附录A。 设计课程实物图见附录B。 2.3 设计课题元器件清单 设计课题元器件清单见附录C。 3 设计课题软件系统的设计 3.1 设计课题使用单片机资源的情况 设计课题使用单片机资源的情况如下: P0口,P2口:数码管。 P1口:按键。 定时器0、通用寄存器R0~R7。 专用寄存器A、SP、DPTR等。 3.2 设计课题软件系统各模块功能介绍 本设计的软件系统主要采用以下基本模块来实现,监控程序、中断服务程序、键盘扫描程序、进位程序、数码管显示程序和延时模块。  监控程序:主要是用于对输入信号的处理、输出信号的控制和对各个功能程序模块的运用及其控制。  键盘扫描程序:主要是用于确定按键并得到特定的键码值。  数码管显示程序:主要是用于驱动数码管及利用数码管显示时间。 进位程序:主要用于个位向十位进位,秒向分、分向小时进位。 延时程序:主要用于动态显示的延时。 中断服务程序:主要用于1S定时的产生。 3.3 设计课题软件系统程序流程框图 监控程序流程图如图6所示。 .图6 监控程序流程图 键盘扫描程序流程图见图7(a)。 数码管显示程序流程图如图7(b)。 (a)键盘扫描程序流程图 (b)显示程序流程图 图7 键盘和显示程序流程图 进位程序流程图如图8(a)。 中断服务程序流程图如图8(b)。 (a)进位程序流程图 (b)中断服务程序流程图 图8 进位和中断程序流程图 3.4 设计课题软件系统程序清单 设计课题软件系统程序清单,详见附录D。 4 设计课题操作使用说明、测试过程、误差分析、设计结论、设计体会 4.1 设计课题的操作使用说明 课程设计中使用2个四位一体的共阳数码管做为显示器,用来显示时间值。时间显示格式为:小时—分—秒。设计中有4个独立按键按键:按键S1:按下后开始计时;按键S2:按下后计时暂停;按键S3:按下后计时继续;按键S4:按下后计时停止。 4.2 设计课题的测试过程 用PROGISP将程序写入芯片,接通电源开始测试。 (1)“P.”状态的测试: 依靠上电或按复位键进入,在“P.”状态下,按S2、S3、S4键均无效,按S1键有效。测试结果如图9所示。 图9 “P.”状态测试图 (2)“计时状态”的测试: 按S1,进入“计时状态”,在“计时状态”下,按S1、S3键无效,按S2,S4有效。测试结果如图10所示。 图10 “计时状态”的测试 (2) “暂停状态”的测试: 按S2,进入“暂停状态”,在“暂停状态”下,按S1,重新开始“计时状态”;按S3,继续“计时状态”;按S4,进入“停止状态”。 (3) “停止状态”的测试 按下S4,进入“停止状态”,在“停止状态”下,按S2、S3无效;按S1,进入“计时状态”。测试结果如图11所示。 图11 “停止状态”测试图 4.3 设计课题的误差分析 产生误差的原因有两方面,一方面是软件方面,另一方面是硬件方面。 (1) 软件方面:计时是利用定时器中断来实现的,每运行62.5ms时,单片机就要去执行中断程序,这个过程是需要时间的,并且每1S要执行16次中断程序,所以就产生了一定的误差。 (2) 硬件方面:单片机的振荡电路产生的误差,以及单片机自身的误差,这使得机器周期有误差,而计时的最小时间是以机器周期为标准的。所以就会产生误差。 4.4 设计课题的设计结论、设计体会 (1)设计结论 课程设计的结果为“P.”状态下,按S2、S3、S4键均无效,按S1键有效,进入“计时状态”。在“计时状态”下,按S1、S3键均无效,按S2、S4键有效,按下S2键后,进入“暂停状态”。在“暂停状态”下,按S1,重新开始“计时状态”;按S3,继续“计时状态”;按S4,进入“停止状态”。课题设计的结果与设计要求一致,所以完成了设计任务。 (2)设计体会 通过课程设计,进一步的巩固了在课堂上所学的知识,还起到了查缺补漏的作用。找到了许多缺点和不足,深深的感受到了理论联系实际的必要性及其重要性。在以往的学习过程中,刻意地去加强理论的基础,对于一个程序只求它在运行时没有出错,便以为计划成功了,却不知晓它能否在硬件结构中得以实现。所以就要求动手能力强,如果无法使软件与硬件实现有机的结合,那么所做的工作就是徒劳的。在设计过程当中遇到了很多问题,更有一些细节的小问题,稍有不注意就不会发现,还好有老师和同学的帮助,课程设计才得以顺利完成。课程设计虽然完成了,但在课程设计中学习到的知识,提高的能力,却是最宝贵的财富。 结束语 通过课程设计,对单片机技术有了进一步的认识,更为重要的是掌握了很多软硬件的基本操作,使知识与技能都得到了进一步的提高。 数字式秒表的设计采用AT89S52单片机为核心,辅以按键模块和数码管显示模块等来实现硬件电路的设计,软件设计则通过汇编编程来实现,有监控程序、显示程序、键盘程序、中断程序、进位程序和延时程序等组成。数字式秒表的设计具有计时准确,显示直观,稳定的优点,满足人们对计时的各种要求。 数字式秒表最大的优点就是显示直观,系统稳定。在日常生活中应用极为广泛,而且操作方法方便简单。当然设计中肯定会存在一定的误差,时间不是非常精确。但是从整体上看满足了设计要求,由于学识和设计时间有限,课程设计当中还有一定的缺陷,因此请各位专家、老师批评指正。随着电子技术飞速的发展,数字式秒表的功能会日益的完善,具有一定的发展前景。 参考文献 [1]李广弟.单片机基础[M].第3版.北京:北京航空航天大学出版社,2007.6. [2]李全利.单片机原理及应用(C51编程)[M].北京:高等教育出版社,2012.12. [3]魏鸿磊.单片机原理及应用(C51编程)[M].上海:同济大学出版社,2015.6. [4]武爱平.C语言程序设计[M].长春:吉林大学出版社,2010.1.   [5]李全利.单片机原理及应用(C51编程)[M].北京:高等教育出版社,2012.12. [6]屈杨. 数字秒表的设计[J]. 科技信息,2013,02. [7]姜瑜,杨静,朱健. 数字式电秒表测量误差的检定[J]. 中国计量,2015,07. 致 谢 首先,我要感谢我的父母,没有他们就没有我的今天。 其次,我要感谢给过我帮助的老师和同学,若是没有他们我的课程设计不会这么顺利的完成,老师给了我设计的思路和方向,没有老师的指导,我的思路不会这么的清晰有条理,感谢王老师对我的帮助。同时,我要感谢帮助我检查文档的老师,正是老师的认真细心,并且不厌其烦的为我查找错误,我的文档才得以顺利完成,由衷的感谢老师。我相信这次文档的编写,为我今后的毕业设计及工作都奠定了良好的基础。我还要谢谢我亲爱的同学们,在设计当中,他们指出了一些我忽略的细节问题,谢谢大家! 通过这次的课程设计让我学习到了很多知识,懂得了很多道理。从最初焊接实物,检测实物,再到编写程序,遇到了许多问题。其实这些问题大多数老师都在课堂上提及过,只是我没有记住,还有一部分问题,是需要通过实践才能得出来的。通过这些问题让我明白了,学习要严谨,要温故而知新,戒骄戒躁。同时,还要增强自己的动手能力。做事情要有始有终,不要中途放弃。 最后,恭祝老师和同学们身体健康,前程似锦! 附 录 附录A 原理图 附录B 实物图 附录C 元器件清单 表1 元器件清单 名称 数量 参数 电阻 2个 1K 共阳数码管 2个 4位一体 ISP下载口插座 1个 电阻 8个 470 电阻 1个 200 按键 5个 驱动芯片 1块 74HC573 晶振及其插座 一套 12MHz 电容 2个 33pF 极性电容 1个 22μF 排阻 2个 10K 芯片 1块 AT89S52 发光二极管 1个 开关 1个 铜柱 (带螺母) 4个 附录D 程序清单 ;--------------------------------------------------------------------- ;课 题 名:数字式秒表 ;编 写 者: ;指导老师: ;时 间:2016年6月 ;班 级: ;功 能:秒表计时 ;使用说明:按键接P1口;数码管显示接P0口 ;型 号:AT89S52 使用晶振为12MHz ;--------------------------------------------------------------------- ORG 0000H LJMP MAIN ORG 000BH LJMP VT0 ORG 0100H ;--------------------------------------------------------------------- ;监控程序MAIN:程序初始化和对各个功能程序模块的运用及其控制 ;调用子程序:显示程序SMG,键盘扫描程序JS ;通用寄存器:R5,R6,R0 ;--------------------------------------------------------------------- MAIN: MOV SP, #3FH ;堆栈初始化 MOV IE, #82H ;中断初始化 MOV TMOD, #01H ;定时器0,方式1 MOV TL0, #0DCH ;定时62.5mS MOV TH0, #0BH MOV R5, #16 ;计数溢出16次为1S MOV R6, #7 MOV R0, #80H MAIN1: MOV @R0, #12 ;显示灭 INC R0 DJNZ R6, MAIN1 MOV @R0, #10 ;显示P. MAIN2: ACALL SMG ACALL JS JIAN: MOV A, 20H JZ MAIN2 CJNE A, #01H,J1 LJMP JIAN1 J1: CJNE A, #02H,J2 LJMP JIAN2 J2: CJNE A, #04H,J3 LJMP JIAN3 J3: CJNE A, #08H,MAIN2 LJMP JIAN4 JIAN1: SETB 20H ;按键S1(开始) ACALL CLR0 SETB TR0 V1: ACALL SMG ACALL JS MOV A, 20H JZ V1 CJNE A, #01H,JIAN LJMP V1 JIAN2: JNB 20H, MAIN2 ;按键S2(暂停) CLR TR0 V2: ACALL SMG ACALL JS MOV A, 20H JZ V2 CJNE A, #02H,JIAN LJMP V2 JIAN3: JNB 20H, MAIN2 ;按键S3(继续) SETB TR0 V3: ACALL SMG ACALL JS MOV A, 20H JZ V3 CJNE A, #04H,JIAN LJMP V3 JIAN4: JNB 20H, MAIN2 ;按键S4(停止) CLR 20H CLR TR0 ACALL CLR0 V4: ACALL SMG ACALL JS MOV A, 20H JZ V4 CJNE A, #08H,JIAN LJMP V4 ;--------------------------------------------------------------------- ;中断服务程序VT0:定时时间的产生,到达1S后进位 ;调用子程序:进位程序JW ;通用寄存器:R5 ;--------------------------------------------------------------------- VT0: MOV TL0, #0DCH MOV TH0, #0BH DJNZ R5, VTRET ;是否达到1S,是,进位 MOV R5, #16 ACALL JW VTRET: RETI ;--------------------------------------------------------------------- ;进位程序JW:个位到十位,秒到分,分到小时的进位 ;调用子程序:全部清0子程序CLR0 ;通用寄存器:R1 ;--------------------------------------------------------------------- JW: MOV R1, #80H MOV A, @R1 ;取值 INC A ;加1 CJNE A, #0AH,JW1 ;是否进位,否,到JW1 CLR A ;有进位,个位清0 MOV @R1, A ;送值 INC R1 ;下一位 MOV A, @R1 INC A CJNE A, #06H,JW1 CLR A MOV @R1, A INC R1 INC R1 MOV A, @R1 INC A CJNE A, #0AH,JW1 CLR A MOV @R1, A INC R1 MOV A, @R1 INC A CJNE A, #06H,JW1 CLR A MOV @R1, A INC R1 INC R1 MOV A, @R1 INC A CJNE A, #0AH,JW1 CLR A MOV @R1, A INC R1 MOV A, @R1 INC A CJNE A, #0AH,JW1 ACALL CLR0 LJMP JWRET JW1: MOV @R1, A JWRET: RET ;--------------------------------------------------------------------- ;全部清0程序CLR0:重置显示缓冲区,使数码管显示00-00-00 ;调用子程序:无 ;通用寄存器:R1 ;--------------------------------------------------------------------- CLR0: MOV R1, #80H MOV @R1, #00H ;显示0 INC R1 MOV @R1, #00H INC R1 MOV @R1, #11 ;显示— INC R1 MOV @R1, #00H INC R1 MOV @R1, #00H INC R1 MOV @R1, #11 INC R1 MOV @R1, #00H INC R1 MOV @R1, #00H RET ;--------------------------------------------------------------------- ;显示程序SMG:动态显示8位数码管 ;调用子程序:延时子程序YS2MS ;通用寄存器:R7,R0 ;--------------------------------------------------------------------- SMG: MOV R7, #01H MOV R0, #80H MOV DPTR, #0300H SMG1: MOV A, R7 ;位控 MOV P2, A RL A MOV R7, A MOV A, @R0 ;段控 MOVC A, @A+DPTR MOV P0, A INC R0 ACALL YS2MS CJNE R7, #01H,SMG1 ;现在最高位?否,显示下一位 RET ;--------------------------------------------------------------------- ;延时程序YS2MS:延时2mS ;调用子程序:无 ;通用寄存器:R3,R4 ;--------------------------------------------------------------------- YS2MS: MOV R3, #04H DL0: MOV R4, #0F8H DJNZ R4, $ DJNZ R3, DL0 NOP RET ;--------------------------------------------------------------------- ;键盘扫描程序JS:取键值 ;调用子程序:显示程序SMG ;通用寄存器:无 ;--------------------------------------------------------------------- JS: MOV A, P1 CPL A MOV 20H, A JZ JSRET LCALL SMG ;调显示程序延时 LCALL SMG MOV A, P1 CPL A JZ JSRET MOV 20H, A JSRET: RET ;--------------------------------------------------------------------- ;数码管段码 ;--------------------------------------------------------------------- ORG 0300H DB 0C0H,0F9H,0A4H,0B0H ;0~9 DB 099H,092H,082H,0F8H DB 080H,090H DB 0CH,0BFH,0FFH ;P.,-,灭 END 35
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 技术指导

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服