if ( mo == 0x08 && dd == 0x01 ){ lcm_w_word(" 八一建军节 "); }//8
if ( mo == 0x08 && dd == 0x08 ){ lcm_w_word(" 中国男子节 "); }
if ( mo == 0x08 && dd == 0x15 ){ lcm_w_word("抗战胜利记念日 "); }
if ( mo == 0x09 && dd == 0x10 ){ lcm_w_word(" 中国教师节 "); }//9
if ( mo == 0x09 && dd == 0x18 ){ lcm_w_word("九·一八事变记念"); }
if ( mo == 0x09 && dd == 0x20 ){ lcm_w_word(" 国际爱牙日 "); }
if ( mo == 0x09 && dd == 0x27 ){ lcm_w_word(" 世界旅游日 "); }
if ( mo == 0x10 && dd == 0x01 ){ lcm_w_word(" 中国国庆节 "); }//10
if ( mo == 0x10 && dd == 0x04 ){ lcm_w_word(" 世界动物日 "); }
if ( mo == 0x10 && dd == 0x24 ){ lcm_w_word(" 联合国日 "); }
if ( mo == 0x10 && dd == 0x12 ){ lcm_w_word("明天国际教师节 "); }
if ( mo == 0x10 && dd == 0x13 ){ lcm_w_word(" 国际教师节 "); }
if ( mo == 0x11 && dd == 0x10 ){ lcm_w_word(" 世界青年节 "); }//11
if ( mo == 0x11 && dd == 0x17 ){ lcm_w_word(" 世界学生节 "); }
if ( mo == 0x12 && dd == 0x01 ){ lcm_w_word(" 世界艾滋病日 "); }//12
if ( mo == 0x12 && dd == 0x23 ){ lcm_w_word(" 明晚平安夜 "); }
if ( mo == 0x12 && dd == 0x24 ){ lcm_w_word(" 今晚平安夜 "); }
if ( mo == 0x12 && dd == 0x25 ){ lcm_w_word(" 圣诞快乐 "); }
if ( mo == 0x12 && dd == 0x31 ){ lcm_w_word(" 明日新年 "); }
else{
if ( hh >= 0x04 && hh < 0x06 ){ lcm_w_word("★★__▲▲__凌晨"); }
if ( hh >= 0x06 && hh < 0x08 ){ lcm_w_word("☆○__▲△__早晨"); }
if ( hh >= 0x08 && hh < 0x12 ){ lcm_w_word("__●__▲▲__上午"); }
if ( hh == 0x12) { lcm_w_word("____▲●▲__中午"); }
if ( hh >= 0x13 && hh < 0x18 ){ lcm_w_word("__▲▲__●__下午"); }
if ( hh >= 0x18 && hh < 0x22 ){ lcm_w_word("△▲__●☆__晚上"); }
if ( hh >= 0x22 && hh <= 0x23 ){ lcm_w_word("△▲__★☆__夜里"); }
if ( hh >= 0x00 && hh < 0x04 ){ lcm_w_word("__★▲▲★__深夜"); }
}
}
/****************************************************************************/
//初始化LCM
void lcm_init(void) {
delaynms(100); //启动等待,等LCM讲入工作状态
lcm_w_test(0,0x30); //8 位介面,基本指令集
lcm_w_test(0,0x0c); //显示打开,光标关,反白关
lcm_w_test(0,0x01); //清屏,将DDRAM的地址计数器归零
delaynms(100); //启动等待,等LCM讲入工作状态
}
/******************************************************************************/
//写指令或数据 (0,指令) (1,数据)
void lcm_w_test(bit start, unsigned char ddata) {
unsigned char start_data,Hdata,Ldata;
if(start==0)
start_data=0xf8; //0:写指令
else
start_data=0xfa; //1:写数据
Hdata=ddata&0xf0; //取高四位
Ldata=(ddata<<4)&0xf0; //取低四位
lcm_w_byte(start_data); //发送起始信号
delaynms(5); //延时是必须的
lcm_w_byte(Hdata); //发送高四位
delaynms(5); //延时是必须的
lcm_w_byte(Ldata); //发送低四位
delaynms(5); //延时是必须的
}
/******************************************************************************/
//发送一个字节(底层函数)
void lcm_w_byte(unsigned char bbyte) {
unsigned char i;
for(i=0;i<8;i++){
SID=bbyte&0x80; //取出最高位
SCLK=1;
SCLK=0;
bbyte<<=1; //左移
}
}
/******************************************************************************/
本文关键字:万年历 自动控制-单片机,电子制作 - 自动控制-单片机
上一篇:电子万年历