电子时钟的设计.docx

上传人:b****5 文档编号:6480553 上传时间:2023-01-06 格式:DOCX 页数:22 大小:226.74KB
下载 相关 举报
电子时钟的设计.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

电子时钟的设计

电子时钟的设计

摘要:

本设计主要基于AT89C51单片机的电子时钟设计,通过keil软件进行编程,根据设计的硬件电路来编写C语言程序,画出自己想要设计的电路图。

本设计采用7SED八位共阳极数码管来实现电子时钟的显示。

本系统将单片机AT89C51内部时钟读出冰通过八位数码管显示出来,通过按键设定的时间来改变闹钟的时间,单片机依据设定的时间来响铃,从而实现了系统的智能化。

基于这种情况,我多方查阅资料,反复论证设计出了这款既简单实用,又价格便宜的——单片机电子时钟。

 

 

关键词:

单片机;时钟;计时 

Abstract

This design uses  crystal to connect with the machine AT89C51, takes AT89C51 chips as core. It adopts the dynamic state of the scanning method to show. Using this MCU and 7407 drive electric circuit, we are able to show date, time, fix the time, make bell on 6 LED figures tubes. We can use 6 key to constitute date, adjust time, enact the bell and set the countdown timer. When the electric carrying out each function, the figures tube show the tight function .When the alarm clock and the countdown timer were reached, the voice begins. While 3 or 4 is pressed, the voice stops. The software part is realized by assembler language. It was divided into to show, delay, adjust, make bell, in fixed time etc. part. We get the end purpose combining the software and the hardware.   

Keywords:

 Electric clock  MCU  ;Dynamic state scaning;  assembler language 

 

1绪论

1.1课题研究的背景及意义

时间宝贵是我们每个人都知道的真理,亘古不变,然而工作的忙碌性和繁杂性很容易让人忘记当前的时间或是工作中不能及时方便地知晓时间。

交通上,火车汽车要准时到达,航班要准时起飞;在日常生活中,学校要求上学准时,公司召开的会议要求参加准时,重要约会要求到达准时;在工业生产中,许多工作环节都规定了精准的时间、间隔以及次序。

所以说,随时准确地知道时间并且利用时间是学习、工作、生活的必要要求。

单片机是一种集成电路芯片,它将各种功能集成到一块硅片上并且内含完善的微型计算机系统。

单片机自推出到现在已经发展了二十多年,应用领域有工业生产、通讯以及交通设备,还有办公自动化、PC机外围器件、汽车电子器件以及网络通讯等。

单片机的优点有集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等,所以本设计讨论的电子时钟系统就是利用单片机制成。

电子时钟与机械时钟相比具有很多优越性,首先,其主要特点是直观性,电子时钟可以通过数字显示反映出当前的时间。

其次在使用寿命方面,因为电子钟不是机械驱动,所以使用寿命更长。

然后在准确度方面,由于应用了电子集成电路和石英晶体振荡器,数字时钟的精准度远远超过了老式石英钟的石英机芯驱动。

最后,电子时钟还能大大扩展老式钟表的功能,在准确显示时间得基础上,还可借助单片机实现诸如闹铃、定时、自动报警等功能。

电子时钟的意义不仅仅在于反应时间本身,这个时间系统还可以当做一个单位模块应用于其他设备中,比如定时广播、定时开关烤箱、定时关闭路灯,以及其他各种定时电气的自动启用等设备,都是内嵌了电子时钟而实现其时间功能的。

因此,研究电字时钟及其拓展电路的应用,将会对以后研究其他自动化设备产生积极意义。

1.2国内外研究

时间计时的历史要从公元1300年前开始追溯,那时人们主要是利用天文现象或流动物质的连续性运动来计时。

我国天文学家张衡制造的漏水转浑天仪是最早出现的机械钟。

公元1350年,意大利的丹蒂制造出第一台机械打点塔钟,这是最简单的钟表。

公元1582年左右,意大利物理学家伽利略发明了重力摆。

18世纪到19世纪,钟表制造行业已逐步实现工业化大规模生产,并且已经达到了相当高的水平。

20世纪,随着资本主义工业化国家的高速发展,电子行业逐渐展露锋芒,尤其在20世纪末,电子技术飞速发展,使全球进入一个信息化新时代,在这个趋势下,新兴的电子产品几乎渗透到我们生产生活的各个部分。

与此同时,现代电子产品的性能一步步提升,电子产品更新换代的速度也越来越快。

我国钟表行业的发展则经历了古代、近代、现当代。

1949年以前,我国还没有手表制造业,1949年以后开始了我国钟表行业的发展;六十年代时,我国还是计划经济模式,全国化大生产,由国家投资,生产的全都是机械表;到了七十年代到八十年代,随着国际电子技术的发展,我国电子表也跟上步伐,猛烈冲击了传统的机械钟表所占的全国垄断的形势;九十年代,石英钟表发展已基本完善,基本统一了我国的钟表市场。

时至今日,石英技术在计时领域大放异彩,各种计时工具大多采用了石英晶体振荡器。

1.3电子时钟概述

如今,电子时钟形态各异,种类繁多,有微型、嵌入型的电子时钟,也有悬挂在公共场合的大型电子表,这些电子表大都外形美观,而且拓展了不少功能。

由于单片机可以很容易实现芯片的智能化,所以在电子钟的基础上,人们可以根据自己的需要以及场合要求添加不同的附加功能。

需要整点报时可添加蜂鸣器,需要测量环境温度可以添加温度传感器,或者检测空气质量、空气湿度等,也可以设置定时闹铃功能甚至还可以添加USB端口读取其他设备数据。

2电子时钟设计方案

2.1系统功能实现总体设计思路

此设计原理框图如图2-1所示,此电路包括以下四个部分:

单片机,键盘,闹铃电路及显示电路。

闹铃电路

图2-1设计原理框图

经多方论证硬件我们小组采用AT89C51单片机和7SED八位共阳极数码管等来实现单片机电子时钟的功能。

详细元器件列表如表2.1所示:

 

表2.1详细元器件列表

AT89c51

1片

7SED八位共阳极数码管

1片

NPN三极管

1个

104p电容

6个

30p电容

2个

10K电阻

6个

560欧姆电阻

8个

200欧姆电阻

1个

100欧姆电阻

6个

2.2系统电路

设计的电路主要由四模块构成:

单片机控制电路,显示电路、闹铃电路以及校正电路。

详细电路功能图如图2-2:

图2-2详细电路功能图

本设计采用C语言程序设计,使单片机控制数码管显示时、分、秒,当秒计数计满60时就向分进位,分计数器计满60后向时计数器进位,小时计数器按“23翻0”规律计数。

时、分、秒的计数结果经过数据处理可直接送显示器显示。

当计时发生误差的时候可以用校时电路进行校正。

设计采用的是时、分、秒显示,单片机对数据进行处理同时在数码管上显示。

2.3时钟各功能分析及图解

2.3.1电路各功能图解分析

(1)时钟运行图

仿真开始运行时,按下key1键进入秒表计时状态,key6是秒表暂停键,可按key4键跳出秒表计时状态

时钟运行图如图2-3所示:

图2-3秒表计时图

(2)秒表计时图

按下key4键时,时钟从12:

00:

00开始运行,其中key2键对分进行调整,key3对小时进行调整,key6可以让时钟暂停。

如图2-4:

 

图2-4时钟运行图

(3)闹铃设置图及运行图

当按下key5,开始定时,分别按key2调分,key3调时设置闹铃时间,然后按下key4键恢复时钟运行状态(图2-5)当闹铃设置时间到时,蜂鸣器将发出10秒中蜂鸣声(图2-6)。

图2-5闹铃时间设置图

图2-6闹铃运行图

该数字钟是用一片AT89C51单片机通过编程去驱动8个数码管实现的。

通过6个开关控制,从上到下6个开关KEY1-KEY6的功能分别为:

KEY1,切换至秒表;KEY2,调节时间,每调一次时加1;KEY3,调节时间,每调一次分加1;KEY4,从其它状态切换至时钟状态;KEY5,切换至闹钟设置状态,也可以对秒表清零;KEY6,秒表暂停.控制键分别与P1.0~P1.5口连接.其中:

1)通过P2口和P3口去控制数码管的显示如图所示P2口接数码管的a——g端,是控制输出编码,P3口接数码管的1——8端,是控制动态扫描输出.

2)从P0.0输出一个信号使二极管发光,二极管在设置的闹钟时间到了时候发光,若有乐曲可以去驱动扬声器实现。

2.4.2电路功能使用说明

(1)各个控制键的功能:

可对时间进行校准调节(只能加1);按下设置键数字时钟进入闹钟设置状态,设置闹钟的时间;时加1、分加1键是在校准时间时或设置闹钟时间对小时数或分钟数调节而设置的;按下秒切换键就可以进入秒表模式,同时秒表也开始计时,按下秒表暂停、复位键就暂停、归零,如果要重新对秒计时则可以按秒表开始、复位;清零键可以对闹钟清零。

(2)AT89C51单片机,通过编写程序对数码显示进行控制。

(3)八个7段数码管显示时钟和秒表信号。

 

3软件总体设计方案

3.1主程序流程图

软件程序从开始执行,先通过初始化各个寄存器,经过扫描按键来决定是否设定参数来执行相应功能的程序,进而在数码管上显示。

如图3-1:

 

图3-1主程序流程图

 

 

3.2总中断程序流程

 

 

 

图3-2中断流程图

时间的显示通过此中断程序来控制,并且通过与设定的时间进行比较来判断是否让闹铃工作。

程序中包含时间的设定,如设定tcount来使秒等工作,进而来控制分和时。

如上图图3-2。

1)秒表中断程序流程

秒表功能通过另一个程序来实现。

通过保护主程序的数据来进行秒表功能。

程序中需要设置秒表的具体显示方法。

如图3-3:

N

Y

N

Y

 

图3-3秒表中断程序流程图

 

2)按键程序流程

图3-4为时钟和闹钟的调节,程序中通过扫描来判断按键是否按下进行时间和闹钟的调节。

 

图3-4按键程序流程图

 

图3-5为进入中断和清零图,程序中通过扫描来判断按键是否按下进行执行相应的中断来事实现相应的功能。

 

图3-5中断和清零程序流程图

4毕业设计结果分析

此时钟设计是利用protues仿真软件进行仿真,基本上实现了课程设计要求实现的功能。

硬件部分设置了的六个按键。

当按键一按下时,进入秒表显示状态,秒表开始计时,当按键六按下时,秒表暂停;当按键四按下时恢复到时间显示功能;当按键二按下时,进入调分状态,按一次,分加一,60一循环;按键三按下时,进入调时状态,按一次,时加一,60一循环;按键五按下时,进入闹铃设置功能,紧接着按下按键二和按键三进行时和分的设置,再按下按键4恢复显示时间,当显示的时间和定时设置的时间一致时,蜂鸣器发出蜂鸣声,蜂鸣时间我们设置为10秒。

另外,闹铃电路有音乐闹钟的扩展的功能(可以将蜂鸣器换成扬声器再加一段音乐程序即可实现)。

调试阶段,出现一些问题。

比如,实际小时显示到29才归零,分钟显示到60才进一……经过软件调试,以上问题均一一排除,结果达到预期目标。

但时间有限,部分扩展功能不能及时实现,比如音乐闹铃。

5总结

功能上基本达标:

时钟的显示,秒表显示,定时功能,调时功能。

时钟显示功能,精确度完全可以满足日常生活显示时间的需要;秒表功能,可以满足比赛计时的需要;调时功能,方便快捷;定时功能准确可靠,还有扩展成音乐闹钟的余地。

硬件设施合乎要求,软件设计可以配合硬件实现要求功能。

但是由于时间比较短,出现部分不足:

使用定时和秒表功能时时间显示功能停止运行。

经讨论只是软件部分还不完善。

不过,我们相信,如果时间充足,将软件改进,我们完全可以很好实现所有功能。

另外,在本次设计的过程中,我发现很多的问题,虽然以前没有做过这样的设计但通过这次设计我学会了很多东西,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉得写好一个程序并不是一件简单的事,比如写一个程序看其功能很少认为编写程序简单,但到编的时候才发现一些细微的知识或低级错误经常犯做不到最后常常失败,所以有些东西只有学精弄懂并且要细心才行,只学习理论有些东西是很难理解的,更谈不上掌握。

从这次的论文设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的练习的过程中才能提高,我想这就是我在这次论文设计中的最大收获。

参考文献

[1]李叶紫.王喜斌.胡辉.孙东辉.编著MCS_51单片机应用教程清华大学出版社.2008.6.

[2]陆剑.单片机应用技术指导书河南工业职业技术学院2005.12.

[3]汪道辉.单片机系统设计与实践.电子工业出版社

(50页时、分、秒计时器设计,59页键盘及接口技术).

[4]第二版.51系列单片机设计实例.北京航空航天大学出版社(81—89页数码管时钟电路的设计).

[5]辛友顺、胡永生、薛小玲.单片机应用系统设计与实现.福建科学技术出版社(184-186页LED显示接口,190-193页键盘接口).

[6]黄庆华、张永格.单片机开发与实例.电子工业出版社(127-162页数字式电子时钟的设计).

[7]闫玉德、俞红.MCS-51单片机原理与应用(C语言版).机械工业出版社(49-104页单片机的C程序设计).

[8]求是科技.单片机典型模块设计实例导航.人民邮电出版社(85-90页单片机数字时钟).

[9]刘守义,王静霞。

《单片机应用技术》.西安电子科技大学出版社,2002.

[10]李振军.电路设计基础与典型范例[M].北京:

电子工业出版社.2008.01.

 

致谢

三年的时间眨眼间即过,大一入学的时候仿佛就发生在昨天,这三年收获了很多,也明白了很多,感谢母校对我三年的培养。

写完论文意味着这三年的大学生活即将踏入尾声,以后不知何时才能回到母校。

我也感谢我们辅导老师对我的指导,纠正了我许多错误,同时也感谢我宿舍的哥们,帮助了我很多。

在和他的交流中,自己同时也学到了很多东西,让我感觉受益匪浅。

最后要感谢我的家人以及

我的朋友们对我的理解、支持、鼓励和帮助,正是因为有了他们,我所做的一义;也正是因为有了他们,我才有了追求进步的勇气和信心。

时间的仓促及自身专业水平的不足,整篇论文肯定存在尚未发现误阅读此篇论文的老师、同学,多予指正,不胜感激!

 

附录

根据流程图,经过认真分析得出控制电路的源程序如下

#include

#defineucharunsignedchar

#defineuintunsignedint

#definedelay_time3/*宏定义*/

uchark,dat[]={0,0,0,0,0,0,0,0};

uinttcount,t,u;

uchardat1[]={0,0,0,0,0,0,2,1};

uchardat2[]={0,0,0,0,0,0,0,0};

ucharalarms[]={0,0,0,0,0,0,0,0};

uchardis_bit[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};

unsignedcharcodeSEG7[11]={0xC0,/*0*/0xF9,/*1*/0xA4,/*2*/0xB0,/*3*/0x99,/*4*/0x92,/*5*/0x82,/*6*/0xF8,/*7*/0x80,/*8*/0x90,/*9*/0xBF,/*-*/

};/*数字显示数组*/

sbitmiaobiao1=P1^0;

sbittminute=P1^1;

sbitthour=P1^2;

sbitmiaobiao2=P1^3;

sbitalarm=P1^4;

sbitP0_0=P0^0;

sbitP1_5=P1^5;

sbitP1_6=P1^6;

sbitP1_7=P1^7;/*端口定义*/

ucharms=0;

ucharflag=0;

ucharsec=0;

ucharminit=0;

structtime{ucharsecond;ucharminute;ucharhour;}time1;

ucharn,i;

voiddelay(n)

{while(n--)

{

for(i=120;i>0;i--);

}

}

/*延时子程序*/

voidmodify(void)

{

EA=0;

if(thour==0)

{

if(flag==0)

{

dat1[6]++;delay(280);

if(dat1[6]>9)

{

dat1[6]=0;

dat1[7]++;

}

elseif((dat1[7]>1)&&(dat1[6]>3))

{dat1[7]=0;dat1[6]=0;}

}

if(flag==1)

{

alarms[6]++;delay(300);

if(alarms[6]>9)

{

alarms[6]=0;alarms[7]++;

if(alarms[7]>2)

{

alarms[7]=0;

}

}

dat[6]=alarms[6];

dat[7]=alarms[7];

}

}

if(tminute==0)

{

if(flag==0)

{

dat1[3]++;delay(280);

if(dat[3]>=9)

{

dat1[4]++;dat1[3]=0;

if(dat1[4]>5)

{

dat1[4]=0;

}

}

}

if(flag==1)

{

alarms[3]++;delay(300);

if(alarms[3]>9)

{

alarms[4]++;alarms[3]=0;

if(alarms[4]>5)

{

alarms[4]=0;

}

}

dat[3]=alarms[3];

dat[4]=alarms[4];

}

}

if(miaobiao1==0)

{TR0=0;ET0=0;TR1=1;ET1=1;

}

if(miaobiao2==0)

{

TR0=1;ET0=1;TR1=0;ET1=0;

dat2[0]=0;

dat2[1]=0;

dat2[3]=0;

dat2[4]=0;

dat2[6]=0;

dat2[7]=0;

ms=0;

sec=0;

minit=0;

}

if(P1_5==0)

{

TR0=0;ET0=0;TR1=0;ET1=0;

}

if(alarm==0)

{

TR0=0;ET0=0;TR1=0;ET1=0;flag=1;

dat[0]=0;

dat[1]=0;

dat[2]=10;

dat[3]=0;

dat[4]=0;

dat[5]=10;

dat[6]=0;

dat[7]=0;

}

EA=1;

}/*按键扫描*/

voidinit(void)

{

TMOD=0x11;

TH0=0xDB;

TL0=0xFF;

TH1=0xDB;

TL1=0xFF;

ET0=1;//10ms

ET1=1;

//TR1=1;

TR0=1;

tcount=0;

ms=0;

sec=0;

minit=0;

EA=1;

}/*初始化*/

voidtest(void){

for(k=0;k<8;k++)

{

P3=dis_bit[k];

P2=SEG7[dat[k]];delay

(1);

P3=0X00;

}

}/*数字显示*/

voidmain()

{init();

delay(10);

while

(1)

{

modify();

test();

}

}/*主函数*/

Voiddiplay()interrupt1

{

ET0=0;

TR0=0;

TH0=0xDB;

TL0=0xff;

TR0=1;

tcount++;

if(tcount==100)

{

time1.second++;

tcount=0;

dat1[0]=(time1.second)%10;

dat1[1]=(time1.second)/10;

}

if(time1.second==60)

{dat1[0]=0;dat1[1]=0;

time1.second=0;

time1.minute++;

dat1[3]=(time1.minute)%10;

dat1[4]=(time1.minute)/10;

}

if(time1.minute==60)

{

time1.minute=0;

time1.hour++;

dat1[6]=time1.hour%10;

dat1[7]=time1.hour/10;

}

if(time1.hour>23)

{

time1.hour=0;

}

dat[5]=10;

dat[2]=10;

dat[0]=dat1[0];

dat[1]=dat1[1];

dat[3]=dat1[3];

dat[4]=dat1[4];

dat[6]=dat1[6];

dat[7]=dat1[7];

flag=0;

P0=0x01;

if((alarms[7]==dat1[7])&&(alarms[6]==dat1[6])&&(alarms[4]==dat1[4])&&(alarms[3]==dat1[3])&&(dat1[1]<1))

{

P0=0x00;

}

ET0=1;

}

voidtime_2(void)interrupt3

{

EA=0;

TR0=0;

TH1=0xDB;

TL1=0xFF;

TR1=1;

ms++;

dat2[0]=ms%10;

dat2[1]=ms/10;

if(ms>=100)

{

ms=0;

sec++;

dat2[3]=sec%10;

dat2[4]=sec/10;

if(sec>=60)

{

sec=0;

minit++;

dat2[6]=minit%10;

dat2[7]=minit/10;

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

当前位置:首页 > 工程科技 > 能源化工

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

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