《微机原理及应用》课程设计(实训)报告-电子时钟.doc

上传人:西安人 文档编号:5091724 上传时间:2020-02-01 格式:DOC 页数:12 大小:157.50KB
返回 下载 相关 举报
《微机原理及应用》课程设计(实训)报告-电子时钟.doc_第1页
第1页 / 共12页
《微机原理及应用》课程设计(实训)报告-电子时钟.doc_第2页
第2页 / 共12页
《微机原理及应用》课程设计(实训)报告-电子时钟.doc_第3页
第3页 / 共12页
《微机原理及应用》课程设计(实训)报告-电子时钟.doc_第4页
第4页 / 共12页
《微机原理及应用》课程设计(实训)报告-电子时钟.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《《微机原理及应用》课程设计(实训)报告-电子时钟.doc》由会员分享,可在线阅读,更多相关《《微机原理及应用》课程设计(实训)报告-电子时钟.doc(12页珍藏版)》请在三一文库上搜索。

1、浙江传媒学院课程设计(实训)报告学 院 _浙江传媒学院_专 业 电子科学与技术班 级 _2_ 学 号 _080706213_姓 名 _ _ _ 课 题 _电子时钟_指导教师 _ _ 报告成绩_日 期: 2011 年 4 月 17 日目录一 实习目的与要求2二 实习内容 2.1 选题构想 2 2.2 所应用到的程序介绍 3 2.3成品功能 7 2.4遇到的问题 7 三 实习结果 3.1 实验电路图8 3.2 实验流程图 9 四 实习的心得与体会 10五 评阅意见 10六 参考文献 10(一) 实习目的与要求微机原理及应用是一门实践性很强的课程,它能将硬件与软件紧密的联系在一起,因此每次课堂上的实

2、验部分是这门课程的重要组成部分,不可或缺。本课程设计教学根据课程的教学大纲的要求,安排了此次的制系统的设计课题,从而是学生能够更好的将课堂上学到的理论部分更好的应用到实际设计中来,并能提高学生分析和解决问题的能力。通过课程设计的教学,使学生巩固和深化已学的理论知识,加强学生分析问题、解决问题的方法,培养较强的动手能力和微机应用系统的设计和调试能力。(二) 实习内容2.1 选题构思电子时钟是如今非常常见与使用的事物,而用单片机实现电子钟功能可以涉及到很多方面。所以本次实践周,我们设想是设计出一个电子时钟程序。数字钟实现功能包括能够准确计时,调时,复位等。2.2 所应用到的程序介绍ORG 00H

3、;起始地址00H JMP MAIN ;跳转到MAIN ORG 0BH ;Timer 0中断向量地址 JMP TIM0 ;跳转掉TIM0 ;以上是主程序段,使能中断,装载计数初始值MAIN: MOV IE,#82H ;使能Timer 0中断 MOV TMOD,#01H ;使用Timer 0工作模式1下 MOV TH0,#0E0H ;装载计数初始值,每4ms中断一次 MOV TL0,#0B6H MOV R0,#00H ;Timer 0的中断计数器 MOV 30H,#00H ;秒的计数器 MOV 31H,#00H ;分的计数器 MOV 32H,#00H ;时的计数器 MOV R1,#00H ;R1为

4、6位七段数码管扫描计数器 SETB TR0 ;启动Timer 0中断LOOP: JB P0.0,NOPRESS_2 ;如果秒按钮按下,继续执行,否则跳至 CALL FILLER ;NOPRESS-2,检查分按钮 MOV A,2CH ;消除抖动 ADD A,#01H ;将秒载入ACC中 DA A ;十进制调整 MOV 30H,A ;秒存回30H CJNE A,#60H,NOPRESS_1 ;是否等于60秒,不是则跳至NOPRESS-1 MOV 30H,#00H ;是则秒清0NOPRESS_1: JNB P0.0,$ ;判断秒按钮是否放开 CALL FILLER ;消除抖动NOPRESS_2: J

5、B P0.1,NOPRESS_4 ;分按钮按下,继续执行,否则跳至NOPRESS-4,检查时按钮 CALL FILLER ;消除抖动 MOV A,31H ;将分载入ACC ADD A,#01H ;ACC加1 DA A ;十进制调整 MOV 31H,A ;分存回31H CJNE A,#60H,NOPRESS_3 ;是否等于60分,不是则跳至NPRESS-3 MOV 31H,#00H ;是则分清0NOPRESS_3: JNB P0.1,$ ;判断分按钮是否放开 CALL FILLER ;消除抖动NOPRESS_4: JB P0.2,LOOP ;时按钮若按下,继续执行,否则跳至LOOP CALL F

6、ILLER ;消除抖动 MOV A,32H ;将时载入ACC ADD A,#01H ;ACC加1 DA A ;十进制调整 MOV 32H,A ;时存回32H CJNE A,#24H,NOPRESS_5 ;是否等于24,不是则跳至NOPRESS-5 MOV 32H,#00H ;是则时清0NOPRESS_5: JNB P0.2,$ ;判断时按钮是否放开 CALL FILLER ;消除抖动 JMP LOOP ;跳至LOOPTIM0: PUSH ACC ;ACC压栈 CJNE R0,#100,SCAN ;如果(R0)不等于250,即不到1秒,跳到SCAN MOV A,30H ;如果到1秒,将30H中的

7、“秒”载 ADD A,#1 ;ACC加1 DA A ;十进制调整 MOV 30H,A ;“秒 CJNE A,#60H,INC_SEC ;如(R1)不等于60,说明不到1分钟,跳到INC_SEC MOV A,31H ;如果到1分钟,将31H中的“分 ADD A,#1 ;ACC加1 DA A ;十进制调整 MOV 31H,A ;“时”存回AC CJNE A,#60H,INC_MIN ;如果(A)不等于24,说明不到24小时,跳到 ;INC_HR MOV A,32H ;如果到1小时,将 ADD A,#1 ;ACC加1 DA A ;十进制调整 MOV 32H,A ;“时”存回AC CJNE A,#24

8、H,INC_HR ;如果(A)不等于24,说明不到24小时,跳到 ;INC_HR MOV 30,#00H ;如果到24小时,则秒、分、时、清0 MOV 31,#00H ; MOV 32,#00H ;INC_SEC: JMP INC_TIM ;跳到INC_TIMINC_MIN: MOV 30H,#00H ;秒清0 JMP INC_TIM ;跳到INC_TIMINC_HR: MOV 30H,#00H ;秒清0 MOV 31H,#00H ;分清0INC_TIM: MOV R0,#00H ;R0清0SCAN: CJNE R1,#6,DISPLAY ;如果扫描计数器(R1)=6,则跳到DISPLAY M

9、OV R1,#00H ;如果(R1)=6,说明已经扫描完6位 JMP SCAN ;跳到SCANDISPLAY: CJNE R1,#0,CHK_1 ;如果(R1)不等于0,跳到CHK_1,如果(R1)=0,选中的是最低位的数码管D1 MOV A,30H ;将“秒”载入ACC ANL A,#0FH ;将ACC高位节清零,用作位选线地址 ADD A,#00H ;将D1位选线地址1H加到ACC高位字节上 JMP RELOAD ;跳到RELODECHK_1: CJNE R1,#1,CHK_2 ;如果(R1)不等于1,跳到CHK_2,如果(R1)等于1,选中的是七段数码管D2 MOV A,30H ;将“秒

10、”载入ACC SWAP A ;ACC的高低位字节交换 ANL A,#0FH ;将ACC高位字节清零,用作位选线地址 ADD A,#10H ;将D2位选线地址1H加到ACC的高位字节上 JMP RELOAD ;跳到RELOADCHK_2: CJNE R1,#2,CHK_3 ;如果(R1)不等于2,跳到CHK_3 ,如果(R1)等于2,选中的是七段数码管D3 MOV A,31H ;将分载入ACC ANL A,#0FH ;将ACC高位字节清零,用作位选线地址 ADD A,#20H ;将D3位选线地址2H加到ACC的高位字节上 JMP RELOAD ;跳到RELOADCHK_3: CJNE R1,#3

11、,CHK_4 ;如果(R1)不等于3,跳到CHK_4 ,如果(R1)等于3,选中的是七段数码管D4 MOV A,31H ;将分载入ACC SWAP A ;ACC的高低位字节变换 ANL A,#0FH ;将ACC高位字节清零,用作位选线地址 ADD A,#30H ;将D3位选线地址2H加到ACC的高位字节上 JMP RELOAD ;跳到RELOADCHK_4: CJNE R1,#4,CHK_5 ;如果(R1)不等于4,跳到CHK_5 ,如果(R1)等于4,选中的是七段数码管D5 MOV A,32H ;将分载入ACC ANL A,#0FH ;将ACC高位字节清零,用作位选线地址 ADD A,#40

12、H ;将D3位选线地址2H加到ACC的高位字节上 JMP RELOAD ;跳到RELOADCHK_5: CJNE R1,#5,RELOAD ;如果(R1)不等于5,跳到RELOAD,如果(R1)等于5,选中的是七段数码管D6 MOV A,32H ;将分载入ACC SWAP A ;将ACC高位字节清零,用作位选线地址 ANL A,#0FH ;将D3位选线地址2H加到ACC的高位字节上 ADD A,#50H ;跳到RELOADRELOAD: MOV P1,A ;ACC数据从P1口送出显示 INC R0 ;4ms延时计数器加1 INC R1 ;扫描计数器R1加1 MOV TH0,#0E0H ;装载计

13、数初始值,4ms延时 MOV TL0,#0B6H ; POP ACC ;ACC弹栈 RETI ;返回主程序FILLER: MOV R6,#60H ;5ms延时消除抖动D1: MOV R7,#248 ; DJNZ R7,$ ; DJNZ R6,D1 ; RET ;END2.3成品功能该作品通过设置中断初始时间和单片机的计数功能实现计时功能。使用74138解码器与7447译码器实现实现数据显示与位选。数码管为共阳。P1.0P1.3为显示数据线,P1.4P1.6为位选输出。晶振电路提供时钟脉冲。2.4遇到的问题问题一:按键按下后会持续跳变。解决方法:在“秒”“时”“分”三个按钮的判断和操作程序段分别

14、加入一段判断程序。这样就消除了持续跳变。问题二:仿真时发现作品计时比实际时间慢解决方法:不断改变计数初始值,与实际时间相比较。最终获得成功的成品。(三) 实习结果3.1 实验电路图3.2 实验流程图开始“秒”是否按下秒加1“分”是否按下N分加1“时”是否按下N时加1到1秒N将显示数据与位选数据送到P1口输出到60秒N秒清零分加1到60分NN分清零时加1到24时时清零四 实习的心得与体会 为期一周的课程设计已然过去,我们带着好奇和激动的心情积极地投入到实习阶段,继而又怀揣着收获后满满的喜悦结束这次训练。 和理论学习不同的是,我们在这一周收获到了许多的实战经验,比如我们掌握了如何一步步排除程序中的

15、隐藏错误,懂得不少子程序的实际功用虽然有过苦恼,有过烦躁,有过泄气,但是令人开心的是我们组的成员都通过自己不懈的努力成功地完成了任务。 这一周的课程设计,我们学会了不少的单片机实际应用知识,这将有助于我们今后的实际操作,也将为我们今后的工作积累不少的经验。 当然在这次课程设计中我们也学会了团队的力量,团队协作可能会让我们事半功倍,节约了很多时间和精力,很多同学都提前完成了任务。 这些都是一个学习的过程,我们在今后的学习和工作中都会遇到很多类似的困难,相信我们通过这次课程设计以及在这次课程设计中学到的东西,我们会更有信心去解决将来所要面对的难题。 五 评阅意见参考书目:1 蔡美琴等,MCS-51系列单片机系统及其应用,高等教育出版社,2010年2 彭勇,单片机技术,电子工业出版社,2009年3 梅丽凤,单片机原理及应用,清华大学出版社,2008年4 张文灼等,单片机技术及应用,化学工业出版社,2010年11

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 绩效管理


经营许可证编号:宁ICP备18001539号-1