数字电子钟设计.docx

上传人:b****8 文档编号:9307015 上传时间:2023-02-04 格式:DOCX 页数:19 大小:142.07KB
下载 相关 举报
数字电子钟设计.docx_第1页
第1页 / 共19页
数字电子钟设计.docx_第2页
第2页 / 共19页
数字电子钟设计.docx_第3页
第3页 / 共19页
数字电子钟设计.docx_第4页
第4页 / 共19页
数字电子钟设计.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

数字电子钟设计.docx

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

数字电子钟设计.docx

数字电子钟设计

课程设计说明书

 

设计名称:

单片机原理及应用课程实训

题目:

数字电子钟设计

学生姓名:

专业:

电气工程与自动化

班级:

11自动化3班

学号:

2011364328

指导教师:

屈莉莉

日期:

2014年6月26日

 

课程设计任务书

电气工程与自动化专业11年级3班陈兴渝

一、设计题目

数字电子钟设计

二、主要内容

设计一个数字式电子钟,它具有时,分,秒的计时功能,可以通过键盘进行时间设定,并且将时间显示在LED数码管上。

用按

键设定时钟的时、分、秒,用扫描方式动态显示。

时钟用定时中断方式工作,单片机晶体震荡器频率11.0592Mhz.。

可选做双机通信实验,实现子母钟功能,即由其中一台做时钟,另一台采集时钟值并显示。

三、具体要求

1.了解硬件电路组成,以及各部分的作用。

2.掌握数字电子钟的计时原理。

3.设计电子钟软件程序,画主程序,子程序流程图,编写程序清单。

4.完成系统调试。

5.撰写课程设计报告。

四、进度安排

1.每个同学根据实验题目,查找相应资料,并由组长组织分析任务要求,对任务进行分解,明确每个同学的具体任务;(半天)

2.确定系统的整体设计方案,画出软件框图,分头进行电路连接,软件编写。

(4天)

3.学会并熟练掌握在伟福和KeilC开发平台上,用汇编和C语言编程和调试,并写入CPU,进行实际调试。

(2天半)

4.编写不少于3000字的课程设计总结报告及提供程序清单(电子版)。

(1天半)

5.总结与答辩。

(半天)

五、完成后应上交的材料

1.课程设计说明书

2.源程序清单(电子版)

六、总评成绩

 

指导教师签名日期年月日

系主任审核日期年月日

 

基于AT89C52单片机的数字电子钟设计

摘要:

本文介绍了一款基于AT89C52单片机数字钟的设计,通过多功能数字钟的设计思路,详细叙述了系统硬件、软件的具体实现过程。

论文重点阐述了数字钟硬件中MCU模块、时钟模块和相关控制模块等的模块化设计与制作;软件同样采用模块化的设计,包括中断模块、时间调整模块设计,并采用简单流通性强的C语言或汇编编写实现。

本设计实现了时间以及更正显示功能。

并且通过对比实际的时钟,查找出了误差的来源,确定了调整误差的方法,尽可能的减少误差,使得系统可以达到实际数字钟的允许误差范围内。

关键词:

AT89C52单片机;数字钟

 

目录

 

数字钟的应用

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

虽然现在市场上已有现成的电子钟集成电路芯片出售,价格便宜、使用也方便,但是人们对电子产品的应用要求越来越高,数字钟不但可以显示当前的时间,而且可以显示日期、农历、以及星期等,给人们的生活带来了方便。

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

时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。

忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。

但是,一旦重要事情,一时的耽误可能酿成大祸。

电子钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。

由于数字集成电路技术的发展和采用了先进的石英技术,使电子钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。

整体设计方案

其主要设计思想是:

整个系统用单片机为中央控制器,由单片机执行采集时钟芯片的时间信号并通过显示模块来输出信号及相关的控制功能。

时钟芯片产生时钟信号,利用单片机的I/O口传给单片机;并通过I/O口实现LCD的显示。

系统设有4个按键可以对时间的时分秒进行调整。

整体框架如图2-1所示。

 

图2-1系统整体框图

单片机的基本结构

AT89C52单片机基本结构主要包括了以下主要部件:

(1)控制器

控制器是单片机的指挥控制部件,控制器的主要任务是识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动而协调地工作。

单片机执行指令是在控制器的控制下进行的。

首先从程序存储器中读出指令,送指令寄存器保存,然后送至指令译码器进行译码,译码结果送定时控制逻辑电路,由定时控制逻辑产生各种定时信号和控制信号,再送到单片机的各个部件去进行相应的操作。

这就是执行一条指令的全过程,执行程序就是不断重复这一过程。

控制器主要包括程序计数器、程序地址寄存器、指令寄存器IR、指令译码器、条件转移逻辑电路及时序控制逻辑电路。

(2)存储器结构

MCS-51器件有单独的程序存储器和数据存储器。

外部程序存储器和数据存储器都可以64K寻址。

如果程序存储器在EA引脚接地,程序读取只从外部存储器开始。

对于89C52,如果EA接VCC,程序先从内部存储器(地址为0000H~1FFFFH)开始,接着从外部寻址,寻址范围为:

2000H~FFFFH。

数据存储器AT89C52有256字节RAM。

高128字节与特殊功能寄存器重叠。

也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。

当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高字节RAM还是特殊功能寄存器空间。

直接寻址方式访问特殊功能寄存器(SFR)。

(3)并行I/O口

MCS-51单片机共有4个双向的8位并行I/O端口(Port),分别记作P0-P3,共有32根口线,各口的每一位均由锁存器、输出驱动器和输入缓冲器所组成。

实际上P0-P3已被归入特殊功能寄存器之列。

这四个口除了按字节寻址以外,还可以按位寻址。

由于它们在结构上有一些差异,故各口的性质和功能有一些差异。

(4)时钟电路与时序

时钟电路用于产生MCS-51单片机工作时所必需的时钟信号。

MCS-51单片机本身就是一个复杂的同步时序电路,为保证同步工作方式的实现,MCS-51单片机应在唯一的时钟信号控制下,严格地按时序执行进行工作,而时序所研究的是指令执行中各个信号的关系。

(5)晶振特性

AT89C52单片机有一个用于构成内部振荡器的反相放大器,XTAL1和XTAL2分别是放大器的输入、输出端。

石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。

从外部时钟远驱动器件的话,XTAL2可以不接,而从XTAL1接入。

由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要符合要求的。

最小系统设计

AT89C52的结构特点及引脚特性:

为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。

功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。

各引脚特性:

1.P0口P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。

作为输出口用时,每位能吸收电流的

2.P1口P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑

3.P2口P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑

4.P3口P3口是一组带有内部上拉电阻的8位双向I/O口。

P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻

5.RST复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

(3)复位电路

在复位引脚(9脚)持续出现24个振荡器脉冲周期(即2个机器周期)的高电平信号将使单片机复位。

如图2-1所示电容C和电阻R构成了单片机上电自动复位电路。

复位后,单片机从0000H单元开始执行程序,并初始化一些专用寄存器为复位状态值,受影响的专用寄存器如表3-1所示。

表3-1复位寄存器状态表

寄存器

状态

寄存器

状态

PC

000H

TC0N

00H

ACC

00H

TL0

00H

PSW

00H

TH0

00H

SP

07H

TL1

00H

DPTR

0000H

TH1

00H

P0—P3

FFH

SCON

00H

IP

XXX00000H

SBUF

不确定

IE

OXX00000H

PCON

0XXX0000H

TMOD

00H

(4)控制引脚EA接法

EA/VPP(31脚)为内外程序存储器选择控制引脚,当EA为低电位时单片机从外部程序存储器取指令;当EA接高电平时单片机从内部程序存储器取指令。

AT89S51单片机内部有4KB可反复擦写1000次以上的程序存储器,因此要把EA接+5V高电平,让单片机运行内部的程序,这样就可以通过反复烧写来验证程序了。

这就是AT89C52单片机最小化系统的连接,只要把编写好的程序烧写到单片机内部,并接上5V电源就可以正常运行了,在17脚接上的发光二极管可以用来验证系统是否正常。

数字钟的外围电路设计

3.2.1时钟电路

(1)单片机时钟

时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。

因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。

常用的时钟电路有两种方式:

一种是内部时钟方式,另一种为外部时钟方式。

单片机内部具有一个高增益反相放大器,用于构成振荡器。

通常在引脚XTALl和XTAL2跨接石英晶体和两个补偿电容构成自激振荡器,我们选择11.0592mhz晶体。

本文用的是内部时钟方式。

电路设计如图3-2所示。

图3-2单片机时钟

(2)复位电路

单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。

上电复位要求接通电源后,自动实现复位操作。

手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。

复位电路结构如图3所示。

上电自动复位通过电容C3充电来实现。

手动按键复位是通过按键将电阻R29与VCC接通来实现。

上电自动复位是通过外部复位电路的电容充电来实现的。

只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。

图3复位电路

4、显示电路:

系统设置了5个共阳极LED数码管LED1-LED2,单片机P0口提供段码信号,低电平有效,P0口输出端通过限流电阻R1~R8与数码管的段码数据线相连,用来送出LED数码管的段码数据信号。

图5显示电路

3.2.4电源电路

电源电路包括变压器、桥式整流器、电容和稳压器。

通过变压器变压,使得220V电压变为12V,在通过桥式整流,电容的滤波作用,稳压器的稳压作用,可输出5V的稳定电压。

如图3-7所示。

图3-7系统电源电路

相关控制电路

(1)按键电路

按键电路如图3-8所示,按键的开关状态通过一定的电路转换为高、低电平状态。

按键闭合过程在相应的I/O端口形成一个负脉冲。

闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。

抖动持续时间的常长短与开关的机械特性有关,一般在5-10ms之间。

为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。

本文采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生互相影响。

 

图3-8按键电路图

P3.2口:

表示功能选择键,按键选择要调整的时分秒。

P3.3口:

表示数字“+”键,按一下则对应的数字加1。

P3.4口:

表示数字“-”键,按一下则对应的数字减1。

P3.5口:

表示确认键,调整完就可以按确认键。

数字钟的软件设计

4.1系统软件设计内容

本设计的软件程序包括主程序、中断子程序、时钟显示子程序以及延时子程序等。

在整个系统中,在单片机的30H、31H和32H中存储当前时间的小时、分钟和秒。

用数码管显示当前的时间,必须用到分字和合字,因此在33H、34H、35H、36H、37H和38H中存储当前时间的时十位、时个位、分十位、分个位、秒十位和秒个位,方便显示。

本设计有由四个轻触按键组成的小键盘,这些按键可以任意改变当前的状态。

按功能移位键一次,表示当前要校对小时的十位;按第二次,表示当前校对的是小时的个位;按第三次,则表示校对的是分钟的十位;第四次,表示的校对的是分钟的个位。

按下数字“+”键和数字“-”键可在当前校对的数字上相应加上1或者减去1。

系统软件采用汇编语言编写。

时钟的最小计时单位是秒,但使用定时器的方式1,最大的定时时间也只能达到131ms。

我们可把定时器的定时时间定为50ms。

这样,计数溢出20次即可得到时钟的最小计时单位:

秒。

而计数20次可以用软件实现。

秒计时是采用中断方式进行溢出次数的累积,计满20次,即得到秒计时。

从秒到分,从分到时是通过软件累加并进行比较的方法来实现的。

要求每满1秒,则“秒”单元中的内容加1;“秒”单元满60,则“分”单元中的内容加1;“分”单元满60,则“时”单元中的内容加1;“时”单元满24,则将时、分、秒的内容全部清零。

实时时钟程序设计步骤:

(1)选择工作方式,计算初值;

(2)采用中断方式进行溢出次数累计;

(3)从秒——分——时的计时是通过累加和数值比较实现的;

(4)时钟显示缓冲区:

时钟时间在方位数码管上进行显示,为此在内部

RAM中要设置显示缓冲区,共6个地址单元。

显示缓冲区从左到右依次存放时、分、秒数值;

(5)主程序:

主要进行定时器/计数器的初始化编程,然后反复调用显示子程序的方法等待中断的到来,流程如图4-1所示;

(6)中断服务程序:

进行计时操作;

(7)加1子程序:

用于完成对时、分、秒的加操作,中断服务程序在秒、

分、时加1时共三次调用加1子程序,包括:

合字、加1并进行进制调整、分字。

图4-1主程序MAIN流程框图

图4-4时钟修改中断服务子程序流程框图

中断子程序

MCS-51系列单片机有5个中断源,中断分为2个中断优先级,即高优先级和低优先级,每个中断源的优先级都可以由软件来设定。

中断地址如表4-1所示。

程序中的中断流程框图如图4-4所示。

表4-1中断地址表

五个中断源

入口地址

外部中断0(/INT0)

0003H

T0溢出中断

000BH

外部中断1(/INT1)

0013H

T1溢出中断

001BH

串口中断

0023H

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

Proteus软件介绍 

Proteus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。

Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。

通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。

Keil C调试环境介绍 

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

用过汇编语言后再使用C来开发,体会更加深刻。

5.2系统性能测试与功能说明

5.2.1系统时钟误差分析

设系统中所选用的晶振的频率为fosc,则机器周期t0由式(5-1)所得。

(5-1)

设定时器要求的中断频率为k,计数器位数为n,则定时计数器的初值X设置如下:

(5-2)

于是

而实验测得的数据显示,这个公式所得的结果并不可靠:

(下表中的所有数据都是在计数器初始值严格按照原始公式给出的条件下测得,以个人计算机机系统时钟为标准)。

从表5-1中的数据可知,严格按照原始公式得出的计数初值是存在极大误差的,这个误差总使系统时间变慢,而且,系统时间的误差值随着每秒中断次数的增多而增大,随计时总长的增长而增大,并且总是成比例(在误差允许的范围内)。

这就是说,系统的误差跟每秒中断次数和个人计算机标准时长的乘积(即中断总次数)成正比。

也就是说,每次中断计时的时间误差是一个常数。

误差来源分析:

不考虑晶振等固件的误差,则系统机器周期可以由公式1准确给出,因而系统误差不可能来自于硬件,而应该主要来自于软件方面。

系统每次调用定时中断程序的过程中,硬件并没有自动进入下一个定时周期,而是在调用中断程序以后由软件置数来实现的。

表5-1系统时间校正测试数据

每秒定时中断次数K

PC标准时长/min

△X

系统时间

误差△T/S

备注

160

60

20

00:

59:

59

-1

显示器无闪烁

160

120

20

01:

59:

58

-2

显示器无闪烁

160

180

20

02:

59:

57

-3

显示器无闪烁

160

240

20

03:

59:

56

-4

显示器无闪烁

160

300

20

04:

59:

54

-6

显示器无闪烁

160

300

21

04:

59:

59

-1

显示器无闪烁

160

600

21

09:

59:

58

-2

显示器无闪烁

而在程序调用过程中,堆栈建立,参数传递等都是需要耗时的,而这些时间都被无形中加到了定时长度中去。

所以,使得每次定时长度都大于理论推导值,在宏观上表现出来就是系统比理论计算出来的结果变慢了(这于表格1所得的结论恰好一致)。

另外,由于系统每次调用中断处理程序所执行的操作都是相同的,也就是说,系统每次定时的时间误差应该是一个常数(这也恰好跟实验数据相吻合)。

由上面的数据和分析可知,原始公式应该修改为:

(5-3)

则由表格5-1可得相关的计算公式为:

(5-4)

由表格5-1数据,实际要求k最小,而又不影响显示效果,才能使误差越小,故实测中取k=160。

根据表5-1计算得k≈20(所用晶振频率为11.0592MHz)。

由表5-1的实验方法,可得参数优化后的计时测试数据见表5-2。

表5-2参数优化后的计时测试数据

每秒定时中断次数

PC标准时长/min

系统计时

误差△T/S

备注

100

10

00:

09:

58

-2

显示器无闪烁

200

10

00:

09:

57

-3

显示器无闪烁

400

10

00:

09:

55

-5

显示器无闪烁

800

10

00:

09:

49

-11

显示器无闪烁

1600

10

00:

09:

39

-21

显示器无闪烁

3200

10

00:

09:

18

-42

显示器无闪烁

3200

20

00:

18:

38

-82

显示器无闪烁

3200

30

00:

27:

57

-123

显示器无闪烁

3200

60

00:

55:

54

-246

显示器无闪烁

3200

120

01:

51:

46

-494

显示器无闪烁

3200

180

02:

47:

38

-742

显示器无闪烁

3200

240

03:

43:

31

-989

显示器无闪烁

3200

300

04:

39:

24

-1224

显示器无闪烁

表5-2数据和表5-1数据相比已有了更大的准确性,但与实际应用还有一定差距。

末两行是根据前面参数规律稍做改动得到的,与公式(5-2)有一定出入,但与个人计算机系统标准时间已经相当接近。

由于表5-1的数据本身是肉眼估出来的,本身就带有很大的误差,实际运用可用精密仪器得到表5-1的数据,则系统参数可以更进一步接近实用值。

5.2.2软件调试问题及解决

显示程序开始怎么调试就是不通,后来看了一位网友的文章写的是关于DS1302调试过程中应注意的事项,指出了ds1302的datasheet中的一些错误,这才使我恍然大悟,原来读数据的时间要求是非常严格的。

要求在命令字之后的第一个下降沿就要读数据,否则读出的数据就是错误的,也不能说完全错误,那就必须作必要的调整。

下次一定要注意:

别人的程序很可能有缺陷,能参考,但不能够完全照抄,数据手册一定要细读。

这告诉我,自己的c语言功夫还不够,具体地说差得好远。

提醒自己要努力。

一定要学会应用汇编,汇编与c的相互调用。

结论

本设计主要介绍了单片机的历史发展,以及数字钟在日常生活中的具体应用给日常生活带来的方便。

在第二章介绍了系统的整体构思方案,有几个模块组成,以及每个模块的连接方法。

核心芯片单片机的基本资料介绍,着重介绍了单片机的对比与选择。

AT89S51单片机最小系统的架构与实验。

多功能数字钟系统的硬件模块组成。

详细介绍了各个模块的组成及功能。

MCU的组成和特点、专门的时钟芯片和单片机时钟、显示模块的构建与运用、语音芯片的选择。

基本上是完成了作为单片机所需的硬件结构。

同时也显示了对软件支持的强烈要求。

本章介绍了本设计的软件设计,所有的功能在流程图里清晰的表现了出来。

包括整体流程图、时钟及闹钟修改流程图、中断流程图等。

并附有相关程序的主要部分。

系统的功能基本符合设计任务的要求,经过大量的测试数据显示,系统的可靠性已经能够达到了实际电子钟的设计要求。

同时系统具有很强的扩展性。

在此次的数字钟设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。

在涉及到2进制与十进制转换时出现了错误最终准确地找出错误所在并及时纠正了。

在设计电路中,往往是先仿真后连接实物图,但有时候仿真和电路连接并不是完全一致的。

例如仿真的连接示意图中,往往没有接高电平的16脚或14脚以及接低电平的7脚或8脚,因此在实际的电路连接中往往容易遗漏。

在仿真电路中必须连接反馈线才能正常显示,而在实际电路中无需再连接,因此仿真图和电路连接图还是有一定区别的。

在设计电路的连接图中出错的主要原因都是接线和芯片的接触不良以及接线的错误所引起的。

设计是一个漫长而充满挑战的过程,在发现错误与解决错误的过程中我发现自己的能力得到了很大的提高。

但是也留下了些遗憾:

由于资金和本地的市场条件语音功能还没有完全实现。

希望在以后的扩展中能够不断的完善。

致谢

这次数字频率计的设计在我们莉莉老师的带领下努力完成。

她严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。

从课题设计的开始到最终完成,我不仅学到了扎实、宽广的专业知识,也学到了许多解题的方法。

在我的课题开展过程中倾注着导师辛勤的汗水和心血。

导师的为人师表、渊博的知识、宽广的胸怀让我倍受教益,在此谨向导师们致以诚挚的谢意和崇高的敬意!

我能顺利地完成学业,与父母多年来一如既往的支持和关怀是分不开的,在此,向任劳任怨、含辛茹苦的父母致以衷心的感谢!

衷心感谢在我成长的路上指点和帮助我的前辈和朋友们!

衷心感谢在百忙之中评阅论文和参加答辩的各位专家、教授。

在实验前,通过查资料设计出功能比较丰富的单片机最小系统,功能如下:

设计四个功能键,实现每个功能键控制不同的LED灯开关方式,比如:

按键一实现LED依次亮,按键二实现LE

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

当前位置:首页 > 工程科技 > 材料科学

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

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