工程设计 04103043吴江平.docx

上传人:b****8 文档编号:23765029 上传时间:2023-05-20 格式:DOCX 页数:12 大小:70.01KB
下载 相关 举报
工程设计 04103043吴江平.docx_第1页
第1页 / 共12页
工程设计 04103043吴江平.docx_第2页
第2页 / 共12页
工程设计 04103043吴江平.docx_第3页
第3页 / 共12页
工程设计 04103043吴江平.docx_第4页
第4页 / 共12页
工程设计 04103043吴江平.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

工程设计 04103043吴江平.docx

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

工程设计 04103043吴江平.docx

工程设计04103043吴江平

 

工程设计报告

 

学院:

机电院

班级:

041031

学号:

04103043

姓名:

吴江平

教师:

千博

 

一、设计简介

随着现代生活的推进,电子时间在人们的生活中已经普及,此电子时钟是一款基于单片机AT98C51的计时工具,它的工作原理是利用程序使定时器每50ms产生一次时间中断,以20次时间中断定义一秒,再利用程序达到每六十秒,秒钟清零,分钟进一,每60分钟,分钟清零,时钟进一,每24小时,时钟清零,并使用八段LED显示管来实现时、分、秒的显示。

 

二、电路原理图

 

三、系统功能描述

这是一款基于单片机AT89C51的电子时钟,是通过定时中断来实现计时的。

该电子时钟共有五个按钮,分别为复位电路按钮,时、分、秒控制按钮以及声音控制按钮。

复位电路按钮用于对系统进行复位操作;时、分、秒控制按钮用于对时钟、分钟及秒钟进行调整操作,每按一次,则相应的时间钟数加1;声音控制按钮是用于控制时间控制按钮声音及整点报时声音的开关。

此电子时钟操作简易,能够方便快捷地对时、分秒、以及声音进行控制,并能准确地显示时间,是一款简单实用的电子时钟。

四、程序框图

五、程序清单

HOUREQU30H

MINUTEEQU31H

SECONDEQU32H

T_SECEQU33H

SD_CONBITP1.6

H_CONBITP1.4;数字钟小时控制位

M_CONBITP1.2;数字钟分钟控制位

S_CONBITP1.0;数字钟秒控制位

ORG00H

SJMPMAIN

ORG0BH

LJMPINT_T0

MAIN:

MOVDPTR,#TABLE

MOVHOUR,#0

MOVMINUTE,#0

MOVSECOND,#0

CLRP2.6

LCALLSHOW;检视LED

MOVT_SEC,#0

MOVTMOD,#01H

MOVTH0,#3CH;定时50毫秒

MOVTL0,#80H

MOVIE,#82H

SETBTR0

MOVR4,#0;初始化

MAIN_C:

LCALLDISPLAY

LCALLKEY

LCALLKEY_S

SJMPMAIN_C

****************************************************

;声音开关

KEY_S:

JNBSD_CON,SOUND_C

RET

SOUND_C:

MOVA,R4

CPLA

MOVR4,A

SOUND_C1:

JBSD_CON,KEY_S

LCALLDISPLAY

SJMPSOUND_C1

****************************************************

;判断是否有控制键按下,是哪一个键按下

KEY:

JNBS_CON,KEY_SEC

JNBM_CON,KEY_MIN

JNBH_CON,KEY_HOU

RET

KEY_SEC:

LCALLDELAY_S;去抖动

JBS_CON,KEY

INCSECOND;秒值加1

LCALLSOUND

MOVA,SECOND

CJNEA,#60,W_SEC;判断是否加到60秒

MOVSECOND,#0

LJMPKEY_MINU

KEY_MIN:

LCALLDELAY_S

JBM_CON,KEY

KEY_MINU:

INCMINUTE;分钟值加1

LCALLSOUND

MOVA,MINUTE

CJNEA,#60,W_MIN;判断是否加到60分

MOVMINUTE,#0

LJMPKEY_HOUR

KEY_HOU:

LCALLDELAY_S

JBH_CON,KEY

KEY_HOUR:

INCHOUR;小时值加1

LCALLSOUND

MOVA,HOUR

CJNEA,#24,W_HOU;判断是否加到24小时

MOVHOUR,#0

MOVMINUTE,#0

MOVSECOND,#0

LJMPKEY

****************************************************

;等待按键抬起

W_SEC:

JBS_CON,KEY

LCALLDISPLAY

SJMPW_SEC

W_MIN:

JBM_CON,KEY

LCALLDISPLAY

SJMPW_MIN

W_HOU:

JBH_CON,KEY

LCALLDISPLAY

SJMPW_HOU

****************************************************

;检视八段LED显示

SHOW:

CLRP3.7

MOVP0,#7FH

MOVR5,#125

DELAY_7:

LCALLDELAY_S

DJNZR5,DELAY_7

SETBP3.7

CLRP3.6

MOVR5,#100

DELAY_6:

LCALLDELAY_S

DJNZR5,DELAY_6

SETBP3.6

CLRP3.5

MOVR5,#100

DELAY_5:

LCALLDELAY_S

DJNZR5,DELAY_5

SETBP3.5

CLRP3.4

MOVR5,#100

DELAY_4:

LCALLDELAY_S

DJNZR5,DELAY_4

SETBP3.4

CLRP3.3

MOVR5,#100

DELAY_3:

LCALLDELAY_S

DJNZR5,DELAY_3

SETBP3.3

CLRP3.2

MOVR5,#100

DELAY_2:

LCALLDELAY_S

DJNZR5,DELAY_2

SETBP3.2

CLRP3.1

MOVR5,#100

DELAY_1:

LCALLDELAY_S

DJNZR5,DELAY_1

SETBP3.1

CLRP3.0

MOVR5,#100

DELAY_0:

LCALLDELAY_S

DJNZR5,DELAY_0

SETBP3.0

***********************************************

;定时器中断服务程序,对秒,分钟和小时的计数

INT_T0:

MOVTH0,#3CH

MOVTL0,#80H

INCT_SEC

MOVA,T_SEC

CJNEA,#20,T0_RET;计时1秒

INCSECOND

MOVT_SEC,#0

MOVA,SECOND

CJNEA,#60,T0_RET

INCMINUTE

MOVSECOND,#0

MOVA,MINUTE

CJNEA,#60,T0_RET

INCHOUR

LCALLSOUND

MOVMINUTE,#0

MOVA,HOUR

CJNEA,#24,T0_RET

MOVHOUR,#0

MOVMINUTE,#0

MOVSECOND,#0

MOVT_SEC,#0

T0_RET:

RETI

******************************************

;显示控制子程序

DISPLAY:

MOVA,SECOND;显示秒

MOVB,#10

DIVAB

CLRP3.6

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY_S

SETBP3.6

MOVA,B

CLRP3.7

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY_S

SETBP3.7

CLRP3.5

MOVP0,#40H;显示分隔符

LCALLDELAY_S

SETBP3.5

MOVA,MINUTE;显示分钟

MOVB,#10

DIVAB

CLRP3.3

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY_S

SETBP3.3

MOVA,B

CLRP3.4

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY_S

SETBP3.4

CLRP3.2

MOVP0,#40H;显示分隔符

LCALLDELAY_S

SETBP3.2

MOVA,HOUR;显示小时

MOVB,#10

DIVAB

CLRP3.0

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY_S

SETBP3.0

MOVA,B

CLRP3.1

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY_S

SETBP3.1

RET

******************************************

;延时,用于去抖动及检查LED显示

DELAY_S:

MOVR6,#10

DEL_S1:

MOVR7,#250

DJNZR7,$

DJNZR6,DEL_S1

RET

******************************************

;声音

SOUND:

CJNER4,#0,SOUND_OFF

SETBP2.6

MOVR6,#50

DEL_L1:

MOVR7,#250

DJNZR7,$

DJNZR6,DEL_L1

CLRP2.6

SOUND_OFF:

RET

TABLE:

DB3FH,06H,5BH,4FH,66H

DB6DH,7DH,07H,7FH,6FH

END

六、收获及体会

单片机是我所学专业的主要课程之一,因此我认为单片机课程设计是十分必要而且十分重要的。

尽管刚刚拿到课程设计题目时有点迷惘,不知道如何着手,但通过上网和图书馆查阅相关资料,自己认真钻研以及虚心询问同学,终于解决了一个又一个的困难和障碍,成功完成了任务。

通过本次的工程课程设计,不仅大大地丰富了我的理论知识,而且在实践过程中更令我学会了坚持、耐心和努力。

此次工程课程设计需要运用到许多之前所学过的知识,令我认识到自己以前学习的一些不足之处,例如对以前所学知识的理解不够深刻,掌握得不够牢固,运用不够灵活。

这让我懂得了认真学习的重要性,以及要孜孜不倦地钻研所学过的知识,做得融会贯通,不能一览而过,不求甚解。

在边学习边动手的过程中,我对电子时钟的构造以及原理有了进一步的了解,同时也加深和巩固了我对单片机汇编语言的认识。

除此之外,由于是第一次做单片机,因此在此次工程设计的过程中,无论是电路绘制还是汇编语言编写都难免遇到了不少困难和障碍,例如汇编语言编写出错、电路元件无从入手等。

在面对困难和障碍时,我庆幸自己没有退缩和逃避,而是通过各种方法,迎难而上,以坚持、耐心和努力勇敢无畏地面对困难,克服困难,解决困难。

让我发现问题、分析问题、解决问题以及动手实践的能力都有了很大的提高,并了解到理论知识与实践相结合的重要意义。

从这次的工程设计中,我们真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的练习的过程中才能提高。

本次课程设计尽管时间不长,但从中所获,将令我受益终生。

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

当前位置:首页 > 经管营销 > 人力资源管理

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

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