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

📄 main.c

📁 简单的LCD多级菜单显示
💻 C
字号:
#include<reg52.h>
#include<lcdxianshi.c>
#include <func.h>
void (*current_operation_index)();
uchar func_index=0;
//#define	ad0809 XBYTE	  //数据采集存储
//#define 
typedef struct
   {
	uchar current;
	uchar up;
	uchar down;
	uchar enter;
	void (*current_operation)();
	} key_table;
key_table code table[28]=
 {
    {0,7,1,3,(*jiemian)},
    {1,0,2,4,(*jiemian1)},
	{2,1,8,5,(*jiemian2)},
	{3,0,3,3,(*dianyashow)},
	{4,0,4,4,(*bijiaohanshu)},
	{5,0,6,5,(*boxinghanshu)},
	{6,0,6,6,(*boxing1hanshu)},
	{7,0,7,7,(*cuowuhanshu)},
	{8,0,5,8,(*cuowuhanshu1)}
 };
void main(void)
{	clear_LCD();
	smNop();
	initial_LCD();
	smNop();
	clear_LCD();
    while(1)
    {  uchar key; 
	  delay(10);
	  key=keyscan1();          //读取键盘值
	  if(key!=0)
	  {	key=keyscan1();	
        switch(key)
       {
	     case 0x18:
				func_index=table[func_index].up;    //向上翻
				break;
     	 case 0x12:
				func_index=table[func_index].enter;//回车
				break;
	     case 0x14:
				func_index=table[func_index].down;//向下翻
				break;
	     default:    
				break;

      	}
		    clear_LCD();   //清屏
			delay(250);
      }
	   	key=0;			 //必须此处清零,不然无限执行SWITCH
	  current_operation_index=table[func_index].current_operation;
	  (*current_operation_index)();//执行当前操作函数
	}
}

⌨️ 快捷键说明

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