📄 displayv2.c
字号:
{
temp1[i]= read_display();
temp1[i] = temp1[i] & 0xf0;
}
disp_inst();
write_display((col>>4)|0x10);
write_display((col & 0x0f)| 0x00);
disp_data();
for(i=0;i<6;i++)
{
write_display((ravi_font[disp_temp*6 + i]>>2) |(ravi_font1[disp_temp*6 + i]<<6));
}
break;
case 3:
row = (row * 12)/8;
//row--;
disp_inst();
write_display(0xb0 |row);
write_display((col>>4)|0x10);
write_display((col & 0x0f)| 0x00);
disp_data();
temp = read_display();
for(i=0;i<6;i++)
{
temp1[i]= read_display();
temp1[i] = temp1[i] & 0x0f;
}
disp_inst();
write_display((col>>4)|0x10);
write_display((col & 0x0f)| 0x00);
disp_data();
for(i=0;i<6;i++)
{
temp = ravi_font[disp_temp*6 + i]<<1;// <<4;
write_display( (temp1[i]|temp));
}
disp_inst();
write_display((0xb0|row)+1 );
write_display((col>>4)|0x10);
write_display((col & 0x0f)| 0x00);
disp_data();
for(i=0;i<6;i++)
{
//write_display((ravi_font[disp_temp*6 + i]>>4) |(ravi_font1[disp_temp*6 + i]<<4));
write_display((ravi_font[disp_temp*6 + i]>>7) |(ravi_font1[disp_temp*6 + i]<<1));
}
break;
case 4:
row = (row * 12)/8;
row--;
disp_inst();
write_display(0xb0 |row);
write_display((col>>4)|0x10);
write_display((col & 0x0f)| 0x00);
disp_data();
temp = read_display();
for(i=0;i<6;i++)
{
temp1[i]= read_display();
temp1[i] = temp1[i] & 0x0f;
}
disp_inst();
write_display((col>>4)|0x10);
write_display((col & 0x0f)| 0x00);
disp_data();
for(i=0;i<6;i++)
{
temp = ravi_font[disp_temp*6 + i]<<4;
write_display((temp1[i]|temp));
}
disp_inst();
write_display((0xb0 |row) +1);
write_display((col>>4)|0x10);
write_display((col & 0x0f)| 0x00);
disp_data();
temp = read_display();
for(i=0;i<6;i++)
{
temp1[i]= read_display();
temp1[i] = temp1[i] & 0xf0;
}
disp_inst();
write_display((col>>4)|0x10);
write_display((col & 0x0f)| 0x00);
disp_data();
for(i=0;i<6;i++)
{
//write_display((ravi_font[disp_temp*6 + i]>>4) |(ravi_font1[disp_temp*6 + i]<<4));
write_display((ravi_font[disp_temp*6 + i]>>4)|ravi_font1[disp_temp*6 + i]<<4);
}
break;
case 5:
row = (row * 12)/8;
row--;
disp_inst();
write_display(0xb0 |row);
write_display((col>>4)|0x10);
write_display((col & 0x0f)| 0x00);
disp_data();
temp = read_display();
for(i=0;i<6;i++)
{
temp1[i]= read_display();
temp1[i] = temp1[i] & 0xff;
}
disp_inst();
write_display((col>>4)|0x10);
write_display((col & 0x0f)| 0x00);
disp_data();
for(i=0;i<6;i++)
{
temp = ravi_font[disp_temp*6 + i]<<7;// <<4;
write_display( (temp1[i]|temp));
}
disp_inst();
write_display((0xb0|row)+1 );
write_display((col>>4)|0x10);
write_display((col & 0x0f)| 0x00);
disp_data();
for(i=0;i<6;i++)
{
//write_display((ravi_font[disp_temp*6 + i]>>4) |(ravi_font1[disp_temp*6 + i]<<4));
write_display((ravi_font[disp_temp*6 + i]>>1) |(ravi_font1[disp_temp*6 + i]<<7));
}
break;
default:
break;
}
disp_count++;
if(disp_count >119)//99
{disp_count = 0;
row = 0;
col = 0;}
}
char putchar1(char c)
{
unsigned char lcd_i;
if (c == 0x0a)
{
for (lcd_i=disp_count%20;lcd_i<20;lcd_i++)
{
disp_char(' ');
}
}
else if(c == 0x0d)
{
disp_count = disp_count - (disp_count%20);
}
else if (c == 8)
{
disp_count--;
disp_char(' ');
disp_count--;
}
else
{
disp_char(c);
}
return c;
}
void clrscr(void)
{
unsigned char row,col;
for(row =0; row <8; row++)
{
disp_inst();
write_display(0xb0 | row);
write_display(0x10);
write_display(0x00);
disp_data();
for(col=0;col<128;col++) //128
{
write_display(0x00);
}
}
disp_count = 0;
row_count = 0;
col_count = 0;
}
void Disp_cur_rev(void)
{
//unsigned char temp,temp_char,width,flag;
disp_count--;
disp_char(' ');
disp_count--;
/*
flag = 0;
width = 0;
if(disp_count == 0)
{
if(row_count != 0)
{
row_count --;
row_select();
disp_count = *(row_no + 0);
flag = 1;
for(temp=1;temp<=disp_count;temp++)
{
temp_char = *(row_no + temp);
width = width + long_font[8*temp_char]+1;
}
col_count = width;
}
}
else flag = 1;
if(flag == 1)
{
temp = *(row_no + disp_count);
width = long_font[8*temp];
col_count = col_count - width - 1;
blank_disp(width + 1);
disp_count--;
*(row_no + 0) = disp_count;
}*/
}
void blank_disp(unsigned char blank_count)
{
unsigned char row,i,temp1[20];
disp_inst();
if(row_count%2)
{
row = (row_count * 12)/8;
disp_inst();
write_display(0xb0 |row);
write_display((col_count>>4)|0x10);
write_display((col_count & 0x0f)| 0x00);
disp_data();
temp1[0] = read_display();
for(i=0;i<blank_count;i++)
{
temp1[i] = read_display();
temp1[i] = temp1[i] & 0x0f;
}
disp_inst();
write_display((col_count>>4)|0x10);
write_display((col_count & 0x0f)| 0x00);
disp_data();
for(i=0;i<blank_count;i++)
write_display( temp1[i]);
disp_inst();
write_display((0xb0|row) + 1);
write_display((col_count>>4)|0x10);
write_display((col_count & 0x0f)| 0x00);
disp_data();
for(i=0;i<blank_count;i++)
write_display(0x00);
}
else
{
row = (row_count * 12)/8;
disp_inst();
write_display(0xb0 |row);
write_display((col_count>>4)|0x10);
write_display((col_count & 0x0f)| 0x00);
disp_data();
for(i=0;i<blank_count;i++)
{
write_display(0x00);
}
disp_inst();
write_display((0xb0|row) + 1);
write_display((col_count>>4)|0x10);
write_display((col_count & 0x0f)| 0x00);
disp_data();
temp1[0] = read_display();
for(i=0;i<blank_count;i++)
{
temp1[i] = read_display();
temp1[i] = temp1[i] & 0xf0;
}
disp_inst();
write_display((0xb0|row) + 1);
write_display((col_count>>4)|0x10);
write_display((col_count & 0x0f)| 0x00);
disp_data();
for(i=0;i<blank_count;i++)
{
write_display(temp1[i]);
}
}
disp_inst();
}
//********************************************************************
// Added Ones
//********************************************************************
void Disp_bcd1(unsigned char bcd_i)
{
bcd_i = (bcd_i &0x0f) + 0x30;
printf("%c",bcd_i);
}
void set_cursor(unsigned char disp_tempt)
{
gotoxy(disp_tempt,1);
}
/*
void Disp_date(void)
{
Disp_int(date[0]);
printf("/");
Disp_int(date[1]);
printf("/");
Disp_int(date[2]);
printf(" ");
}
void Disp_time(void)
{
Disp_int(time[0]);
printf(":");
Disp_int(time[1]);
printf(":");
Disp_int(time[2]);
}*/
void Disp_int(unsigned int bcd_i)
{
if(bcd_i<10) printf("0%d",bcd_i);
else printf("%d",bcd_i);
}
void Disp_bcd2(unsigned char bcd_i)
{
unsigned char bcd_i1;
bcd_i1 = (bcd_i & 0xf0) + 0x30;
printf("%c",bcd_i1);
bcd_i1 = (bcd_i & 0x0f) + 0x30;
printf("%c",bcd_i1);
}
/*
void Disp_int(unsigned int Dint,unsigned char Dlimit)
{
unsigned char idata Dint_i;
if(Dlimit >5) Dlimit = 5;
for(Dint_i=0;Dint_i<Dlimit;Dint_i++)
{
Dint_rem[4-Dint_i] = Dint%10;
Dint = Dint /10;
}
for(Dint_i=5-Dlimit;Dint_i<5;Dint_i++)
{
Disp_bcd1(Dint_rem[Dint_i]);
}
}
void Disp_asc(unsigned char asc_i)
{
disp_data();
DATAOUT_A = asc_i;
disp_enable();
delay_us(10);
}
*/
//----------------Battery Level Indication---------------------
unsigned char bat_chk(void)
{
float adc_val[4];
unsigned char blvl,blv_count,i2_db;
init_ADC(2);
blvl=0;
for(i2_db=0;i2_db<4;i2_db++)
{
adc_val[i2_db] = read_ADC(2);
adc_val[i2_db] = adc_val[i2_db] * 10.89/1024; //10.89 12.23
delay_Ms(1);
}
adc_val[0] = adc_val[0]+adc_val[1]+adc_val[2]+adc_val[3];
adc_val[0] = adc_val[0]/4 + 0.48;
//printf("%f\n",adc_val[0]);
if (adc_val[0] > 8.0) blvl = 8;
else if (adc_val[0] > 7.6) blvl = 7;
else if (adc_val[0] > 7.2) blvl = 6;
else if (adc_val[0] > 6.8) blvl = 5;
else if (adc_val[0] > 6.4) blvl = 4;
else if (adc_val[0] > 6.0) blvl = 3;
for (i2_db=0;i2_db<8-blvl;i2_db--)
{
disp_inst();
write_display(0xb0 | i2_db);
write_display(0x17);
write_display(0x09);
disp_data();
for(blv_count=0;blv_count<7;blv_count++)
write_display(0x00);
}
for (i2_db = 0;i2_db<blvl;i2_db++)
{
disp_inst();
write_display(0xb0 | (7 - i2_db));
write_display(0x17);
write_display(0x09);
disp_data();
for(blv_count=0;blv_count<7;blv_count++)
write_display(batt_graph[7*i2_db+ blv_count]);
}
// for(i1=0;i1<3;i1++)
// {
// delay_Ms(500);
// FIO0SET = (1 << 27);//OFF
// delay_Ms(500);
// FIO0CLR = (1 << 27);//ON
// }
return (blvl-3);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -