您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于51单片机的LCD万年历
1功能描述:本设计完成基于DS1307作为时钟芯片,以HD44780为控制器的LCD万年历显示。原理概述:如图一,时钟信号由DS1307模块串行发送到单片机,单片机处理后,将内容通过并行通讯发送到LCD液晶DDRAM上显示,此过程一直在主函数中循环,从而实现了将“年”、“月”、“日”、“时”、“分”、“秒”在液晶上显示的功能。端口说明单片机的P0作为LCD的并行通讯数据端口、P3口的P3.5、P3.6、P3.7作为LCD的控制端口,来控制LCD显示模式、功能以及内容;P1.2、P1.3作为DS1307的串行通讯的数据端以及时钟端,来获取时钟信息到单片机。效果显示图一(电路总图及万年历仿真结果)2图二(DS1307时钟电路仿真结果)3图三(LCD液晶电路仿真结果)4图四(DS1307与液晶显示数据仿真结果)程序清单(一)init.h和init.c/*********************************Copyright(c)***********************************--------------------------FileInfo------------------------------**FileName:init.h**LastmodifiedDate:2014-12-27**LastVersion:2.1**Description:总初始化函数,引入所有头文件,定义特殊脚****-----------------------------------------------------------------**CreatedBy:lvan**Createddate:2014-11-11**Version:1.0**Descriptions:Theoriginalversion初始版本********************************************************************************/#ifndefINIT_H#defineINIT_H/*--------------------------------------------------包含系统头文件---------------------------------------------------*/5#includereg52.h#includestdio.h#includeintrins.h#includestring.h#includestdio.h/*--------------------------------------------------宏定义---------------------------------------------------*/#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong#definefosc11059200//晶振为11.0592MHZ/*--------------------------------------------------包含自定义头文件---------------------------------------------------*/#includelcd12864.h#includedelay.h//#includetable.c//#includeda.h//#includeMAX197.h//#includezlg.h#includeds1307.h/*--------------------------------------------------定义特殊脚---------------------------------------------------*/sbitBELL=P1^4;//蜂鸣器/*--------------------------------------------------蜂鸣器函数---------------------------------------------------*/externvoiddidifast(uinti);externvoiddidislow(uinti);#endif/*********************************Copyright(c)***********************************--------------------------FileInfo------------------------------**FileName:init.c**LastmodifiedDate:2014-12-27**LastVersion:2.1**Description:定义调试过程中用到的蜂鸣器标志****-----------------------------------------------------------------**CreatedBy:lvan**Createddate:2014-11-14**Version:1.0**Descriptions:Theoriginalversion初始版本6********************************************************************************/#includeinit.hvoiddidislow(uinti){for(;i0;i--){BELL=~BELL;delay15ms();BELL=~BELL;delay15ms();}}voiddidifast(uinti){for(;i0;i--){BELL=~BELL;delaynms(7);BELL=~BELL;delaynms(7);}}(二)delay.h和delay.c/*********************************Copyright(c)***********************************--------------------------FileInfo------------------------------**FileName:delay.h**LastmodifiedDate:2014-12-27**LastVersion:2.1**Description:用于存放工程中用到的延时函数****-----------------------------------------------------------------**CreatedBy:lvan**Createddate:2014-11-14**Version:1.0**Descriptions:Theoriginalversion初始版本********************************************************************************/#includedelay.hvoiddelay100ms()//@11.0592MHz{unsignedchari,j;i=180;7j=73;do{while(--j);}while(--i);}voiddelay10us()//@11.0592MHz{unsignedchari;i=2;while(--i);}voiddelay125us(void){uintidatan;for(n=0;n60*12;n++);//60*12stc12c5a60s2}voiddelay20us(void){ucharidatan;for(n=0;n120;n++);//10*12stc12c5a60s2}voiddelay15ms(void){uintidatan;for(n=0;n4000*12;n++);//4000*12stc12c5a60s2}voiddelaynms(unsignedintk)//@11.0592MHz{unsignedchari,j;for(;k0;k--){_nop_();_nop_();_nop_();i=11;j=190;do{while(--j);}while(--i);}}8/*********************************Copyright(c)***********************************--------------------------FileInfo------------------------------**FileName:delay.h**LastmodifiedDate:2014-12-27**LastVersion:2.1**Description:存放所有用于延时的外部函数****-----------------------------------------------------------------**CreatedBy:lvan**Createddate:2014-11-11**Version:1.0**Descriptions:Theoriginalversion初始版本********************************************************************************/#ifndefDELAY_H#defineDELAY_H/*--------------------------------------------------包含头文件---------------------------------------------------*/#includeinit.h/*--------------------------------------------------外部函数定义---------------------------------------------------*/externvoiddelay100ms();externvoiddelay10us();externvoiddelay125us(void);externvoiddelay20us(void);externvoiddelay15ms(void);externvoiddelaynms(uintk);#endif(三)DS1307.C和DS1307.H/*********************************Copyright(c)***********************************--------------------------FileInfo------------------------------**FileName:ds1307.c**LastmodifiedDate:2014-12-27**LastVersion:2.1**Description:ds1307的底层驱动函数****-----------------------------------------------------------------**CreatedBy:lvan**Createddate:2014-11-14**Version:1.09**Descriptions:Theoriginalversion初始版本********************************************************************************/#includeinit.hsbitrtscl=P1^2;sbitrtsda=P1^3;uinttt=0;//ucharcodetable[]=0123456789;uchartime_receive[8];ucharc
本文标题:基于51单片机的LCD万年历
链接地址:https://www.777doc.com/doc-2533221 .html