课程设计报告.docx

上传人:b****5 文档编号:30723189 上传时间:2023-08-19 格式:DOCX 页数:12 大小:107.25KB
下载 相关 举报
课程设计报告.docx_第1页
第1页 / 共12页
课程设计报告.docx_第2页
第2页 / 共12页
课程设计报告.docx_第3页
第3页 / 共12页
课程设计报告.docx_第4页
第4页 / 共12页
课程设计报告.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

课程设计报告.docx

《课程设计报告.docx》由会员分享,可在线阅读,更多相关《课程设计报告.docx(12页珍藏版)》请在冰豆网上搜索。

课程设计报告.docx

课程设计报告

浙江传媒学院

课程设计(实训)报告

 

学院__浙江传媒学院___专业电子科学与技术

班级_______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.1选题构思

电子时钟是如今非常常见与使用的事物,而用单片机实现电子钟功能可以涉及到很多方面。

所以本次实践周,我们设想是设计出一个电子时钟程序。

数字钟实现功能包括能够准确计时,调时,复位等。

2.2所应用到的程序介绍

ORG00H;起始地址00H

JMPMAIN;跳转到MAIN

ORG0BH;Timer0中断向量地址

JMPTIM0;跳转掉TIM0

;以上是主程序段,使能中断,装载计数初始值

MAIN:

MOVIE,#82H;使能Timer0中断

MOVTMOD,#01H;使用Timer0工作模式1下

MOVTH0,#0E0H;装载计数初始值,每4ms中断一次

MOVTL0,#0B6H

MOVR0,#00H;Timer0的中断计数器

MOV30H,#00H;秒的计数器

MOV31H,#00H;分的计数器

MOV32H,#00H;时的计数器

MOVR1,#00H;R1为6位七段数码管扫描计数器

SETBTR0;启动Timer0中断

LOOP:

JBP0.0,NOPRESS_2;如果"秒"按钮按下,继续执行,否则跳至

CALLFILLER;NOPRESS-2,检查"分"按钮

MOVA,2CH;消除抖动

ADDA,#01H;将"秒"载入ACC中

DAA;十进制调整

MOV30H,A;"秒"存回30H

CJNEA,#60H,NOPRESS_1;是否等于60秒,不是则跳至NOPRESS-1

MOV30H,#00H;是则"秒"清0

NOPRESS_1:

JNBP0.0,$;判断"秒"按钮是否放开

CALLFILLER;消除抖动

NOPRESS_2:

JBP0.1,NOPRESS_4;"分"按钮按下,继续执行,否则跳至NOPRESS-4,检查"时"按钮

CALLFILLER;消除抖动

MOVA,31H;将"分"载入ACC

ADDA,#01H;ACC加1

DAA;十进制调整

MOV31H,A;"分"存回31H

CJNEA,#60H,NOPRESS_3;是否等于60分,不是则跳至NPRESS-3

MOV31H,#00H;是则"分"清0

NOPRESS_3:

JNBP0.1,$;判断"分"按钮是否放开

CALLFILLER;消除抖动

NOPRESS_4:

JBP0.2,LOOP;"时"按钮若按下,继续执行,否则跳至LOOP

CALLFILLER;消除抖动

MOVA,32H;将"时"载入ACC

ADDA,#01H;ACC加1

DAA;十进制调整

MOV32H,A;"时"存回32H

CJNEA,#24H,NOPRESS_5;是否等于24,不是则跳至NOPRESS-5

MOV32H,#00H;是则"时"清0

NOPRESS_5:

JNBP0.2,$;判断"时"按钮是否放开

CALLFILLER;消除抖动

JMPLOOP;跳至LOOP

TIM0:

PUSHACC;ACC压栈

CJNER0,#100,SCAN;如果(R0)不等于250,即不到1秒,跳到SCAN

MOVA,30H;如果到1秒,将30H中的“秒”载

ADDA,#1;ACC加1

DAA;十进制调整

MOV30H,A;“秒

CJNEA,#60H,INC_SEC;如(R1)不等于60,说明不到1分钟,跳到INC_SEC

MOVA,31H;如果到1分钟,将31H中的“分

ADDA,#1;ACC加1

DAA;十进制调整

MOV31H,A;“时”存回AC

CJNEA,#60H,INC_MIN;如果(A)不等于24,说明不到24小时,跳到

;INC_HR

MOVA,32H;如果到1小时,将

ADDA,#1;ACC加1

DAA;十进制调整

MOV32H,A;“时”存回AC

CJNEA,#24H,INC_HR;如果(A)不等于24,说明不到24小时,跳到

;INC_HR

MOV30,#00H;如果到24小时,则"秒"、"分"、"时"、清0

MOV31,#00H;

MOV32,#00H;

INC_SEC:

JMPINC_TIM;跳到INC_TIM

INC_MIN:

MOV30H,#00H;"秒"清0

JMPINC_TIM;跳到INC_TIM

INC_HR:

MOV30H,#00H;"秒"清0

MOV31H,#00H;"分"清0

INC_TIM:

MOVR0,#00H;R0清0

SCAN:

CJNER1,#6,DISPLAY;如果扫描计数器(R1)=6,则跳到DISPLAY

MOVR1,#00H;如果(R1)=6,说明已经扫描完6位

JMPSCAN;跳到SCAN

DISPLAY:

CJNER1,#0,CHK_1;如果(R1)不等于0,跳到CHK_1,如果(R1)=0,选中的是最低位的数码管D1

MOVA,30H;将“秒”载入ACC

ANLA,#0FH;将ACC高位节清零,用作位选线地址

ADDA,#00H;将D1位选线地址1H加到ACC高位字节上

JMPRELOAD;跳到RELODE

CHK_1:

CJNER1,#1,CHK_2;如果(R1)不等于1,跳到CHK_2,如果(R1)等于1,选中的是七段数码管D2

MOVA,30H;将“秒”载入ACC

SWAPA;ACC的高低位字节交换

ANLA,#0FH;将ACC高位字节清零,用作位选线地址

ADDA,#10H;将D2位选线地址1H加到ACC的高位字节上

JMPRELOAD;跳到RELOAD

CHK_2:

CJNER1,#2,CHK_3;如果(R1)不等于2,跳到CHK_3,如果(R1)等于2,选中的是七段数码管D3

MOVA,31H;将分载入ACC

ANLA,#0FH;将ACC高位字节清零,用作位选线地址

ADDA,#20H;将D3位选线地址2H加到ACC的高位字节上

JMPRELOAD;跳到RELOAD

CHK_3:

CJNER1,#3,CHK_4;如果(R1)不等于3,跳到CHK_4,如果(R1)等于3,选中的是七段数码管D4

MOVA,31H;将分载入ACC

SWAPA;ACC的高低位字节变换

ANLA,#0FH;将ACC高位字节清零,用作位选线地址

ADDA,#30H;将D3位选线地址2H加到ACC的高位字节上

JMPRELOAD;跳到RELOAD

CHK_4:

CJNER1,#4,CHK_5;如果(R1)不等于4,跳到CHK_5,如果(R1)等于4,选中的是七段数码管D5

MOVA,32H;将分载入ACC

ANLA,#0FH;将ACC高位字节清零,用作位选线地址

ADDA,#40H;将D3位选线地址2H加到ACC的高位字节上

JMPRELOAD;跳到RELOAD

CHK_5:

CJNER1,#5,RELOAD;如果(R1)不等于5,跳到RELOAD,如果(R1)等于5,选中的是七段数码管D6

MOVA,32H;将分载入ACC

SWAPA;将ACC高位字节清零,用作位选线地址

ANLA,#0FH;将D3位选线地址2H加到ACC的高位字节上

ADDA,#50H;跳到RELOAD

RELOAD:

MOVP1,A;ACC数据从P1口送出显示

INCR0;4ms延时计数器加1

INCR1;扫描计数器R1加1

MOVTH0,#0E0H;装载计数初始值,4ms延时

MOVTL0,#0B6H;

POPACC;ACC弹栈

RETI;返回主程序

FILLER:

MOVR6,#60H;5ms延时消除抖动

D1:

MOVR7,#248;

DJNZR7,$;

DJNZR6,D1;

RET;

END

2.3成品功能

该作品通过设置中断初始时间和单片机的计数功能实现计时功能。

使用74138解码器与7447译码器实现实现数据显示与位选。

数码管为共阳。

P1.0~P1.3为显示数据线,P1.4~P1.6为位选输出。

晶振电路提供时钟脉冲。

2.4遇到的问题

问题一:

按键按下后会持续跳变。

解决方法:

在“秒”“时”“分”三个按钮的判断和操作程序段分别加入一段判断程序。

这样就消除了持续跳变。

问题二:

仿真时发现作品计时比实际时间慢

解决方法:

不断改变计数初始值,与实际时间相比较。

最终获得成功的成品。

 

(三)实习结果

 

3.1实验电路图

 

3.2实验流程图

 

四实习的心得与体会

为期一周的课程设计已然过去,我们带着好奇和激动的心情积极地投入到实

习阶段,继而又怀揣着收获后满满的喜悦结束这次训练。

和理论学习不同的是,我们在这一周收获到了许多的实战经验,比如我们掌握了如何一步步排除程序中的隐藏错误,懂得不少子程序的实际功用………虽然有过苦恼,有过烦躁,有过泄气,但是令人开心的是我们组的成员都通过自己不懈的努力成功地完成了任务。

这一周的课程设计,我们学会了不少的单片机实际应用知识,这将有助于我们今后的实际操作,也将为我们今后的工作积累不少的经验。

当然在这次课程设计中我们也学会了团队的力量,团队协作可能会让我们事半功倍,节约了很多时间和精力,很多同学都提前完成了任务。

这些都是一个学习的过程,我们在今后的学习和工作中都会遇到很多类似的困难,相信我们通过这次课程设计以及在这次课程设计中学到的东西,我们会更有信心去解决将来所要面对的难题。

 

五评阅意见

 

参考书目:

[1]蔡美琴等,《MCS-51系列单片机系统及其应用》,高等教育出版社,2010年

[2]彭勇,《单片机技术》,电子工业出版社,2009年

[3]梅丽凤,《单片机原理及应用》,清华大学出版社,2008年

[4]张文灼等,《单片机技术及应用》,化学工业出版社,2010年

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

当前位置:首页 > 求职职场 > 简历

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

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