- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
马拉松比赛计时器设计
马拉松比赛计时器设计
设计目的
掌握单片机定时器/计数器的使用方法
掌握单片机中断服务程序的应用
熟悉单片机外围数码管显示电路的设计方法
相关知识
定时器/计数器
定时器/计数器简称定时器,其作用主要用于产生各种时间间隔,记录外部脉冲与事件的数量等,是微机中最常用的部件之一。89c51单片机有2个16位的定时器/计数器O(TO)和定时器1(T1)。
TO由2个定时寄存器THO和TLO构成,T1则由TH1和TL1构成,他们都分别映射在特殊功能计数器中,从而可以通过对特殊功能寄存器的读/写来实现对这两个定时器的操作。作为定时器。每个机器周期定时寄存器自动加1.,所以定时器也可看成是计量机器周期的计数器。由于每个机器周帏12个时钟振荡周期,所以定时的分辨率是时钟振荡频率的1/12。作为计数器,只要在单片机外部引脚TO(TI)有从1到0电平的负跳变,计数器就自动加1。计数的最高频率一般为振荡频率的1/24,例如,选用12MHz
晶振,则最高技术频率为0.5MHz。
中端系统
当中央处理器CPU正在执行某程序时,由于某种原因,外界向CPU发出暂停目前工作去处理更重要事情的请求,程序被打断;CPU响应改请求并转入响应的处理程序,处理程序完成以后,再返回原来程序被打断的位置,继续原来的工作,这一过程成为中断。实现中断功能的部件称为中断系统,或者称为中断控制逻辑系统。
89c52单片机的中断系统简单实用。其基本特点是:有6个固定的可屏蔽中断源,4个在片内,2个在片外,他们在程序存储器中各有固定的中断入口地址,由此进入中断服务程序;6个中断源有两个优先级,可形成中断嵌套;2个特殊功能寄存器用于中断控制和条件设置的编程。
若某个中断源通过编程设置,处于被打开的状态,并满足中断响应的条件,而且满足如下3个条件时,单片机响应此中断:
当前正在执行的那条指令已被执行完。
不在操作IE,IP中断控制寄存器或执行RETI中断指令
在正常的情况下,从中断请求信号有效开始,到中断得到响应,通常需要3个机器周期到8个机器中期
终端的到响应后,自动清除中断请求标志(对串行I/O端口的中断标志,要用软件清除),将断点即计数器之值(PC)
图1-1
2系统软件设计
主程序(START)
在主程序中只完成系统的初始化,同时进行时分秒按键的扫描。如果有按键按下,则做相应时分秒计数数据的加1处理。主程序执行流程图按图1-2所示
(2)定时器中端服务程序(TIMERO)
定时器TO用于时间计时。定时计数个数为5000,由于采用12MHz晶体振荡器,所以定时溢出中断周期为5000微秒=5毫秒。为了保证计时的准确性,进入中断服务程序时应立即重设计数初始值。在中断程序中还要判断是否计时1s,若是,还应通过调用其他子程序作时分秒值的相应处理。
显示子程序(DISP)
该子程序通过在中断服务程序中被调用而执行。每一次中断程序调用一次,其作用是根据扫描指针循环驱动各个数码管。
时钟调整子程序(CLK_CHANGE)
当中断程序中判断出计时1s时,该程序即被调用执行。其作用为将秒的计数初值加1,同时判断是否应对十分作相应的修改。
数据转换子程序(COVERT)
当中断程序中判断出计时1s时,该程序及被调用执行。由于时分秒的计数值分别保存在一个字节里,而每一个计数值实际是一个2位的十进制数。在驱动显示时必须将这个2位数拆开以分别去扫描个位和十位,该子程序就是完成这个的,并把拆分结果存储在从20H开始的显示寄存器单元里。
延时子程序(DELAY)
用于键盘的延时去斗
程序清单
ORG 0000H ;复位起始地址
AJMP START ;跳转至主程序
ORG 000BH ;TIMERO中断矢量地址
AJMP TIMERO ;跳转至TO中断子程序TIMERO
START: MOV SO,#6FH ;设置堆栈从6FH开始
MOV 30H,#00H ;显示位码寄存器处置为00
MOV 2AH,#00H ;“时” 寄存器初值为00H
MOV 2BH,#00H ;“分” 寄存器初值为00H
MOV 2CH,#00H ;“秒” 寄存器初值为000H
原创力文档


文档评论(0)