资源描述:
《用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