基于单片机的数字钟设计.docx

上传人:b****8 文档编号:10918124 上传时间:2023-02-23 格式:DOCX 页数:33 大小:209.62KB
下载 相关 举报
基于单片机的数字钟设计.docx_第1页
第1页 / 共33页
基于单片机的数字钟设计.docx_第2页
第2页 / 共33页
基于单片机的数字钟设计.docx_第3页
第3页 / 共33页
基于单片机的数字钟设计.docx_第4页
第4页 / 共33页
基于单片机的数字钟设计.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

基于单片机的数字钟设计.docx

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

基于单片机的数字钟设计.docx

基于单片机的数字钟设计

 

基于单片机的数字钟设计(总30页)

泰山职业技术学院

毕业设计(论文)

 

题目:

基于单片机的数字时钟

 

系部:

汽车电子工程系

专业:

应用电子技术

学号:

0103

学生姓名:

于学成

指导教师:

宋丽玲

职称:

讲师

 

二O一四年六月二十五日

 

泰山职业技术学院

毕业论文(设计)任务书

 

课题名称:

基于单片机的数字时钟

系部:

汽车电子工程系

专业:

应用电子技 术 

姓名:

于  学  成   

学号:

201103010103

指导老师:

宋  丽  玲

二〇一四年六月二十五日

一、

毕业论文(设计)的目的与要求:

 

要求:

采用单片机实现数字钟的基本功能,要求采用4位数码管,高两位显示小时,低两位显示秒;采用开关控制数字钟的启动、停止、复位和调整时间;时间显示采用24小时制

 

二、毕业论文(设计)的内容:

内容:

1.方案总体设计

2.控制系统硬件电路设计(显示采用四位数码管)

3.软件流程图设计,汇编程序编写

4.电气原理图的绘制

 

三、毕业论文(设计)进程的安排

序号

论文(设计)各阶段名称

日期

备注

 第一章论文背景及设计任务

11.08

第二章系统方案设计

12.23

第三章硬件电路设计

02.13

第四章软件系统设计

03.22

第五章电路调试

04.01

第六章总结

06.10

四、任务执行日期:

自13年11月08日起,至14年6月10日止。

 

学生(签字)__________

指导教师(签字)__________

系主任(签字)__________

 

 

摘要

近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善

本次做的数字钟是以单片机(AT89C51)为核心,结合相关的元器件(3个2位共阳数码管,一个发光二极管和一个蜂鸣器)和应用程序(proteus软件和KEIL编译软件),构成相应的应用系统。

关键词:

单片机AT89C51共阳数码管发光二极管蜂鸣器proteus软件KEIL编译软件

 

摘要翻译:

In recent years along with the computer in the social field of permeability and large scale integrated circuit of development, the application of single chip microcomputer, is continuously to further, because it has a strong function, small volume, low power consumption, the price is cheap, reliable work, use convenient wait for a characteristic, therefore particularly suitable for related control and system, more and more widely used in automatic control, intelligent instrument, instrument, data collection, military products and household electrical appliances, and other fields, microcontroller is often as a core component to use, in according to the specific hardware structure, and the view of the specific application of the characteristics of the object software combines to make perfectThis do digital clock is a single chip microcomputer (AT89C51) as the core, combined with related components (3 two common Yang digital tube, a light emitting diode and a buzzer) and applications (proteus software and KEIL compiler software), constitutes corresponding application system.

 

Keyword:

Asingle-chipmicrocomputer,AT89C51,totalYangdigitaltube,lightemittingdiode,buzzer,proteussoftware,KEILcompilersoftware

 

基于单片机的数字时钟

第一章论文背景及设计任务

论文背景

数字电子钟具有走时准确,一钟多用等特点,在生活中已经得到广泛的应用。

另外数字钟还具备秒表和闹钟的功能,且闹钟铃声可自选,使一款电子钟具备了多媒体的色彩。

单片机STC89C51在Proteus软件中实现数字时钟的定时、时间调整、闹正设置等功能。

具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。

时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。

在一个单片机应用系统中,时钟有两方面的含义:

一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间。

本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机AT89C51芯片和3个两位一体的共阳极的数码管为核心,辅以必要的电路,构成了一个单片机数字时钟。

单片机AT89S51可调数字钟系统设计的核心是目前应用极为广泛的51系列单片机,可调数字钟配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能强等特点。

不仅能满足所需要求而且还有很多功能可供开发,有着广泛的应用领域。

课程设计题目描述和任务

单片机控制的数字钟的硬件结构与软件设计,给出了汇编语言源程序。

此数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。

显示器件选用LED七段数码管。

在译码显示电路输出的驱动下,显示出清晰、直观的数字符号。

针对数字钟会产生走时误差的现象,在电路中就设计有有校准时间功能的电路。

使用动态数码显示的方法,运用独立式按键识别过程,按“时”,“分”,“秒”数据送出显示处理方法。

(1)具有时、分、秒计数显示功能,以24小时循环

(2)LED数码管显示时、分、秒的个位和十位

(3)可以在任意时刻校准时间

(4)能够完成时间的显示、定时闹钟、复位等功能

 

第二章系统方案设计

整体设计

此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块:

显示电路用8个共阴数码管分别显示,星期(年份),小时、分钟(月份)和秒(日),通过动态扫描进行显示,从而避免了译码器的使用,同时节约了I/0端口,使电路更加简单。

单片机采用AT89S51系列,这种单片机应用简单,适合电子钟设计

整体设计框图如图2-1所示:

图2-1数字时钟整体电路

方案设计与论证

方案一:

采用各种纯数字芯片实现数字时钟的设计。

优点:

各个模块功能清晰,电路易于理解实现。

缺点:

各个模块功能已定不能进行智能化调整,整体电路太庞大。

方案二:

采用FPGA模块用硬件语言实现功能。

优点:

运算速度快,走时精度高,算法简单。

缺点:

成本高,大材小用。

方案三:

采用单片机最小系统实现功能。

优点:

电路简单,能通过程序进行随机调整并扩展功能,成本低,易于实现。

缺点:

走时有一定的误差。

经过综合考虑成本问题以及电路实现问题,选择第三种方案实现设计要求。

第三章硬件电路设计

AT89C51的单片机简介

(一)AT89C51的介绍

AT89C51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多种功能的I/O接口电路等一台计算机所需要的基本功能部件,AT89C51单片机内包含下列几个部件:

(1)一个8位CPU;

(2)一个片内振荡器及时钟电路;

(3)4K字节ROM程序存储器;

(4)128字节RAM数据存储器;

(5)两个16位定时器/计数器;

(6)可寻址64K外部数据存储器和64K外部程序存储器空间的控制电路;

(7)32条可编程的I/O线(四个8位并行I/O端口);

(8)一个可编程全双工串行口;

(9)具有五个中断源、两个优先级嵌套中断结构。

 

(二)AT89C51单片机的部分管脚说明:

AT89C51单片机采用40条引脚双列直插式器件,引脚除5V(40脚)和电源地(20脚)外,其功能分为时钟电路、控制信号、输入/输出三大部分,引脚图如下图:

图3-1AT89C51引脚图

①Vcc 40电源端;GND 20接地端。

工作电压为5V。

②外接晶振引脚

图3-2外接晶振引脚图

XTAL1 19、XTAL2 18:

XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。

内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。

晶振的频率可以在1MHz-24MHz内选择。

电容取30PF左右。

系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。

③复位 RST 9

图3-3常用复位电路图

在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。

复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。

④/EA=131脚

当/EA=1时,访问内部程序存储器,当PC值超过内ROM范围时,自动转执行外部程序存储器的程序;当/EA=0时,只访问外部程序存储器。

 

(三)另外介绍一下输入输出引脚(本系统只用到P0、P1、P2口):

(1)P0端口[是一个8位漏极开路型双向I/O端口,端口置1(对端口写1)时作高阻抗输入端。

作为输出口时能驱动8个TTL。

对内部Flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。

在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。

(2)P1端口[-]是一个带有内部上拉电阻的8位双向I/0端口。

输出时可驱动4个TTL。

端口置1时,内部上拉电阻将端口拉到高电平,作输入用。

对内部Flash程序存储器编程时,接收低8位地址信息。

(3)P2端口[-]是一个带有内部上拉电阻的8位双向I/0端口。

输出时可驱动4个TTL。

端口置1时,内部上拉电阻将端口拉到高电平,作输入用。

对内部Flash程序存储器编程时,接收高8位地址和控制信息。

在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。

而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。

LED显示电路

本课程设计用到共阳极数码管通过其引脚图,便可顺利完成其连接。

图3-4共阳数码管内部结构图

键盘控制电路

通过S1、S2、S3和S4四个按键,对时间进行修改和闹钟的设置,S0控制闹钟的启动和停止。

按下S1键显示闹钟,松开后显示时间;按下S4键进入时间修改模式,再按S4键时间的时加1,按S2分加1,调整结束后按下S1恢复正常显示;按下S3键进入闹钟修改模式,再按S3键闹钟的时加1,按S2分加1,调整结束后按下S1恢复正常显示。

当用手按下一个键时,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也会出现类似的情况,这就是抖动。

抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms。

很容易想到,抖动问题不解决就会引起对闭合键的识别。

用软件方法可以很容易地解决抖动问题,这就是通过延迟10ms来等待抖动消失,这之后,再读入键盘码。

第四章软件系统设计

程序编写设计流程图

 

 

闹钟调整

显示闹钟

显示时间

响铃

时间调整

S1按下

S4按下

S3按下

N

Y

N

N

Y

Y

Y

 

图4-1程序编写流程图

 

绘制数字时钟电路Protues仿真原理图

启动ISIS7Professional软件

元件的加载:

找到原件后双击原件即可完成加载原件。

如图4-2所示:

图4-2Protues加载原件图

仿真电路绘制

放置元件→调整原布局→连线

最后得到的原理图如下:

图4-3Protues仿真图

通过S1、S2、S3和S4四个按键,对时间进行修改和闹钟的设置,S0控制闹钟的启动和停止。

按下S1键显示闹钟,松开后显示时间;按下S4键进入时间修改模式,再按S4键时间的时加1,按S2分加1,调整结束后按下S1恢复正常显示;按下S3键进入闹钟修改模式,再按S3键闹钟的时加1,按S2分加1,调整结束后按下S1恢复正常显示。

电路检测

电路连接完毕后,单击运行按钮(如下图)检测电路是否有误,

如果电路如果无误进行软件检测。

软件设计

图4-6仿真结果图

 

第五章电路调试

软件与硬件调试

单片机应用系统的调试包括硬件和软件两部分,但是它们并不能完全分开。

一般的方法是排除明显的硬件故障,再进行综合调试,排除可能的软/硬件故障。

软件调试是指用仿真软件进行仿真调试,验证系统的各项功能;硬件调试即软件调试成功后,将程序下载至AT89C51芯片中,用焊接好的电路来进行各项功能的验证与检测。

需要特别注意的是软件调试与硬件调试的差异,软件调试只是初步的估测,硬件的调试才是最真实的

仿真结果分析

⑴按键问题

我的设计中,很多功能选择是通过按键开关实现的。

在仿真中发现,调整数值时,有时按键反应太快,按一次,跳了几下,使设置时间,日期很不方便。

但是仿真多了之后,找到了按键(实际上是按鼠标)的节奏,对按键的掌控力提高了不少,不怎么会出现跳变的情况了。

有些开关我采用了长按键的方式来防抖,效果不错,但是每次都要长按键,调整效率太低,我没有普及。

本来想把所有的按键都加延时防抖电路,但仿真中感觉对键盘的控制力没提高多少,有时还是会出问题。

⑵P0口开关问题

P0口比较特殊,它存在高阻态,要使其输入不是高电平就是低电平,就要接上拉电阻,给其高电平输入。

⑶中断冲突问题

为了实现秒表,我在T0中断嵌套了秒表相关进位程序,由于秒表要求精度秒,故我的T0中断定时为就刚好秒,中断100次,刚好1秒。

秒表确实实现了,但是我的闹铃音质变差了。

一开始以为是闹铃程序存太多冗余环节,影响了T1的音乐输出中断,但是检查程序后,发现没什么多余的,裁剪无从下手。

在仿真中,添加T0中断服务程序,但是将中断进入的间隔变大,即秒进入一次中断,发现音质有所下降,有滋滋声,但比原来的好。

最后认定应该是T0中断过于频繁,T1音乐频率发生中断被打破,当单位时间内被打破的次数达到一定程度时,音符和节拍的对应发生紊乱,最终音质变差。

⑷定时功能的实现过程

定时功能运用了一个内存地址3CH为标志位,只有3CH中所存值非0时,在主程序中才判断定时是否已到。

3CH值初始化为0,程序开始运行时并不判断定时是否已到。

当通过按键进入定时初值设置,并开始倒计时,3CH的值被赋为1,当倒计时显示到0时,进入闪烁提示,提示结束后3CH又被赋值为0,程序回到主程序后,不必判断定时是否已到。

但当倒计时未完,按返回键回到主程序时,3CH的值为1,故在主程序判断未完成的定时任务,倒计时到0时调用同一个提示程序,最后仍可保证在主程序不再定时开启时去判断定时,从而节约资源。

⑸软件消抖

消抖可以采用硬件(施密特触发器)的方式,也可以采用软件的方式。

在此只讨论软件方式。

软件消抖有定时器定时,和利用延时子程序两种方式。

一,定时器定时消抖可以不影响显示模块扫描速度,其实现方法是:

设置标志位,在定时器中断中将其置位,然后在程序中查询。

将其中断优先级设置为低于时钟定时中断,那么它就可以完全不影响时钟定时。

二,在采用延时子程序时,如果显示模块的扫描速度本来就不是很快,此时可能会影响到显示的效果,一般情况下,每秒的扫描次数不应小于50次,否则,数码的显示会出现闪烁的情况。

因此,延时子程序的延时时间应该小于20毫秒,如果采用定时器定时的方式,延时时间不影响时钟。

如果,设计时采用的是中断的方式来完成有关操作,同样可以采用软件的方式来消抖,其处理思想是:

中断不能连续执行,两次之间有一定的时间间隔。

 

第六章总结

首先,我要感谢宋丽玲老师在此次设计中给于我的帮助。

我深刻地感受单片机不单是一门文化课程,更是一门科学技术。

单片机课程设计则是人生课程,我们学到了很多课堂上无法学到的东西。

从新奇好玩到失败后的痛苦无助,从失败中爬起,哪怕再失败,也永不放弃。

这就是单片机课程设计教会我们的最宝贵的知识。

一分耕耘,一分收获。

经过这次课程设计,让我获得了很多知识,进一步加深了我对AT89C51单片机的掌握,另外也巩固了我的编程思想和焊接技术。

本次的数字时钟设计,让我对自己在大学三年的知识的到了回顾,例如模电和数电以及做PCB的软件。

它也让我充分发挥了对所学知识的理解和设计的书面表达能力。

这为今后自己进一步深化学习,积累了一定的宝贵经验。

撰写报告的过程是对专业知识的学习过程,它使我运用已有的专业基础知识,对其进行设计,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练。

本次的课程设计,让我发现理论必须用于实践,否则只是一张白纸。

此外只有理论水平提高了,才能更好的运用于实践。

另外,本次课程设计也考验了我的认真的态度。

只有做事拥有认真的态度与科学的方法,才能成功。

我认为课程设计非常有必要,它能让我们主动去寻找遇到问题的解决方法,同时也是对我们严谨认真工作态度的考验与锻炼,为以后我们进入社会参加工作是一个很好的培训与历练。

附录:

图7-1数字时钟原理图

 

数字时钟源程序

使用keil软件编写源程序

ORG0000H

LJMPSTART

ORG000BH

LJMPTIME

;********初始化*********

START:

MOVSP,#50H

MOV20H,#00H;定义秒

MOV21H,#00H;定义分

MOV22H,#00H;定义时

MOV23H,#01H;定义闹钟分钟

MOV24H,#01H;定义闹钟小时

MOV25H,#00H

MOV26H,#01H

MOV30H,#00H;BCDSECOND

MOV31H,#00H

MOV32H,#00H;BCDMINUTE

MOV33H,#00H

MOV34H,#00H;BCDHOUR

MOV35H,#00H

MOV36H,#01H

MOV37H,#00H

MOV38H,#01H

MOV39H,#00H

MOV50H,#00H;按键次数

MOVTMOD,#01H;16位计数器

MOVTH0,#03CH;赋初值

MOVTL0,#0B0H

MOVIE,#87H;中断允许

SETBTR0;启动T0

MOVR2,#14H

MOVP2,#0FFH

;*********主程序**********

MAIN:

JB,GB

LCALLTIMEPRO;调用闹钟判断

GB:

LCALLDISPLAY1;调用时间显示

JB,M1;=1时转移S4没有按下

LCALLSETTIME;调用SETTIME调时子程序

LJMPMAIN

M1:

JB,M2;1g=1时转移   S3

LCALLSETATIME;调用SETATIME子程序

LJMPMAIN

M2:

JB,M4;=1时转移S1

LCALLLOOKATIME;调用LOOKATIME显示闹钟子程序

M4:

LJMPMAIN

;*********延时子程序********

DELAY:

MOVR4,#030H

DL00:

MOVR5,#0FFH

DL11:

MOVR6,#9H

DL12:

DJNZR6,DL12

DJNZR5,DL11

DJNZR4,DL00

RET

;***********时间调整*******

SETTIME:

;设置时间

L0:

LCALLDISPLAY1

MM1:

JB,L1;=1时转移

MOVC,

JCMM1

LCALLDELAY1;延时

JCMM1

MSTOP1:

MOVC,;为0时转移

JNCMSTOP1

LCALLDELAY1;延时

MOVA,50H

INC50H

CJNEA,#00H,HJ1

LJMPL0

HJ1:

MOVC,

JNCMSTOP1

INC22H;小时自加一

MOVA,22H

CJNEA,#18H,GO12;小时计数循环 

MOV22H,#00H;复位

MOV34H,#00H

MOV35H,#00H

LJMPL0

L1:

JB,L2;=1时转移

MOVC,

JCL1

LCALLDELAY1;延时

JCL1

MSTOP2:

MOVC,;=0时转移

JNCMSTOP2

LCALLDELAY1;延时

MOVC,

JNCMSTOP2

INC21H;分钟加一

MOVA,21H

CJNEA,#3CH,GO11;分钟计数循环

MOV21H,#00H;复位

MOV32H,#00H

MOV33H,#00H

LJMPL0

GO11:

MOVB,#0AH

DIVAB

MOV32H,B;将A的低4位存入32单元

MOV33H,A;将A的高4位存入33单元

LJMPL0

GO12:

MOVB,#0AH

DIVAB

MOV34H,B;将A的低4位存入34单元

MOV

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

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

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

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