用ds1302与1602lcd设计的可调式电子日历时钟的设计与实现程序

用ds1302与1602lcd设计的可调式电子日历时钟的设计与实现程序

ID:6622975

大小:39.00 KB

页数:12页

时间:2018-01-20

用ds1302与1602lcd设计的可调式电子日历时钟的设计与实现程序_第1页
用ds1302与1602lcd设计的可调式电子日历时钟的设计与实现程序_第2页
用ds1302与1602lcd设计的可调式电子日历时钟的设计与实现程序_第3页
用ds1302与1602lcd设计的可调式电子日历时钟的设计与实现程序_第4页
用ds1302与1602lcd设计的可调式电子日历时钟的设计与实现程序_第5页
资源描述:

《用ds1302与1602lcd设计的可调式电子日历时钟的设计与实现程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、用DS1302与1602LCD设计的可调式电子日历时钟的设计与实现程序#include#include#include#defineucharunsignedchar#defineuintunsignedintsbitCLK=P1^1;//DS1302时钟线sbitSDA=P1^0;//DS1302数据线sbitRST=P1^2;//DS1302复位线sbitRS=P2^0;//数据/指令选择端口sbitRW=P2^1;//读写端口sbitEN=P2^2;//使能端口sbitK1=P3^4;//选择sbitK2=P3^

2、5;//加sbitK3=P3^6;//减sbitK4=P3^7;//确定uchartCount=0;//一年中每个月的天数,2月的天数由年份决定ucharMonthsDays[]={0,31,0,31,30,31,30,31,31,30,31,30,31};uchar*WEEK[]={"sun","mon","tus","wen","thu","fri","sat"};//周日,周一到周六ucharLCD_DSY_BUFFER1[]={"Date00-00-00"};//LCD显示缓冲ucharLCD_DSY_BUFFER2[]={"Time00-00-00"};ucharDa

3、teTime[7];//所读取的日期时间charAdjust_Index=-1;//当前调节的时间:秒,分,时,日,ucharChange_Flag[]="-MHDM-Y";ucharRead_LCD_State();//读LCD状态voidLCD_Busy_Wait();//判忙voidWrite_LCD_Data(uchardat);//写数据voidWrite_LCD_Command(ucharcmd);//写命令voidInit_LCD();//LCD初始化voidSet_LCD_POS(ucharp);//设置显示位置voidDisplay_LCD_String(uc

4、harp,uchar*s);//写字符串voidDelayMS(uintx)//延时{uchari;while(x--)for(i=0;i<120;i++);}ucharRead_LCD_State()//读LCD状态{ucharstate;RS=0;RW=1;EN=1;DelayMS(1);state=P0;EN=0;DelayMS(1);returnstate;}voidLCD_Busy_Wait()//判忙{while((Read_LCD_State()&0x08)==0x80);DelayMS(5);}voidWrite_LCD_Data(uchardat)//写数据{

5、LCD_Busy_Wait();RS=1;RW=0;EN=0;P0=dat;EN=1;DelayMS(1);EN=0;}voidWrite_LCD_Command(ucharcmd)//写命令{LCD_Busy_Wait();RS=0;RW=0;EN=0;P0=cmd;EN=1;DelayMS(1);EN=0;}voidInit_LCD()//LCD初始化{Write_LCD_Command(0x38);DelayMS(1);Write_LCD_Command(0x01);DelayMS(1);Write_LCD_Command(0x06);DelayMS(1);Write_L

6、CD_Command(0x0C);DelayMS(1);Display_LCD_String(0x00,"zhongzhoudaxue");//DelayMS(1000);Display_LCD_String(0x40,"dianzirili");DelayMS(2000);}voidSet_LCD_POS(ucharp){Write_LCD_Command(p

7、0x80);}voidDisplay_LCD_String(ucharp,uchar*s){uchari;Set_LCD_POS(p);for(i=0;i<16;i++){Write_LCD_Data(s[i]);De

8、layMS(1);}}/*--------------------------向DS1302写入一字节---------------------------*/voidDS1302_Write_Byte(ucharx){uchari;for(i=0;i<8;i++){SDA=x&1;CLK=1;CLK=0;x>>=1;}}/*-------------------------------从DS1302读取一字节--------------------------------*/ucharDS

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。