资源描述
城南学院 带闹钟功能的电子时钟
带闹钟功能的电子时钟
摘要
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。单片机数字时钟就是时钟设计中的一种。它具有编程灵活,便于电子钟功能的扩充,即可用该电子钟发出各种控制信号,精确度高等特点,同时可以用该电子钟发出各种控制信号。本设计是以单片机AT89S52配备LED数码显示管,数字钟采用24小时制方式显示时间,采用蜂鸣器做提醒,通过软件程序的编制合理充分地使用硬件以完成系统所要完成的任务。
关键词:电子时钟;51单片机;数码管;仿真;调试
目录
1 绪论………………………..……………………………….……………………...1
1.1 设计本电子定时闹钟的目的和意义……………….……………………….1
1.2 MCS–51单片机介绍……………………………….………………………..1
1.3 电子钟的主要功能…………………………….…………………………….2
2 设计概要与总体方案………………………….………………………………….2
2.1 设计概要………………………….………………………………………….2
2.2 硬件设计框架图……………….…………………………………………….3
2.3 总体设计方案说明………….……………………………………………….3
3 设计原理与过程………….…………………………………………………….....4
3.1 显示模块………….……………………………………………………….....4
3.2 键盘控制模块………….…………………………………………………….4
3.3 最小系统模块………….…………………………………………………….5
3.4 声音提示模块………….…………………………………………………...5
4 软件设计方案………….………………………………………………………….6
4.1 程序流程图………….……………………………………………………….6
5 程序测试结果………….………………………………………………………….7
6 心得体会………….……………………………………………………………….8
参考文献………….…………………………………………………………………...9
附录………….……………………………………………………………………….10
附录A………….………………………………………………………………..10
附录B………….………………………………………………………………...11
附录C………….………………………………………………………………..12
1 绪论
1.1 设计本电子定时闹钟的目的和意义
复习和巩固所学过的知识,利用此设计可以对所学过的知识进行系统的回顾和总结;拓展知识面,主动去找寻更多的资料,了解更多的知识;培养了设计能力和解决实际问题的能力,同时增强了自学能力,通过设计完整的单片机系统也初步掌握了组成系统、编程、调试等能力。
1.2 MCS–51单片机介绍
单片机就是将计算机的基本部件集成到一块芯片上,包括CPU、ROM、RAM、并行口、串行口、定时器/计数器、中断系统、系统时钟及系统总线等。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
RST
RXD/P3.0
TXD/P3.1
INT0/P3.2
INT1/P3.3
T0/P3.4
T1/P3.5
WR/P3.6
RD/P3.7
XTAL2
XTAL1
V
SS
V
CC
P0.0/AD
0
P0.1/AD
1
P0.2/AD
2
P0.3/AD
3
P0.4/AD
4
P0.5/AD
5
P0.6/AD
6
P0.7/AD
7
EA/V
PP
ALE/PROG
PSEN
P2.7/A
15
P2.6/A
14
P2.5/A
13
P2.4/A
12
P2.3/A
11
P2.2/A
10
P2.1/A
9
P2.0/A
8
AT89C51
MCS-51系列单片机共有40条引脚,包括32条I/O接口引脚、4条控制引脚、2条电源引脚、2条时钟引脚。
引脚说明:
P0.0~P0.7:P0口8位口线,第一功能作为通用I/O接口,第二功能作为存储器扩展时的地址/数据复用口。
P1.0~P1.7:P1口8位口线,通用I/O接口无第二功能。
P2.0~P2.7:P2口8位口线,第一功能作为通用I/O接口,第二功能作为存储器扩展时传送高8位地址。
P3.0~P3.7:P3口8位口线,第
一功能作为通用I/O接口,第二功能作为为单片机的控制信号。
ALE/ PROG:地址锁存允许/编程脉冲输入信号线(输出信号)
PSEN:片外程序存储器开发信号引脚(输出信号)
EA/Vpp:片外程序存储器使用信号引脚/编程电源输入引脚
RST/VPD:复位/备用电源引脚
1.3 电子钟的主要功能
可以显示24小时制“时时-分分-秒秒”,可以方便的设定定时时间、修改定时时间,闹铃功能,预设定时时间到将发出闹铃声,能够修改时钟时间的时、分。
2 设计概要与总体方案
2.1 设计概要
使用51单片机提供精确定时,使用8段数码显示管显示时,分,秒,采用24小时制,具有调时闹钟功能。
2.2 硬件设计框架图
闹铃
电源
八段数码显示
P0
8051
单
片
机
-*
P2
P1.0-P1.3
控制键盘
图1.1 硬件设计框架图
2.3 总体设计方案说明
设计框架图如图1.1所示总共分为5小部分:时间显示部分,键盘控制部分,单片机部分,闹钟部分,电源部分。本设计各部分由统一电源集中供电,外加被用电源确保主电源断电时备用电源及时供电避免时间的丢失.采用12MHZ晶振为单片机提供时钟。显示部分采用容易购买的LED八段数码显示管 ,利用单片机输出高低电平实现数码管的刷新显示。LED具有显示明亮,容易识别,价格便宜等优点,特别适合时间的显示。按键部分采用普通的按建开关,使用查询方式从而节约元件。
3 设计原理与过程
3.1 显示模块
LED数码管显示器,每个显示器的段电极包括a, b, c, d, e, f, g,h八段,可以显示数字和简单的字符。
图1.2 数码管显示
3.2 键盘控制模块
按键中有一个复位键、调时加1键、调分加1键、闹钟键。从中选择s1—s4即可。
图1.3 键盘控制
3.3 最小系统模块
图1.4 最小系统
3.4 声音提示模块
蜂鸣器:89C52的P2口接了一个蜂鸣器,定时时间到, P1口输出一定频率脉冲时,蜂鸣器将发出响声;一分钟后停止。
4 软件设计方案
4.1 程序流程图
开始
否
是
闹钟时间
响铃
处理子程序
中断返回
计时程序
定时器中断
有输入
调用显示程序
初始化
图1.5 软件程序流程图
5 程序调试结果
图1.6 程序调试图
程序调试成功后导入单片机版中进行硬件调试,数码管显示时间,按键可对其调时并设定闹钟,闹钟时间到蜂鸣器发声,整个调试完成。
6 心得体会
此次的课程设计,我收获颇多,在课堂里都是学习理论,比较抽象,而这次的课程设计却是需要我们把理论用到实际中。在这个过程中,需要我们自己去琢磨,如何运用理论,如何形成一个完整的思路去完成整个设计,从而不断地提高自己,完善自己。通过此次设计,我感觉我学到了许多书本之外的东西。如:如何利用现有的设备通过整体地布局设计实现自己想要的结果,如何寻找错误,如何利用计算机来画图,如何理论联系实际等等。设计中我遇到了不少的挫折,有时遇到了错误,怎么找也找不出原因,最后在老师的帮助下才发现原来程序的某个小地方出现了问题,有了教训之后,后来在编写程序的过程中,我就特别地小心。硬件的调试对于我来说也是一个巨大的挑战,因为理论与实践总是存在着差距,想出来的东西没有经过实践的检验是不可靠的,任何一个小小的疏忽大意都能导致失败。比如说,因为P0口与其它口的区别,要在AT89C51单片机的P0口上驱动LED的显示必须加上上拉电阻,但是我们在拟订设计项目的过程中忽略了这一点,以至在调试的过程中没有达到原定的计划,即无法驱动LED发光。在查阅了大量的资料书并对实物进行详细的检查分析后,我们终于发现问题地所在并及时地解决了问题,之后再一次对硬件进行调试,终于成功了。这只是一个例子,在设计的过程中遇到的问题远远不止这一个。从这一方面来说,我认识到要做成一件事是很难的,其中必定有很多的阻碍,但是我们一定要慢慢来,一点一点地找出问题,再一点一点地解决它,这样的话,到达成功的彼岸也就仅仅是时间的问题了。我想,通过这次设计,特别是通过对硬件的制作而不单单是对原理的论述,我学到的不仅仅是电子方面的知识,更重要的是,我学到了作为一名电子设计者所必需的心理素质,那就是——决心加上耐心!
经过本次课题设计,我已了解了不少关于单片机的实用知识。我深感充实,同时也使我的能力进一步提高。为我以后能更好的适应社会工作打下一定的基础。在此过程中,辅导老师帮助了我很多,我忠心的感谢指导老师的帮助与鼓励。
参考文献
[1]李鸿等.单片机原理及应用[M].湖南大学出版社,2005.
[2]何立民.单片机高级教程---应用与设计[M].北京航空航天大学出版社,2000,8.
[3]戴佳.51单片机C语言应用程序设计实例精讲[M].北京:电子工业出版社,2006.
[4]于京. 51系列单片机C程序设计与应用案例[M].北京:中国电力出版社,2006.
[5]孙育才. ATMEL新型AT89S52系列单片机及其应用[M].北京:清华大学出版社, 2005.
[6]李华.MCS-51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,2000.
附录A 原理图
附录B PCB版图
附录C 总程序
#include<reg51.h>
#include<intrins.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char code dis[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,
0xBF,0x86,0xCB,0xCF};
uchar tt,con,i,disdata;
sbit beep=P3^4;
uchar key;
uchar key1,key2,key3,key4;
sbit p10=P1^0;
sbit p11=P1^1;
sbit p12=P1^2;
sbit p13=P1^3;
uchar h=0,m=0,s=0;
unsigned char _h=0,_m=0,_s=0;
void delay(uchar a)
{
unsigned char i,j;
for(i=0;i<a;i++)
for(j=0;j<110;j++)
;
}
void display( uchar a,uchar b,uchar c)
{
P2=0Xdf;
P0=dis[a/10];
delay(3);
P2=0Xef;
P0=dis[a%10];
delay(3);
P2=0Xf7;
P0=dis[b/10];
delay(3);
P2=0Xfb;
P0=dis[b%10];
delay(3);
P2=0Xfd;
P0=dis[c/10];
delay(3);
P2=0Xfe;
P0=dis[c%10];
delay(3);
}
void main()
{
uchar key;
TMOD=1;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
EA=1;
ET0=1;
TR0=1;
P1=0xff;
delay(1000);
h=9;
s=40;
_h=9;
_m=1;
while(1)
{
display(h,m,s);
if(!p11)
{
if(m++==59)
m=0;
delay(2000);
}
if(!p10)
{
if(h++==23)
h=0;
delay(2000);
}
if(!p12)
{
delay(1000);
while(1)
{
display(_h,_m,_s);
if(!p11)
{ if(_m++==59)
_m=0;
delay(2000);
}
if(!p10)
{
if(_h++==23)
_h=0;
delay(2000);
}
if(!p13)
{
break;
}
delay(40);
}
}
if(h==_h&&m==_m&&s==_s)
{
beep=1;
delay(100);
beep=0;
for(i=0;i<20;i++)
{
P2=0Xef;
P0=0x3f;
delay(2);
P2=0Xf7;
P0=0x3f;
delay(2);
P2=0Xfb;
P0=0x3f;
delay(2);
P2=0Xfd;
P0=0x3f;
delay(2);
delay(2);
}
}
if(tt==20)
{
tt=0;
s++;
if(s==60)
{
s=0;
m++;
if(m==60)
{
m=0;
h++;
if(h==24)
{
h=0;
}
}
}
}
}
}
void timer0() interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
tt++;
}
展开阅读全文