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

这个怎么显示出来?下进板子里面没有显示

#include

#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)();//执行当前操作函数

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值