📄 config.c
字号:
#include <reg52.h>
#include <intrins.h>
#define EXTERN_LCD
#include "lcd.h"
#include "config.h"
uchar k2=0,k4=0,k16=0;//,k5=0,k6=0,k7=0,k8=0,k1=0,k3=0;//,k9=0;
uchar k18=0,k19=0,k20=0,k21=0;//,k10=0,k11=0,k12=0,k13=0,k15=0,k17=0;
// uint k14=0,k9=0;
uchar a1=0,b1=0,c1=0;//kk
bit g1=0,g2=0,flag_start=0,gg=0,gf=0;//,g3=0;
bit flag1=0,flag2=0,flag3=0,flag4=0;//,flag5=0,flag6=0,flag7=0,flag8=0,flag9=0;
//bit flag10=0,flag11=0,flag12=0,flag13=0,flag14=0,flag15=0,flag16=0;//,flag6=0;
//bit flag17=0,flag18=0,flag19=0,flag20=0,flag21=0;
uint data array1[8]= {4,122,1,0,1,40,1,4};
uint xdata array2[32]={20,5,0,0,3,2,20,40,
25,0,0,0,3,2,20,40,
20,5,0,0,3,2,20,40,
27,0,0,0,3,2,20,40};
uint xdata array3[32]={0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0};
//uchar xdata array4[8]={'x',' ',' ',' ','x',' ',' ',' '};
//uchar xdata array5[10]={' ',' ',' ',' ','n','o','n','e',' ',' '};
//uchar xdata array6[6] ={' ',' ',' ',' ',' ',' '};
void Keyboard_Process(void)//被调用的前提是: 有键按下/////
{
P0=0xf0; /////键盘的正常工作赋值//////////////////////
key_xd_delay();////键消抖延时/////
if((P07&P06&P05&P04)==0)////确定有真正的键按下////
{
if(flag_start==0)///////上电后有任意键按下时进入开机画面//////
{
flag_start=1;////当再有键按下时保证不会重复进入开机画面////
LCD_Clear_Text();//////清除文本层显示数据///////////////////////
LCD_Disp_Graphics(picture2);//显示图片2////开机片花/////
Delay(500);
LCD_Clear_Graphics();//清除图形层显示数据/
Disp_Start();/////////////显示开机界面///
Delay(50);
}
else { Kb_Process_1();}///flag_start=1;的情况///
}/////////if((P07&P06&P05&P04)==0)结束///////////////////////////
}//////Keyboard_Process(void)结束///////
/////////////////////////////////////////////////////////////////////////////////
void Kb_Process_1(void)//被调用的前提是: 有键按下并且flag_start=1;/////
{////////已经处于开机界面状态//////////////////////////////////////////
if(flag1==0)///////此时有键按下//而之前又没有按下确定键进入第一层主菜单//////
{
k16=Operate_Model();
if(k16==88)//按下确定键//
{
LCD_Clear_Text();//////清除文本层显示数据////
Disp_interface_1();////按下确定键才进入第一层主菜单界面//
flag1=1;////当再有确定键按下时保证不会进入第一层主菜单界面/////
}
else {;}////只有按下确定键才进入第一层主菜单界面//按其它键无效////
}
else {Kb_Process_2();}///flag1=1;的情况//
}
//////////////////////////////////////////////////////////////////////////////////
void Kb_Process_2(void)//被调用的前提是: 有键按下并且flag_start=1;flag1=1;///
{/////////////现在已经处于第一层主菜单界面中///////////////////////////
if(flag2==0)/////此时有键按下//而之前又没有按下任意键来操作第一层主菜单///////
{
//Disp_interface_1();////显示主功能的菜单界面///
k16=Operate_Model();
if(k16==88)//按下确定键//
{
LCD_Clear_Text();//////清除文本层显示数据////
Disp_interface_2();//显示按确定键后的界面//
flag2=1;/////已经有有效的键来操作第一层主菜单/////
k2=88;
}
if(k16==33)//按下箭头标向下移动的键//
{
//Disp_interface_1();////显示主功能的菜单界面///
LCD_Write_word(2,16," %",0);//清除原来箭头标的显示//
LCD_Write_word(2,32,"==> 2) 基 本 资 料%",0);//在新地方显示箭头标//
LCD_Disp_Frame_S(); ///////外框维护///////////
flag2=1;//////////已经有有效的键来操作第一层主菜单///////////////
k2=33;
}
///////注意按其它的键无效///////
}
else {Kb_Process_3();}//////flag2=1;的情况//////
}
///////////////////////////////////////////////////////////////////////////////////////////////
void Kb_Process_3(void)//被调用的前提是: 有键按下并且flag_start=1;flag1=1;flag2=1;/////
{ ///////此时可能处于2种界面状态///k2=88的界面和k2=33的界面/////////////////////////////////////////////////////////
if(flag3==0)/////此时有键按下//而之前又没有按下任意键来操作k2=88的界面和k2=33的界面///////
{
if(k2==88)//////如果是对k2=88的界面进行操作/////
{////////////已经处于Disp_interface_2();的界面状态//
k16=Operate_Model();
if(k16==88)///如果按下确定键//
{
LCD_Clear_Text();//////清除文本层显示数据////
Disp_interface_4(array1);//显示按确定键后的界面//
Cursor_configure(11,32,0x20,0x20,0x6f);//光标配置//
flag3=1;
k4=22;
}
if(k16==33)/////如果按下箭头标向下移动的键//
{
LCD_Write_word(2,16," %",0);////清除原来箭头标的显示//
LCD_Write_word(2,32,"==>%",0);//光标向下移动到//现行控制方案状况////
LCD_Disp_Frame_S(); //////////外框维护///////////
flag3=1;
k4=55;
}
if(k16==11)//向上//返回到前一界面//
{
LCD_Clear_Text();//////清除文本层显示数据////
Disp_interface_1();////
flag2=0;////仍然有flag_start=1;flag1=1;////
}
///////////注意按其它的键无效//////////////
}
else/// k2=33的情况//如果是对k2=33的界面进行操作//
{////已经处于k2=33的界面状态//LCD_Write_word(2,32,"==> 2) 基 本 资 料%",0);///////
k16=Operate_Model();
if(k16==88)///如果按下确定键//
{
// LCD_Clear_Text();//////清除文本层显示数据////
// Disp_interface_4(array1);//显示按确定键后的界面//
// Cursor_configure(11,32,0x20,0x20,0x6f);//光标配置//
// flag3=1;
// k4=33;
}
if(k16==33)/////如果按下箭头标向下移动的键//
{
// LCD_Write_word(2,16," %",0);////清除原来箭头标的显示//
// LCD_Write_word(2,32,"==>%",0);//光标向下移动到//现行控制方案状况////
// LCD_Disp_Frame_S(); //////////外框维护///////////
// flag3=1;
// k4=66;
}
if(k16==11)//向上//返回到前一界面//
{
// LCD_Clear_Text();//////清除文本层显示数据////
// Disp_interface_1();////
// flag2=0;////仍然有flag_start=1;flag1=1;////
}
///////////注意按其它的键无效//////////////
}
}
else {Kb_Process_4();}////////flag3=1;的情况/////////
}
/////////////////////////////////////////////////////////////////////////////////////////////////
void Kb_Process_4(void)//被调用的前提是: 有键按下并且flag_start=1;flag1=1;flag2=1;flag3=1/////
{
if(flag4==0)
{
if(k4==22)
{
///////进行3个界面相互切换//72个数据的输入、显示并保存处理///////////////
process_1();
}
if(k4==55)//// k4=55的情况////////
{
//process_2();
//////////////////////
}
if(k4==33)//// k4=33的情况////////
{
//process_3();
//////////////////////
}
if(k4==66)//// k4=66的情况////////
{
//process_4();
//////////////////////
}
}
else/////// flag4=1////////
{
;
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*
///////////////////////////////////////////////////////////////////////////////////////////////////////////
void process_2(void)
{
//////////////if(k19==0)结构////处理向上和向下翻滚的功能////////////////////////////////////////////////////////////////
if(k22==0)
{
k16=Operate_Model();
if(k16==33)///向下翻//
{
LCD_Write_word(2,32," %",0);////清除原来箭头标的显示//
LCD_Write_word(2,48,"==>%",0);//光标向下移动到//现行控制方案状况////
LCD_Disp_Frame_S(); //////////外框维护///////////
flag3=1;
k4=55;
// g1=1; k18=0; k19++;
// LCD_Clear_Text();//////清除文本层显示数据////
// Disp_interface_5(array2);//确定//
// Cursor_configure(5,64,0x20,0x20,0x6f);//光标配置//
return;
}
else
{
if(k16==11)///向上翻//
{
//LCD_Clear_Text();//////清除文本层显示数据////
//Disp_interface_2();//确定//
//flag_start=1;flag1=1;flag2=1;
//flag3=0;k19=0;
//k2=88;
//Cursor_configure(5,64,0x20,0x20,0x69);//光标不显示//
return;
}
else
{
if(k16==88)//////
{
LCD_Clear_Text();//////清除文本层显示数据////
Disp_interface_7(array4);//显示按确定键后的界面//
Cursor_configure(14,48,0x20,0x20,0x6f);//光标配置//
//flag4=1;
//k4=22;
//flag_start=1;flag1=1;flag2=1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -