基于单片机的电子日历系统设计与实现Word格式文档下载.docx
《基于单片机的电子日历系统设计与实现Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子日历系统设计与实现Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
![基于单片机的电子日历系统设计与实现Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-9/30/8fd7fdfd-3aec-42b2-8a9c-b8c7467704ff/8fd7fdfd-3aec-42b2-8a9c-b8c7467704ff1.gif)
该电子日历系统基于AT89c52系列单片机,由数码管、三极管、电阻、开关等相关元器件及必要电路构成,单片机通常所用的晶振驱动电路更加准确,非常适合在电子日历设计中使用。
具有体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易等优点。
3系统模块
从系统结构来看,分别由AT89c52单片机模块、数码管显示模块、时钟模块和外围电路模块组成。
每个模块独立工作,在AT89c52单片机的控制下,可以实现电子日历显示功能。
3.1计时原理介绍
电子日历系统计时功能基于51单片机的内部计时器完成,经过相关资料和多次测试,设置一个计数初值,单片机的完成该计数的时间为1秒。
由延时程序和循环程序产生的一秒定时,继而达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。
以此类推,完成天、时、分、秒的计数。
3.2系统模块
电子日历系统主要以AT89c52单片机作为主控制模块,通过控制程序的运行,完成对数码管显示模块的控制,完成时间的显示。
如下图所示:
图1系统模块图
3.2.1AT89C52主控制模块
AT89c52是一个低电压,高性能CMOS的8位单片机,片内含8Kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机数据存储器(RAM)。
拥有高密度、非易失性存储,兼容MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。
AT89c52工作原理:
AT89c52为8位通用微处理器,事用C51内核制作,内部的功用以及引脚排布上与通用8xc52相同,其主要用于会聚调整的功能控制。
功能囊括对会聚IC内部寄存器和RAM随机数据存储器及外部接口等功能部件的初始化,对会聚测试图控制,对红外遥控信号IR的接收解码及与主板CPU通讯等等。
重要引脚有:
XTAL1(19脚)和XTAL2(18脚)为振荡器的输入输出端口,外接12MHz晶振。
RST(9脚)为复位输入的端口,外接电阻电容成构复位电路。
P0-P3为可编程通用输入输出/0脚,其功能用途由软件定义,在本设计中,P0端口(32-39W)被定义为N1功能控制的端口,分别与N1的相应功用的管脚相连接,此外连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。
控制模块是系统的核心模块,完成系统的指令控制和数据处理。
AT89c52单片机引脚图如下:
图2AT89C52引脚使用图和实物图
3.2.2数码管模块
1602LCD液晶显示屏,它是一种特意用来显示字母、数字、符号等的点阵型液晶模块。
数码管模块的主要功能是完成电子日历系统正常工作时的时间显示工作。
这里数码管模块的显示原理是以电流刺激液晶分子,产生了的点配合背部的灯管构成的画面。
从而可以完成时间的正常显示功能。
数码管模块一共有1602LCD24个引脚,分为位控制和段控,所谓位控制端口就是对于单字数码管的控制,所谓段控制就是单个数码管上的8个字段控制。
8个位控制端口,分别对应89C52单片机P2.0-P2.7端口。
16个位控制端口,两两共用89c52单片机PO.O-PO.7端口。
其中,段控制中的dp断(P0.5)不使用,即在整个程序过程中,该段一直置低电平状态。
在AT89C52单片机PO.0-P0.7端口接数码管模块的段控制的线路上,接入了一个1k的上拉电阻,这也是由于单片机P0端口的输出电流较小,不足以点亮数码管,接入上拉电阻后,使通过数码管的电流增大,点亮数码管正常工作。
实物图与引脚图如下:
图31602LCD实物图
1602LCD选用标准的16引脚(无背光)或16引脚(带背光)接口,各引脚接口声明见下表:
两组电源,一组是模块电源,一组是背光板电源均为5V供电;
VL是调节对比度的管脚调节此脚上的电压能够改变黑白对比亮度;
RS是很多液晶上都有的管脚,指的是命令/数据选择引脚,当该脚电平表示为高电平时代表将进行数据操作;
表现为低电平时代表进行命令操作;
RW是液晶上有的管脚,表示的是读写选择端,该脚电平表现为高是表示要对液晶进行读操作,为低时表示要进行写操作;
E一样是不少液晶模块都有此引脚,通常在总线上的信号稳定后给一正脉冲通知要把数据读走,在此脚为高电平的时候总线是不容许变化;
D0-D7是一个8位双向数据端口,用来传输命令和数据;
BLA是背光源正极,BLK是背光源负极。
控制器接口说明,基本操作时下表:
表4基本操作时序
读状态
输入
RS=L,R/W=H,E=H
输出
D0〜D7=状态字
写指令
RS=L,R/W=L,DO〜口7=指令码,£
=高脉冲
无
读数据
RS=H,R/W=H,E=H
D0〜D7=数据
写数据
RS=H,R/W=L,DO〜D7=数据,E=高脉冲
对此液晶操作重要命令有写命令(包括但不限于初始化、调节显示位置、清除显示),写数据(把一个字符的ASC码写入液晶使其显示),读忙信号(液晶乃低速设备,每一次操作前应当是测试忙信号,确定其不忙时再操作)。
1602液晶通过D0到D7的8位数据端发送数据和指令。
液晶显示模式在电动模式时需要初始化典型的指令码是38H,也就是开机时需要调用voidwrite_cmd(无符号)这个函数编写指令码,使用的是write_cmd(0x38h);
执行完这以后个函数能够把液晶初始化成16x2显示5x7的点阵8位总线接口。
与单片机的连接方式,如图下图所示:
图51602LCD与单片机的连接电路图
3.2.3DS1302时钟模块
DS1302是DALLAS公司推出的利用涓流充电时钟芯片,在内部中含有一个实时时钟/日历和31字节静态随机存储器(SRAM),经过简一的串行接口线路与单片机进行通讯的实时时钟/日历电路。
提供年月日时分秒,每一个月天数和每个闰年的天数可自动调整时钟运行,通过AM/PM指示决定采用24或者12小时格式。
DS1302与单片机之间可以简单地选用同步串行的方法进行通讯,仅需用到三个线口:
1RES复位,2个串行I/O数据线,3SCLK串行时钟.时钟/RAM的读/写数据是以一个字节或者多达31字节的字符组成方法.DS1302工作时功耗低教低,保持数据和时钟信息时总功率小于ImW.单片机会从时钟芯片内部相应寄存器读取相应的时间信息,然后驱动液晶显示。
DS1302时钟电路图如下图所示:
图6DS1302时钟电路图
管脚描述如下:
XLX2,晶振管脚;
GND接地;
RST复位脚;
I/O数据输入/输出引脚;
SCLK串行时钟;
Vccl,Vcc2电源供电管脚。
3.2.4外围电路模块
外围电路主要是AT89c52单片机正常工作时的必要电路。
其中包括晶振电路、复位电路、电源电路、排阻电路等等。
晶振电路主要是给单片机提供工作信号脉冲。
单片机每条指令的运行都是严格按照机器周期来执行的,机器周期就是由晶振电路提供的。
复位电路,就是利用它把电路恢复到起始状态,单片机的复位电路,按一下按键,程序从头开始执行。
这里采用最简单的电容和电阻组合的成的上电复位电路。
电源电路是给系统提供能量供应的外围电路,这里采用的是外接电源和内置电池两种方式提供电流。
排阻电路,作为上拉电阻。
由于51单片机特殊的结构,P0口为开漏状态,不能正常输出1或0的逻辑电平,将电平提升到电源的电平才能被其他数字原件读取,否则无法对其他原件下达命令。
图7晶振电路图
此晶振选择频率为12MHZ,电容选择22pF如上图。
经计算得单片机工作机器周期为:
12X(14-12M)=luso
因为从正常电压P0口输出的功率过高,但电流很小,小于正常驱动外部电路,所以要接一只电阻辅助驱动,输出代电平时,P0口就把这只电阻提供的电能全部吸收,使引脚为低电平。
4原理图设计
电子日历系统原理图如下图所示,包含四大独立工作模块原理图,即AT89c52主控制模块、数码管模块、时钟芯片模块、外围电路模块。
四个模块整合于一体,通过程序的控制,可进行正常系统工作。
根据各模块电路绘制出系统原理图如下图:
图10系统原理图
5程序设计
5.1源程序设计
源程序设计如下:
include<
REGX52.H>
includeHLCD1602.hH〃包含LCD1602初始化头文件include"
DS1302.hn //包含DS1302初始化头文件
voidDelay1ms(unsignedintcount)〃延迟函数(unsignedinti,j;
for(i=0;
i<
count;
i++)for(j=0;
j<
120;
j++);
)
main() 〃主程序
(SYSTEMTIMECurrentTime;
LCD」nitial();
InitiaLDS1302();
GotoXY(0,0);
Print(nDate:
"
);
GotoXY(0,l);
Print(HTime:
while(l)
DS1302_GetTime(&
CurrentTime);
//DS1302获取系统时间
DateToStr(&
TimeToStr(&
CurrentTime);
GotoXY(6,0);
Print(CurrentTime.DateString);
GotoXY(6,l);
Print(CurrentTime.TimeString);
Delaylms(300);
)
6电路焊接和程序调试
6.1电路焊接
框图所示:
图11电路焊接顺序图
这里的电路焊接过程主要是利用实现制好电路图上焊接电子日历系统的相关元器件。
焊接顺序如下
6.2程序调试
通过proteus进行调试,调试结果如下:
图12调试结果显示图
7电子日历系统效果展示
7.1实物外观效果
1.电子日历系统正面图
图13系统实物正面图
如上图所示,AT89c5