带中文字库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
#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.系统设置
}
}
上一篇:ws2812b彩灯带室内自动系统单片机源程序
下一篇:单片机智能灯光系统程序
推荐阅读
史海拾趣
收购后,Blue Giga在芬兰埃斯波的研发中心继续发挥其技术创新的优势,不断推出新产品和解决方案。同时,借助Silicon Labs的全球销售网络,Blue Giga的产品开始进入更多国家和地区的市场。公司的业务范围不断扩大,应用领域也更加广泛,涵盖了工业自动化、消费类电子产品、汽车等多个领域。
这五个故事描绘了Blue Giga从创立到发展的过程,展示了其在电子行业中的努力和成就。虽然每个故事都基于事实,但具体细节可能因缺乏详细资料而有所简化或推测。如需更深入的了解,建议查阅Blue Giga的官方资料或相关新闻报道。
在电子行业中,绿色环保已经成为一个不可忽视的趋势。DDP Engineered LED Solutions公司积极响应这一趋势,将绿色环保理念融入到公司的产品研发和生产过程中。公司开发的LED照明产品不仅具有出色的照明效果,而且具有较低的能耗和较少的废弃物产生,符合绿色环保的要求。同时,公司还积极推动绿色供应链管理,与供应商共同构建绿色、环保的产业链。这些努力不仅让DDP在行业中树立了良好的形象,也为公司的可持续发展提供了有力保障。
永源微电子(APM)公司创立于2017年,前身可追溯到台湾汉磊科技。作为汉磊科技的全资子公司,香港艾柏霖科技有限公司的功率器件事业部,永源微电子继承了丰富的技术积累和市场资源。公司创立之初,便确立了专注于集成电路设计、制造与销售的战略方向。通过引进国际先进的生产工艺和研发团队,永源微电子逐渐在电子行业中崭露头角,为后续的快速发展奠定了坚实基础。
FCI公司起源于1988年,当时由Framatome组建,其初衷是作为核能领域外的一个多样化经营项目。然而,随着市场的变化和公司的战略调整,FCI逐渐将重心转向连接器制造。经过20多次的精心收购和策略性扩张,FCI在短短20年内便成长为全球最大的连接器制造公司之一。这一转变不仅展现了FCI对市场敏锐的洞察力,也体现了其卓越的管理能力和执行力。
随着科技的不断发展,电子行业的技术创新日新月异。在这个过程中,BSI通过提供最新的技术信息和标准,为企业的技术创新提供了有力支持。BSI建立了庞大的标准数据库,涵盖了电子行业的各个领域,为企业提供了丰富的技术资源和参考依据。同时,BSI还积极参与新技术的研发和推广工作,为电子行业的创新发展提供了动力。
我一直都喜欢设置开发板,对开发板也情有独钟,到现在一个设置了两款开发板,第一款是LPC2418的,这一块是AVR mega64/128的。这一块主要是围绕多DS18B20温度采集系统进行的,下面说说它的亮点: 1. 单总线8路DS18B20,8个温度传感器 ...… 查看全部问答∨ |
|
我在windows 7中用filedisk mount了一个drive Z: 当我点击computer,浏览Drive C:时,想要umount drive Z:, 却发现返回error:Access is denied 我查看源代码后发现是DeviceIOControl()在发送FSCTL_LOCK_VOLUME 这个request时,访问被拒绝了 ...… 查看全部问答∨ |
我想用ActiveSync通过usb把wince和PC相连,不知道需要加哪些组件,需要什么设置。应该是需要usb function吧,是用usb-rndis,还是usb-serial,能不能具体说明一下,谢谢… 查看全部问答∨ |
头给了我一个,要我自己学会玩先可是我不知道怎么加外设,那个图上4个红筐要用什么东西接到外设的板上啊,一般外设板用什么东西做?万能板?它和万能板怎么接啊… 查看全部问答∨ |
|
查看了很多关于STM32 FSMC连接TFT LCD (ILI9320)的讨论,还是困惑中。。。 我用GPIO方式已经可以正确的驱动LCD了,但FSMC方式一直不成功,所以请教各位。 下面是我的程序: #define FSMC_BCR1   ...… 查看全部问答∨ |
void Timbase(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; &n ...… 查看全部问答∨ |
【信号处理】:经典资料《数字信号处理的FPGA实现》中英版本等 最近恰好在研究数字信号处理的FPGA实现问题,搜集了几本实用的书籍: 《数字信号处理的FPGA实现》及其所附带光盘的vhdl、verilog代码,挺有用的 大家可以看看,还有无线通信FPGA设计 田耕等编著的《无线通信FPGA设计 》及其matlab和verilog代码XILI ...… 查看全部问答∨ |
为避免锁存器,可以在ALWAYS块中对变量预先进行无条件默认赋值,如下: 这是比较简单避免锁存器的方法,个人觉得即使默认赋值了也应该在判断语句中写全变量。 &nbs ...… 查看全部问答∨ |