郭天祥的那个单片机,下面的代码怎么无法实现液晶1602显示两行字符

郭天祥的那个单片机,下面的代码怎么无法实现液晶1602显示两行字符,第1张

天祥的1602程序丢了两句,就是变成注释了,所以导致没有显示应该出现的字。

需要加如下程序:

1、在前面声明 sbit rw = P3^6

2、在初始化子函数init()的第一句为 rw = 0

加上这两句,让读写控制端设置为写模式——低电平(书151页流程2提到的),再下载到单片机中看一下,就出现你需要的结果了。

哈哈,选我吧!我们知道1602地址分布如下:

第一行00H....27H

第二行40H....67H

显示地址为:

第一行:00H....0FH

第二行:40H....4FH

现在看看程序,第一个循环写入地址从10H开始,那么写完后abcde67890123456789012345abcde对应的地址为10H....45H,落在显示区域的地址为40H~45H,对应的字符为5abcde,所以第二行左侧显示这些。之后进入第二个循环

写入地址从50H开始,类似上面的推论,溢出后将有一部分落进第一行的显示区域对应ABCDE

之后就是命令18,这是个屏移动命令,就是将隐含地址的内容移到显示区域显示。

这就是你看到的现象。

程序定义的引脚

sbit lcden=P2^0

sbit lcdrs=P2^2

与仿真图不一致呀。

把仿真图按程序改一下就好了,或者按仿真图改一下程序。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12205170.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存