历史上的今天
返回首页

历史上的今天

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

正在发生

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

2020-11-10 来源:51hei

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


推荐阅读

史海拾趣

中微股份(Cmsemicon)公司的发展小趣事

在品牌建设方面,中微股份(Cmsemicon)同样取得了显著成果。公司注重品牌形象的塑造和传播,通过参加国内外行业展会、发布新产品、加强与客户和合作伙伴的沟通等方式,不断提升品牌知名度和美誉度。同时,公司还积极拓展市场,与全球众多知名企业建立了长期稳定的合作关系。这些努力不仅为公司带来了更多的商业机会,也为公司的长远发展奠定了坚实基础。

ETL [E-Tech Electronics LTD]公司的发展小趣事

E-Tech Electronics LTD(简称ETL)在创立之初就确立了其目标——为电子市场提供高质量、高性能的电子产品。公司凭借其创始人的远见卓识和团队的专业技术,成功开发了一系列电子产品,逐渐在市场上建立了良好的声誉。初期,ETL主要关注于特定领域的电子产品研发,通过不断优化产品设计,提升产品质量,逐渐赢得了客户的信任。

CAROLCABLE公司的发展小趣事

在激烈的市场竞争中,CAROLCABLE公司深知技术创新是企业发展的核心动力。因此,公司不断加大研发投入,引进先进的生产设备和技术人才,推动技术创新和产业升级。经过多年的努力,CAROLCABLE成功研发出了一系列具有自主知识产权的高性能线缆产品,这些产品在传输速度、稳定性和耐用性等方面均达到了行业领先水平。

随着产品技术的不断升级,CAROLCABLE开始积极拓展国内外市场。公司参加了多个国际电子线缆展会,与全球同行交流学习,寻找合作机会。同时,CAROLCABLE还加强与国内大型电子企业的合作,为其提供定制化的线缆解决方案。这些举措不仅为公司带来了更多的商机,也进一步巩固了CAROLCABLE在电子线缆行业的领先地位。

这两个故事仅是对CAROLCABLE公司发展起来的简要描述,实际上,公司的成长历程中还有许多值得探讨的细节和里程碑事件。如需了解更多关于CAROLCABLE公司的故事,建议查阅相关新闻报道或公司官方资料。

Diamond SA公司的发展小趣事

Diamond SA公司深知创新是企业持续发展的动力源泉。因此,他们不断加大对研发的投入力度,积极引进和培养高端人才,建立了完善的研发体系。公司不断推出具有创新性和领先性的电子产品和技术解决方案,赢得了客户的广泛赞誉和认可。同时,他们还积极参与国际技术交流和合作,与全球顶尖的科研机构和企业建立了紧密的合作关系。

Anatech Electronics Inc公司的发展小趣事

在电子行业的初期,Diamond SA公司以其卓越的技术研发能力脱颖而出。公司创始人对半导体技术的深入研究,引领了一场技术革命。他们成功开发出一种新型的芯片设计,大大提高了电子设备的性能和效率。这一创新技术迅速在市场上获得了认可,Diamond SA公司也因此逐渐崭露头角。

Alutronic Kuhlkorper Gmbh & Co Kg公司的发展小趣事

Diamond SA公司深知创新是企业持续发展的动力源泉。因此,他们不断加大对研发的投入力度,积极引进和培养高端人才,建立了完善的研发体系。公司不断推出具有创新性和领先性的电子产品和技术解决方案,赢得了客户的广泛赞誉和认可。同时,他们还积极参与国际技术交流和合作,与全球顶尖的科研机构和企业建立了紧密的合作关系。

问答坊 | AI 解惑

传统工具链(gcc、gdb、make)和IDE的选择?

有很多介绍gcc、gdb、make工具链的使用,但是这些工具链具体用起来比较繁琐。 而Linux中提供了一些IDE(集成了gcc、gdb、make)。 你觉得应该用工具链还是IDE?…

查看全部问答>

网络故障排除实战技巧

我们曾经介绍过一篇关于如何选择网络故障排除方法的文章,介绍了三种网络故障排除方法。这里我们又重拾话题,通过具体实例助您排除网络故障。 开始以前,先来简要回顾一下介绍过的三种方法。 从下至上的方法:从OSI模型底端开始,顺序向上。 从 ...…

查看全部问答>

请教:声卡驱动移植

硬件芯片相同,内核都是2。6(一个为2。6。8,一个为2。6。14),2。6。8移植到2。6。14上,    请教:该怎么作,需要修改那些东西,请指教。    多谢!…

查看全部问答>

strm32 在国内可以买到的是哪几个型号?

                                 strm32 在国内可以买到的是哪几个型号?可以用IAR吗+JLINK 开发吗?…

查看全部问答>

求版主及高手救命,时间太紧了。

Error[e124]: Segment conflict for segment INTVEC. In module "010DT" there is a segment part that is of type RELOCATA××E, while in module "?cstart" there is a segment part that is of type COMMON Total number of errors: ...…

查看全部问答>

stm32f103,usb读取sd卡速度慢得问题

USB端点0为控制模式,端点1批量发送,端点2为批量接受,枚举正常,可以读写,问题在于读写的速度太慢了,1M的文件需要20s。请高手帮忙 usb_endp.c中 void EP2_OUT_Callback(void) {   Mass_Storage_Out(); } usb_bot.c中 void  ...…

查看全部问答>

做电源过程中出现的问题

大家下午好,问你们一个小问题,我做一个电源,满载时波形为标准的矩形波,负载减轻时,相邻两个波形为什么会一个变宽,一个变窄?…

查看全部问答>

如何发进度贴,请看此链接,谢谢配合

https://bbs.eeworld.com.cn/thread-413866-1-2.html帖子中说明了为了方便管理大家的帖子,“需要参与DIY活动的朋友请注意,直到今天板子应该都发到了大家手里,接下来大家的任务就是开始按照周计划的安排实施了,便于我们的管理,大家发一个进度帖 ...…

查看全部问答>

28027程序下载进flash需要initflash函数和MemCopy

请教将一个运行在RAM中的程序下载到flash中运行,是不是只需要将ramcmd,换成flashcmd就可以了?还是需要initflash函数和MemCopy两个函数?#ifdef FLASH   MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); InitFlas ...…

查看全部问答>

FPGA作为SPI从机,如何读取数据,如何编程实现,请大神指点一二

FPGA作为SPI从机,如何读取数据,如何编程实现,请大神指点一二。编程大概怎么个流程 …

查看全部问答>