




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文)毕业综合实践报告课题名称: 基于单片机技术数字钟电路的设计 系 部: 电子工程系 班 级: 电子06C2 姓 名: 李秋波 学 号: 062211211 指导教师: 刘训非 2009年 2 月 20 日论文/设计/报告原创性声明本人郑重声明:所呈交的论文/设计/报告是本人在导师的指导下进行研究所取得的研究成果。除了论文/设计/报告中特别加以标注引用的内容外,本论文/设计/报告不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。作者签名: 2009 年 2月 20 日 论文/设计/报告版权使用授权书本论文/设计/报告作者完全了解学校有关保障、使用学位论文/设计/报告的规定,同意学校保留并向有关论文/设计/报告管理部门或机构送交论文/设计/报告的复印件和电子版,允许论文/设计/报告被查阅和借阅。本人授权省级优秀论文/设计/报告评选机构将本论文/设计/报告的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本论文/设计/报告。本论文/设计/报告属于1、保密 ,在_年解密后适用本授权书。2、不保密 。(请在以上相应方框内打“”)作者本人签名: 2009 年 2 月20 日 指导教师签名: 年 月 日 目录一 摘要 4二 引言 5三 数字钟硬件框图 5四 程序整体设计 5(1) 总体介绍 5(2) 数据调查 5(3) 中断方式注意的问题 6(4) 定时准确性的讨论 6(5) 软件消抖 7五 基于以上 设计如下数字钟8(1) 数字钟的操作如下 8(2) 流程图 8六 结束语 11七 致谢 11 主要参考文献 11 附录(数字钟控制程序)12 摘要 近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。本文介绍了基于单片机的数字钟的设计,详细讨论了它从软件上实现的过程,重点在时钟调整的方式:查询和中断的比较,然后,对数字钟的稳定性和精确性作了相关的讨论。在文章的最后,给出了采用中断方式实现的数字钟的源程序。 关键字:单片机,数字钟,数据缓冲区,中断,定时,消抖AbstractIn recent years, with computers in the in filtration and the development of large-scale integrated circuits. SCM application is steadily deepening, as it has strong function, small size, low power dissipation, low prices, reliable, easy to use features, it is particularly suited to and control of the system, increasingly widely used in automatic control, intelligent instruments, gauges, data acquisition, military products and household appliances, and other areas, is often microcontroller as a core component to use, In light of specific hardware architecture, and application-specific software features object combine to make perfect. In this paper, based on single-chip digital clock design, discussed in detail from the software realize the process, focusing on the clock adjust in the way: queries and disruption of comparison, then, on the digital clock made of the stability and accuracy related discussion. In the last article, give way using interrupted realize the source of the digital clock. Keywords: MCU, digital clock, data buffer, interruption, timing, elimination Buffeting基于单片机的数字钟电路的设计 一、 引言 在单片机技术日趋成熟的今天,其灵活的硬件电路的设计和软件的设计,让单片机得到了广泛的应用,几乎是从小的电子产品,到大的工业控制,单片机都起到了举足轻重的作用。单片机小的系统结构几乎是所有具有可编程硬件的一个缩影,可谓是“麻雀虽小,肝胆俱全”,单片机的学习和研究是对微机系统学习和研究的简捷途径。本数字钟系统是采用单片机控制的,其系统框图如图1所示.二、 数字钟硬件框图: 段码 8051六位数码管显示电路按键k1,k2,k3speaker消抖电路驱动位选图 1图 1 段码 8051六位数码管显示电路按键k1,k2,k3speaker消抖电路驱动位选图 1图 1 数字钟系统框图三、 程序整体设计:定时模块,显示模块,数据调整模块,状态调整模块。 1.总体介绍:此部分主要介绍定时模块,和显示模块。定时部分采用经典的定时器定时。它实现了数字钟的主要部分,和秒表的主要部分,以及产生报时信号,定时设置。显示模块是实现数字钟的又一重要部分,其模块的独立程度直接影响到数字钟的可视化程度。在此部分的设计中,设置专用显示数据缓冲区40h-45h,与分,时及其他数据缓冲区数据区别,在其中存放的是显示段码,而其他缓冲区存放的是时间数据。在显示时,首先将时间十进制数据转化为显示段码,然后送往数码管显示。显示段码采用动态扫描的方式。在要求改变显示数据的类别时,只须改变R0(指向数据缓冲区的指针)指向的十进制数据缓冲区即可。 2.数据调整:数据调整有多种方式。一、可以直接进入相关状态进行有关操作,二、将调整分两步,先进入状态,然后执行操作,这两步分别由两个键控制。方式一、比较直接,设计思想也比较简单,但是,这种方式存在操作时间和控制键数目的矛盾。如果用比较少的键,那么可能会在进入状态后处于数据调整等待状态,这样会影响到显示的扫描速度(显示部分可以采用8279芯片来控制,可以解决此问题)。 当然在这种方式下,还可以使用多个状态键,每个状态键,完成一个对应数据的调整。如果采用二的方式,就不会出现这种情况。因为状态的调整,与状态的操作可以分别由两个键控制,其状态的调整数可以多达256个(理论上),操作的完成是这样的,一键控制状态的调整,一键控制数据的调整(具体操作如图2)。以上两种方式的实现都可以采用查询和中断的方式。两种方式必须注意的问题是两者进行相关操作的过程不能太长否则会影响显示的扫描。利用查询的方式,方法传统,对此就不作过多的讨论,以下是采用中断的方式实现的数字钟的一些讨论和有关问题作的一些处理。基于以上的讨论可以设计如下:将调整分为状态调整和数据调整两部分,每次进入中断只执行一次操作,然后返回,这样,就不必让中断处于调整等待状态,这样,可以使中断的耗时很小。将定时器中断的优先级设置为最高级,那么中断的方式和查询的方式一样不会影响到时钟的记数。基于以上的讨论,数据修改的具体操作如下。状态2状态3状态4状态5状态6R1-HOURR1-FSR1-SSR1-NULL状态1R1-MBF 图 2在状态进入后,调整指针的指向如右图所示:在右图中R1表示指向数据缓冲区的指针,它主要是为数据的调整而设立的,在图中:MBF 、HOUR、FS、SS,分别表示时钟的分、时,定时设置分、时,的数据缓冲区。状态5是秒表进入状态,状态6是时钟正钟显示状态。 在程序中R1为专用指针,它的值只在状态调整时改变,每次运行图示模块,只改变一次状态,就跳出程序。调整数据只须改变R1中的数据即可。(3)中断方式应注意的问题 采用中断的方式,最好将定时器中断的优先级设置为最高级,关于程序数据的稳定性应注意两个问题:一、在低优先级中断响应时,应在入栈保护数据时禁止高优先级的中断响应。二、在入栈保护有关数据后,对中断程序执行有影响的状态位、寄存器,必须恢复为复位状态的值。例如,在以下程序中,由于用到了十进制调整,所以在中断进入时,将PSW中的AC、CY位清零,否则,十进制调整出错。(4)定时准确性的讨论: 程序中定时器,一直处于运行状态,也就是说定时器是理想运作的,其中断程序每隔0.1秒执行一次,在理想状态下,定时器定时是没有系统误差的,但由于定时器中断溢出后,定时器从0开始计数,直到被重新置数,才开始正确定时,这样中断溢出到中断响应到定时器被重新置数,其间消耗的时间就造成了定时器定时的误差。如果在前述定时器不关的情况下,在中断程序的一开始就给定时器置数,此时误差最小,误差大约为:每0.1秒,误差712个机器周期。当然这是在定时器定时刚好为0.1秒时的情况,由以上分析,如果数字钟设计为查询的方式或是在中断的方式下将定时器中断设置为最高级,我们在定时值设置时,可以适当的扣除9个机器周期的时间值。但如果在中断的情况下,没有将定时器中断设置为最高级,那就要视中断程序的大小,在定时值设置时,扣除相应的时间值。(5)软件消抖: 消抖可以采用硬件(施密特触发器)的方式,也可以采用软件的方式。在此只讨论软件方式。软件消抖有定时器定时,和利用延时子程序两种方式。一、定时器定时消抖可以不影响显示模块扫描速度,其实现方法是:设置标志位,在定时器中断中将其置位,然后在程序中查询。将其中断优先级设置为低于时钟定时中断,那么它就可以完全不影响时钟定时。二、在采用延时子程序时,如果显示模块的扫描速度本来就不是很快,此时可能会影响到显示的效果,一般情况下,每秒的扫描次数不应小于50次,否则,数码的显示会出现闪烁的情况。因此,延时子程序的延时时间应该小于20毫秒,如果采用定时器定时的方式,延时时间不影响时钟。如果,设计时采用的是中断的方式来完成有关操作,同样可以采用软件的方式来消抖,其处理思想是:中断不能连续执行,两次之间有一定的时间间隔。以下是三种消抖方法的程序流程图:子程序延时延时键按下键按下处理程序结束YNN采用定时器延时中断入口定时器中断关延时N开定时器中断执行操作键按下,开定时器中断查询方式消抖图 3中断入口关本中断执行操作出口置位标志位BZ查询标志位BZBZ为1?延时N时间开中断,清BZYN流程图1为中断程序,流程图2程序段置于时钟中断程序中。利用此定时器的定时可以延时设置为0.3秒,甚至更长,而不影响计数。21采用中断的方式,软件消抖设计图 4四、基于以上,设计如下数字钟:(1)数字钟的操作如下:按键KEY0状态1:KEY0=1,数字钟正常时钟显示状态。状态2:KEY0=2,调整数字钟的分数据。状态3: KEY0=3, 调整数字钟的时数据。状态4: KEY0=4,数字钟的定时设置分值。状态5: KEY0=5,数字钟的定时设置时值。状态6: KEY0=6,秒表进入状态。说明:状态N表示KEY0键按下N次。 在进行调整或设置状态时,显示对应状态的数据并且对应的各调整位数码管的DP点亮。这样可以使调整更加可视化。按键KEY1完成加一操作,和秒表的清零操作。在进入了时间调整状态或定时设置状态时,按此键可以加一,或在秒表启动后处于停止状态时,按此键可以完成清零操作。按键KEY3秒表启动和停止键,此键必须在秒表状态进入了之后才有效。即是:KEY0=6时有效。定时时间到或整点时,时钟输出报时脉冲。(2)流程图: 在以下流程图中只描述了基本的功能,如给显示位加点,中断程序状态调整,加一操作,显示状态的切换,在流程图中都没有描述。但其设计就是基于以上介绍的显示指针,和状态指针的思想。在程序中用R0,R1充当此指针。程序设计的基本流程图如下:开始各缓冲区初始化对定时器,中断设置开始计数显示缓冲单元首址送R0,扫描初值送R2取显示单元值,转为段显码送段数据口 扫描值送位数据口P1 延时一小段时间 显示单元地址加一扫描值右移一位 显示状态是否切换查询让调整位的DP点亮时钟数据显示区 定时设置数据显示单元 秒表数据单元分调整?在显示的低位断码上加80H,即点亮DP。YN查询下一个调整位点亮DP的处理程序取断码送到显示缓冲区单元6位显示完?YN三个要显示的状态图 5报时模块标志位为1?秒表计数单元分值清零时值加一时值等于24?时值清零Y时值比较BS=1?Y标志位为1?中断入口定时模块定时器置初值时间计数单元加一计数值等于10?计数值单元清零秒值加一秒值等于60?秒值清零分值加一分值等于60?YYYNY分,时设定值等于时钟值?标志位 BS置1,输出报时脉冲Y分值比较定时器置初值结束以定时器定时频率为报时频率输出,做法是:在每个定时中断时,取反一个输出引脚图 617五、结束语:本设计在刘训非老师的悉心指导和严格要求下完成,从课题选择、方案论证到具体设计和调试,无不凝聚着刘老师的心血和汗水,在三年的大专学习和生活期间,也始终感受着导师的精心指导和无私的关怀,我受益匪浅。在此向刘老师表示深深的感谢和崇高的敬意。 不积跬步何以至千里,本设计能够顺利的完成,也归功于各位任课老师的认真负责,使我能够很好的掌握和运用专业知识,并在设计中得以体现。正是有了他们的悉心帮助和支持,才使我的毕业论文工作顺利完成,在此向苏州工业职业技术学院,电子工程系的全体老师表示由衷的谢意。感谢他们三年来的辛勤栽培六、 致谢: 踉踉跄跄地忙碌了三个月,我的毕业设计课题也终将告一段落。但由于能力和时间的关系,总是觉得有很多不尽人意的地方。这也让我了解到做一件事情,不必过于在乎最终的结果,可贵的是过程中的收获。不过在此非常感谢刘训非老师对我的论文不厌其烦的进行细心指点。刘老师首先细致地为我解题;当我迷茫于众多的资料,不知该如何下手时,刘老师又为我提纲挈领,梳理脉络,使我确立了本文的框架。论文写作中,每周都得到刘老师的指点。从框架的完善,到内容的扩充;从行文的用语,到格式的规范,刘老师都严格要求,力求完美。我再次为刘老师的付出表示忠心的感谢!七、主要参考文献(刊物名、按作者、出版社列出):1 单片机原理及应用 李建忠 编著 西安电子科技大学出版 2002年2月2 单片机中级教程 张俊谟 编著 北京航空航天大学出版 2000年1月3 单片机原理与应用技术 江力 编著 清华大学出版社4、8051单片机课程设计实训教材 陈明荧 编著 清华大学出版社5、单片机原理及接口技术 余锡存、曹国华 编著 西安电子科技大学出版社6、MCS-51单片机应用设计 张毅刚、修林成、胡振江 编著 哈尔滨工业大学出版社7、 /hust/course/shuzi/szljjy7-1-2.htm8、附录(数字钟控制程序):NAME ZFPORT EQU 0CFA0HHOUR EQU 26H ;设置数据缓冲区BUF EQU 23H SBF EQU 22H MBF EQU 21H SAEQU 27HFAEQU 28HHH EQU 29HMB0EQU 2AHMB1EQU 2BHMB2EQU 2CH MM0 EQU 2DH CSEG AT 0000H LJMP START ;中断初始化CSEG AT 0003H LJMP KEY0 CSEG AT 0013H LJMP KEY1CSEG AT 401BH LJMP CLOCKCSEG AT 4100HSTART: MOV R0, #40H ;数据缓冲区初始化 MOV R6,#00H MOV A, #00H MOV R0, A INC R0 MOV R0, A INC R0 MOV R0, A INC R0 MOV R0, A INC R0 MOV R0, A INC R0 MOV R0, A MOV SP, #30H MOV TMOD, #10H MOV TH1, #38H MOV TL1, #00H MOV BUF, #00H MOV SBF, #00H MOV MBF, #00H MOV HOUR,#00H MOV SA, #00H MOV FA, #00H MOV HH, #00H MOV MB0, #00H MOV MB1, #00H MOV MB2, #00H MOV MM0, #00H SETB ET1 SETB EX1 SETB PT1 SETB EA SETB P3.5 CLR P3.0 MOV TCON, #45H MOV R5, #01HDS1: MOV R0, #40H ;扫描显示 MOV R2, #20H DS2: MOV DPTR, #PORT MOV A, R0 ACALL TABLE CJNE R5, #02 ,L3 SJMP L2L3: CJNE R5, #04H,L1 ;让调整位的DP点亮L2: CJNE R0, #42H,L0 ADD A,#80H SJMP L0L1: CJNE R5,#03H, L4 SJMP L5L4: CJNE R5, #05H,L0L5: CJNE R0, #44H,L0 ADD A,#80HL0: MOVX DPTR, A MOV A, R2 CPL A MOV P1, A MOV R3, #07FH DEL: NOP DJNZ R3, DEL INC R0 CLR C MOV A, R2 RRC A MOV R2, A S2: CJNE R5,#06H,S3 ;切换到显示秒表计数 SETB EX0 SJMP MIAOBIAOS3: CJNE R5,#04H,S1 ;切换到定时设置状态的显示 SJMP DINGSHI S1: CJNE R5,#05H,S0 SJMP DINGSHI S0: JNZ DS2 MOV R0, #40H ;取缓冲区到显示缓冲区 MOV A, SBF ACALL GET MOV A, MBF ACALL GET MOV A, HOUR ACALL GET SJMP DS1MIAOBIAO:JNZ DS2 ;秒表显示 MOV R0, #40H MOV A, MB0 ACALL GET MOV A, MB1 ACALL GET MOV A, MB2 ACALL GET AJMP DS1 DINGSHI: JNZ DS2 ; 定时设置显示 MOV R0, #40H MOV A, HH ACALL GET MOV A, FA ACALL GET MOV A, SA ACALL GET AJMP DS1 TABLE: INC A ;查表取段码 MOVC A, A+PC RET DB 3FH DB 06H DB 5BH DB 4FH DB 66H DB 6DH DB 7DH DB 07H DB 7FH DB 6FH DB 40HGET: ;将一个两位十进制数放入两个数码管对应的两个缓冲区 MOV R4, A ANL A, #0FH MOV R0, A INC R0 MOV A, R4 SWAP A ANL A, #0FH MOV R0, A INC R0 RET CLOCK: ;定时器中断服务程序 JNB P3.0,D4 ;产生定时输出脉冲 CPL P3.4 D4: MOV TL1, #0AFH MOV TH1, #3CH PUSH PSW PUSH ACC JNB P3.5,C0;秒表计数模块 INC MB0 MOV A, MB0 CJNE A, #0AH,C0 MOV MB0, #00H MOV A, MB1 INC A DA A MOV MB1, A CJNE A, #60H, C0 MOV MB1, #00H MOV A, MB2 INC A DA A MOV MB2, A CJNE A, #60H, C0 MOV MB2, #00H C0: JNB 78H, Z1 ;时钟计数程序 INC R6 CJNE R6,#05H,Z1 MOV R6,#00H CLR 78H SETB EX0 Z1: JNB 79H, Z2 ;去抖延时程序 INC R6 CJNE R6,#0FH,Z2 MOV R6,#00H CLR 79H SETB EX1 Z2: INC BUF MOV A, BUF CJNE A, #0AH,QUIT MOV BUF, #00H MOV A, SBF INC A DA A MOV SBF, A CJNE A, #60H, QUIT MOV SBF, #00H MOV A, MBF CLR P3.0 ;定时脉冲输出一分钟 D2: INC A DA A MOV MBF, A MOV A, FA ;定时比较分值 CJNE A, MBF,D0 SJMP D1 D0: MOV A,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030功能性食品申报审批流程优化及营销合规边界研究报告
- 2025-2030功能性食品原料科学背书策略与消费者认知培育研究报告
- 2025年农村新能源市场消费升级与技术革新研究报告
- 2025年高考时事政治时事政治考试题库及完整答案详解
- 2025年农产品质量检测师考试试题及答案
- 2025年爆破考核试题及答案
- 2025年新能源产业国际合作与政策协同研究报告
- 2025年秦皇岛市G2电站锅炉司炉证考试题库及答案
- 2025年风电行业市场前瞻:技术创新引领风电产业绿色低碳发展报告
- 2025年注册会计师考试《会计》差错更正全面复习模拟试题试卷
- 物流园区规章制度模版(2篇)
- 《多能源耦合供热系统》
- 《搞定:无压工作的艺术》完整课件
- 京东方岗位胜任力测评题库
- 印刷包装公司安全生产管理方案
- 高中数学64数列求和省公开课获奖课件市赛课比赛一等奖课件
- 二手车国庆节活动方案
- 人教版八年级上册地理教学计划及进度表
- 2025高考物理步步高同步练习必修3练透答案
- DZ∕T 0215-2020 矿产地质勘查规范 煤(正式版)
- 2024年初中升学考试九年级数学专题复习新课标要求-中考33讲
评论
0/150
提交评论