单片机课程设计报告.docx

上传人:b****0 文档编号:9942015 上传时间:2023-05-22 格式:DOCX 页数:13 大小:98.83KB
下载 相关 举报
单片机课程设计报告.docx_第1页
第1页 / 共13页
单片机课程设计报告.docx_第2页
第2页 / 共13页
单片机课程设计报告.docx_第3页
第3页 / 共13页
单片机课程设计报告.docx_第4页
第4页 / 共13页
单片机课程设计报告.docx_第5页
第5页 / 共13页
单片机课程设计报告.docx_第6页
第6页 / 共13页
单片机课程设计报告.docx_第7页
第7页 / 共13页
单片机课程设计报告.docx_第8页
第8页 / 共13页
单片机课程设计报告.docx_第9页
第9页 / 共13页
单片机课程设计报告.docx_第10页
第10页 / 共13页
单片机课程设计报告.docx_第11页
第11页 / 共13页
单片机课程设计报告.docx_第12页
第12页 / 共13页
单片机课程设计报告.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机课程设计报告.docx

《单片机课程设计报告.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告.docx(13页珍藏版)》请在冰点文库上搜索。

单片机课程设计报告.docx

单片机课程设计报告

单片机原理及系统课程设计

评语:

 

考勤(10)

守纪(10)

过程(40)

设计报告(30)

答辩(10)

总成绩(100)

 

专业:

电气工程及其自动化

班级:

电气1004班

姓名:

***

学号:

***

指导教师:

***

兰州交通大学自动化与电气工程学院

2013年3月7日

基于单片机的电子钟设计

摘要

电子钟是采用数字电路实现对“时”、“分”、“秒”进行数字显示的计时装置。

由于单片机内部具有两个定时器/计数器,所以在这次设计中,我通过对单片机进行编程来实现软件定时,同时采用LED数码管显示时、分、秒,以24小时计时方式,根据数码管动态显示原理来进行显示。

在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。

关键词:

电子钟;单片机;LED数码管

Abstract

ElectronicClockisadigitalcircuitimplementationofthe"hours","minutes"and"seconds"digitaldisplaydevice.DuetotheSingleChipMicrocomputerinternalhastwoTimer/Counter,inthisdesign,IthroughtheSCMforprogrammingtorealizethesoftwaretiming,atthesametime,IuseLEDdigitaldisplay,seconds,to24-hourtimemode,accordingtodigitalcontroltheorytodynamicdisplaytodisplay.Inthisdesign,thecircuithasthedisplaytimeofthefunction,youcanalsorealizetheadjustmentoftime.

Keywords:

ElectronicClock,MCU,LED

 

1引言

1.1设计目的

本课程设计是在学习了先修课程《单片机原理及应用系统设计》之后,为了进一步加深对所学知识的理解,培养对所学知识的实际应用能力而开设的综合设计训练环节。

此次课程设计重点强调实际应用技能的训练,包括单片机系统设计的软件和硬件两部分。

通过单片机系统设计的实际应用,旨在掌握单片机应用系统各主要环节的设计、调试方法,初步掌握并具备应用单片机进行设备技术改造和产品开发的能力,提高动手能力和分析问题、解决问题的能力。

1.2设计要求

根据所学《单片机原理及应用系统设计》的基础理论知识,运用MCS-51单片机完成一个电子钟的设计。

要求通过软件实现时间的控制,合理选择显示元件显示时间,并设计外围电路实现时间的调整。

1.3设计方法

本设计是利用AT89C51单片机内部的定时器/计数器中断系统来定时产生单位时间并通过软件控制实现24小时的时间变化,经LED数码管显示,可通过行列键盘设置时间。

2设计方案及原理

2.1设计方案

利用单片机内部的定时器/计数器工作于定时方式,对机器周期定时形成基准时间,然后在中断服务程序中用软件计数的方法对基准时间计数形成秒,秒计60次形成分,分计60次形成小时,小时计24次则计满一天。

另外,设计了简单的按键,可以通过按键实现时、分的调整。

在主程序中对定时器/计数器初始化、调用显示子程序和键盘设置子程序。

LED数码管显示采用软件译码、动态显示方式。

系统组成框图如图2.1所示。

图2.1系统组成框图

2.2设计原理

由于定时器/计数器T0工作于方式1时对12MHz的系统时钟进行定时最大定时时间约65.536ms,因此可以通过对50ms(初值为3CB0H)进行20次计数循环来达到1s。

设计中用片内RAM的7BH单元对50ms计数,计20次使秒计数器78H单元加1,秒计数器加到60则分计数器79H单元加1,分计数器加到60则时计数器7AH单元加1,时计数器加到24则时计数器清0。

然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。

显示格式为小时十位、小时个位——分十位、分个位——秒十位、秒个位。

在处理过程中加上了按键判断程序,能对按键处理。

3硬件设计

选用单片机P0口作段控,P2口作位控,P1.0~P1.2接按键行列键盘。

用Proteus软件,根据要求画出电子钟的原理图如图3.1所示。

图3.1硬件连接图

4软件设计

电子钟的软件系统由主程序和子程序两部分组成,具体的汇编语言源程序详见附录。

4.1主程序

主程序首先对显示单元和定时器/计数器进行初始化,然后重复调用LED数码管显示模块和按键处理模块子程序。

当有键按下时,则转入相应的功能程序。

主程序流程图如图4.1所示。

图4.1主程序流程图

4.2数码管显示模块

本系统共用8个数码管,从右到左依次显示秒个位、秒十位、横线、分个位、分十位、横线、时个位和时十位。

采用软件译码动态显示。

4.3按键处理模块

按键处理设置为:

如没有按键,则时钟正常走时。

当按下K0键时,进入调时状态,时钟停止走动;按K1、K2键可进行加1或减1操作;继续按K0键可进行分的调整;最后按K0键将退出调整状态,时钟开始计时运行。

4.4定时器/计数器T0中断服务程序

定时器T0工作于方式1定时,定时时间50ms。

在中断服务程序中用一个计数器对50ms计数,计20次则对秒单元加1,秒单元加到60则对分单元加1,同时秒单元清0;分单元加到60则对时单元加1,同时分单元清0;时单元加到24则对时单元清0,标志一天时间计满。

把各单元计数的值放到存储单元的指定位置。

定时器T0中断服务程序流程图如图4.2所示。

图4.2定时器/计数器T0中断服务程序流程图

5系统仿真及实际调试

根据设计利用Proteus仿真软件进行仿真得到结果如图5.1所示。

图5.1仿真图

6总结

这次单片机课程设计历时两个多星期,通过对所学单片机相关知识的复习之后,我完成了关于电子钟的设计。

在设计中,我主要运用了单片机的定时/计数功能以及键盘显示功能。

宏观上,电路结构比较简单,与我们所学知识接近。

但是,在软件的设计方面,由于对一些知识点理解不透,以及没有很好的编程能力,在设计过程中也遇到了较多的困难,通过查阅相关资料反复修改尝试,并积极地向指导老师请教,最终完成了仿真及整个设计。

总之,我觉得这次单片机课程设计是有意义的。

通过这次课程设计,我学会了运用所学的专业基础知识去分析并解决一个实际问题,不仅巩固了所学理论知识,而且能够把理论知识转化为实际应用,培养了我运用所学知识解决实际问题的能力。

此外,还熟悉了对KeilC及Proteus两个软件的运用。

在以后的学习中,我们要注重理论与实践相结合,达到学以致用的目的。

参考文献

[1]王思明.单片机原理及应用系统设计[M].北京:

科学出版社,2012:

139-168.

[2]李华.单片机原理及应用[M].兰州:

兰州大学出版社,2001:

256-270.

[3]薛均义.单片机微型计算机及其应用[M].西安:

西安交通大学出版社,1997:

214-270.

附录

汇编语言源程序如下:

ORG0000H;主程序

LJMPSTART

ORG000BH;定时器/计数器T0中断程序入口

LJMPINTT0

START:

MOVR0,#70H

MOVR7,#0CH

INIT:

MOV@R0,#00H;显示单元清零

INCR0

DJNZR7,INIT

MOV72H,#10

MOV75H,#10

MOVTMOD,#01H;定时器T0工作在方式1

MOVTL0,#0B0H;对定时器T0赋初值,定时时间为50ms

MOVTH0,#03CH

SETBEA;开总中断

SETBET0;开定时器T0中断

SETBTR0;启动定时器T0

START1:

LCALLSCAN;调用数码管显示子程序

LCALLKEYSCAN;调用调时按键处理子程序

SJMPSTART1

DL1MS:

MOVR6,#14H;延时1MS子程序

DL1:

MOVR7,#19H

DL2:

DJNZR7,DL2

DJNZR6,DL1

RET

DL20MS:

ACALLSCAN;延时20MS子程序

ACALLSCAN

ACALLSCAN

RET

SCAN:

MOVA,78H;数码管显示子程序

MOVB,#0AH

DIVAB

MOV71H,A;秒十位存入显示缓冲区相应位置

MOV70H,B;秒个位存入显示缓冲区相应位置

MOVA,79H

MOVB,#0AH

DIVAB

MOV74H,A;分十位存入显示缓冲区相应位置

MOV73H,B;分个位存入显示缓冲区相应位置

MOVA,7AH

MOVB,#0AH

DIVAB

MOV77H,A;时十位存入显示缓冲区相应位置

MOV76H,B;时个位存入显示缓冲区相应位置

MOVR1,#70H;循环扫描显示

MOVR5,#80H

MOVR3,#08H

SCAN1:

MOVA,R5

MOVP2,A;位控

MOVA,@R1

MOVDPTR,#TAB

MOVCA,@A+DPTR;查表

MOVP0,A;段控

MOVA,R5

LCALLDL1MS

INCR1

MOVA,R5

RRA

MOVR5,A

DJNZR3,SCAN1

MOVP2,#00H

MOVP0,#0FFH

RET

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH

;"0~9"及"-"的共阳极字形代码

INTT0:

PUSHACC;定时器/计数器T0中断服务程序

PUSHPSW;现场保护

CLRET0;关闭定时器T0中断

CLRTR0;关闭定时器T0

MOVTL0,#0B0H;重置初值

MOVTH0,#03CH

SETBTR0;启动定时器T0

INC7BH

MOVA,7BH

CJNEA,#14H,OUTT0;50ms计数器不等于20则返回继续定时

MOV7BH,#00;1s时间到则把50ms计数器清零

INC78H;秒单元加1

MOVA,78H;秒写入秒个位和秒十位

CJNEA,#3CH,OUTT0;秒单元不等于60时跳转

MOV78H,#00;秒单元等于60时,秒单元清零

INC79H;分单元加1

MOVA,79H;分写入分个位和分十位

CJNEA,#3CH,OUTT0;分单元不等于60时跳转

MOV79H,#00;分单元等于60时,分单元清零

INC7AH;时单元加1

MOVA,7AH;时写入时个位和时十位

CJNEA,#18H,OUTT0;时单元不等于24时跳转

MOV7AH,#00;时单元等于24时时单元清零

OUTT0:

SETBET0;开定时器T0中断

POPPSW;恢复现场

POPACC

RETI

KEYSCAN:

CLREA;调时按键处理子程序

JNBP1.0,KEYSCAN0;P1^0=0时,跳到按下K0键处理子程序

JNBP1.1,KEYSCAN1;P1^1=0时,跳到按下K1键处理子程序

JNBP1.2,KEYSCAN2;P1^2=0时,跳到按下K2键处理子程序

KEYOUT:

SETBEA;开总中断

RET

KEYSCAN0:

LCALLDL20MS;按K0键处理子程序

JBP1.0,KEYOUT

WAIT0:

JNBP1.0,WAIT0;等待键释放

INC7CH;按K0次数加1

MOVA,7CH

CLRET0;关T0中断

CLRTR0;关闭T0

CJNEA,#03H,KEYOUT;K0按键三次恢复走时

MOV7CH,#00;清零

SETBET0

SETBTR0

SJMPKEYOUT

KEYSCAN1:

LCALLDL20MS;按K1键处理子程序

JBP1.1,KEYOUT

WAIT1:

JNBP1.1,WAIT1;等待键释放

MOVA,7CH

CJNEA,#02H,KSCAN11

INC79H;分加1

MOVA,79H

CJNEA,#3CH,KEYOUT

MOV79H,#00;分等于60分单元清零

SJMPKEYOUT

KSCAN11:

INC7AH;时加1

MOVA,7AH

CJNEA,#18H,KEYOUT

MOV7AH,#00;时等于24时单元清零

SJMPKEYOUT

KEYSCAN2:

LCALLDL20MS;按K2键处理子程序

JBP1.2,KEYOUT

WAIT2:

JNBP1.2,WAIT2;等待键释放

MOVA,7CH

CJNEA,#02H,KSCAN21

DEC79H;分减1

MOVA,79H

CJNEA,#0FFH,KEYOUT

MOV79H,#3BH

SJMPKEYOUT

KSCAN21:

DEC7AH;时减1

MOVA,7AH

CJNEA,#0FFH,KEYOUT

MOV7AH,#17H

SJMPKEYOUT

END

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2