片单机电子钟设计课程设计报告.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单机 电子钟 设计 课程设计 报告
- 资源描述:
-
单片机课程 电子时钟设计报告 2016.04.27 一. 设计的任务及要求: 利用实验平台上4个LED数码管,设计带有闹铃功能的数字时钟。 任务: 通过电子时钟综合设计,学会利用 8051 定时器时间计时处理功能,了解按键扫描及控制LED数码管显示原理,掌握单片机和按键以及LED数码管硬件电路设计及控制程序的设计方法。思考按键消除抖动、LED 动态显示与静态显示的特点,从而提高解决实际问题的能力。 要求: 1.在 4 位数码管上显示当前时间。显示格式“时时分分”。 2.由 LED 闪动做秒显示。 3.利用按键可对时间及闹玲进行设置,并可显示闹玲时间。当闹玲时间到蜂鸣器发出声响,按停止键使可使闹玲声停止。 二. 工作原理: LED数码管: 蜂鸣器: 按键: 三. 软件设计流程及描述: 总设计框图: 显示部分: 显示部分分为时钟显示、闹钟显示和秒显示三部分,主要由时钟显示子程序和闹钟显示子程序构成,秒显示较为简单。闹钟显示与时钟显示编程流程大致相同。 流程图如下: 按键扫描及处理框图: 闹铃部分: 设计思路及原理:音节由不同频率的方波产生,音节与频率的关系如下表所示。要产生音频方波,设计利用延时来建立音符表NOTE,表格中的数存R3*20us,其倒数1/(R3*2*10us)对应相应音符的频率。 另外,音乐的节拍是由延时实现的,如果1拍为0.4秒,1/4拍是0.1秒。只要设定延时时间,就可求得节拍的时间。延时作为基本延时时间,节拍值只能是它的整数倍。设计利用T1中断产生10ms延时,取1/4拍为10H*10ms,相应产生所需延时。 音符(低) .1 .2 .3 .4 .5 .6 .7 频率(HZ) 262 294 330 349 392 440 494 音符(中) 1 2 3 4 5 6 7 频率(HZ) 523 587 659 698 784 880 988 音符(高) ^1 ^2 ^3 ^4 ^5 ^6 ^7 频率(HZ) 1046 1175 1318 1397 1568 1760 1967 程序中的音乐乐谱如下: NOTE: DB 60H,60H,7FH,98H,7FH,60H,60H,7FH,60H DB 98H,7FH,60H,7FH,98H,60H,7FH,98H,50H METRE: DB 20H,20H,20H,20H,20H,20H,20H,20H,20H DB 20H,20H,20H,20H,20H,20H,20H,20H,20H 四. 源程序及代码: ;程序主要包括MAIN函数,T0/T1中断程序,时间、闹钟显示程序 ,按键扫描、处理程序 ;/主函数/预置T0\T1工作方式,置初值,预置时钟、闹钟,置位数码管 ORG 0000H AJMP MAIN ;跳转到主程序MAIN执行 ORG 000BH AJMP INTT0 ;跳到INTT0执行 ORG 001BH LJMP INTT1 ;跳到INTT1执行 ORG 02B0H MAIN:MOV SP,#80H MOV TMOD,#11H ;设置定时器T0、T1工作于方式1 MOV TH0,#0ECH ;装入时钟定时初值(5ms) MOV TL0,#78H MOV TH1,#0D8H ;装入闹铃定时初值(10ms) MOV TL1,#0F0H MOV R1,#00H ;确保首次默认闹铃工作 MOV 22H,#00H ;预置时钟分钟 MOV 23H,#00H ;预置时钟小时 MOV 30H,#03H ;预置闹铃分钟 MOV 31H,#00H ;预置闹铃小时 SETB P1.7 ;LED7显示秒;置位P1.7,发光二极管LED8灭 SETB EA ;开放总中断 SETB ET0 ;允许T0中断 SETB TR0 ;开启定时器T0 LOOP:LCALL DISPT ;调用时间显示子程序 LCALL RING ;调用闹铃处理子程序 LCALL KEY ;调用按键扫描子程序 JZ LOOP ;无键按下则循环 LCALL CASE ;有键按下则转按键处理子程序执行 SJMP LOOP ;返回循环 ;/ T0一秒定时中断程序INTT0/正常时钟计时 INTT0:PUSH PSW ;状态字入栈保护 PUSH ACC ;累加器入栈保护 MOV TH0,#0ECH ;装入计数初值,12MHZ晶振,形成1S中断 MOV TL0,#78H INC 20H MOV A,20H CJNE A,#200,RETURN CPL P1.67 ;一秒到LED8亮,用于显示秒 MOV 20H,#00 ;一秒到清20H MOV A,21H ADD A,#01H DA A MOV 21H,A CJNE A,#60H,RETURN MOV 21H,#00 ;一分到,21H单元清零 MOV A,22H ADD A,#01H DA A MOV 22H,A CJNE A,#60H,RETURN MOV 22H,#00 ;一小时到,22H单元清零 MOV A,23H ADD A,#01H DA A MOV 23H,A CJNE A,#24H,RETURN MOV 23H,#00H ;满24,23H单元清零 RETURN: POP ACC POP PSW RETI ;/时间显示子程序/ DISPT: MOV A,22H ANL A,#0FH MOV 2AH,A ;时钟分的低位 MOV A,22H ANL A,#0F0H SWAP A MOV 2BH,A ;时钟分的高位 MOV A,23H ANL A,#0FH MOV 2CH,A ;时钟时的低位 MOV A,23H ANL A,#0F0H SWAP A MOV 2DH,A ;时钟时的高位 LED1: SETB P2.3 MOV A,2DH MOV DPTR,#TAB MOVC A,@A+DPTR CLR P2.0 ;选通数码管1 MOV P0,A ;显示时钟时的十位部分 LCALL DELAY LED2: SETB P2.0 MOV A,2CH MOV DPTR,#TAB MOVC A,@A+DPTR CLR P2.1 ;选通数码管2 MOV P0,A ;显示时钟时的个位部分 LCALL DELAY LED3: SETB P2.1 MOV A,2BH MOV DPTR,#TAB MOVC A,@A+DPTR CLR P2.2 ;选通数码管3 MOV P0,A ;显示时钟分的十位部分 LCALL DELAY LED4: SETB P2.2 MOV A,2AH JB P1.6,TA TA: MOV DPTR,#TAB MOVC A,@A+DPTR CLR P2.3 ;选通数码管4 MOV P0,A ;显示时钟分的个位部分 LCALL DELAY RET TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;共阳数码管的时间显示码 ;/按键扫描程序/ 开关接P3口,判断按键情况 KEY: MOV P3,#0FFH MOV A,P3 CPL A ANL A,#2CH JZ RETK ;无键按下则返回 LCALL DELAY ;延时消抖 MOV A,P3 CPL A ANL A,#2CH JZ RETK ;键盘去抖动 MOV R6,A ;将键值存入R6 LOOP1: LCALL DISPT; MOV A,P3 CPL A ANL A,#2CH JNZ LOOP1 ;等待键释放 MOV A,R6 RETK: RET ;/按键处理子程序/根据按键情况进行处理 CASE: MOV A,R6 CLR P1.0 ;发光二极管LED1亮 JB ACC.2,SETH ;转调整时 JB ACC.3,SETM ;转调整分 JB ACC.5,SETR ;转闹铃设置 WAITCASE:LCALL DISPT ;无键按下时等待 LCALL KEY JZ WAITCASE ;/时间调整程序/ 按键调整时间 SETT: LCALL DISPT LCALL KEY JZ SETT MOV A,R6 JB ACC.2,SETH JB ACC.3,SETM JB ACC.5,KEYGO ;第二次按为确认离开 KEYGO: SETB P1.0 ;发光二极管LED1、LED2灭 SETB P1.1 RET SETH: MOV A,23H ;调整时钟时,时加1 ADD A,#01H DA A ;十进制调整 MOV 23H,A CJNE A,#24H,HD ;判断是否到24,不到继续 MOV 23H,#00H ;到24时清零 HD: LJMP SETT SETM: MOV A,22H ;分加1 ADD A,#01H DA A ;十进制调整 MOV 22H,A CJNE A,#60H,MD ;判断是否到1小时,不到继续 MOV 22H,#00H ;到1小时则清零 MD: LJMP SETT ;/闹铃时间调整按键扫描及处理子程序/ KEYR: MOV P3,#0FFH MOV A,P3 CPL A ANL A,#2CH JZ RETK ;无键按下则返回 LCALL DISPR ;延时消抖 MOV A,P3 CPL A ANL A,#2CH JZ RETK ;键盘去抖动 MOV R6,A ;将键值存入R6 LJMP LOOPR LOOPR: LCALL DISPR MOV A,P3 CPL A ANL A,#2CH JNZ LOOPR ;等待键释放 MOV A,R6 AJMP RETK ;/设置闹铃时间/ SETR: SETB P1.0 ;发光二极管LED1灭 CLR P1.1 ;发光二极管LED2亮,改显示状态 LCALL DISPR MOV R1,#00H ;设置闹钟时重设R1,用于检测闹铃播放与否 MOV 53H,#03H ;重设闹铃次数 LCALL KEYR ;闹铃时间调整按键检测 JZ SETR MOV A,R6 JB ACC.2,SETRH JB ACC.3,SETRM JB ACC.5,KEYGO ;第二次按为确认离开 SETRH: MOV A,31H ;闹钟时加1 ADD A,#01H DA A ;十进制调整 MOV 31H,A CJNE A,#24H,RHD ;判断是否到24,不到继续 MOV 31H,#00H ;到24时则清零 RHD: LJMP SETR SETRM: MOV A,30H ;闹钟分加1 ADD A,#01H DA A ;十进制调整 MOV 30H,A CJNE A,#60H,RMD ;判断是否到1小时,不到继续 MOV 30H,#00H ;到1小时则清零 RMD: LJMP SETR ;/闹钟设置显示子程序/ DISPR: MOV A,30H ANL A,#0FH ;屏蔽高四位 MOV 3AH,A ;保留低位送3AH MOV A,30H ANL A,#0F0H ;屏蔽低四位 SWAP A ;高四位与第四位交换 MOV 3BH,A ;将保留的高4位送3BH MOV A,31H ANL A,#0FH MOV 3CH,A ;低位 MOV A,31H ANL A,#0F0H SWAP A MOV 3DH,A ;高位 LEDR1: SETB P2.3 MOV A,3DH MOV DPTR,#TAB MOVC A,@A+DPTR CLR P2.0 MOV P0,A LCALL DELAY LEDR2: SETB P2.0 MOV A,3CH MOV DPTR,#TAB MOVC A,@A+DPTR CLR P2.1 MOV P0,A LCALL DELAY LEDR3: SETB P2.1 MOV A,3BH MOV DPTR,#TAB MOVC A,@A+DPTR CLR P2.2 MOV P0,A LCALL DELAY LEDR4: SETB P2.2 MOV A,3AH MOV DPTR,#TAB MOVC A,@A+DPTR CLR P2.3 MOV P0,A LCALL DELAY RET ;/延时子程序/ DELAY: MOV R5,#2 D1: MOV R4,#250 D2: DJNZ R4,D2 DJNZ R5,D1 RET ;/闹铃检测程序/ RING: MOV A,23H ;比较时 CJNE A,31H,RETR MOV A,22H ;比较分 CJNE A,30H,RETR LCALL SING RETR: RET ;/定时器T1中断子程序/ INTT1: PUSH PSW ;状态字入栈保护 PUSH ACC ;累加器入栈保护 INC 50H ;中断服务程序,中断计数器加1 MOV TH1,#0D8H ;装入计数初值,12M晶振,形成10MS中断 MOV TL1,#0F0H POP ACC POP PSW RETI ;/响铃子程序/ SING: CJNE R1,#01H,SING1 ;判断是否已经闹铃过一次 LJMP RETS SING1: SETB ET1 MOV 50H,#00H ;中断计数器清0 MOV 51H,#00H ;音符指针 MOV 52H,#00H ;节拍码指针 MOV 53H,#03H ;设置闹钟不退出响铃次数 GETNOT: MOV A,51H MOV DPTR,#NOTE ;表头地址送DPTR MOVC A,@A+DPTR ;查表取音符码 JZ ENDP ;是00H,则结束 MOV R6,A ;存R6 INC 51H CJNE A,#0FFH,GETMET ;不为0FFH,转取节拍码 LJMP PAUSE ;转休止播放 LJMP GETNOT ;取音符码 GETMET: MOV A,52H MOV DPTR,#METRE ;取节拍码首地址 MOVC A,@A+DPTR ;取节拍代码送R7 MOV R7,A INC 52H PLAY: SETB TR1 ;启动计数 CPL P2.4 LCALL KEY JNZ RETS MOV A,R6 MOV R3,A ;音符码存R3 LCALL DELAY1 MOV A,R7 ;取节拍码放A与中断计数比较 CJNE A,50H,PLAY ;中断计数器(50H)=R7否,不等继续循环 MOV 50H,#00H ;等于,则取下一代码 LCALL DISPT CLR TR1 LJMP GETNOT RETS: SETB P2.4 ;置位蜂鸣器,否则可能产生啸叫 MOV R1,#01H ;表明播放过一次 CLR A ;清除A,防止进入按键处理子程序 LJMP RETR PAUSE: CLR TR1 ;休止100毫秒 MOV R2,#0DH DELAY2: MOV R3,#0FFH LCALL DELAY1 DJNZ R2,DELAY2 RET ENDP: SETB P2.4 MOV R2,#0C7H ;歌曲结束,延时1秒后继续 END1M: MOV R3,#00H LCALL DELAY1 DJNZ R2,END1M DJNZ 53H,SING RET DELAY1: NOP ;R3为01H时,DELAY延时为20uS DELAY3: MOV R4,#02H DELAY4: DJNZ R4,DELAY4 DJNZ R3,DELAY3 RET NOTE: DB 60H,60H,7FH,98H,7FH,60H,60H,7FH,60H DB 98H,7FH,60H,7FH,98H,60H,7FH,98H,50H METRE: DB 20H,20H,20H,20H,20H,20H,20H,20H,20H DB 20H,20H,20H,20H, 20H,20H,20H,20H,20H END 六. 总结与体会 本次课程设计对知识的要求较为综合,我们用到了单片机、数字电路、模拟电路、protel/proteuse、keil-c51等知识,而且在后来要求必须用汇编语言来编写程序。所以,才开始时,我们不知道从何下手。不过后来在老师的帮助下,以及自己不断的查找资料,和同学商量,终于开始有点头目了,慢慢的便进入了状态。 在将编写好的源程序输入电脑,编译后出现很多错误,这些错误有许多是平时的实验遇到过的,例如:输入的分号格式不正确, CJNE写成了CJNZ等等。通过这次课程设计,发现自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。 单片机理论的学习是为课程的设计作准备的,但有时学习的理论也解决不了实践中的问题。实践中获得的知识能让我对单片机的知识有更好的认识和理解。虽然这次的课程设计我参考了一些文献资料,在对程序的读写过程中我明白了许多。这次课程设计的最大收获是,只有把理论用到实践中我们才能真正掌握好所学知识。 七. Proteus仿真 目 录 第一章 总 论 1 1.1项目概况 1 1.2研究依据及范围 3 1.3主要技术经济指标 4 1.4研究结论及建议 4 第二章 项目建设的背景和必要性 6 2.1项目建设的背景 6 2.2项目建设的必要性 8 第三章 项目服务需求分析 11 第四章 项目选址与建设条件 13 4.1选址原则 13 4.2项目选址 13 4.3建设条件 14 4.4项目建设优势条件分析 15 第五章 建设方案 18 5.1建设规模与内容 18 5.2总体规划设计 19 5.3建筑方案 24 5.4结构方案 26 5.5给水工程 27 5.6排水工程 29 5.7电气设计 31 5.8暖通设计 34 5.9项目实施进度 35 第六章 节能措施 37 6.1 设计依据 37 6.2节能措施 37 第七章 环境影响分析 39 7.1 环境影响分析 39 7.2 环境保护措施及治理效果 40 第八章 消防与安全卫生 42 8.1 消防 42 8.2 劳动安全 43 8.3 卫生防护 44 第九章 组织机构与运作方式 45 9.1 组织机构 45 9.2组织管理 46 9.3劳动定员 46 第十章 投资估算 47 10.1编制依据 47 10.2 投资估算 47 10.3资金筹措 48 第十一章 经济效益评价 49 11.1 成本核算 49 11.2 利润估算 51 11.3经济风险分析 52 11.4财务评价结论 54 第十二章 结 论 55展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




片单机电子钟设计课程设计报告.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/2522802.html