单片机课程设计:单片机控制的倒计时牌毕业设计(论文)word格式.doc

单片机课程设计:单片机控制的倒计时牌毕业设计(论文)word格式.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
倒计时牌 方案选择 1.1题目:倒计时牌 1.2要求: 1.2.1实现日历功能; 1.2.2显示距倒计时时刻还有多长时间(显示天、时、分、秒); 1.2.3 倒计时的时间可人为设定; 1.3 总体设计: 本倒计时牌以AT89C51单片机作为核心,最长可以倒计时100天。可以显示距倒计时时刻还有多长时间,显示格式为天(十位,个位)、时(十位、个位)、分(十位、个位)、秒(十位、个位);倒计时的时间可以人为设定;另外还可以显示当前的日历,显示格式为年(四位),月(两位),日(两位)。 倒计时设置时间时的位切换、设定数值、启动定时器、切换日历通过外部中断来实现。 倒计时牌天、时、分、秒的计时分别利用100、24、60、60进制自减计数来实现。 倒计时的显示电路由LED数码管组成, 利用8只数码管显示,从左至右依次显示为天(十位,个位)、时(十位、个位)、分(十位、个位)、秒(十位、个位)及年(四位),月(两位),日(两位)。 硬件原理电路图的设计及分析 倒计时牌硬件系统的设计,关键是其显示器接口电路的设计,本设计采用直接利用单片机AT89C51的并行I/O口构成倒计时牌显示接口电路,其硬件系统主要包括单片机(包含晶振、电源)、控制电路(设置初始时间以及日历切换)及显示接口电路。 2.1 模块方框图 2.2 电路图 2.3 使用说明 倒计时牌具有如下工作状态:设置状态和运行状态。倒计时牌上电后,显示为全0。这时要设置倒计时时间,按K1,开始设置时间,这时设置的是秒,按一次K2,秒加1;再按一次K1,设置分,依次类推;设置完天后,按K1则启动定时器,开始倒计时。 在倒计时牌运行状态下,按K2,显示当前的日期(年、月、日);再按一次,回到倒计时间显示。 注:INT0对应的开关为位切换/启动按钮K1; INT1对应的开关为修改/日历切换按钮K2。 3.程序设计及分析 3.1 软件系统模块图 3.2各子程序设计 3.2.1主程序 主程序(MAIN)的主要功能是初始化程序、转换子程序和调用延时子程序以及数码管的断码表,其流程图如下: 程序代码(加注释)如下: MAIN: MOV TMOD,#01H ;定时器T0设为方式一 MOV R1,#17 ;日历 MOV R2,#00H ;切换显示(日历和倒计时的切换) MOV R5,#0AH ;十次中断产生一秒 MOV R3,#00H ;利用外部中断0对天、时、分、秒进行切换 MOV R4,#00H ;当倒计时开始(R3=5)时对倒计时的初值不能再进行设置 MOV 30H,#00H ;天 MOV 31H,#00H ;时 MOV 32H,#00H ;分 MOV 33H,#00H ;秒 MOV 34H,#20 ;年的前两位 MOV 35H,#09 ;年的后两位 MOV 36H,#06 ;月 MOV 37H,#17 ;日 SETB EX0 SETB EX1 SETB IT0 ;外部中断0为边沿触发 SETB IT1 ;外部中断1为边沿触发 SETB ET0 SETB EA MOV TH0,#3CH ;定时器T0置初值 MOV TL0,#0B0H /*下面为转换子程序*/ LOOP: /*下面为显示程序*/ DISPLY: /*下面为延时程序*/ DL1ms:MOV R7,#02H DL: MOV R6,#0FFH DL6: DJNZ R6,DL6 DJNZ R7,DL RET 3.2.2转换子程序及显示子程序模块 转换子程序(LOOP)将中断服务程序中产生的天、时、分、秒数据,转换成适应LED数码管显示的数据,并将其存放在缓冲区中; 各个要显示的单元都存放在数据缓冲区中,如下表: 显示子程序(DISPLY)LOOP: MOV DPTR,#DMB ;段码表首地址放进DPTR MOV A,33H ;对秒进行拆分 MOV B,#10 DIV AB MOVC A,@A+DPTR MOV 46H,A ;秒的十位对应的段码放进缓冲区46H MOV A,B MOVC A,@A+DPTR MOV 47H,A ;秒的个位对应的段码放进缓冲区47H /*下面为显示程序*/ DISPLY: CLR P2.7 MOV A,47H MOV P1,A LCALL DL1ms SETB P2.7 CLR P2.6 MOV A,46H MOV P1,A LCALL DL1ms SETB P2.6 3.2.3 定时器T0中断 定时器T0溢出中断(IT0P)程序主要用于

文档评论(0)

天天好文档 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档