ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:678.76KB ,
资源ID:22151341      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22151341.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机数字钟Word格式.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机数字钟Word格式.docx

1、3 系统软件设计1)主流程图:图6 主流程图流程图说明初始化:包括定时器赋初值,初始化各内存单元。开定时器中断,开CPU中断,送段码表头地址给DPTR。2)显示子程序流程图图7 显示子程序流程图3)按键扫描子程序图8按键扫描子程序流程图4)模式查询子程序图9模式查询子程序流程图图10 走时模式流程图日期显示及调整子程序与闹钟显示及调整子程序流程图与调时模式子程序大同小异。a)日期显示及调整子程序送给R3/R4/R5的数据为日/月/年,按功能键1日期加1,按功能键2月份加1。至于数值的合法性在程序里有具体的判断。b)闹钟显示及调整子程序送给R3/R4/R5的数据为闹钟开关值/闹钟分/闹钟时,按功

2、能键1闹钟分加1,按功能键2闹钟时加1。图11 调时模式流程图5)闹钟查询子程序图12 闹钟查询子程序流程图6)定时器中断子程序数值合法性在程序中处理与判断,流程图中不表现。图13定时器中断子程序流程图4 系统调试与结果分析Keil软件调试单片机程序的时候,编译通过并不代表程序是正确的。编译通过只能说明程序没有语法上的错误。进行软件仿真或者下载到开发板上进行调试,经常会出现各种各样的错误。许多超出预期效果的现象往往是一些微小错误引起的。例如没有现场保护跟恢复现场等,所以养成良好的编程习惯也很重要。又如有些想达成某些功能而添加的语句,实际上确一点效果也没有。举个编程中的小问题:当有按键按下时,为

3、了防止按键跳转,设置软件防抖程序,利用中断控制按键防抖。仿真结果:1、时间仿真结果(时间设置为:1时1分)图14时间仿真结果2、日期仿真结果(日期设置为12年6月24日)图15日期仿真结果3、闹钟仿真结果(时间设置为1时2分:注意观察蜂鸣器高低电平变化)图16闹钟仿真结果5 结论硬件设计部分:首先要通过计算与参考资料等决定参数。而后通过仿真软件Protues和Keil调试,确定参数无误后再开始用Protel画原理图,进而生成PCB板。软件设计部分:设计软件首先要考虑要做的功能,确定出合理的算法。合理的算法不仅要可以实现功能,而且在添加功能的时候要方便灵活。有的人为了实现某种功能用了各种各样的方

4、法来实现,结果程序结构无法实现,当想要添加功能或者修改其他功能的时候,将修改程序大部分结构,也就是说要破坏程序现有的结构。在设计过程中我们认识到态度要积极,不要认为很简单就不紧不慢。很多东西并不是自己设想的那么顺利,有时候一个小问题可以花上你半天甚至一天的时间。在编写程序过程中我们遇到了许多问题,比如设计闹钟子程序的时候就花了很长时间,最后在我们共同的努力下才完成了对其的设计。同时,我们也认识到了团队合作很重要,只有大家共同努力才能完成对其的设计。也让我们明白了对于自己不能太过于自信,态度决定一切。参考文献:1杨欣,王玉凤,刘湘黔,张延强,51单片机应用实例详解,清华大学出版社2洪志刚,杜维玲

5、,井娥林,单片机应用系统设计,机械工业出版社3潘永雄,新编单片机原理及应用,西安电子科技大学出版社4胡启明,程钢,51单片机应用开发从入门到精通,人民邮电出版社5王守中,51单片机开发入门与典型实例,人民邮电出版社附录一:protel原理图附录二:protel PCB板图附录三:protues电路图附录四:程序源代码 YEAR_L EQU 31H ;年份的低位 MONTH EQU 32H ;月份 DAY EQU 33H ;日期 DAY_MAX EQU 34H ;每月最大天数 HOUR EQU 35H ;时钟 MINUTE EQU 36H ;分钟 SECOND EQU 37H ;秒钟 BOTTO

6、N EQU 38H ;键值 FLAG EQU 39H ;模式标记/0走时/1调时/2日期显示及调整/3闹钟调整及闹钟开关/ BEEPH EQU 40H ;闹钟时钟 BEEPM EQU 41H ;闹钟分钟 ENBEEP EQU 42H ;闹钟开关 ORG 0000H AJMP MAIN ORG 0003H AJMP INTZ ORG 001BH AJMP SERVEMAIN:CLR A MOV R2,#14H MOV TMOD,#10H ;设为模式1,定时器1 MOV MONTH,#06 ;月份赋6 MOV DAY,#24H ;日期赋24 MOV YEAR_L,#12H ;年份赋12年 MOV

7、HOUR,A ;小时清零 MOV MINUTE,A ;分钟清零 MOV SECOND,A ;秒钟清零 MOV FLAG,A ;初始化模式 CLR P3.7 ;开蜂鸣器 MOV ENBEEP,#01H ;闹钟默认开 MOV BEEPH,#00H ;闹钟初值00:00:00 MOV BEEPM,#00H MOV TH1,#4CH ;赋定时初值 MOV TL1,#00H SETB ET1 ;开中断 SETB IT0 SETB EX0 SETB EA SETB TR1 ;启动T1 MOV DPTR,#TAB ;送段码表头DIS:LCALL DISPLAY ;重复调用显示子程序 LCALL NEXT ;

8、查询当前模式 LCALL BEEP ;查询闹钟开关 SJMP DISSERVE:PUSH PSW ;保护现场 PUSH ACC MOV TH1,#4CH MOV TL1,#00H ;重新赋计数初值 DJNZ R2,BRIDGE ;未满20次,返回 AJMP BREAK1BRIDGE: LJMP RETURNBREAK1: MOV R2,#14H ;重置中断次数 MOV A,#01H ;秒加1 ADD A,SECOND DA A ;转为BCD码 MOV SECOND,A CJNE A,#60H,BRIDGE ;未满60秒,返回 MOV SECOND,#00H ;秒清零分加1 ADD A,MINU

9、TE MOV MINUTE,A CJNE A,#60H,RETURN ;未满60分,返回 MOV MINUTE,#00H ;时加1 ADD A,HOUR MOV HOUR,A CJNE A,#24H,RETURN ;未满24小时,返回 MOV HOUR,#00H ;小时清零 MOV A,MONTH CJNE A,#1H,JUDGE2 ;不是1月,转跳 AJMP SETDAT_MAX1 JUDGE2: CJNE A,#3H,JUDGE3 ;不是3月,转跳JUDGE3: CJNE A,#5H,JUDGE4 ;不是5月,转跳 AJMP SETDAT_MAX1JUDGE4: CJNE A,#7H,JU

10、DGE5 ;不是7月,转跳JUDGE5 :CJNE A,#8H,JUDGE6 ;不是8月,转跳JUDGE6: CJNE A,#10H,JUDGE7 ;不是10月,转跳JUDGE7: CJNE A,#12H,SETDAT_MAX2;不是12月,转跳SETDAT_MAX1: MOV DAY_MAX,#32H ;天上限为31 AJMP CONTINUE ;返回SETDAT_MAX2: CJNE A,#2H,SETDAT_MAX3 ;不是2月,跳转 MOV DAY_MAX,#29H ;2月,天上限28SETDAT_MAX3: MOV DAY_MAX,#31H ;天上限为30CONTINUE:天加1 A

11、DD A,DAY MOV DAY,A CJNE A,DAY_MAX,RETURN ;未满天数上限,返回 MOV DAY,#01H ;天数置1月份加1 ADD A,MONTH MOV MONTH,A CJNE A,#13,RETURN ;未满12月,返回 MOV MONTH,#01H ;月份置1年低位加1 ADD A,YEAR_L MOV YEAR_L,A CJNE A,#99,RETURN ;未满99年,返回 MOV YEAR_L,#00H ;年低位清零RETURN: POP ACC POP PSW ;恢复现场 RETI ;中断返回 ;=显示子程序=DISPLAY:PUSH PSW MOV A

12、,R3 ANL A,#0FH MOVC A,A+DPTR MOV P2,#0DFH ;位选P2.5口 显示秒低位 MOV P0,A ;段选 显示数字 LCALL DELAY SWAP A MOVC A,A+DPTR MOV P2,#0EFH ;位选P2.4口 显示秒高位 MOV P0,A MOV A,R4 MOV P2,#0F7H ;位选P2.3口 显示分低位 MOV P2,#0FBH ;位选P2.2口 显示分低位 LCALL DELAY MOV A,R5 MOV P2,#0FDH ;位选P2.1口 显示时低位 MOV P2,#0FEH ;位选P2.0口 显示时低位 POP PSW RET=按

13、键中断=INTZ:KEY:MOV P1,#0FFH MOV A,P1 CPL A ANL A,#07H ;判断是否有按键按下 JNZ KEY1 RETIKEY1:MOV A,P1 ANL A,#07H JNZ KEY2KEY2:MOV BOTTON,A JB ACC.0,SETMODESETMODE:MOV A,FLAG INC A MOV FLAG,A CJNE A,#04H,I1 MOV FLAG,#00H AJMP EXIT I1:LCALL NEXT EXIT:RETI=模式查询程序=NEXT: MOV A,FLAG CJNE A,#00H,SETTIME SETB TR1 MOV R

14、3,SECOND MOV R4,MINUTE MOV R5,HOUR MOV A,BOTTON JB ACC.1,STOP JB ACC.2,STOP=闹钟开关/查询=BEEP: MOV A,FLAG CJNE A,#00H,STOP MOV A,ENBEEP CJNE A,#01H,STOPBEEPLAY:MOV A,HOUR CJNE A,BEEPH,STOP MOV A,MINUTE CJNE A,BEEPM,STOP CLR P3.7 ;闹钟开启STOP: SETB P3.7 ;闹钟关闭 MOV BOTTON,#00H =调时程序=SETTIME:CLR TR1 CJNE A,#01H

15、,SETDATE MOV R5,HOUR JB ACC.1,MIN JB ACC.2,HORMIN:MOV A,#01H ; DA A CJNE A,#60H,BACK MOV MINUTE,#00H MOV BOTTON,#00HHOR: DA A CJNE A,#24H,BACK MOV HOUR,#00HBACK:=日期显示及调整子程序=SETDATE:CJNE A,#02H,SETBEEP MOV R3,DAY MOV R4,MONTH MOV R5,YEAR_L MOV A,BOTTON JB ACC.1,DAYS JB ACC.2,MODAYS: CJNE A,#1H,JUDGEA

16、 ; AJMP SETDAT_MAXA JUDGEA:CJNE A,#3H,JUDGEB ;JUDGEB: CJNE A,#5H,JUDGEC ; AJMP SETDAT_MAXAJUDGEC: CJNE A,#7H,JUDGED ;JUDGED :CJNE A,#8H,JUDGEE ;JUDGEE: CJNE A,#10H,JUDGEF ;JUDGEF: CJNE A,#12H,SETDAT_MAXB ;SETDAT_MAXA: MOV DAY_MAX,#32H ; AJMP CONTINUE1 ;SETDAT_MAXB: CJNE A,#2H,SETDAT_MAXC ;不是2月,转跳 MO

17、V DAY_MAX,#29HSETDAT_MAXC:CONTINUE1: MOV A,#01H ; CJNE A,DAY_MAX,BACK1 MOV DAY,#01HMO: MOV A,#01H CJNE A,#13H,BACK1 MOV MONTH,#01HBACK1:=闹钟调整程序=SETBEEP:MOV R3,ENBEEP MOV R4,BEEPM MOV R5,BEEPH JB ACC.1,SETM JB ACC.2,SETHSETM:闹钟分加1 ADD A,BEEPM MOV BEEPM,A CJNE A,#60H,BACK2SETH: MOV A,#01H ;闹钟时加1 ADD A,BEEPH MOV BEEPH,A CJNE A,#24H,BACK2 MOV BEEPH,#00HBACK2:=延时子程序=DELAY: MOV R0,#06H DELAY1: MOV R1,#0B2H DJNZ R1,$ DJNZ R0,DELAY1TAB: DB 0C0H,0F9H,0A4H,0B0H,99H ;段码 DB 92H,82H,0F8H,80H,90H END

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1