标题: 在学习51单片机1602液晶程序时遇到的困惑 [打印本页]

作者: Flynnkk    时间: 2021-7-30 14:14
标题: 在学习51单片机1602液晶程序时遇到的困惑

红色方框中的代码为什么指从第二行第一个位置开始显示?

作者: xuyaqi    时间: 2021-7-30 15:59
写程序的人想从第二行第一个位置开始显示,留空认为好看。
作者: Flynnkk    时间: 2021-7-30 16:03
xuyaqi 发表于 2021-7-30 15:59
写程序的人想从第二行第一个位置开始显示,留空认为好看。

请问为什么write_come括号里是0x80+0x40呢?
作者: 杨雪飞    时间: 2021-7-30 16:23
Flynnkk 发表于 2021-7-30 16:03
请问为什么write_come括号里是0x80+0x40呢?

第二行第一个字符的地址为0XC0,你不想写0X80 + 0X40可以直接写0XC0;一样可以。
作者: 杨雪飞    时间: 2021-7-30 16:29
写指令 0x80;就是光标移动到第一行第一个字符的位置,
然后写数据,在这个第一行第一个字符的位置开始写要显示的数据。
写指令 0xC0; 把光标移动到第二行第一个字符的位置,比如你要在第二行第四个字符的位置写要显示的东西,那么这个就写,write_com(0xc0 + 4); 以此类推。
作者: lkc8210    时间: 2021-7-30 16:35
Flynnkk 发表于 2021-7-30 16:03
请问为什么write_come括号里是0x80+0x40呢?

显示在某一行某一列的数据可以写命令:0x80+0xYY,0x80是因为在设置DDRAM地址时,DB7固定是为1的
                       
       
                                                        
YY值如下圖



作者: 名字不是重点    时间: 2021-7-30 16:48
要会看手册,不然就只能CRTL+C、CTRL+V。
作者: 开心就好hhhh    时间: 2021-7-30 17:01
看手册,手册里面写的很详细了,有具体的地址
作者: gazong666    时间: 2021-7-31 19:38
0x80的指令是第二行的意思 0xc0是第一行,加0x40是第二行第一个位置显示,0xc0+0x00是第一行第一个
作者: gazong666    时间: 2021-7-31 19:39
0x80是第二行的意思 0x40是第二行第一个
作者: wwh2382    时间: 2021-7-31 20:57
有些程序的写法对初学者不太友好,产品手册不存在类似问题
作者: luzaijiaoxia    时间: 2021-8-1 13:54
因为0x40是第二行的第一个地址




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1