这是一个12864菜单程序包 12864引索法写多级菜单, 为什么我的KIL4不能编程
源码下载:
12864多级菜单例子 (1).zip
(55.42 KB, 下载次数: 244)
主程序:
- /***************************************************************************
- 原创重庆三峡学院创新实验室唐老鸭
- ***************************************************************************/
- #include <reg52.h>
- #include "fun.h"
- #include "lcd12864.h"
- #include "delay.h"
- #define uchar unsigned char
- sbit keydown=P0^0;
- sbit keyenter=P0^1;
- sbit keyup=P0^2;
- uchar func_index=0;
- void (*current_operation_index)();
- typedef struct
- {
- uchar current;
- uchar up;//向上翻索引号
- uchar down;//向下翻索引号
- uchar enter;//确认索引号
- void (*current_operation)();
- } key_table;
- key_table code table[30]=
- {
- {0,3,1,4,(*fun1)},//第一层,显示 【清华大学】、北京大学、重庆三峡学院 、返回
- {1,0,2,8,(*fun2)},//第一层,显示 清华大学、【北京大学】、重庆三峡学院 、返回
- {2,1,3,12,(*fun3)},//第一层,显示 清华大学、北京大学、【重庆三峡学院】 、返回
- {3,2,0,25,(*fun4)},//第一层,显示 清华大学、北京大学、重庆三峡学院 、【返回】
- {4,7,5,16,(*fun5)},//第二层,清华大学层下显示 【地点】、创建时间、简介、返回
- {5,4,6,17,(*fun6)},//第二层,清华大学层下显示 地点、【创建时间】、简介、返回
- {6,5,7,18,(*fun7)}, //第二层,清华大学层下显示 地点、创建时间、【简介】、返回
- {7,6,4,0,(*fun8)},//第二层,清华大学层下显示 地点、创建时间、简介、【返回】
- {8,11,9,19,(*fun9)},//第二层,北京大学层下显示 【历史】、政治、简介、返回
- {9,8,10,20,(*fun10)},//第二层,北京大学层下显示 历史、【政治】、简介、返回
- {10,9,11,21,(*fun11)}, //第二层,北京大学层下显示 历史、政治、【简介】、返回
- {11,10,8,1,(*fun12)},//第二层,北京大学层下显示 历史、政治、简介、【返回】
- {12,15,13,22,(*fun13)},//第二层,重庆三峡学院层下显示 【简介】、最佳院系、最佳实验室、返回
- {13,12,14,23,(*fun14)}, //第二层,重庆三峡学院层下显示 简介、【最佳院系】、最佳实验室、返回
- {14,13,15,24,(*fun15)}, //第二层,重庆三峡学院层下显示 简介、最佳院系、【最佳实验室】、返回
- {15,14,12,2,(*fun16)}, //第二层,重庆三峡学院层下显示 简介、最佳院系、最佳实验室、【返回】
- {16,16,16,4,(*fun17)}, //第三层,清华大学地点层
- {17,17,17,5,(*fun18)}, //第三层,清华大学创时间层
- {18,18,18,6,(*fun19)}, //第三层,清华大学简介层
- {19,19,19,8,(*fun20)}, //第三层,北京大学历史层
- {20,20,20,9,(*fun21)}, //第三层,北京大学政治层
- {21,21,21,10,(*fun22)}, //第三层,北京大学简介层
- {22,22,22,12,(*fun23)}, //第三层,重庆三峡学院简介层
- {23,23,23,13,(*fun24)}, //第三层,重庆三峡学院最佳院系层
- {24,24,24,14,(*fun25)}, //第三层,重庆三峡学院最佳实验室层
- {25,25,25,0,(*fun26)}, //第0层
-
- };
- void main()
- {
- init_lcd(); //初始化LCD模块
- while(1)
- {
- /*******************find index****************************/
- if((keyup==0)||(keydown==0)||(keyenter==0))
- {
- delay(10);//消抖
- if(keyup==0)
- {
- func_index=table[func_index].up; //向上翻
- while(!keyup);//松手检测
- }
- if(keydown==0)
- {
- func_index=table[func_index].down; //向下翻
- while(!keydown);
- }
- if(keyenter==0)
- {
- func_index=table[func_index].enter; //确认
- while(!keyenter);
- }
- init_lcd();
- }
- current_operation_index=table[func_index].current_operation;
- (*current_operation_index)();//执行当前操作函数
- }
- }
复制代码
|