📄 display.c.bak
字号:
break;
case 1://右闪灯故障
lcd_bmp(head_x,head_y,16,19,1,ysdgz,0,zimode_left,zimode_right,first_page);
break;
case 2://左闪灯故障
lcd_bmp(head_x,head_y,16,19,1,zsdgz,0,zimode_left,zimode_right,first_page);
break;
case 3://制动灯故障
lcd_bmp(head_x,head_y,16,19,1,zddgz,0,zimode_left,zimode_right,first_page);
break;
case 4://倒车灯故障
lcd_bmp(head_x,head_y,16,19,1,dcdgz,0,zimode_left,zimode_right,first_page);
break;
case 5://机油压力不足
lcd_bmp(head_x,head_y,19,19,1,jyyl,0,zimode_left,zimode_right,first_page);
break;
case 6://燃油不足
lcd_bmp(head_x,head_y,13,19,1,rybz,0,zimode_left,zimode_right,first_page);
break;
case 7://水温报警
lcd_bmp(head_x,head_y,13,19,1,swbj,0,zimode_left,zimode_right,first_page);
break;
case 8://空滤堵塞
lcd_bmp(head_x,head_y,13,19,1,klds,0,zimode_left,zimode_right,first_page);
break;
case 9://制动气压1报警
lcd_bmp(head_x,head_y,21,19,1,zdqy1,0,zimode_left,zimode_right,first_page);
break;
case 10://制动气压2报警
lcd_bmp(head_x,head_y,21,19,1,zdqy2,0,zimode_left,zimode_right,first_page);
break;
case 11://请勿行驶
lcd_bmp(head_x,head_y,13,19,1,qwxs,0,zimode_left,zimode_right,first_page);
break;
case 12://请关好车门
lcd_bmp(head_x,head_y,16,19,1,qgcm,0,zimode_left,zimode_right,first_page);
break;
default: break;
}
//lcd_display_ON(0x56);
}
/*-----------------------------------------------------------------------/
函数名称:lcd_failure_scroll()
功能:故障的滚动显示
参数:起始故障值、故障缓存区
返回值:
/-----------------------------------------------------------------------*/
void lcd_failure_scroll(unsigned char failure_start,unsigned char mode)
{
unsigned char failur_temp=failure_start;
unsigned char fail_i;
//lcd_display_OFF(0x00);
lcd_clr_row(9,38,25,108,first_page);
//lcd_display_ON(0x55);
for(fail_i=0;fail_i<4;fail_i++){
//lcd_display_OFF(0x56);
lcd_failure(9,38+fail_i*28,failur_temp);
failur_temp=lcd_failure_cyc(failur_temp+1,system_failure);
if(mode==scroll_enable){
if(failur_temp==0){
failur_temp=lcd_failure_cyc(failur_temp+1,system_failure);
}
}
else if(mode==scroll_disable){
if(failur_temp==0){
//lcd_display_ON(0x56);
break;
}
}
//lcd_display_ON(0x56);
}
//lcd_display_ON(0x56);
}
/*-----------------------------------------------------------------------/
函数名称:lcd_clock_set_add()
功能:设置时钟
参数:设置的时钟、时钟的指针、时钟显示缓存区,键值
返回值:
/-----------------------------------------------------------------------*/
/*void lcd_clock_set_add(unsigned char clock_set_type,unsigned char *set_clock,
unsigned char *lcd_clock_a,unsigned char key_bord)
{
switch (clock_set_type)
{
case lcd_house_set_hi://小时高位
if(key_bord==key_left){
lcd_clock_a[0]++;
if(lcd_clock_a[0]>0x32)lcd_clock_a[0]=0x30;
}
else{
lcd_clock_a[0]--;
if(lcd_clock_a[0]<0x30)lcd_clock_a[0]=0x32;
}
set_clock[2]=((lcd_clock_a[0]-0x30)<<4)|(lcd_clock_a[1]-0x30);
break;
case lcd_house_set_lo://小时低位
if(key_bord==key_left){
lcd_clock_a[1]++;
if((lcd_clock_a[0]-0x30)==2){
if((lcd_clock_a[1]-0x30)>4)lcd_clock_a[1]=0x30;
}
else{
if(lcd_clock_a[1]>0x39)lcd_clock_a[1]=0x30;
}
}
else{
lcd_clock_a[1]--;
if((lcd_clock_a[0]-0x30)==2){
if(lcd_clock_a[1]<0x30)lcd_clock_a[1]=0x34;
}
else{
if(lcd_clock_a[1]<0x30)lcd_clock_a[1]=0x39;
}
}
set_clock[2]=((lcd_clock_a[0]-0x30)<<4)|(lcd_clock_a[1]-0x30);
break;
case lcd_minute_set_hi://分钟高位
if(key_bord==key_left){
lcd_clock_a[3]++;
if(lcd_clock_a[3]>0x35)lcd_clock_a[3]=0x30;
}
else{
lcd_clock_a[3]--;
if(lcd_clock_a[3]<0x30)lcd_clock_a[3]=0x35;
}
set_clock[1]=((lcd_clock_a[3]-0x30)<<4)|(lcd_clock_a[4]-0x30);
break;
case lcd_minute_set_lo://分钟低位
if(key_bord==key_left){
lcd_clock_a[4]++;
if(lcd_clock_a[4]>0x39)lcd_clock_a[4]=0x30;
}
else{
lcd_clock_a[4]--;
if(lcd_clock_a[4]<0x30)lcd_clock_a[4]=0x39;
}
set_clock[1]=((lcd_clock_a[3]-0x30)<<4)|(lcd_clock_a[4]-0x30);
break;
default:break;
}
}*/
/*-----------------------------------------------------------------------/
函数名称:lcd_clock_set_flash()
功能:设置时钟
参数:设置的时钟,闪动标志
返回值:
/-----------------------------------------------------------------------*/
/*void lcd_clock_set_flash(unsigned char clock_set_type,unsigned char flag)
{
switch (clock_set_type)
{
case lcd_house_set_hi://小时高位
if(flag==0)lcd_clr_row(10,104,4,40,first_page);
break;
case lcd_house_set_lo://小时低位
if(flag==0)lcd_clr_row(14,104,4,40,first_page);
break;
case lcd_minute_set_hi://分钟高位
if(flag==0)lcd_clr_row(22,104,4,40,first_page);
break;
case lcd_minute_set_lo://分钟低位
if(flag==0)lcd_clr_row(26,104,4,40,first_page);
break;
default:break;
}
}*/
/*-----------------------------------------------------------------------/
函数名称:lcd_input_data()
功能:输入屏输出数据
参数:输入字模指针、输入数据指针
返回值:
/-----------------------------------------------------------------------*/
void lcd_input_data(const unsigned char *zimo,const unsigned char *in_data)
{
unsigned char input_m=0;
unsigned char input_i;
unsigned char input_temp=0;
if(LCD_fault()==0)return;
lcd_bmp(16,9,4,32,2,zimo,0,zimode_left,zimode_right,first_page);
lcd_line(0,51,40,first_page);
lcd_line(0,52,40,first_page);
for(input_i=0;input_i<16;input_i++){
input_temp=in_data[input_i];
for(input_m=0;input_m<8;input_m++){
//input_temp=in_data[input_i];
if(((input_temp>>input_m)&0x01)==0){
if(input_i%2==0){
lcd_ascii_16x16(2*input_m+3+input_m/4,60+(input_i/2)*16,0,ascii_1616,4,zimode_left,zimode_right,first_page);
}
else{
lcd_ascii_16x16(2*input_m+21+input_m/4,60+(input_i/2)*16,0,ascii_1616,4,zimode_left,zimode_right,first_page);
}
}
else{
if(input_i%2==0){
lcd_ascii_16x16(2*input_m+3+input_m/4,60+(input_i/2)*16,1,ascii_1616,4,zimode_left,zimode_right,first_page);
}
else{
lcd_ascii_16x16(2*input_m+21+input_m/4,60+(input_i/2)*16,1,ascii_1616,4,zimode_left,zimode_right,first_page);
}
}
}
}
}
/*-----------------------------------------------------------------------/
函数名称:lcd_output_data()
功能:输出屏输出数据
参数:输出字模指针、输出数据指针
返回值:
/-----------------------------------------------------------------------*/
void lcd_output_data(const unsigned char *zimo,const unsigned char *out_data)
{
unsigned char output_m=0;
unsigned char output_i;
unsigned char output_temp=0;
if(LCD_fault()==0)return;
lcd_bmp(16,9,4,32,2,zimo,0,zimode_left,zimode_right,first_page);
lcd_line(0,51,40,first_page);
lcd_line(0,52,40,first_page);
for(output_i=0;output_i<4;output_i++){
output_temp=output_data[output_i];
for(output_m=0;output_m<8;output_m++){
//input_temp=in_data[input_i];
if(((output_temp>>output_m)&0x01)==0){
if(output_i%2==0){
lcd_ascii_16x16(2*output_m+3+output_m/4,60+(output_i/2)*16,0,ascii_1616,4,zimode_left,zimode_right,first_page);
}
else{
lcd_ascii_16x16(2*output_m+21+output_m/4,60+(output_i/2)*16,0,ascii_1616,4,zimode_left,zimode_right,first_page);
}
}
else{
if(output_i%2==0){
lcd_ascii_16x16(2*output_m+3+output_m/4,60+(output_i/2)*16,1,ascii_1616,4,zimode_left,zimode_right,first_page);
}
else{
lcd_ascii_16x16(2*output_m+21+output_m/4,60+(output_i/2)*16,1,ascii_1616,4,zimode_left,zimode_right,first_page);
}
}
}
}
}
/*-----------------------------------------------------------------------/
函数名称:LCD_clock_to_ascii()
功能:将时钟转换为显示ascii码
参数:小时、分钟,存储缓存区
返回值:无
/-----------------------------------------------------------------------*/
void lcd_clock_to_ascii(unsigned char *c_real_clock,unsigned char *c_clock)
{
c_clock[0]=0x30+((c_real_clock[2]&0x3f)>>4);
c_clock[1]=0x30+(c_real_clock[2]&0x0f);
c_clock[3]=0x30+((c_real_clock[1]&0x7f)>>4);
c_clock[4]=0x30+(c_real_clock[1]&0x0f);
}
/*-----------------------------------------------------------------------/
函数名称:LCD_rev_to_ascii()
功能:将总里程转换为显示ascii码
参数:总里程,存储缓存区
返回值:无
/-----------------------------------------------------------------------*/
void lcd_rev_to_ascii(unsigned long c_rev,unsigned char *c_rev_a)
{
unsigned char km_temp[7]={0,0,0,0,0,0,0};
unsigned long km_ing[7]={1000000,100000,10000,1000,100,10,1};
char km_i;
char km_flag=0;
for(km_i=0;km_i<7;km_i++){
km_temp[km_i]=(unsigned char)(c_rev/km_ing[km_i]);
c_rev=c_rev%(km_ing[km_i]);
}
for(km_i=0;km_i<6;km_i++){
if((km_temp[km_i]==0)&&(km_flag==0))c_rev_a[km_i]=0x20;
else{
c_rev_a[km_i]=km_temp[km_i]+0x30;
km_flag=1;
}
}
c_rev_a[6]=km_temp[6]+0x30;
}
/*-----------------------------------------------------------------------/
函数名称:LCD_lich_to_ascii()
功能:将分里程转换为显示ascii码
参数:分里程,存储缓存区
返回值:无
/-----------------------------------------------------------------------*/
void lcd_lich_to_ascii(unsigned long c_lich,unsigned char *c_lich_a)
{
unsigned char km_temp[5]={0,0,0,0,0};
unsigned long km_ing[5]={100000,10000,1000,0x2d,100};
char km_i;
char km_flag=0;
for(km_i=0;km_i<5;km_i++){
if(km_i==3){
km_temp[km_i]=0x2e;
km_i++;
}
km_temp[km_i]=(unsigned char)(c_lich/km_ing[km_i]);
c_lich=c_lich%(km_ing[km_i]);
}
for(km_i=0;km_i<2;km_i++){
if((km_temp[km_i]==0)&&(km_flag==0))c_lich_a[km_i]=0x20;
else{
c_lich_a[km_i]=km_temp[km_i]+0x30;
km_flag=1;
}
}
c_lich_a[2]=km_temp[2]+0x30;
c_lich_a[3]=0x2e;
c_lich_a[4]=km_temp[4]+0x30;
}
/*-----------------------------------------------------------------------/
函数名称:LCD_temp_to_ascii()
功能:将温度转换为显示ascii码
参数:温度值,存储缓存区
返回值:无
/-----------------------------------------------------------------------*/
void lcd_tempe_to_ascii(char c_tempe,unsigned char *c_tempe_a)
{
unsigned char te_temp[3]={0,0,0};
unsigned char te_ing[2]={10,1};
char te_i;
char te_flag=0;
unsigned char te_mide;
if(c_tempe<0)te_mide=0x100-(unsigned char)c_tempe;
else te_mide=c_tempe;
for(te_i=0;te_i<2;te_i++){
te_temp[te_i]=te_mide/te_ing[te_i];
te_mide=te_mide%(te_ing[te_i]);
}
if(c_tempe>=0){
c_tempe_a[0]=0x20;
c_tempe_a[1]=te_temp[0]+0x30;
c_tempe_a[2]=te_temp[1]+0x30;
}
else{
c_tempe_a[0]=0x2d;
c_tempe_a[1]=te_temp[0]+0x30;
c_tempe_a[2]=te_temp[1]+0x30;
}
}
/*-----------------------------------------------------------------------/
函数名称:lcd_open_display()
功能:开机画面
参数:无
返回值:无
/-----------------------------------------------------------------------*/
void lcd_open_display(void)
{
if(LCD_fault()==0)return;
lcd_bmp(7,23,26,47,1,zgzq_o,0,zimode_left,zimode_right,first_page);
lcd_bmp(2,90,35,49,1,ylpa,0,zimode_left,zimode_right,first_page);
}
/*-----------------------------------------------------------------------/
函数名称:lcd_inout_change(unsigned char *old_data,unsigned char new_data,unsigned char mode)
功能:输入、输出数据的改变
参数:无
返回值:无
/-----------------------------------------------------------------------*/
void lcd_inout_change(unsigned char *old_data,unsigned char
*new_data,unsigned char mode)
{
unsigned char in_i;
unsigned char in_m;
unsigned char in_n;
unsigned char old_data_temp=0;
unsigned char new_data_temp=0;
if(LCD_fault()==0)return;
if(mode==in_mode) in_n=16;
else if(mode==out_mode) in_n=4;
for(in_i=0;in_i<in_n;in_i++){
if(new_data[in_i]!=old_data[in_i]){
old_data_temp=old_data[in_i];
new_data_temp=new_data[in_i];
for(in_m=0;in_m<8;in_m++){
if(((old_data_temp>>in_m)&0x01)!=((new_data_temp>>in_m)&0x01)){
if((new_data_temp>>in_m)&0X01==0){
if(in_i%2==0){
lcd_ascii_16x16(2*in_m+3+in_m/4,60+(in_i/2)*16,0,ascii_1616,4,zimode_left,zimode_right,first_page);
}
else{
lcd_ascii_16x16(2*in_m+21+in_m/4,60+(in_i/2)*16,0,ascii_1616,4,zimode_left,zimode_right,first_page);
}
}
else{
if(in_i%2==0){
lcd_ascii_16x16(2*in_m+3+in_m/4,60+(in_i/2)*16,1,ascii_1616,4,zimode_left,zimode_right,first_page);
}
else{
lcd_ascii_16x16(2*in_m+21+in_m/4,60+(in_i/2)*16,1,ascii_1616,4,zimode_left,zimode_right,first_page);
}
}
}
}
old_data[in_i]=new_data[in_i];
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -