找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机C语言索引法做界面,下进板子里面没有显示 求帮助

[复制链接]
跳转到指定楼层
楼主
ID:826942 发表于 2020-11-18 20:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个怎么显示出来?下进板子里面没有显示
#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 chn_disp(uchar code *chn)   // uchar code *chn这个本身就是一个指针 只用把需要显示的数组结构体或者数组放进去就可以
{                                //显示uchar code Disp_tab0[]  就把结构体名称放进去就可以 chn_disp(Disp_tab0);
    uchar  i,j;
          write_12864com(0x30);
          write_12864com(0x80);
    j=0;
    for (i=0;i<16;i++)
        write_12864dat(chn[j*16+i]);
        write_12864com(0x90);
    j=1;
    for (i=0;i<16;i++)
        write_12864dat(chn[j*16+i]);
        write_12864com(0x88);
    j=2;
    for (i=0;i<16;i++)
        write_12864dat(chn[j*16+i]);
write_12864com(0x98);
    j=3;
    for (i=0;i<16;i++)
        write_12864dat(chn[j*16+i]);
}
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)();//执行当前操作函数
                   }
}


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

使用道具 举报

沙发
ID:328014 发表于 2020-11-18 21:43 | 只看该作者
是不是板子的供电有问题?
回复

使用道具 举报

板凳
ID:826942 发表于 2020-11-19 15:13 | 只看该作者
51hei团团 发表于 2020-11-18 21:43
是不是板子的供电有问题?

不是 ,我确定是可以显示的,我用其他程序是可以显示的,但是不知道这个索引法是怎么显示出来的。
回复

使用道具 举报

地板
ID:826942 发表于 2020-11-20 21:55 | 只看该作者
问题已解决
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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