📄 lcd128x64.c
字号:
case 1:
start_address = 0x90;
break;
case 2:
start_address = 0x88;
break;
case 3:
start_address = 0x98;
break;
default:
break;
}
for(count=0;count<8;count++){
lcd_Display_Lib_Chinese(start_address, 0xA1A0); //clear
start_address++;
}
}
//0x30---0x39
void lcd_Display_num_half_wide(BYTE startaddress, BYTE code_num1, BYTE code_num2)
{ //显示半宽字符
lcd_Write_Cmd(0x80);
lcd_Write_Cmd(startaddress);
lcd_Write_Dat(code_num1); //the high byte
lcd_Write_Dat(code_num2); //the low byte
}
//*************************************//
//****以下新增显示单个字母子程序******//
//************************************//
void lcd_Display_num_single(BYTE startaddress, BYTE code_num1)
{ //显示单个字母
lcd_Write_Cmd(0x80);
lcd_Write_Cmd(startaddress);
lcd_Write_Dat(code_num1);
}//*************END****************//
//-------------------------------------//
// 以下新增显示"请输入用户名"子函数 //
//------------------------------------//
/*
void lcd_Displzy_user_name_input(BYTE startaddress)//显示"请输入用户名"
{
lcd_Disp_Text_Line_Order(startaddress,tylx10);
startaddress += 2;
lcd_Display_Lib_Chinese(startaddress, 0xC7EB);//"请"
startaddress++;
lcd_Display_Lib_Chinese(startaddress, 0xCAE4);//"输"
startaddress++;
lcd_Display_Lib_Chinese(startaddress, 0xC8EB);//"入"
startaddress++;
lcd_Display_Lib_Chinese(startaddress, 0xD3C3);//"用"
startaddress++;
lcd_Display_Lib_Chinese(startaddress, 0xBBA7);//"户"
startaddress++;
lcd_Display_Lib_Chinese(startaddress, 0xC3FB);//"名"
startaddress++;
}//-------------END-------------------//
//-------------------------------------//
// 新增显示"请输入类别名"子函数 //
//------------------------------------//
void lcd_Displzy_type_name_input(BYTE startaddress)//显示"请输入类别名"
{
lcd_Disp_Text_Line_Order(startaddress,tylx10);
startaddress += 2;
lcd_Display_Lib_Chinese(startaddress, 0xC7EB);//"请"
startaddress++;
lcd_Display_Lib_Chinese(startaddress, 0xCAE4);//"输"
startaddress++;
lcd_Display_Lib_Chinese(startaddress, 0xC8EB);//"入"
startaddress++;
lcd_Display_Lib_Chinese(startaddress, 0xC0E0);//"类"
startaddress++;
lcd_Display_Lib_Chinese(startaddress, 0xB1F0);//"别"
startaddress++;
lcd_Display_Lib_Chinese(startaddress, 0xC3FB);//"名"
startaddress++;
}//-------------END-------------------//
*/
void lcd_Display_time(BYTE startaddress) //显示时间
{
lcd_Disp_Text_Line_Order(startaddress,tylx10);
startaddress += 2;
lcd_Display_num_half_wide(startaddress, hour_buffer.shiwei, hour_buffer.gewei);//hour
startaddress++;
lcd_Display_Lib_Chinese(startaddress, 0xCAB1);
startaddress++;
lcd_Display_num_half_wide(startaddress, minute_buffer.shiwei, minute_buffer.gewei);
startaddress++;
lcd_Display_Lib_Chinese(startaddress, 0xB7D6);
startaddress++;
lcd_Display_num_half_wide(startaddress, second_buffer.shiwei, second_buffer.gewei);
startaddress++;
lcd_Display_Lib_Chinese(startaddress, 0xC3EB);
}
void lcd_Display_date(BYTE startaddress) //显示日期
{
lcd_Disp_Text_Line_Order(startaddress,tylx9);
startaddress += 2;
lcd_Display_num_half_wide(startaddress, year_buffer.shiwei, year_buffer.gewei);//hour
startaddress++;
lcd_Display_Lib_Chinese(startaddress, 0xC4EA);
startaddress++;
lcd_Display_num_half_wide(startaddress, month_buffer.shiwei, month_buffer.gewei);
startaddress++;
lcd_Display_Lib_Chinese(startaddress, 0xD4C2);
startaddress++;
lcd_Display_num_half_wide(startaddress, day_buffer.shiwei, day_buffer.gewei);
startaddress++;
lcd_Display_Lib_Chinese(startaddress, 0xC8D5);
}
void lcd_Display_week(BYTE startaddress) //显示星期
{
lcd_Display_Lib_Chinese(startaddress, 0xD0C7);
startaddress++;
lcd_Display_Lib_Chinese(startaddress, 0xC6DA);
startaddress++;
lcd_Display_num_half_wide(startaddress, week_buffer.shiwei, week_buffer.gewei);
}
void lcd_Display_zongci(BYTE startaddress) //显示总次
{
disp_num_address_1 save_num_buffer;
BYTE tem_1,tem_2;
tem_1 = save_current_num / 100;
tem_2 = save_current_num - tem_1 * 100;
save_num_buffer.baiwei = 0x30 + tem_1;
save_num_buffer.shiwei = 0x30 + tem_2/10;
save_num_buffer.gewei = 0x30 + (save_current_num - tem_1 * 100 - (tem_2/10) * 10);
lcd_Disp_Text_Line_Order(startaddress,tylx6); //chinese
startaddress += (2 + 1);
lcd_Display_num_half_wide(startaddress, save_num_buffer.baiwei, save_num_buffer.shiwei);
startaddress++;
lcd_Display_num_half_wide(startaddress, save_num_buffer.gewei, 0x20);
}
void lcd_Display_leibie(BYTE startaddress) //显示类别
{
BYTE tem_1,tem_2;
tem_1 = save_tem_type / 100;
tem_2 = save_tem_type - tem_1 * 100;
save_type_buffer.baiwei = 0x30 + tem_1;
save_type_buffer.shiwei = 0x30 + tem_2/10;
save_type_buffer.gewei = 0x30 + (save_tem_type - tem_1 * 100 - (tem_2/10) * 10);
lcd_Disp_Text_Line_Order(startaddress,tylx7); //chinese
startaddress += (2 + 1);
lcd_Display_num_half_wide(startaddress, save_type_buffer.baiwei, save_type_buffer.shiwei);
startaddress++;
lcd_Display_num_half_wide(startaddress, save_type_buffer.gewei, 0x20);
}
void lcd_Display_pizhong(BYTE startaddress) //显示皮重
{
BYTE tem_1,tem_2;
tem_1 = save_tem_pizhong / 100;
tem_2 = save_tem_pizhong - tem_1 * 100;
save_pizhong_buffer.baiwei = 0x30 + tem_1;
save_pizhong_buffer.shiwei = 0x30 + tem_2/10;
save_pizhong_buffer.gewei = 0x30 + (save_tem_pizhong - tem_1 * 100 - (tem_2/10) * 10);
lcd_Disp_Text_Line_Order(startaddress,tylx8); //chinese
startaddress += (2 + 1);
lcd_Display_num_half_wide(startaddress, save_pizhong_buffer.baiwei, save_pizhong_buffer.shiwei);
startaddress++;
lcd_Display_num_half_wide(startaddress, save_pizhong_buffer.gewei, 0x20);
}
void lcd_Display_zongzhong(BYTE startaddress) //显示总重
{
set_zongzhong_num_address_bydata(all_weight);
lcd_Disp_Text_Line_Order(startaddress,tylx16); //chinese
startaddress += (2 + 1);
lcd_Display_num_half_wide(startaddress, save_type_buffer.baiwei, save_type_buffer.shiwei);
startaddress++;
lcd_Display_num_half_wide(startaddress, save_type_buffer.gewei, save_pizhong_buffer.baiwanwei);
startaddress++;
lcd_Display_num_half_wide(startaddress, save_pizhong_buffer.shiwanwei, save_pizhong_buffer.wanwei);
startaddress++;
lcd_Display_num_half_wide(startaddress, save_pizhong_buffer.qianwei, save_pizhong_buffer.baiwei);
startaddress++;
lcd_Display_num_half_wide(startaddress, save_pizhong_buffer.shiwei,save_pizhong_buffer.gewei);
}
void lcd_Display_usename(BYTE startaddress) //显示用户名
{
BYTE count;
lcd_Disp_Text_Line_Order(startaddress,tylx19); //chinese
startaddress += (2 + 1);
for(count = 0;count < 5;count++){
lcd_Display_Lib_Chinese(startaddress, save_tem_usename[count]);
startaddress++;
}
}
void lcd_Disp_Clear_pho(void)
{ //液晶清屏,清图片
BYTE LCD_X, LCD_Y, COUNT1, COUNT2, COUNT3;
lcd_Write_Cmd(0x34);
lcd_Write_Cmd(0x30);
LCD_X = 0x80;
for(COUNT3 = 2;COUNT3 > 0;COUNT3--)
{
LCD_Y = 0x80;
for(COUNT2 = 32;COUNT2 > 0;COUNT2--)
{
lcd_Write_Cmd(0x34); // start to give address
lcd_Write_Cmd(LCD_Y);
lcd_Write_Cmd(LCD_X);
lcd_Write_Cmd(0x30);
for(COUNT1 = 16;COUNT1 > 0;COUNT1--)
{
lcd_Write_Dat(0x00);
}
LCD_Y++;
}
LCD_X = 0x88;
}
lcd_Write_Cmd(0x36);
lcd_Write_Cmd(0x30);
}
void lcd_Display_zhonglang(long int zhongliang) //显示重量(大字)
{
unsigned char i,str[6];
i=0;
//lcd_Disp_shuzi(shuzi_zimo_2,5);
str[5]=zhongliang/100000;
str[4]=(zhongliang-str[5]*100000)/10000;
str[3]=(zhongliang-str[5]*100000-str[4]*10000)/1000;
str[2]=(zhongliang-str[5]*100000-str[4]*10000-str[3]*1000)/100;
str[1]=(zhongliang-str[5]*100000-str[4]*10000-str[3]*1000-str[2]*100)/10;
str[0]=zhongliang-str[5]*100000-str[4]*10000-str[3]*1000-str[2]*100-str[1]*10;
for(i=5;i>0;i--)
{
if(str[i]==0)
{
str[i]=11;//显示空白
}
else goto loop1;
}
loop1:
//
// lcd_Write_Cmd(0x34);
//lcd_Write_Cmd(0x30);
//str[0]=0;str[1]=1;str[2]=11;str[3]=11;str[4]=11;str[5]=11;
for(i=0;i<6;++i)
{
//i=3;
if(str[i]==0)lcd_Disp_shuzi(shuzi_zimo_0,6-i);
if(str[i]==1)lcd_Disp_shuzi(shuzi_zimo_1,6-i);
if(str[i]==2)lcd_Disp_shuzi(shuzi_zimo_2,6-i);
if(str[i]==3)lcd_Disp_shuzi(shuzi_zimo_3,6-i);
if(str[i]==4)lcd_Disp_shuzi(shuzi_zimo_4,6-i);
if(str[i]==5)lcd_Disp_shuzi(shuzi_zimo_5,6-i);
if(str[i]==6)lcd_Disp_shuzi(shuzi_zimo_6,6-i);
if(str[i]==7)lcd_Disp_shuzi(shuzi_zimo_7,6-i);
if(str[i]==8)lcd_Disp_shuzi(shuzi_zimo_8,6-i);
if(str[i]==9)lcd_Disp_shuzi(shuzi_zimo_9,6-i);
if(str[i]==11)lcd_Disp_shuzi(shuzi_zimo_nop,6-i);
}
lcd_Write_Cmd(0x36);
//lcd_Write_Cmd(0x30);
}
void lcd_Disp_shuzi(BYTE *value,lie) //显示数字
{
BYTE LCD_X, LCD_Y, COUNT1, COUNT2, COUNT3;
LCD_X = 0x80+lie;
for(COUNT3 = 2;COUNT3 > 0;COUNT3--)
{ //the section is divided into two parts
LCD_Y = 0x80; // both parts first line Y address
for(COUNT2 = 32;COUNT2 > 0;COUNT2--)
{ //every part has 32 lines
//lcd_Write_Cmd(0x34); // start to give address
lcd_Write_Cmd(LCD_Y);
lcd_Write_Cmd(LCD_X);
//lcd_Write_Cmd(0x30);
for(COUNT1 = 2;COUNT1 > 0;COUNT1--)
{
lcd_Write_Dat(*value);
value++;
}
LCD_Y++; //line Y address add 1
}
LCD_X = 0x88+lie; // start the second part
}
//lcd_Write_Cmd(0x36);
//lcd_Write_Cmd(0x30);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -