历史上的今天

今天是:2024年11月10日(星期日)

2020年11月10日 | 带中文字库LCD12864按键菜单设置反白单片机实验程序

发布者:chaohuangmeitao 来源: 51hei关键字:中文字库  LCD12864  按键菜单设置  反白  单片机 手机看文章 扫描二维码
随时随地手机看文章

带中文字库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.系统设置
}
}


关键字:中文字库  LCD12864  按键菜单设置  反白  单片机 引用地址:带中文字库LCD12864按键菜单设置反白单片机实验程序

上一篇:ws2812b彩灯带室内自动系统单片机源程序
下一篇:单片机智能灯光系统程序

推荐阅读

        刚刚,三星Exynos官方推特正式发出预告,将于11月14日带来新产品。  三星官方并未透露详细的产品,但配上了“Intelligence from Within”的文字,可能是在暗示采用新一代NPU的全新Exynos处理器平台。  此前的爆料消息显示,三星下一代Exynos旗舰芯片采用7nm FinFET工艺制造,并且拥有双核NPU单元(根据此前的爆料,很有可能是第二...
(文章来源:中科罗伯特机器人学院) 工业机器人发展到现在已经不在局限于某一个行业或者是领域了,在我国工业机器人已经逐渐占领了各大流水线上的工作。随着人们生活质量的提高,传统的工业机器人作业方式已经不能满足人们对产品的需求,科技的进步会带动工业机器人进入到什么样的发展呢。 行业是现在仅次于汽车的第二大应用领域, 3C行业由于产品更...
如今,传统照明系统已被技术先进的智能照明解决方案所取代,这些解决方案正在逐步改变我们对建筑控制规范的思考方式。 近年来,照明行业发生了一些变化,尽管某些变化已经悄然发生,并不一定会在建筑环境之外引起很多轰动,但诸如自动照明控制和自动照明的出现等发展已成为现实。 LED 技术已成为主流,极大地改变了照明市场。 完全集成到建筑操作系统中...
根据往年惯例,小米将在年底推出全新的小米12系列机型,截至目前业内开始传出不少关于该机的爆料。  今天,博主@数码闲聊站透露,小米12前期备货比较充足,但不确定能不能首发高通骁龙898(暂命名),因为摩托罗拉也有可能会拿到骁龙898首发权。  据悉,骁龙898将配备三丛集架构设计,其中超大核心频率突破了3.0GHz,大核心频率为2.4GHz,小...

史海拾趣

问答坊 | AI 解惑

51单片机英文论文

求篇51单片机最好是AT89C51的英文论文 带翻译的最好 谢谢…

查看全部问答∨

AVR M128/64开发板全套资料大放送(几大亮点)

我一直都喜欢设置开发板,对开发板也情有独钟,到现在一个设置了两款开发板,第一款是LPC2418的,这一块是AVR mega64/128的。这一块主要是围绕多DS18B20温度采集系统进行的,下面说说它的亮点:   1.  单总线8路DS18B20,8个温度传感器 ...…

查看全部问答∨

有人在Windows 7中用过filedisk吗?

我在windows 7中用filedisk mount了一个drive Z: 当我点击computer,浏览Drive C:时,想要umount drive Z:, 却发现返回error:Access is denied 我查看源代码后发现是DeviceIOControl()在发送FSCTL_LOCK_VOLUME 这个request时,访问被拒绝了 ...…

查看全部问答∨

wince usb ActiveSync连接问题

我想用ActiveSync通过usb把wince和PC相连,不知道需要加哪些组件,需要什么设置。应该是需要usb function吧,是用usb-rndis,还是usb-serial,能不能具体说明一下,谢谢…

查看全部问答∨

加热丝电气选型

现有加热丝3组(每组两相380V,6KW),请问每相电流多少?是不是可以理解成一台6KW电机的功率,还望各位大虾赐教!!!…

查看全部问答∨

香版求助:力源免费开发套件(图)

头给了我一个,要我自己学会玩先可是我不知道怎么加外设,那个图上4个红筐要用什么东西接到外设的板上啊,一般外设板用什么东西做?万能板?它和万能板怎么接啊…

查看全部问答∨

关于STM32FSMC再请教

查看了很多关于STM32 FSMC连接TFT LCD (ILI9320)的讨论,还是困惑中。。。 我用GPIO方式已经可以正确的驱动LCD了,但FSMC方式一直不成功,所以请教各位。 下面是我的程序: #define  FSMC_BCR1        ...…

查看全部问答∨

STM32TIM3中断奇怪的问题

void Timbase(void)     {           TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;           NVIC_InitTypeDef NVIC_InitStructure;      &n ...…

查看全部问答∨

【信号处理】:经典资料《数字信号处理的FPGA实现》中英版本等

最近恰好在研究数字信号处理的FPGA实现问题,搜集了几本实用的书籍: 《数字信号处理的FPGA实现》及其所附带光盘的vhdl、verilog代码,挺有用的 大家可以看看,还有无线通信FPGA设计 田耕等编著的《无线通信FPGA设计 》及其matlab和verilog代码XILI ...…

查看全部问答∨

Verilog避免锁存器的一种方法

为避免锁存器,可以在ALWAYS块中对变量预先进行无条件默认赋值,如下: 这是比较简单避免锁存器的方法,个人觉得即使默认赋值了也应该在判断语句中写全变量。             &nbs ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved