- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目 录
一、设计内容 1
二、设计要求 1
三、设计步骤 1
四、设计思路 2
五、程序流程图设计 5
六、程序设计 6
七、心得体会 11
八、参考文献 12
一、设计内容
利用单片机内部的定时器作为硬件资源,依靠软件实现年、月、日、时、分、秒6个日期、时间参数的运行,6个参数分别存放在6个字节单元内部RAM中。
二、设计要求
利用单片机内定时器,通过软件编程方式实现年、月、日、时、分、秒6个参数的运行。其中,日期按“万年历”方式显示年、月、日,按大、小月显示月末日期,按闰年与否显示2月月末日期,按24小时制显示时、分、秒。
以上6个参数可以分别存放在单片机内部6字节存储单元中。
三、设计步骤
(1)程序框图设计,反映设计思路与程序流程。
(2)程序设计,包括:初始化设计、秒调整子程序设计、分调整子程序设计、小时调整子程序设计、日调整子程序设计、月调整子程序设计。
(3)程序设计满足模块化、工程化要求:独立功能通过子程序实现,子程序有足够多的调用说明,包括:入口条件、出口状态、寄存器使用情况、存储器使用情况等必要的说明。
(4)编制的程序必须通过调试。
四、设计思路
(1)定时器配置
T0工作于方式2,溢出产生中断的工作方式,获取精确的时间中断。故th0的重装值为06h,一次产生0.25ms的中断。
(2)产生1秒时标
在定时器的中断服务程序中累计中断次数,每经过一次中断,相当于经过一个时间节拍,1秒钟经过的时间节拍数:1/(0.25×10-3)=4000。通过2个字节的内部RAM累加中断次数,本次设计中为 MS50_BUF和S1_BUF。(4)秒调整
每过1秒,秒单元加1,加到60,秒单元清零,同时设置1分时标。
(5)分调整
每过1分,分单元加1,加到60,分单元清零,同时设置1小时时标。
(6)小时调整
每过1小时,小时单元加1,加到24,小时单元清零,同时设置1日时标。
(7)日调整
每过1日,日单元加1,大月加到加到32,小月加到加到31,月单元重新设置为1。对于2月的日数有闰年和非闰年之分,闰年的2月为29日,非闰年为28日,分别加到30、29,重新设置为1,同时设置1月时标。当年是否为闰年,本此设计只要能整除4就是闰年29天,否则28天。
(8)月调整
每过1月,月单元加1,加到13,月重新设置为1,同时设置1年时标
(9)年调整
年单元不断累加即可,没有上一个时间单位,无需调整。
五、程序流程图设计
六、程序设计
YEA_BUF EQU 30H ;设置年的地址
MON_BUF EQU 31H ;设置月的地址
DAY_BUF EQU 32H ;设置天的地址
HOU_BUF EQU 33H ;设置小时的地址
MIN_BUF EQU 34H ;设置分钟的地址
SEC_BUF EQU 35H ;设置秒的地址
S1_BUF EQU 36H
MS50_BUF EQU 37H
ORG 0000H ;程序初始化
LJMP MAIN ;跳到主函数
ORG 000BH ;
LJMP T0_ISR ;跳转到该函数
ORG 0030H
MAIN:
MOV TMOD,#02H
MOV MS50_BUF,#0
MOV S1_BUF,#0
SETB ET0 ;ET0置1
SETB EA ;EA置1
MOV TH0,#06H
SETB TR0 ;启动定时
MOV SP,#70H
M1:
JNB F0,$ ;如果直接寻址为0则转移
CLR F0 ;清零
LCALL T_SEC ;调用子程序
JNB F0,M1
文档评论(0)