带中文字库LCD12864 按键菜单设置反白实验分享
制作出来的实物图如下:
用的是普中的开发板 如果你的也是同型号的普中开发板 直接下载也不能显示 因为我的开发板改电路了
你需要改#include"lcd12864.h"里面的
sbit LCD12864_RS=P2^6; //寄存器选择输入
sbit LCD12864_RW=P2^5; //寄存器选择输入
sbit LCD12864_E=P2^7; //液晶使能控制
sbit LCD12864_PSB=P3^0; //串/并方式控制
sbit LCD12864_RES=P3^2; //数据复位
即可
部分程序(还有些程序在#include"lcd12864.h"里面)
#include<reg52.h> //此文件中定义了单片机的一些特殊功能寄存器
#include"lcd12864.h" //lcd12864液晶屏驱动
#define uchar unsigned char //宏定义无符号字符形数据类型进行声明定义 定义名称uchar 所占位数8位 范围0~255
#define uint unsigned int //宏定义无符号整形数据类型进行声明定义 定义名称uint 所占位数16位 范围0~65535
/*按键IO引脚定义*/
sbit k1=P3^0; //菜单选择按键
uchar cdsz=0; //菜单设置标志
/*延时函数 delay_ms(1)时大约1ms*/
void delay_ms(uint ms)
{
uchar t;
while(ms--)
{
for(t=120;t>0;t--);
}
}
/*按键函数*/
void an_jian()
{
if(k1==0)
{
delay_ms(10); //消抖延时大约10ms
if(k1==0)
{
if(cdsz<2)cdsz=cdsz+1;else(cdsz=0);
}
while(!k1); //确认按键是否松开
}
}
/*菜单设置函数*/
void caidan_shezhi()
{
if(cdsz==0)Lcd12864_SetAscWhite(2,2,10,0); //如果cdsz==0 第2行 第2列 范围10个字符 0为反白
else(Lcd12864_SetAscWhite(2,2,10,1)); //如果cdsz!=0 第2行 第2列 范围10个字符 1为关闭反白
if(cdsz==1)Lcd12864_SetAscWhite(3,2,10,0); //如果cdsz==1 第3行 第2列 范围10个字符 0为反白
else(Lcd12864_SetAscWhite(3,2,10,1)); //如果cdsz!=1 第3行 第2列 范围10个字符 1为关闭反白
if(cdsz==2)Lcd12864_SetAscWhite(4,2,10,0); //如果cdsz==2 第4行 第2列 范围10个字符 0为反白
else(Lcd12864_SetAscWhite(4,2,10,1)); //如果cdsz!=2 第4行 第2列 范围10个字符 1为关闭反白
}
void main()
{
lcd12864init(); //lcd12864起初化
LCD12864_cluck(); //全面清屏 必须的 否则花屏
while(1)
{
an_jian(); //读取按键函数
caidan_shezhi(); //读取菜单设置函数*
LCD_PutString(1,3,"设置"); //第1行位置3列开始 显示 设置
LCD_PutString(2,1,"1.显示设置"); //第2行位置1列开始 显示 1.显示设置
LCD_PutString(3,1,"2.应用设置"); //第3行位置1列开始 显示 2.应用设置
LCD_PutString(4,1,"3.系统设置"); //第4行位置1列开始 显示 3.系统设置
}
}
全部资料51hei下载地址:
带中文字库LCD12864 按键菜单设置反白实验.zip
(35.04 KB, 下载次数: 486)
|