📄 16x2_lcd.c
字号:
#include "16x2_main.h"
/*
unsigned char year_q=2;
unsigned char year_b=0;
unsigned char year_s=0;
unsigned char year_g=7;
unsigned char month_s=1;
unsigned char month_g=2;
unsigned char day_s=2;
unsigned char day_g=0;
unsigned char hour_s=0;
unsigned char hour_g=0;
unsigned char min_s=0;
unsigned char min_g=0;
unsigned char sec_s=0;
unsigned char sec_g=0;
*/
unsigned char datatime[14]={2,0,0,7,1,2,2,0,0,0,0,0,0,0,};
void Delay(unsigned char time)
{
unsigned char i=1000;
while(time--)
{
while(i--);
}
}
void Lcd_CodeWrite(char c)
{
RS=0;
W_R=0;
E =1;
COM=c;
E =0;
}
void Lcd_DataWrite(char c)
{
RS=1;
W_R=0;
E =1;
COM=c;
E =0;
}
bit Lcd_StateRead()
{
char c;
bit busy;
RS=0;
W_R=1;
E =1;
c=COM;
E =0;
busy=(c>>7);
return busy;
}
void Lcd_Initial()
{
Lcd_CodeWrite(0x01); //清屏
Delay(1000);
Lcd_CodeWrite(0x06); //输入方式设定,ac++,画面不动
Delay(1000);
Lcd_CodeWrite(0x38); //二行显示,一个字符为5x7
Delay(1000);
// Lcd_CodeWrite(0x02); //光标回home位
// Delay(100);
Lcd_CodeWrite(0x14); //光标右移,画面不动
Delay(100);
// Lcd_CodeWrite(0x0f); //显示开,光标开,闪
Lcd_CodeWrite(0x0c); //显示开, 光标关c,闪
Delay(100);
}
//turn data to char data
void Turn_DataChar(char *Data_String)
{
Data_String[0]='d';Data_String[1]='a';Data_String[2]='t';
Data_String[3]='a';Data_String[4]=':';
Data_String[5]=datatime[0]+0x30; //千
Data_String[6]=datatime[1]+0x30; //百
Data_String[7]=datatime[2]+0x30; //十
Data_String[8]=datatime[3]+0x30; //个
Data_String[9]='-';
Data_String[10]=datatime[4]+0x30;
Data_String[11]=datatime[5]+0x30;
Data_String[12]='-';
Data_String[13]=datatime[6]+0x30;
Data_String[14]=datatime[7]+0x30;
}
//turn time to char time
void Turn_TimeChar(char *Time_String)
{
Time_String[0]='t';Time_String[1]='i';Time_String[2]='m';
Time_String[3]='e';Time_String[4]=':';
Time_String[5]=datatime[8]+0x30; //十
Time_String[6]=datatime[9]+0x30; //个
Time_String[7]=':';
Time_String[8]=datatime[10]+0x30;
Time_String[9]=datatime[11]+0x30;
Time_String[10]=':';
Time_String[11]=datatime[12]+0x30;
Time_String[12]=datatime[13]+0x30;
}
//显示框架
//gloable
void Lcd_FramDisplay()
{
unsigned char Data[15];//2007-12-20
unsigned char Time[13];//00:00:00
unsigned i;
Turn_DataChar(Data);
Turn_TimeChar(Time);
for(i=0;i<15;i++)
{
while(Lcd_StateRead());
Lcd_CodeWrite(0x80|i); //address
while(Lcd_StateRead());
Lcd_DataWrite(Data[i]); //data
}
for(i=0;i<13;i++)
{
while(Lcd_StateRead());
Lcd_CodeWrite(0x80|0x40|i);
while(Lcd_StateRead());
Lcd_DataWrite(Time[i]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -