LCD_RW = 0; LCD_EN = 1; delayNOP(); P0 = dat; delayNOP(); LCD_EN = 0; delayNOP(); }
/*******************************************************************/ /* */ /* LCD初始化设定 */ /* */ /*******************************************************************/ void lcd_init() { LCD_PSB = 1; //并口方式 delay(10); LCD_RST = 0; //液晶复位 delay(3); LCD_RST = 1; delay(3);
lcd_wcmd(0x34); //扩充指令操作 delay(5);
lcd_wcmd(0x30); //基本指令操作 delay(5);
lcd_wcmd(0x0C); //显示开,关光标 delay(5);
lcd_wcmd(0x01); //清除LCD的显示内容 delay(5); }
/*********************************************************/ /* */ /* 设定显示位置 */ /* */ /*********************************************************/ void lcd_pos(uchar X,uchar Y) { uchar pos; if (X==1) { X=0x80; } else if (X==2) { X=0x90; } else if (X==3) { X=0x88; } else if (X==4) { X=0x98; } pos = X+Y ; lcd_wcmd(pos); //显示地址
delay(10); }
/********************************************************* * * * 闪烁函数 * * * *********************************************************/ void lcdflag() { lcd_wcmd(0x08); delay(800); lcd_wcmd(0x0c); delay(800); lcd_wcmd(0x08); delay(800); lcd_wcmd(0x0c); delay(800); lcd_wcmd(0x08); delay(400); lcd_wcmd(0x0c); delay(10); lcd_wcmd(0x01); delay(10); }
/********************************************************* * * * 清屏函数 * * * *********************************************************/ void clr_screen() { lcd_wcmd(0x34); //扩充指令操作 delay(5); lcd_wcmd(0x30); //基本指令操作 delay(5); lcd_wcmd(0x01); //清屏 delay(5); }
/******显示提示信息********/ void mark_lcd1() { uchar i;
lcd_pos(1,0); //设置显示位置为第一行第三个字 for(i=0;i<16;i++) { lcd_wdat(tempM1[i]); //显示“云南师范大学” delay(30); } lcd_pos(2,0); for(i=0;i<16;i++) { lcd_wdat(tempM2[i]); //显示“物电学院” delay(30); } lcd_pos(3,0); for(i=0;i<16;i++)
{ lcd_wdat(tempM3[i]); //显示“10应电班” delay(30); } lcd_pos(4,0); for(i=0;i<16;i++) { lcd_wdat(tempM4[i]); //显示“李希才制作” delay(30); } }
/***显示标志信息**/ void mark_lcd() { lcd_pos(1,3); //设置显示位置为第一行第三个字 lcd_wdat(DIS1[0]); //显示“年” lcd_wdat(DIS1[1]); lcd_pos(1,5); //设置显示位置为第一行 lcd_wdat(DIS1[2]); //显示“月” lcd_wdat(DIS1[3]); lcd_pos(1,7); //设置显示位置为第一行 lcd_wdat(DIS1[4]); //显示“日” lcd_wdat(DIS1[5]); lcd_pos(2,1); //设置显示位置为第二行 lcd_wdat(DIS2[0]); //显示“星期” lcd_wdat(DIS2[1]); lcd_pos(2,3); lcd_wdat(DIS2[2]); lcd_wdat(DIS2[3]); lcd_pos(3,2); //设置显示位置为第三行 lcd_wdat(DIS3[0]); //显示“:” lcd_pos(3,4); lcd_wdat(DIS3[0]); }
/*****显示秒****/
void display_second(uchar second) { uchar shi,ge,tmp; tmp = ((second>>4)&0x0F)*10 + (second&0x0F); shi = tmp/10; ge = tmp; lcd_pos(3,5); lcd_wdat(DIS5[shi]); lcd_wdat(DIS5[ge]); }
/*****显示分****/
void display_minute(uchar minute) { uchar shi,ge,tmp; tmp = ((minute>>4)&0x0F)*10 + (minute&0x0F); shi = tmp/10; ge = tmp; lcd_pos(3,3);
lcd_wdat(DIS5[shi]); lcd_wdat(DIS5[ge]); }
/*****显示小时****/
void display_hour(uchar hour) { uchar shi,ge,tmp; tmp = ((hour>>4)&0x0F)*10 + (hour&0x0F); shi = tmp/10; ge = tmp; lcd_pos(3,1); lcd_wdat(DIS5[shi]); lcd_wdat(DIS5[ge]); }
/****显示年*****/
void display_year(uchar year) { uchar qian,bai,shi,ge,tmp; qian= 2; bai = 0; tmp = ((year>>4)&0x0F)*10 + (year&0x0F); shi = tmp/10; ge = tmp; lcd_pos(1,1); lcd_wdat(DIS5[qian]); lcd_wdat(DIS5[bai]); lcd_wdat(DIS5[shi]); lcd_wdat(DIS5[ge]); }
/****显示月*****/
void display_month(uchar month) { uchar shi,ge,tmp; tmp = ((month>>4)&0x0F)*10 + (month&0x0F); shi = tmp/10; ge = tmp; lcd_pos(1,4); lcd_wdat(DIS5[shi]); lcd_wdat(DIS5[ge]); }
/****显示日*****/
void display_day(uchar day) { uchar shi,ge,tmp; tmp = ((day>>4)&0x0F)*10 + (day&0x0F); shi = tmp/10; ge = tmp; lcd_pos(1,6); lcd_wdat(DIS5[shi]); lcd_wdat(DIS5[ge]); }
/****显示周*****/
void display_week(uchar week) { if(week == 0x01) //星期一 { lcd_pos(2,5); lcd_wdat(DIS6[0]); lcd_wdat(DIS6[1]); } if(week == 0x02) //星期二 { lcd_pos(2,5); lcd_wdat(DIS6[2]); lcd_wdat(DIS6[3]); } if(week == 0x03) //星期三 { lcd_pos(2,5); lcd_wdat(DIS6[4]); lcd_wdat(DIS6[5]); } if(week == 0x04) //星期四 { lcd_pos(2,5); lcd_wdat(DIS6[6]); lcd_wdat(DIS6[7]); } if(week == 0x05) //星期五 { lcd_pos(2,5); lcd_wdat(DIS6[8]); lcd_wdat(DIS6[9]); } if(week == 0x06) //星期六 { lcd_pos(2,5); lcd_wdat(DIS6[10]); lcd_wdat(DIS6[11]); } if(week == 0x07) //星期天 { lcd_pos(2,5); lcd_wdat(DIS6[12]); lcd_wdat(DIS6[13]); } }
/****显示温度*****/
void display_temper(uchar temper) { uchar shi,ge; shi = temper/10; ge = temper; lcd_pos(4,4); lcd_wdat(DIS5[shi]); lcd_wdat(DIS5[ge]); }