电子钟说明书Word格式文档下载.docx
- 文档编号:17043599
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:46
- 大小:774.54KB
电子钟说明书Word格式文档下载.docx
《电子钟说明书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《电子钟说明书Word格式文档下载.docx(46页珍藏版)》请在冰豆网上搜索。
可作为产品生产,作为居家的时钟显示与温度计。
二.电子时钟
2.1电子时钟简介
1957年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟开始迅速发展起来。
现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。
从而达到计时的功能,是人民日常生活补课缺少的工具。
2.2电子时钟的基本特点
现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间和日期,减小了误差,这种表具有时、分、秒显示时间的功能和年月日显示日期的功能,还可以进行校对,片选的灵活性好。
2.3电子时钟的原理
该电子时钟由AT89C51,74LS373,BUTTON,数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天,满三十天(闰年二月满二十九天,平年二月满二十八天)为一个月,满十二个月为一年。
电路中的键控1实现“年”和“分”的调节,键控2实现“月”和“时”的调节,键控3实现“日”和“分”的调节。
每按一次就加一。
三.单片机识的相关知识
3.1单片机简介
单片机全称为单片机微型计算机(SingleChipMicrosoftputer)。
从应用领域来看,单片机主要用来控制,所以又称为微控制器(MicrocontrollerUnit)或嵌入式控制器。
单片机是将计算机的基本部件微型化并集成在一块芯片上的微型计算机。
。
3.2单片机的特点
1.单片机的存储器ROM和RAM时严格区分的。
ROM称为程序存储器,只存放程序,固定常数,及数据表格。
RAM则为数据存储器,用作工作区及存放用户数据。
2.采用面向控制的指令系统。
为满足控制需要,单片机有更强的逻辑控制能力,特别是单片机具有很强的位处理能力。
3.单片机的I/O口通常时多功能的。
由于单片机芯片上引脚数目有限,为了解决实际引脚数和需要的信号线的矛盾,采用了引脚功能复用的方法,引脚处于何种功能,可由指
令来设置或由机器状态来区分。
4.单片机的外部扩展能力很强。
在内部的各种功能部件不能满足应用的需求时,均可在外部进行扩展,与许多通用的微机接口芯片兼容,给应用系统设计带来了很大的方便。
3.3AT89C51单片机介绍
VCC:
电源;
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的
输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
四.控制系统的硬件设计
4.1单片机型号的选择
通过对多种单片机性能的分析,最终认为89C51是最理想的电子时钟开发芯片。
89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,而且它与MCS-51兼容,且具有4K字节可编程闪烁存储器和1000写/擦循环,数据保留时间为10年等特点,是最好的选择。
4.2DS1302时钟芯片简介
DS1302是美国DALLAS公司推出的一种高性能、低功耗的具有涓流充电功能的实时时钟芯片。
因具有其价格低廉、性能稳定的优点而被广泛应用于对时间精度有较高要求的各种智能化仪器仪表中。
DS1302实时时钟芯片的主要性能特点:
1.1实时时钟/日历电路可提供秒、分、时、日、星期、月和年的信息,当某个月小于31天时可以自动调整,且具有闰年补偿功能1.2内含31字节静态RAM1.3采用SPI总线与CPU进行通信,只需要三个口线:
(1)RST(复位线),
(2)I/O(数据线),(3)SCLK(串行时钟线)1.4双电源(主电源和备用电源)供电,保证系统掉电时间数据不丢失,可设置备用电源涓流充电功能1.5电压宽度可达2.0~5.5V1.6体积小,8脚DIP封装或8脚SOIC封装DS1302引脚分配图如图
(2)所示
4.3LCD1602液晶模块简介
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5×
7或者5×
11点阵字符位组图(3)LCD1602引脚分配图成,每个点阵字符位都可以显示一个字符。
模块采用数字式接口,能够方便地与单片机等控制类芯片进行通信。
由于其具有体积小、重量轻、显示质量高、功耗低等诸多优点而被广泛用于智能化仪器仪表的显示器件。
LCD1602引脚分配图各引脚功能为:
1(VSS)电源地
2(VCC)+5V电源
3(VO)液晶对比度调节端
4(RS)数据/命令选择端
5(R/W)读/写选择端
6(E)使能信号端
7~14(DB0~DB7)八位双向数据总线
15(BLA)背光源正极
15(BLK)背光源负极
4.4电路设计原理图
4.5电路仿真图
按设置键设置所需要调节的年,月,日,时,分,秒
加减键调节所需要的时间和日期
查看农历闹钟键可以查看农历时间,并发出用蜂鸣器警报
五.控制系统的软件设计
5.1主程序流程图
5.2程序清单
备注:
见附录
5.3仿真结果图
六.
单片机效果图
七.总结
进过不懈的努力,我顺利完成了这次单片机课程设计课题中的个性化电子时钟设计,本次仿真总的来说是实现了预期的效果。
功能还不够完善,设计还比较简单。
不过通过此次设计我们还是学会了不少东西。
首先,学会了keil和proteus软件。
然后,由于此次程序是用C语言编写的,以前的C语言知识的到了巩固。
同时,我们还领悟到了独自学习的重要性。
通过这次的设计使我认识到本人对单片机方面的知识知道的太少了,对于书本上的很多知识还不能灵活运用,尤其是对程序设计语句的理解和运用,不能够充分理解每个语句的具体含义总的来说,本次的设计使我从中学到了最重要的东西,那就是如何从理论到实践的转化,怎样将我所学到的知识运用到我以后的工作中去。
在大学的课堂的学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的生活中去,此次的电子时钟设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应于以后的竞争,同时在查找资料的过程中我也学到了许多新的知识,在和同学协作过程中增进同学间的友谊,使我对团队精神的积极性和重要性有了更加充分的理解。
最后,我觉得应该感谢李京兵老师在平时课堂上的启发。
使得我们在课程设计过程中,巩固和学习了单片机知识。
相信这对我以后的课程设计和毕业设计将会有很大的帮助!
参考文献
[1]X乐善等.微型计算机接口技术及应用.XX:
华中科技大学,2009.[2]胡汉才.单片机原理及其接口技术.:
清华大学,2009.
[3]李秉操等.单片机接口技术及在工业控制中的应用.XX:
XX电子编辑部,1991
附录
#include<
reg52.h>
//#include"
DS18B20_3.H"
#include<
string.h>
intrins.h>
#defineuintunsignedint
#defineucharunsignedchar
#definewd1
#defineyh0x80(100000000=80)
#defineer0x80+0x40
sbiten=P2^7;
sbitrw=P2^6;
sbitrs=P2^5;
sbitset=P3^0;
sbitadd=P3^1;
sbitdec=P3^2;
sbitseeNL_NZ=P3^3;
sbitDQ=P3^7;
sbitbuzzer=P2^0;
sbitled=P2^4;
bitled1=1;
bitZDK=1,NZK=1;
bitzdkg=0,nzkg=0;
unsignedchartemp_miao;
unsignedcharbltime;
sbitIO=P1^1;
sbitSCLK=P1^0;
sbitRST=P1^2;
uchara,miao,shi,fen,ri,yue,nian,week,setn,temp;
uintflag;
bitc_moon;
ucharnz_shi=12,nz_fen=0,nz_miao=0,setNZn;
ucharshangyimiao,bsn,temp_hour;
ucharT_NL_NZ;
bittimeron=0;
bitbaoshi=0;
bitp_r=0;
dataucharyear_moon,month_moon,day_moon,week;
sbitACC0=ACC^0;
sbitACC7=ACC^7;
ACC
ACC.0=E0H
codeucharyear_code[597]={
0x04,0x97,0x4f,//1991
0x06,0x4B,0x44,//1992
0x36,0xA5,0x37,//1993
0x0e,0xA5,0x4A,//1994
0x86,0xB2,0xBf,//1995
0x05,0xAC,0x53,//1996
0x0A,0xB6,0x47,//1997
0x59,0x36,0xBC,//1998
0x09,0x2e,0x50,//1999294
0x0C,0x96,0x45,//2000297
0x4d,0x4A,0xB8,//2001
0x0d,0x4A,0x4C,//2002
0x0d,0xA5,0x41,//2003
0x25,0xAA,0xB6,//2004
0x05,0x6A,0x49,//2005
0x7A,0xAd,0xBd,//2006
0x02,0x5d,0x52,//2007
0x09,0x2d,0x47,//2008
0x5C,0x95,0xBA,//2009
0x0A,0x95,0x4e,//2010
0x0B,0x4A,0x43,//2011
0x4B,0x55,0x37,//2012
0x0A,0xd5,0x4A,//2013
0x95,0x5A,0xBf,//2014
0x04,0xBA,0x53,//2015
0x0A,0x5B,0x48,//2016
0x65,0x2B,0xBC,//2017
0x05,0x2B,0x50,//2018
0x0A,0x93,0x45,//2019
0x47,0x4A,0xB9,//2020
0x06,0xAA,0x4C,//2021
0x0A,0xd5,0x41,//2022
0x24,0xdA,0xB6,//2023
0x04,0xB6,0x4A,//2024
0x69,0x57,0x3d,//2025
0x0A,0x4e,0x51,//2026
0x0d,0x26,0x46,//2027
0x5e,0x93,0x3A,//2028
0x0d,0x53,0x4d,//2029
0x05,0xAA,0x43,//2030};
codeucharday_code1[9]={0x0,0x1f,0x3b,0x5a,0x78,0x97,0xb5,0xd4,0xf3};
codeuintday_code2[3]={0x111,0x130,0x14e};
)
bitget_moon_day(ucharmonth_p,uinttable_addr)
{uchartemp;
switch(month_p){
case1:
{temp=year_code[table_addr]&
0x08;
if(temp==0)return(0);
elsereturn
(1);
}
case2:
0x04;
case3:
0x02;
case4:
0x01;
case5:
{temp=year_code[table_addr+1]&
0x80;
if(temp==0)return(0);
case6:
0x40;
case7:
0x20;
case8:
0x10;
case9:
case10:
case11:
case12:
case13:
{temp=year_code[table_addr+2]&
}}}
voidConversion(bitc,ucharyear,ucharmonth,ucharday)
{uchartemp1,temp2,temp3,month_p;
uinttemp4,table_addr;
bitflag2,flag_y;
temp1=year/16;
temp2=year%16;
//year=temp1*10+temp2;
year=temp1*16+temp2;
temp1=month/16;
temp2=month%16;
//month=temp1*10+temp2;
month=temp1*16+temp2;
temp1=day/16;
temp2=day%16;
//day=temp1*10+temp2;
day=temp1*16+temp2;
if(c==0){
table_addr=(year+0x64-1)*0x3;
else{table_addr=(year-1)*0x3;
}
temp1=year_code[table_addr+2]&
0x60;
temp1=_cror_(temp1,5);
temp2=year_code[table_addr+2]&
0x1f;
if(temp1==0x1){
temp3=temp2-1;
}
else{temp3=temp2+0x1f-1;
if(month<
10){
temp4=day_code1[month-1]+day-1;
else{temp4=day_code2[month-10]+day-1;
if((month>
0x2)&
&
(year%0x4==0)){
temp4+=1;
if(temp4>
=temp3){
temp4-=temp3;
month=0x1;
month_p=0x1;
flag2=get_moon_day(month_p,table_addr);
flag_y=0;
if(flag2==0)temp1=0x1d;
//小月29天
elsetemp1=0x1e;
//大小30天
temp2=year_code[table_addr]&
0xf0;
temp2=_cror_(temp2,4);
while(temp4>
=temp1){
temp4-=temp1;
month_p+=1;
if(month==temp2){
flag_y=~flag_y;
if(flag_y==0)month+=1;
elsemonth+=1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子钟 说明书