需要加如下程序:
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
与仿真图不一致呀。
把仿真图按程序改一下就好了,或者按仿真图改一下程序。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)