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

📄 main.c

📁 简单的LCD多级菜单显示
💻 C
字号:
#include<reg52.h>
#include <func.h>
void (*current_operation_index)();
unchar func_index=0;
unchar func_index;
//#define	ad0809 XBYTE	  //数据采集存储
//#define 
char code a[]={"abcd1"};
char code b[]={"abcd2"};
char code c[]={"abcd3"};
typedef struct
   {
	uchar current;
	uchar up;
	uchar down;
	uchar enter;
	void (*current_operation)();
	} key_table;
key_table code table[28]=
 {
    {0,7,1,0,(*jiemian)},
    {1,0,2,1,(*jiemian1)},
	{2,1,5,2,(*jiemian2)},
	{3,3,3,3,(*dianyashow)},
	{4,4,4,4,(*bijiaohanshu)},
	{5,7,6,5,(*boxinghanshu)},
	{6,5,6,6,(*boxing1hanshu)},
	{7,7,7,7,(*cuowuhanshu)},
	{8,8,8,8,(*jiemian)}
 };
void main(void)
{	clear_LCD();
	smNop();
	initial_LCD();
	smNop();
	clear_LCD();
	smNop();
    Display_ch(a,1,1,4);
   	smNop();
	Display_ch(b,3,1,4);
   	smNop();
	Display_ch(c,4,1,4);
   	smNop();


while(1)
{
				uchar key;
				key=keyscan1();          //读取键盘值
			

/*******************find index****************************/
switch(key)
{
	case 0x42:
				func_index=table[func_index].up;    //向上翻
				break;
	case 0x41:
				func_index=table[func_index].enter;//回车
				break;
	case 0x88:
				func_index=table[func_index].down;//向下翻
				break;
	default:    
				break;

      				}
		ClearLCD();   //清屏
 	}


	  current_operation_index=table[func_index].current_operation;
	  (*current_operation_index)();//执行当前操作函数
}

⌨️ 快捷键说明

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