⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd.c

📁 数控电源的LCD菜单程序
💻 C
📖 第 1 页 / 共 2 页
字号:
{
 d1_4(3);
 
}
void d4(void)
{
 d1_4(4);
 
}
void d5(void)
{
 dis_cls();

 dis_one_char(0,0,'5',0); //5.  版本信息 
 dis_one_char(0,1,'.',0);
 dis_one_char(0,2,0x7f,1);
 dis_one_char(0,3,0x7f,1);
 dis_one_zi(0,2,x17,0,1);
 dis_one_zi(0,3,x18,0,1);
 dis_one_zi(0,4,x19,0,1);
 dis_one_zi(0,5,x20,0,1);
 dis_one_char(0,12,0x7f,1);
 dis_one_char(0,13,0x7f,1);
 dis_one_char(0,14,0x7f,1);
 dis_one_char(0,15,0x7f,1);
 dis_one_char(1,0,'6',1); //6.退         出 
 dis_one_char(1,1,'.',1);
 
 dis_one_zi(1,2,x21,1,1);
 dis_one_zi(1,3,x22,1,1);
 dis_one_zi(1,4,x11,1,1);
 dis_one_zi(1,5,x12,1,1);
 
}
void d6(void)
{
 dis_cls();
 dis_one_char(0,0,'5',1); //5.软件版本信息 
 dis_one_char(0,1,'.',1);
 dis_one_zi(0,2,x17,1,1);
 dis_one_zi(0,3,x18,1,1);
 dis_one_zi(0,4,x19,1,1);
 dis_one_zi(0,5,x20,1,1);

 dis_one_char(1,0,'6',0); //6.退         出 
 dis_one_char(1,1,'.',0);
 dis_one_char(1,2,0x7f,1);
 dis_one_char(1,3,0x7f,1);
 dis_one_zi(1,2,x21,0,1);
 dis_one_zi(1,3,x22,0,1);
 dis_one_zi(1,4,x11,0,1);
 dis_one_zi(1,5,x12,0,1);
 dis_one_char(1,12,0x7f,1);
 dis_one_char(1,13,0x7f,1);
 dis_one_char(1,14,0x7f,1);
 dis_one_char(1,15,0x7f,1);
}
void d7_8_10_11_13_14_16_17(uchar disnum,uchar danwei,uchar sel_exit)
{
 dis_cls();
 
 dis_one_zi(0,0,x23,1,1);  //当前电压
 dis_one_zi(0,1,x24,1,1);
 
 switch(danwei)
 {
  case 'V':
  {dis_one_zi(0,2,x2,1,1);
  dis_one_zi(0,3,x3,1,1);
  break;}
  case 'A':
  {dis_one_zi(0,2,x2,1,1);
  dis_one_zi(0,3,x4,1,1);
  break;}
     
  case 'W':
  {dis_one_zi(0,2,x5,1,1);
  dis_one_zi(0,3,x6,1,1);
  break;}
  case 'C':
  {dis_one_zi(0,2,x9,1,1);
  dis_one_zi(0,3,x10,1,1);
  break;}
 }
 print_num(0,8,disnum,danwei,1);

 
 switch(sel_exit)
 {
  case 0:
    {dis_one_zi(2,3,x25,1,1); //修改
  dis_one_zi(2,4,x26,1,1);
  dis_one_char(3,5,0x7f,1);
  dis_one_zi(3,3,x21,0,1);  //退出(反显)
  dis_one_zi(3,4,x22,0,1);
  dis_one_char(3,10,0x7f,1);
  break;
  }
  
  case 1:
    {dis_one_char(2,5,0x7f,1); 
  dis_one_zi(2,3,x25,0,1); //修改(反显)
  dis_one_zi(2,4,x26,0,1);
  dis_one_char(2,10,0x7f,1);
  dis_one_zi(3,3,x21,1,1);  //退出
  dis_one_zi(3,4,x22,1,1);
  break;
  }
  
 }

}
void d7(void)
{
 d7_8_10_11_13_14_16_17(v,'V',1);
}
void d8(void)
{
 d7_8_10_11_13_14_16_17(v,'V',0);
}
void d9_12_15_18(uchar disnum,uchar disnum_new,uchar danwei)
{
 
 dis_cls();
 dis_one_zi(0,0,x27,1,1);  //原值
 dis_one_zi(0,2,x28,1,1);

 dis_one_zi(2,0,x29,1,1); //新设定
 dis_one_zi(2,1,x11,1,1);
 dis_one_zi(2,2,x30,1,1);
 print_num(0,6,disnum,danwei,1);
 print_num(2,6,disnum_new,danwei,1);
}
void d9(void)
{
 d9_12_15_18(v,v_new,'V');
}

//-------------------------------------------------------------------
void d10(void)
{
 d7_8_10_11_13_14_16_17(i,'A',1);
}
void d11(void)
{
 d7_8_10_11_13_14_16_17(v,'V',0);
}
void d12(void)
{
 d9_12_15_18(i,i_new,'A');
 
}
//-------------------------------------------------------------------------
void d13(void)
{
 d7_8_10_11_13_14_16_17(p,'W',1);
}
void d14(void)
{
 d7_8_10_11_13_14_16_17(p,'W',0);
}
void d15(void)
{
 d9_12_15_18(p,p_new,'W');
}
//-------------------------------------------------------------------------
void d16(void)
{
 d7_8_10_11_13_14_16_17(t,'C',1);
}
void d17(void)
{
 d7_8_10_11_13_14_16_17(t,'C',0);
}
void d18(void)
{
 d9_12_15_18(t,t_new,'C');
}
void d19_26(uchar dis_num,uchar dis_num_new,uchar danwei)
{
 print_num(0,6,dis_num,danwei,1);
 print_num(2,6,dis_num_new,danwei,1);
 
}
void d19(void)
{
 if(++v_new==251)
 v_new=0;
    d19_26(v,v_new,'V');
}
void d20(void)
{
    if(v_new==0)
 v_new=251;
 v_new--;
 
    d19_26(v,v_new,'V');
}
void d21(void)
{
 if(++i_new==201)
 i_new=0;
    d19_26(i,i_new,'A');
}
void d22(void)
{
    if(i_new==0)
 i_new=201;
 i_new--;
 d19_26(i,i_new,'A'); 
}
void d23(void)
{
 if(++p_new==51)
 p_new=0;
 d19_26(p,p_new,'W');
}
void d24(void)
{
 if(p_new==0)
 p_new=51;
 p_new--;
 d19_26(p,p_new,'W');
}
void d25(void)
{
 if(++t_new==101)
 t_new=0;
 d19_26(t,t_new,'C');
}
void d26(void)
{
    if(t_new==0)
 t_new=101;
 t_new--;
 d19_26(t,t_new,'C');
}

void d27(void)
{
 dis_cls();
 delay(200);
// dis_one_zi(0,0,x17,1,1);  //版本设计
// dis_one_zi(0,1,x18,1,1);
// dis_one_zi(2,0,x19,1,1); 
// dis_one_zi(2,1,x20,1,1);

}
void d28(void)
{
 dis_cls();
 dis_one_zi(1,2,x11,1,1);  //设置成功
 dis_one_zi(1,3,x12,1,1);
 dis_one_zi(1,4,x31,1,1); 
 dis_one_zi(1,5,x32,1,1);
 dis_one_char(1,12,'!',1);
 v=v_new;
 i=i_new;
 p_new=v*i;
 p=p_new;
 t=t_new;
 delay(1200);
 keyfuncindex=0;
 d0();
}

typedef struct
{
 uchar keystateindex;
 uchar keydnstate;
 uchar keyupstate;
 uchar keycrstate;
 void(*currentoperate)();
} kbdtabstruct;
kbdtabstruct code keytab[size_of_keybd_menu]=
{ //第一行表示在0级菜单时按下向下键则转到1级菜单
  //按下向上键则转1级菜单,按下回车键则转5级菜单
  //    下 上 回车
 { 0, 0, 0, 1, (* d0)},
 { 1, 2, 6, 7, (* d1)},
 { 2, 3, 1,10, (* d2)},
 { 3, 4, 2,13, (* d3)},
 { 4, 5, 3,16, (* d4)},
 { 5, 6, 4,27, (* d5)},
 { 6, 1, 5, 0, (* d6)},
 { 7, 8, 7, 9, (* d7)},
 { 8, 8, 7, 1, (* d8)},
 { 9,20,19, 1, (* d9)},//电压调节
 {10,11,10,12, (*d10)},
 {11,11,10, 2, (*d11)},
 {12,22,21, 2, (*d12)},//电流调节
 {13,14,13,15, (*d13)},
 {14,14,13, 3, (*d14)},
 {15,24,23, 3, (*d15)},//功率调节
 {16,17,16,18, (*d16)},
 {17,17,16, 4, (*d17)},
 {18,26,25, 4, (*d18)},//温度调节
 
 {19,20,19,28, (*d19)},//V-up
 {20,20,19,28, (*d20)},//V-down
 {21,22,21,28, (*d21)},//I-up
 {22,22,21,28, (*d22)},//I-down
 {23,24,23,28, (*d23)},//P-up
 {24,24,23,28, (*d24)},//P-down
 {25,26,25,28, (*d25)},//T-up
 {26,26,25,28, (*d26)},//T-down
 {27, 5, 5, 5, (*d27)},//软件信息
 {28, 0, 0, 0, (*d28)} //设置成功
};
void getkeyinput(void)
{
 uint counter=0;
 uchar key_value;
re: counter++;
 P1=0xff;
 key_value=P1;
 if(key_value==0xff)
 {
  if(keyfuncindex>0 && keyfuncindex<28 && counter==4000)
  {
   
   counter=0;
   keyfuncindex=0;
   d0();
  }
  delay(1);
  goto re;
 }

    key_value=key_value&0xe0;
 delay(50);
 counter=0;
 switch(key_value)
 {
  case 96:
  {
   keyfuncindex=keytab[keyfuncindex].keycrstate;
   break;
  }
  case 160:
  {
   keyfuncindex=keytab[keyfuncindex].keyupstate;
   break;
  }
  case 192:
  { 
   keyfuncindex=keytab[keyfuncindex].keydnstate;
   break;
  }
  default:
  goto re;
 }  
  
 keyfuncptr=keytab[keyfuncindex].currentoperate;
 (*keyfuncptr)();
 delay(150);
}

void sys_auto_check(void)
{
 uchar xx,c=4;
 dis_one_zi(0,2,x33,1,1);
 dis_one_zi(0,3,x34,1,1);
 dis_one_zi(0,4,x35,1,1);
 dis_one_zi(0,5,x36,1,1);

 while(--c!=0)
 {
  for(xx=3;xx<13;xx++)
  {
   dis_one_char(2,xx-1,'>',1);
   dis_one_char(2,xx  ,'>',1);
   dis_one_char(2,xx+1,'>',1);
   delay(200);
   dis_one_char(2,xx-1,' ',1);
   dis_one_char(2,xx  ,' ',1);
   dis_one_char(2,xx+1,' ',1);
   }
 }
}
void main(void)
{
 v=v_new=00;
 i=i_new=02;
 p=p_new=00;
 t=t_new=00;
 keyfuncindex=0;
 lcd_init();
    sys_auto_check();
 d0();
 while(1)
    getkeyinput();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -