《微机原理及应用》课程设计(实训)报告电子时钟_第1页
《微机原理及应用》课程设计(实训)报告电子时钟_第2页
《微机原理及应用》课程设计(实训)报告电子时钟_第3页
《微机原理及应用》课程设计(实训)报告电子时钟_第4页
《微机原理及应用》课程设计(实训)报告电子时钟_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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时时清零四 实习的心得与体会 为期一周的课程设计已然过去,我们带着好奇和激动的心情积极地投入到实习阶段,继而又怀揣着收获后满满的喜悦结束这次训练。 和理论学习不同的是,我们在这一周收获到了许多的实战经验,比如我们掌握了如何一步步排除程序中的隐藏错误,懂得不少子程序的实际功用虽然有过苦恼,有过烦躁,有过泄气,但是令人开心的是我们组的成员都通过自己不懈的努力成功地完成了任务。 这一周的课程设计,我们学会了不少的单片机实际应用知识,这将有助于我们今后的实际操作,也将为我们今后的工作积累不少的经验。 当然在这次课程设计中我们也学会了团队的力量,团队协作可能会让我们事半功倍,节约了很多时间和精力,很

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论