找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2076|回复: 0
打印 上一主题 下一主题
收起左侧

LGM无字库液晶菜单显示

[复制链接]
跳转到指定楼层
楼主
ID:149266 发表于 2017-4-25 22:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "FUN.h"
#include "LCD12864.h"
#include "DELAY.h"
#include "ZK.h"
#define uchar unsigned char
sbit keydown=P1^1;        //下键
sbit keyenter=P1^3;        //确定键
sbit keyup=P1^0;        // 上键
sbit keyback=P1^2 ;//返回

uchar func_index=0;

void (*current_operation_index)();
typedef struct
   {
         uchar current;
         uchar up;//向上翻索引号        x
         uchar down;//向下翻索引号         y
         uchar enter;//确认索引号          z
                 uchar back;// 返回索引号           w
         void (*current_operation)();
         } key_table;

key_table code table[30]=
{
     //     x,y,z,w
         {0,2,1,3,0, (*fun1)},//第一层,显示【清华大学】、北京大学、重庆三峡学院
         {1,0,2,6,0,(*fun2)},//第一层,显示清华大学、【北京大学】、重庆三峡学院
         {2,1,0,9,0,(*fun3)},//第一层,显示清华大学、北京大学、【重庆三峡学院】                     
//         {3,2,0,25,(*fun4)},//第一层,显示清华大学、北京大学、重庆三峡学院
         {3,5,4,12,0,(*fun5)},//第二层,清华大学层下显示【地点】、创建时间、简介                                                   
         {4,3,5,13,0,(*fun6)},//第二层,清华大学层下显示地点、【创建时间】、简介      
         {5,4,3,14,0,(*fun7)}, //第二层,清华大学层下显示地点、创建时间、【简介】                                                                             
//         {7,6,4,0,(*fun8)},//第二层,清华大学层下显示地点、创建时间、简介      
         {6,8,7,15,0,(*fun9)},//第二层,北京大学层下显示【历史】、政治、简介                                                
         {7,6,8,16,0,(*fun10)},//第二层,北京大学层下显示历史、【政治】、简介  
         {8,7,6,17,0,(*fun11)}, //第二层,北京大学层下显示历史、政治、【简介】                                                                                
//         {11,10,8,1,(*fun12)},//第二层,北京大学层下显示历史、政治、简介         
         {9,11,10,18,0,(*fun13)},//第二层,重庆三峡学院层下显示【简介】、最佳院系、最佳实验室                                                      
         {10,9,11,19,0,(*fun14)}, //第二层,重庆三峡学院层下显示简介、【最佳院系】、最佳实验室                                                               
         {11,10,9,20,0,(*fun15)}, //第二层,重庆三峡学院层下显示简介、最佳院系、【最佳实验室】                                                               
//         {15,14,12,2,(*fun16)}, //第二层,重庆三峡学院层下显示简介、最佳院系、最佳实验室   
         {12,12,12,12,3,(*fun17)}, //第三层,清华大学地点层                                                                    
         {13,13,13,13,4,(*fun18)}, //第三层,清华大学创时间层                                                      
         {14,14,14,14,5,(*fun19)}, //第三层,清华大学简介层
         {15,15,15,15,6,(*fun20)}, //第三层,北京大学历史层                                                                    
         {16,16,16,16,7,(*fun21)}, //第三层,北京大学政治层                                                           
         {17,17,17,17,8,(*fun22)}, //第三层,北京大学简介层
         {18,18,18,18,9,(*fun23)}, //第三层,重庆三峡学院简介层                                                                  
         {19,19,19,19,10,(*fun24)}, //第三层,重庆三峡学院最佳院系层                                                        
         {20,20,20,20,11,(*fun25)}, //第三层,重庆三峡学院最佳实验室层        
         {21,21,21,21,0,(*fun26)}, //第0层      
};

void main()
{  
  InitializeLCD(); //初始化LCD模块  
   while(1)
   {     
                 /*******************find index****************************/
         if((keyup==0)||(keydown==0)||(keyenter==0)||(keyback==0))
         {
               delayms(5);//消抖
               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);
                   }
               if(keyback==0)
               {
                     func_index=table[func_index].back;    //返回
                 while(!keyback);
                   }
                               clear_screen();
                  InitializeLCD();

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


}




LGM菜单显示 - 副本.rar

119.15 KB, 下载次数: 14, 下载积分: 黑币 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表