历史上的今天
今天是:2024年11月18日(星期一)
2019年11月18日 | 单片机LCD12864无限扩展多级菜单源码
2019-11-18 来源:51hei
单片机源程序如下:
#include "delay.h"
#include "12864.h"
#include "fun.h"
#include "key.h"
#include "wakeup.h"
u8 func_index=0;
void (*current_operation_index)(); //执行当前显示函数
typedef struct
{
u8 current; //当前状态号
u8 up;//向上翻索引号
u8 down;//向下翻索引号
u8 enter;//确认索引号
u8 num_ent;//编码器确认键
void (*current_operation)(); //要执行的函数
} key_table;
key_table table[21]=
{
{0,3,1,4,15,(*fun1)},//运行状态
{1,0,2,6,1,(*fun2)}, //历史记录
{2,1,3,10,2,(*fun3)},//版本信息
{3,2,0,11,3,(*fun4)},//功能设置
{4,5,5,15,4,(*fun5)},//运行参数
{5,4,4,0,5,(*fun6)}, //运行时间
{6,9,7,0,1,(*fun7)},//故障记录
{7,6,8,0,1,(*fun8)},//7天记录
{8,7,9,0,1,(*fun9)},//今年记录
{9,8,6,0,1,(*fun10)}, //往年记录
{10,0,0,0,2,(*fun11)},//版本信息
{11,14,12,19,3,(*fun12)},//设置通讯地址
{12,11,13,0,3,(*fun13)},//设置语言
{13,12,14,0,3,(*fun14)}, //设置时间
{14,13,11,0,3,(*fun15)},//更多
{15,18,16,0,15,(*fun16)},//主画面
{16,15,17,0,15,(*fun17)},//输入数据
{17,16,18,0,15,(*fun18)}, //输出数据
{18,17,15,0,15,(*fun19)},//功率参数
{19,17,15,0,11,(*fun20)},//通讯地址
};
int main(void)
{
u8 num;
SystemInit(); //系统初始化
delay_init(72); //延时初始化
LCD12864_InitPort(); //端口初始化
LCD12864_Init(); //液晶初始化
Key_Init();//按键初始化
// LCD12864_Pos(3,5);
LCD12684_Wdat(0x35);
while(1)
{
num=KEY_Scan();//得到键值
if(num==3)
// {
// switch(num)
// {
// case 1:
// func_index=table[func_index].up; break; //向上翻
// case 2:
// func_index=table[func_index].down; break; //向下翻
// case 3:
// func_index=table[func_index].enter; break; //确认
// case 4:
// func_index=table[func_index].num_ent; break;
// }
// LCD12864_Clr(); //clear all dots
// }
// current_operation_index=table[func_index].current_operation;
// (*current_operation_index)();//执行当前操作函数
// }
{
delay_ms(500);
Sys_Enter_Standby();
}
// if(KEY_Scan()==1)
// {
// RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);
//
//
//
//
//
// }
}
……………………
下一篇:单片机+DHT11温湿度检测程序
史海拾趣
|
近几年中国IC产业快速增长的主要动力来源于:中国市场的增长,投资环境的改善,优惠政策的吸引,半导体产业向中国的转移,产产业的集聚效应,海归的回国创业等,以上这些动力来源将继续存在并带动今后产业的高速成长。总结这几年中国集成电电路产业 ...… 查看全部问答> |
|
在许多基于单片机的应用系统中,系统需要实现遥控功能,而红外通信则是被采用较多的一种方法。一般市场上的遥控器协议简单、保密性不强、抗干扰能力较弱。这里,我们介绍一种基于字节传输的红外遥控系统,可以适合于各种复杂的应用场合。 红外通 ...… 查看全部问答> |
|
项目工程,寻找合作伙伴,大概情况是这样的:ATmel芯片的ARM9200板子已经做好了,可以正常的启动,程序也可以运行。 现在这个板子的USB口可以识别FAT和FAT32格式的硬盘,不能识别NTFS格式的硬盘。板子的上所有的应用程序是在linux2.6 ...… 查看全部问答> |
|
请问各位: 如何设置触摸屏的有效触摸范围,如原来320*240 现在想让触摸屏的有效触摸范围小一圈如:315*235 在有效范围之外不会触发中断 请问如何设置或者修改 谢谢各位!… 查看全部问答> |
|
【LaunchPad】 MSP430 LaunchPad新手引导贴 最近很多新同学都拿到了团购的开发板,但是很多同学和我一样第一次接触MSP430,拿到板子之后感觉无从下手,但是感谢论坛的各位大大,为我们提供了非常多的资料和教程,所以just follow~~~step1:下载并安装开发环境。MSP430的开发环境有IAR和CCS两 ...… 查看全部问答> |
|
void DispDataWrOneNibble (CPU_INT08U data){ CPU_INT32U value; BSP_LCD_DISP_RW_LO(); ...… 查看全部问答> |
|
求助关于ATMEGA16的TWI的读写问题,请救各位AVR高手 只测试TWI的写的功能,分别写器件地址,寄存器地址,数据三个数,但是从示波器看只看到器件地址和数据的2个数据,看不到寄存器地址这是为什么呢?????求各位高手解答#include <iom16v.h>#include <macros.h>void I2C_init(){ TWS ...… 查看全部问答> |




