单片机课程设计8724870736.docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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)

企业资源 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档