📄 main.c
字号:
}
display_set();
ch451_init();
ch451_write(0x406);
}
//****************** off *********************************************//
void off(void)
{
clear_lcd_screen();
write_word(0,3,16,&chinese[63]); // 重新启动中……
write_word(0,3,32,&chinese[39]);
write_word(0,3,48,&chinese[64]);
write_word(1,3,0,&chinese[65]);
write_byte(1,3,30,&number[24]);
write_word(1,3,16,&chinese[36]);
write_byte(1,3,34,&number[24]);
write_byte(1,3,38,&number[24]);
write_byte(1,3,42,&number[24]);
write_byte(1,3,46,&number[24]);
// write_byte(1,3,50,&number[24]);
delay_1s(20000);
EA=0;
while(1);
}
/******************* myselfe_number ******************************/
void myselfe_number(void)
{
unsigned char o1,o2;
clear_lcd_screen();
write_word(0,3,16,&chinese[18]); //write input a word "本"
write_word(0,3,32,&chinese[19]); //write input a word "机"
write_word(0,3,48,&chinese[20]); //write input a word "编"
write_word(1,3,0,&chinese[21]); //write input a word "号"
write_byte(1,3,16,&number[22]); //write input a byte ":"
read_iic_data(1,&iic_read,5,1);
o1=iic_read[0]/100;
write_byte(1,3,24,&number[o1]);
o2=(iic_read[0]-o1*100)/10;
write_byte(1,3,32,&number[o2]);
o1=(iic_read[0]-o1*100-o2*10)%10;
write_byte(1,3,40,&number[o1]);
key_delay(60000);
key_delay(60000);
clear_lcd_screen();
}
/******************* myselfe_number ******************************/
void myselfe_number_1(void)
{
unsigned char o1,o2;
write_word(0,0,18,&chinese[18]); //write input a word "本"
write_word(0,0,34,&chinese[19]); //write input a word "机"
write_word(0,0,50,&chinese[20]); //write input a word "编"
write_word(1,0,1,&chinese[21]); //write input a word "号"
write_byte(1,0,16,&number[22]); //write input a byte ":"
read_iic_data(1,&iic_read,5,1);
o1=iic_read[0]/100;
write_byte(1,0,24,&number[o1]);
o2=(iic_read[0]-o1*100)/10;
write_byte(1,0,32,&number[o2]);
o1=(iic_read[0]-o1*100-o2*10)%10;
write_byte(1,0,40,&number[o1]);
}
//********** 给写到LCD SCREEN 的数据求反 ***************/
void changed(bit x,bit k,unsigned char y[])
{
unsigned char i;
unsigned char *p;
p=y;
if(x==0)
{
for(i=0;i<16;i++)
{
if(k==1)
{change_byte[i]=~*p;
p++;}
else
{
change_byte[i]=*p;
p++;
}
}}
if(x==1)
{
for(i=0;i<32;i++)
{
if(k==1)
{
change_word[i]=~*p;
p++;
}
else
{
change_word[i]=*p;
p++;
}
}}
}
/************** setup succeed ************************************/
void setup_succeed(void)
{
clear_lcd_screen();
write_word(0,3,32,&chinese[66]);
write_word(0,3,48,&chinese[67]);
write_word(1,3,0,&chinese[55]);
write_word(1,3,16,&chinese[56]);
write_byte(1,3,32,&number[23]);
key_delay(60000);key_delay(60000);
clear_lcd_screen();
}
/**************** setup unceed **************************/
void setup_unsucceed(void)
{
clear_lcd_screen();
write_word(0,3,24,&chinese[25]);
write_word(0,3,40,&chinese[26]);
write_word(0,3,56,&chinese[17]);
write_word(1,3,8,&chinese[114]);
write_word(1,3,24,&chinese[115]);
write_byte(1,3,40,&number[23]);
key_delay(60000);key_delay(60000);
clear_lcd_screen();
}
/***************** key *********************************************/
void key(void)
{
unsigned char i,key_value,ff,bb,ss,display_mode;
unsigned char change_value;
unsigned char page;
int temp;
bit minus_flag;
bit row1,row2,row3,row4;
float temperature_value; // ES=0;
// unsigned long int n1;
// float g_value;
// short int voltage;
key_value=key_code();
key_flag=0;
//if(key_flag==1){while(1);}
if(key_value==0x58|key_value==0x18)
{
clear_lcd_screen();
write_word(0,3,40,&chinese[22]);
write_word(0,3,56,&chinese[106]);
write_word(1,3,8,&chinese[107]);
write_byte(1,3,24,&number[27]);
write_byte(1,3,28,&number[27]);
write_byte(1,3,32,&number[27]);
write_byte(1,3,36,&number[27]);
write_byte(1,3,40,&number[27]);
read_iic_data(1,&iic_read,0,8);delay_iic();
write_iic_data(3,&iic_read,0,8);delay_iic();
i=iic_read[0];
for(iic_write[0]=0;iic_write[0]<i;iic_write[0]++)
{
read_iic_data(0,&iic_read,iic_write[0]*8,8);delay_iic();
write_iic_data(2,&iic_read,iic_write[0]*8,8);delay_iic();
}
setup_succeed();
}
if(key_value==0x60)
{
for(i=0;i<40;i++)
{key_delay(1000);
key_value=key_code();
key_flag=0;
if(key_value!=0x60)
{break;}
}
if(key_value==0x60){myselfe_number();key_value=0; } // 查看本机编号!
}
if(key_value==0x40) // 重启!
{
for(i=0;i<40;i++)
{
key_delay(1000);
key_value=key_code();
if(key_value!=0x40){break;}
}
if(key_value==0x40){off();}
}
if(key_value==0x20|key_value==0x60) //enter menu
{
row1=1;row2=0;row3=0;row4=0;change_value=0;
clear_lcd_screen();
while(1)
{ flag_exit=1;if(flag_exit_ok){flag_exit=0;flag_exit_ok=0;return;}
changed(0,row1,&number[1]); //row1
write_byte(0,0,4,&change_byte);
changed(0,row1,&number[19]);
write_byte(0,0,12,&change_byte);
changed(1,row1,&chinese[11]);
write_word(0,0,16,&change_word);
changed(1,row1,&chinese[12]);
write_word(0,0,32,&change_word);
changed(1,row1,&chinese[66]);
write_word(0,0,48,&change_word);
changed(1,row1,&chinese[67]);
write_word(1,0,0,&change_word);
for(i=0;i<16;i++)
{
if(row1==1){ff=0xff;}
else {ff=0x00;}
change_byte[i]=ff;
}
write_byte(1,0,16,&change_byte);
write_byte(1,0,24,&change_byte);
write_byte(1,0,32,&change_byte);
write_byte(1,0,40,&change_byte);
write_byte(1,0,48,&change_byte);
// write_byte(1,0,48,&change_byte);
// write_byte(1,0,56,&change_byte);
changed(0,row2,&number[2]); //row2
write_byte(0,2,4,&change_byte);
changed(0,row2,&number[19]);
write_byte(0,2,12,&change_byte);
changed(1,row2,&chinese[68]);
write_word(0,2,16,&change_word);
changed(1,row2,&chinese[69]);
write_word(0,2,32,&change_word);
changed(1,row2,&chinese[60]);
write_word(0,2,48,&change_word);
changed(1,row2,&chinese[61]);
write_word(1,2,0,&change_word);
for(i=0;i<16;i++)
{
if(row2==1){ff=0xff;}
else {ff=0x00;}
change_byte[i]=ff;
}
write_byte(1,2,16,&change_byte);
write_byte(1,2,24,&change_byte);
write_byte(1,2,32,&change_byte);
write_byte(1,2,40,&change_byte);
write_byte(1,2,48,&change_byte);
changed(0,row3,&number[3]); //row3
write_byte(0,4,4,&change_byte);
changed(0,row3,&number[19]);
write_byte(0,4,12,&change_byte);
changed(1,row3,&chinese[70]);
write_word(0,4,16,&change_word);
changed(1,row3,&chinese[71]);
write_word(0,4,32,&change_word);
changed(1,row3,&chinese[72]);
write_word(0,4,48,&change_word);
changed(1,row3,&chinese[73]);
write_word(1,4,0,&change_word);
changed(1,row3,&chinese[66]);
write_word(1,4,16,&change_word);
changed(1,row3,&chinese[67]);
write_word(1,4,32,&change_word);
changed(0,row3,&number[19]);
write_byte(1,4,48,&change_byte);
changed(0,row4,&number[4]); //row4
write_byte(0,6,4,&change_byte);
changed(0,row4,&number[19]);
write_byte(0,6,12,&change_byte);
changed(1,row4,&chinese[74]);
write_word(0,6,16,&change_word);
changed(1,row4,&chinese[75]);
write_word(0,6,32,&change_word);
changed(1,row4,&chinese[76]);
write_word(0,6,48,&change_word);
changed(1,row4,&chinese[77]);
write_word(1,6,0,&change_word);
for(i=0;i<16;i++)
{
if(row4==1){ff=0xff;}
else {ff=0x00;}
change_byte[i]=ff;
}
write_byte(1,6,16,&change_byte);
write_byte(1,6,24,&change_byte);
write_byte(1,6,32,&change_byte);
write_byte(1,6,40,&change_byte);
write_byte(1,6,48,&change_byte);
if(key_flag==1)
{
ok_n_times=0;
key_value=key_code();key_flag=0;
if(key_value==0x20|key_value==0x60){clear_lcd_screen(); change_value=0; row1=1;row2=0;row3=0;row4=0;break;}
if(key_value==0x48|key_value==0x08) {change_value++; if(change_value>3){change_value=0;} }
if(key_value==0x50|key_value==0x10) {if(change_value<=0) {change_value=3; }else{change_value--;} }
if(key_value==0x40)
{
if(row1)
{row1=1;row2=0;row3=0;row4=0;
clear_lcd_screen();
while(1)
{ flag_exit=1;if(flag_exit_ok){flag_exit=0;flag_exit_ok=0;return;}
changed(0,row1,&number[1]); //row11
write_byte(0,0,4,&change_byte);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -