单片机课程设计数字电子钟.docx

上传人:b****5 文档编号:7450609 上传时间:2023-01-24 格式:DOCX 页数:22 大小:696.11KB
下载 相关 举报
单片机课程设计数字电子钟.docx_第1页
第1页 / 共22页
单片机课程设计数字电子钟.docx_第2页
第2页 / 共22页
单片机课程设计数字电子钟.docx_第3页
第3页 / 共22页
单片机课程设计数字电子钟.docx_第4页
第4页 / 共22页
单片机课程设计数字电子钟.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

单片机课程设计数字电子钟.docx

《单片机课程设计数字电子钟.docx》由会员分享,可在线阅读,更多相关《单片机课程设计数字电子钟.docx(22页珍藏版)》请在冰豆网上搜索。

单片机课程设计数字电子钟.docx

单片机课程设计数字电子钟

《单片机技术》课程设计说明书

数字电子钟

院、部:

电气与信息工程学院

学生姓名:

卢卓然

指导教师:

凌云职称讲师

专业:

电子信息工程

班级:

电子1201

完成时间:

2014.12

 

摘要

电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。

所以设计一个简易数字电子钟很有必要。

本电子钟采用ATMEL公司的AT89S52单片机为核心,使用12MHz晶振与单片机AT89S52相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。

该电子钟设有四个按键K1、K2、K3和K4键,进行相应的操作就可实现校时、定时、复位功能。

具有时间显示、整点报时、校正等功能。

走时准确、显示直观、运行稳定等优点。

随着人们生活环境的不断改善和美化,在许多场合可以看到数字电子钟,所以其极具有推广价值。

学习了单片机技术以后,利用扩展单片机并行I/O口技术,连接LED数码管显示,接按钮控制,利用单片机芯片编程实现电子钟和秒表功能。

关键词:

电子钟;AT89S52;硬件设计;软件设计

目录

1设计要求和方案选择……………………………………………………………1

1.1设计课题任务……………………………………………………………1

1.2功能要求说明……………………………………………………………1

1.3方案选择…………………………………………………………………2

2设计课题硬件系统的设计………………………………………………………3

2.1设计课题硬件系统各模块功能简要介绍………………………………3

2.2设计课题电路原理图和PCB图…………………………………………3

2.3设计课题元器件清单……………………………………………………4

3设计课题软件系统的设计………………………………………………………6

3.1设计课题使用单片机资源的情况………………………………………6

3.2设计课题软件系统各模块功能简要介绍………………………………6

3.3设计课题软件系统程序流程框图………………………………………6

4设计结论、仿真结果、误差分析、教学建议………………………………10

4.1设计课题的设计结论及使用说明………………………………………10

4.2设计课题的仿真结果……………………………………………………10

4.3设计课题的误差分析……………………………………………………11

4.4设计体会…………………………………………………………………11

4.5教学建议…………………………………………………………………11

结束语………………………………………………………………………………12

致谢…………………………………………………………………………………14

参考文献……………………………………………………………………………15

附录…………………………………………………………………………………15

 

1设计要求和方案选择

1.1设计课题任务

设计一个具有特定功能的电子钟。

具有时间显示、报时等功能。

并有时间设定,时间调整功能。

1.2功能要求说明

设计一个具有特定功能的电子钟。

该电子钟上电或按键复位后能自动显示系统提示符“P.”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。

1.3方案选择

针对要实现的功能,拟采用AT89S52单片机进行设计。

在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。

程序可分为闹钟的声音程序、显示程序、闹钟显示程序、调时显示、定时程序。

运用这种方法,关键在于各模块的兼容和配合。

本电子钟设计时间分配比较均匀。

首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。

这是前期准备工作。

第二部分是硬件部分:

依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。

第三部分是软件部分:

先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。

第四部分是软件画图部分:

设计好电路后进行画图,包括电路图和仿真图的绘制。

第五部分是软件仿真部分:

软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。

第六部分是硬件实现部分:

连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。

最后进行功能扩展,本设计加进了日期显示与调整功能。

这部分主要介绍工作安排和整体设计的思想。

工作过程规划如下:

图1整体设计思路

 

2设计课题硬件系统的设计

2.1设计课题硬件系统各模块功能简要介绍

本设计的硬件系统主要采用以下基本模块来实现,单片机最小系统模块,输入模块、输出模块、电源模块。

(1)单片机最小系统模块:

包括MCS-51系列单片机;复位电路;晶振电路。

单片机系统复位由复位电路完成,单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端位位引脚XTAL2。

通过这两个引脚在芯片外并接石英晶体振荡器和两只电容。

这样就构成一个稳定的自激振荡器。

(2)输入模块:

本模块共用到了5个按键,1个复位键,单片机接通电源后,利用按键复位完成复位操作。

,K1键控制电子钟的启动\调整状态,做正常走时状态时K2为电子钟时调整键,K3为电子钟分调整键,K4键为电子钟秒调整键,当作为闹钟调整状态时K4键为闹钟启动/关闭,K2为闹钟时调整键,K3为闹钟分调整键。

K1、K2、K3,K4任一键都独自连一个I/O(P1.0、P1.1、P1.2)口线,说明它们可以独立实现相应的电子钟功能。

(3)输出模块:

本次设计显示为8位字符,采用两个四位一体数码管(共阳极)作为显示窗口,既可以节约成本又能简化电路。

数码管用8个PNP三极管驱动。

(4)电源模块:

现在市面上销售的编程器有很多都是由PC机的USB口直接供电为了降低本设计的成本及节省设计时间,没有另外设计编程器,而直接购买了市场上的USB供电及下载器。

2.2设计课题电路原理图和PCB图

数字电子钟原理图如下:

图2原理图

数字电子钟PCB图如下:

图3PCB图

2.3设计课题元器件清单

设计课题元器件清单如表1所示:

 

表1元器件清单

序号型号与规格大小数量备注

1)双面板1块—

2数码管2个—

3蜂鸣器1个—

4电阻2001个—

5电阻1K4个—

6电阻4708个—

7电阻6.8K1个—

8瓷片电容33pF2个—

9电解电容22μF2个—

10按键10个—

11发光二极管9个—

12AT89S52单片机40P1个—

13AT89S52锁紧座40P1个—

14晶振12MHz1个—

15三极管90121个—

16六角开关1个—

17短路帽3个—

 

3设计课题软件系统的设计

3.1设计课题使用单片机资源的情况

设计课题使用单片机资源的情况如下:

P0口输出数码管段控信号,P2口输出数码管位控信号;晶振12MHz;时间调整开关键K1:

P1.0;通过K1切换电子钟走时/暂停;时调整键K2:

P1.1;按一次使电子钟时加1;分调整键K3:

P1.2;按一次使电子钟分加1;秒调整键K4:

P1.3按一次使电子钟秒加1/闹钟开启或关闭;蜂鸣器接:

P3.1;整点和闹钟时间到时蜂鸣器报时;28H-36H;9个寄存器单元作为显示单元;

28H闹铃小时缓冲区;29H闹铃分钟缓冲区;

30H位选通控制位;31H显示位数计数器;

32H走时小时缓冲区;33H走时分钟缓冲区;

34H走时秒缓冲区;35H定时器中断次数计数器;

36H显示缓冲区首地址。

3.2设计课题软件系统各模块功能简要介绍

本设计的软件系统主要采用以下基本模块来实现,主程序、中断服务程序、键盘输入程序模块、数码管及其驱动模块和延时模块。

主程序:

主要是用于对输入信号的处理、输出信号的控制和对各个功能程序模块的运用及其控制。

中断服务程序:

主要是用于电子钟的准确运行、数据输入过程中的闪烁。

键盘输入程序模块:

主要是用于确定按键并得到特定的键码值。

数码管及其驱动模块:

主要是用于驱动数码管及利用数码管显示时间。

延时模块:

程序中有两种延时子程序,一种是短延时用于判键按下等,一种是长延时。

3.3设计课题软件系统程序流程框图

系统软件按模块化方式进行设计,然后通过Keil软件开发平将程序转变成十六进制程序语言,接着使用Proteus进行仿真,读出显示数据。

 

图4主程序流程图

先给时分秒赋初值,再调用定时器T0和T1,给子程序初始化,调用后转换子程序,再调用闹钟检查同时处理子程序,然后判断K1是否按下,按下则调用按键处理程序,没按下则判断闹钟标志位,标志位为0则蜂鸣器响,为1则调用三次蜂鸣器响程序,再转换子程序。

图5定时器初始化子程序流程框图

设置定时器一为工作方式0,跳转到定时器一中断入口,设置计数初值,中断打开,设置定时器一的初始值后启动定时,查询计数溢出,最后子程序返回。

图6转换子程序

对定时方式初始化,给时分秒设置初值,转化内容后将结果显示在数码管重

新赋初值,最后子程序返回。

图7动态显示子程序图8定时器1中断服务程序

重新赋初值,给中断计时器加一,判断显示位计数值是否等于100,等于100则计数器清零,秒值加一,再判断分值是否等于60,然后分值清零,小时值加一,再次判断小时值是否等于24,则时,分,秒值清零,子程序返回。

不等于100则返回判断分值是否等于60,继续执行程序。

图9按键处理子程序流程框图

暂停定时器一,判断K2是否按下,按下则HOUR单元加一,继续判断HOUR是否等于24,是则HOUR单元清零,再调换子程序。

否则SEC单元清零,启动定时器一,子程序返回。

没有按下则判断K3是否按下,是则MIN单元加一,再判读MIN单元是否等于60,等于60则MIN单元清零,调转子程序。

不等于60则SEC单元清零,启动定时器一,子程序返回。

K3没有按下则SEC单元加一,再判断SEC是否等于60,是则SEC单元清零,启动定时器一,子程序返回。

否则调转子程序。

 

4设计结论、仿真结果、误差分析、教学建议

4.1设计课题的设计结论及使用说明

本设计为基于单片机的电子钟的设计。

刚开始,我们很多地方理不清头绪,无从下手,但通过认真研究设计课题,找书上网查资料买元件,确定基本设计方案,对所用芯片功能进行查找、调试,然后画电路图制PCB板、打孔、溶铜、焊接等,真的经历了许多困难,却积累了很多宝贵的经验,本设计用2个四位一体的共阳数码管做为显示器,它显示时间值;设计中有三个按键,其中S1为启动/选择调整位置,S2为加控制键S3为减控制键,当整点时间到时,蜂鸣器报警。

这样的结果与设计要求完全相符,本设计成功。

完成了设计任务。

4.2设计课题的仿真结果

在ProteusISIS的Debug菜单中选择Execute,运行程序,系统仿真结果如图所示。

实现功能:

可调整运行的电子钟具有三种工作状态:

“P.”状态,运行状态,走时调整状态,闹钟调整状态

(1)“P”状态:

依靠上电或按复位键进入,在此状态下,按K2,K3,K4键均无效,按K1键有效,进入运行状态;

(2)运行状态:

在此状态下,按K2,K3键均无效,只有按K1,K4键有效,按下K1键后,退出运行状态,进入调整状态。

(3)调整状态:

按K1键进入在此状态下,按K2(时+1键)、K3(分+1键),K4(秒+1键)键均有效;调整结束后必须按K1键,即可退出调整状态,进入运行状态。

(4)闹钟调整状态:

闹钟走时状态下按K4键进入,在此状态下,按K2(时+1键)、K3(分+1键),键均有效;调整结束后必须按K4键,即可退出闹钟调整状态,进入运行状态。

时间显示格式为:

时-分-秒;

图10“P.”运行状态仿真

图11时钟运行状态仿真

4.3设计课题的误差分析

该电子钟在运行中存在一定的误差,误差产生有三种可能,首先是采用的计时方案是软件计时的,计时优势利用中断来实现。

而当电子钟运行时间1秒时,又得去执行中断程序,这个过程是需要时间的,所以就产生了一定的误差,当然这个误差是避免不了的,其次还有硬件系统也有一定的影响。

第三,设计用到12MHz的晶振,计算是满20次为一秒钟,但实际会慢很多。

4.4设计体会

本次课程设计,让我受益匪浅,认识到了自己的许多缺点和不足,使我深深的感受到了理论联系实际的必要性及其重要性。

在我们以往的学习过程中,我们刻意地去加强理论的基础,对于一个程序我们只求它在运行时没有出错,我们便以为我们的计划成功了岂不知它能否在硬件结构中得以实现则是另外一回事,这就要求我们的动手能力,如果无法使软件与硬件实现有机的结合,那么再好的程序也只是一堆废字符。

4.5教学建议

经过一个学期凌云老师教导的的单片机学习,我掌握了很多单片机学习的宝贵经验,尤其在编程的思路和PCB实物的制作上面。

编程思路是整个程序的灵魂,没有编程思路,程序就不会编出来,就失去了编程的意义。

在开始编程之前,想好编程的思路,编程能力才会提高,编程的过程才会顺畅,程序的质量才会提高。

在凌云老师的教学过程中,授课内容条理清晰,经常运用各种实例,娓娓道来,充分做到了理论与实际的结合,给人印象深刻。

结束语

 

通过这次对数字电子钟的设计与制作,让我了解了设计电路的程序,也让我了解了关于电子钟的原理与设计理念。

在此次的电子钟设计过程中,更进一步地熟悉了51系列单片机芯片的结构及工作原理,提高了自己的自学能力,这对以后的学习生活有很大的帮助。

在这次的设计过程中遇到了很多困难,在自己的努力和同学的帮助下得到了解决,使我受益匪浅,最重要的是提高了自己的动手能力。

过程是艰辛的,但结果是令人兴奋的,看着自己设计的东西一分一秒的走着,心里觉得非常开心,这段时间的努力没有付诸东流。

此次课程设计让我明白不论是做课程设计,做实验还是在今后的学习中,都应该有一种坚定不移的信念,只有坚持不懈才能达到自己的最终目标。

 

致谢

 

设计能按时完成,首先要感谢谢我的指导老师凌云老师,她不仅在学术上予以指导,制定课程设计课题,并且给予我极大的鼓励和支持,使我能一直有坚定的信心和饱满的热情来完成我的设计。

在设计过程中遇到很多问题凌云老师总是引导我去寻找引发问题的的原因并提出解决问题的方法,还要感谢所有帮助过的同学。

因为有了他们的帮助,我才能更好的完成任务。

在此,祝老师工作顺利,身体健康,家庭幸福。

祝同学们学业有成,心想事成。

 

参考文献

[1]邓红.张越.单片机实验与应用设计教程[M].北京:

冶金工业出版社,2004.5.188~195

ZhangYueDengGong.SCMexperimentandapplicationdesigntutorial[M].Beijing:

metallurgicalindustrypress,2004.5188~195

[2]李广第.单片机基础[M].北京:

北京航空航天大学出版社,2006.7.1~260

LiGuangfirst.Singlechipmicrocomputerbased[M].Beijing:

Beijinguniversityofaeronautics&astronauticspress,2006.7.1~260

[3]刘建清.轻松玩转51单片机[M].北京:

北京航空航天大学出版社,2011.3.186~208

LiuJianQing.Easyplay51SCM[M].Beijing:

Beijinguniversityofaeronautics&astronauticspress,2011.3186~208

[4]张友德.单片微型机原理、应用与实验[M].上海:

复旦大学出版社,2006.5.17~28

ZhangYoude.Single-chipmicrocomputerprinciples,applicationsandexperimental[M].Shanghai:

FudanUniversityPress,2006.5.17~28

[5]夏宽理.程序设计[M].上海:

复旦大学出版社,2000.7.26~44

XiaKuangli.Programming[M].Shanghai:

FudanUniversityPress,2000.7.26~44

[6]谭浩强.C程序设计[M].北京:

清华大学出版社,1999.12.48~56

TanHaoqiang.CProgramming[M].Beijing:

TsinghuaUniversityPress,1999.12.48~56

[7]张洪润,兰清华.单片机应用技术教程[M].北京:

清华大学出版社,1997.208~220

ZhanghongRun,LanQinghua.microcomputerapplicationtechnologytutorial[M].Beijing:

TsinghuaUniversityPress,1997.208~220

[8]何立民.单片机高级教程[M].北京:

北京航空航天大学出版社,2000.88~101

HeLimin.microcontrollerAdvancedTutorial[M].Beijing:

BeijingAerospaceUniversityPress,2000.88~101

[9]马忠梅.单片机C程序设计[M].北京:

北京航空航天大学出版社,2007.50~60

MaZhongmei.microcontrollerCprogramming[M].Beijing:

BeijingAerospaceUniversityPress,2007.50~60

[10]李朝青.单片机原理及接口技术[M].北京:

北京航空航天大学出版社,1998.79~90

LiZhaoqing.SCMTheoryandInterfaceTechnology[M].Beijing:

BeijingAerospaceUniversityPress,1998.79~90

[11]代启化.基于Proteus的电路设计与仿真[M].现代电子技术,2006.32~55

DaiQiHua.Proteus-basedcircuitdesignandsimulation[M].Modernelectronictechnology.2006.32~55

[12]何立民.单片机应用技术选编[M].北京:

北京航空航天大学出版社,1999.220~243

HeLimin.Single-chipcomputerapplicationtechnologyyindong[M].Beijing:

Beijinguniversityofaeronauticsandastronauticspress,1999.220~243

[13]王福瑞.单片微机测控系统设计大全[M].北京:

北京航空航天大学出版社,1998.11~21

Fujuiwang.Singlechipmicrocomputermeasurementandcontrolsystemdesignof[M].Beijing:

Beijinguniversityofaeronauticsandastronauticspress,1998.11~21

[14]孙育才.单片微机应用系统设计与实现[M].南京:

东南大学出版社,1990.61~75

SunYucai.Singlechipmicrocomputerapplicationsystemdesignandimplementation.[M]Nanjing:

southeastuniversitypress,1990.61~75

[15]阎金铎等编写.普通物理教学手册[M].北京:

北京师范大学出版社,1984.105~113

YanJinduowriting.Suchasgeneralphysicsteachingmanual[M].Beijing:

Beijingnormaluniversitypress,1984.105~113

 

附录

附录A:

程序

/*****************************************************

程序名称:

数字电子钟

作者:

卢卓然

指导老师:

凌云

时间:

2014/12/31

功能:

上电在最左端显示P.,按下S1键显示时间,按其它按键对其无影响;再按S1键时间停止,此时按下S2小时加,;按下S3分钟加1,按下S4秒加1;

使用说明:

将P0.0~P0.7接到J182对应O11~018;将P2.0~P2.7接到74HC573输入端J181的对应I11~I18;将P1.0~P1.7接到J16对应S1~S7

晶振:

12MHZ

******************************************************/

#include

#include"key.h"

#include"xianshi.h"

#include"yanshi.h"

#defineuintunsignedint

#defineucharunsignedchar

ucharhour,minute,second,v;

ucharfind_code[8];

/********************************************************/

main()

{

ucharbiaozhi;

find_code[7]=12;

find_code[6]=12;

find_code[5]=12;

find_code[4]=12;

find_code[3]=12;

find_code[2]=12;

find_code[1]=12;

find_code[0]=10;

EA=1;

ET0=1;

PT0=0;

TMOD=0X01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

while

(1)

{

v=key();

switch(v)

{

case

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

当前位置:首页 > 高等教育 > 理学

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

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