历史上的今天
返回首页

历史上的今天

今天是:2024年08月26日(星期一)

正在发生

2021年08月26日 | 51单片机-液晶屏代码讲解

2021-08-26 来源:eefocus

关于指针和1602液晶屏的知识讲解我们就不赘述了,《手把手教你学51单片机》文档第12,13章有很详细的讲解,我们也不用再自己搞些与众不同的驱动代码,没必要再“重新发明轮子”,只需直接移植使用宋老师为我们写好的代码就好。那么宋老师的液晶屏代码原理他也在文档详细讲解了,大家只需反复细读都会掌握的了的,这里笔者只对部分代码做出一些解释。打开宋老师的代码lesson12_4。


1.显示字符的执行操作

如果我们需要在液晶屏上显示下图的内容

11.1.png?imageView2/2/w/550

那么在代码上需要一步步地操作来完成。


首先设置好液晶屏的使用指标,比如需要“16*2显示,5*7点阵”、“显示器开,光标关闭”、“文字不动,地址自动+1”,这些叫做液晶屏的初始化,表明液晶屏要正常显示内容就需要提前配置好这些工作。


比如我们要设置液晶屏“显示器开,光标关闭”的功能,需要给液晶屏写入命令的字节为0x0C。在写入之前要读出液晶屏的状态是否在忙,也就是“sta = LCD1602_DB;”读取整个P0端口的8个位的状态,而“while (sta & 0x80);”就是只要P0.7为高电平状态,证明液晶屏在忙,不能写入0x0C这个字节给液晶屏,等到P0.7被液晶屏输出低电平拉低引脚之后,证明液晶屏不忙了,可以允许写入命令字节了,“void LcdWaitReady()”函数分析完毕。


“void LcdWriteCmd(unsigned char cmd)”就是要写入命令的字节,前面的

LCD1602_RS = 0;

LCD1602_RW = 0;


是令液晶屏接收命令做准备,然后使”P0= cmd;”输出相关的高低电平,再让LCD1602_E 完成一个高脉冲,这样当“cmd=0x0C;”时,液晶屏就接收了这个命令,让显示功能为“显示器开,光标关闭”。


然后我们再说说,要显示的内容从哪个格子显示应该怎么去实现代码,如果要在第二行第一个格子显示一个字符,那么光标要设置在这个位置上,也就是写命令给液晶屏的字节为“0x80|0x40”,设置坐标的命令字节最高位要为1。在哪个位置显示就写入哪个地址。

11.2.png?imageView2/2/w/550


最后就是“void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str)”函数的讲解了。


设置地址在哪显示的函数已经讲过。我们看到“LcdWriteDat(*str++);”,这个函数的意思是把一个数组或者一个字符串里的字符数据写进上图的显示位置的地址里让相应的地方显示字符。


在初始化函数里“LcdWriteCmd(0x06);”的设置是令地址自动加1,假如在液晶屏第二行的第一个位置(也就是地址为0x40)不停写数据,那么写完一个数据之后,再写下一个数据,写进去的地址就是0x41的位置了,后面再写就是0x41的位置。


液晶屏的代码我们就简略讲完了,如果理解上还存在疑惑,我们也许掌握的理论知识还有所欠缺,这是需要慢慢消化的。


当然我们也可以不用去深究每一个细节,后面我们教会大家怎么去使用这些函数就可以了。

推荐阅读

史海拾趣

Cortina Systems Inc公司的发展小趣事

由于Cortina Systems Inc公司的具体发展历程和相关故事的详细资料可能涉及公司内部的敏感信息,且具体的故事可能随着时间和市场环境的变化而有所不同,因此,我无法直接为您提供5个关于Cortina Systems Inc公司在电子行业里发展起来的具体故事。不过,我可以基于公开资料为您概述Cortina Systems Inc公司在电子行业的一些重要发展节点和事件,您可以根据这些信息进行进一步的了解和研究。

  1. 并购集通科技,拓宽业务领域

在某一时期,Cortina Systems Inc.通过并购集通科技,实现了业务领域的拓宽。集通科技是一家专注于为中小型企业和家庭网络用户提供嵌入式网络处理器、三合一整合服务(Triple Play)和网络存储解决方案的私人公司。通过这次并购,Cortina成功地将集通在中小型企业和家庭网络技术方面的优势与其通信网络基础设施环境相结合,为下一代网络使用者社群网络、多媒体传输和数字家庭连接能力的发展奠定了坚实基础。

  1. 与思科紧密合作,推动技术标准发展

在技术标准制定方面,Cortina Systems Inc.与思科展开了紧密的合作。双方共同推出了Interlaken技术规范,这一规范被视为网络处理论坛(NPF)可升级的SPI规范的竞争对手。尽管NPF与光联网论坛(OIF)合并后,Cortina与思科并未将Interlaken提交至OIF,但这一合作仍然为行业内的技术标准发展注入了新的活力。

  1. 推出双模ONU网关解决方案,满足中国市场独特需求

随着全球通信市场的不断发展,Cortina Systems Inc.针对中国市场推出了双模ONU网关解决方案。这一解决方案的推出,旨在满足中国市场对于混合式接入方式的特殊需求。在中国,三大运营商引导的接入方式既包括EPON也包括GPON,这使得双模ONU成为市场趋势。Cortina通过这一解决方案,成功地为中国市场提供了独特的、适应本土需求的通信解决方案。

  1. 技术创新能力突出,不断推出新产品

作为电子行业的领导者之一,Cortina Systems Inc.一直以其突出的技术创新能力而著称。公司不断投入研发,推出了一系列具有创新性和竞争力的新产品。这些产品不仅提升了公司的市场竞争力,也为整个电子行业的发展带来了新的机遇和挑战。

  1. 拓展全球市场,提升品牌影响力

随着业务的发展和产品线的完善,Cortina Systems Inc.逐渐将目光投向了全球市场。公司通过参加各种国际展览和会议,积极与全球合作伙伴建立联系,拓展业务领域。同时,公司还加强了品牌建设和市场推广力度,提升了在全球市场的知名度和影响力。

这些事件和节点只是Cortina Systems Inc.在电子行业发展历程中的一部分。要了解更多关于该公司的具体故事和详细发展历程,建议您查阅相关新闻报道、行业分析报告或公司官方发布的信息。通过这些资料,您可以更深入地了解Cortina Systems Inc.在电子行业中的崛起和发展。

Acmelux Taiwan Inc公司的发展小趣事

在电子产品市场竞争激烈的今天,品质成为企业生存和发展的关键。Acmelux Taiwan Inc公司始终坚持品质至上的原则,从原材料采购、生产制造到产品测试,每一个环节都严格把关,确保产品的稳定性和可靠性。正是这种对品质的执着追求,使得Acmelux的产品在市场上赢得了良好的口碑,成为众多客户的首选品牌。

DECON公司的发展小趣事

DECON公司成立于电子行业的蓬勃发展时期,初创期便专注于研发和生产高质量的电子连接器产品。通过对市场的深入调研和技术创新,公司成功定位自己在高端连接器市场的位置,并凭借其出色的产品质量和稳定的性能,逐步在市场中树立了良好的口碑。

CP Technology Inc公司的发展小趣事

CP Technology Inc成立之初,便专注于半导体技术的研发。公司研发团队成功开发出一种高效能、低功耗的芯片,这一创新为公司的快速崛起奠定了基石。随着技术的不断完善和产品的广泛应用,CP Technology Inc逐渐在半导体市场上占据了一席之地。公司通过持续的技术创新和产品迭代,不断满足市场需求,赢得了客户的信赖和支持。

Alorium Technology公司的发展小趣事

为了进一步扩大市场份额,CP Technology Inc积极寻求与行业内其他公司的战略合作。公司先后与多家知名企业签订了合作协议,共同开发新产品、拓展新市场。这些合作不仅为CP Technology Inc带来了更多的资源和机会,也提升了公司在行业内的地位和影响力。

AVAGO公司的发展小趣事

随着技术的不断进步,AVAGO公司开始致力于研发更先进的半导体技术。其中,一次重大的技术突破发生在光纤通信领域。公司成功研发出了一种高性能的光纤收发器,这一创新不仅提高了数据传输的速度和稳定性,还极大地推动了光纤通信技术的发展。这一产品迅速在市场上获得了广泛应用,为AVAGO公司带来了可观的收益。

问答坊 | AI 解惑

集成电路基础知识之:电容知识大全

第1讲:电容的特性(隔直通交)    电容器是一种能储存电荷的容器.它是由两片靠得较近的金属片,中间再隔以绝缘物质而组成的.按绝缘材料不同,可制成各种各样的电容器.如:云母.瓷介.纸介,电解电容器等.在构造上,又分 ...…

查看全部问答>

PCB板型

如何用ProtelDXP将pcb板型设计成大半圆形(即圆形切掉了一小部分),是板子的外观。我知道在机械层放置圆圆弧可以。我的意思是能不能利用重新定义板型把PCB板画成大半圆形状?…

查看全部问答>

安顿双绞线传输器的传输效果对比与示意

在实际工程中,选用何种传输方式需要结合工程的具体情况和工程预算来综合考虑。对于传输距离超过2Km的监控网络,应该考虑选用光纤和光端机。如果传输距离达到数公里或者几十公里,就只有使用光纤了。另外,在一些干扰很强的场合,比如受到工业干扰 ...…

查看全部问答>

CE printf不能用咋办啊??CE 提示建议使用StringCchVPrintfA函数??

最近移植个库,库以前是在PC上编译的,都是用多字节的printf,在CE下报错, 情况如下: error C2065: \'sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA\' : undeclared identifier 然后我就按它的提示使用StringCchPrintfA; 定义了 ...…

查看全部问答>

按电源按键启动不了咋整?

按开机电源启动不了,要再按重启或者再按几次电源键才能启动 机子去年十一配的,原来也有类似问题,后来换了一个电源就没这种情况了,现在又出现这种情况,难道又是电源问题?哪位达人帮解决一下~…

查看全部问答>

cadence问题求助------5!

这个问题非常基础但是有几个地方不是很明白: 在画原理图时,大部分需要自己画芯片,一些主要的芯片,库里面总是没有 在画芯片时,关于芯片引脚习惯上都是定义成什么? 我看芯片引脚有:3 state、Bidirectional 、 Input 、Open Collector &nbs ...…

查看全部问答>

FPGA中遇到的一个奇怪的问题!

在FPGA中遇到的一个奇怪的问题!我在Stratix II GX 中要实现这样一个功能:用20M时钟采集120路数据,然后将这些数据组成每字节10bit,每11字节一帧的数据,其中包括一个帧头。这帧数据每字节速率是260M(因为加了10位的帧头),通过一个GXB将这帧数据 ...…

查看全部问答>

有关串口调试助手的困惑

如果我给串口调试助手发送一个字符串“zhangkai”,如果勾上16进制显示,是不是就是串口调试助手把字符串转换为7A 68 61 6E 67 6B 61 69这个了?   在串口调试助手给单片机发数据时,如果选上16进制发送和不选16进制发送有啥区别?发送区填 ...…

查看全部问答>

MSP-EXP430FR5739实验板团购

这次机会真是难得呀,一个字实惠。…

查看全部问答>

MSP430系列的一些另类问题(上)

一般是刚开始入门会遇到的问题: 1、 接上仿真器,发现不能下载,这个问题想必大家都有遇到过,IAR提示找不到目标? 可能的原因:A、 并口驱动能力不足,在电脑的BIOS界面下设置成ECP或者ECP+EPP模式B、 JTAG线太长,一般超过20CM不推荐,而且这个线最好不 ...…

查看全部问答>