找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2030|回复: 11
打印 上一主题 下一主题
收起左侧

在学习51单片机1602液晶程序时遇到的困惑

[复制链接]
跳转到指定楼层
楼主

红色方框中的代码为什么指从第二行第一个位置开始显示?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:94031 发表于 2021-7-30 15:59 | 只看该作者
写程序的人想从第二行第一个位置开始显示,留空认为好看。
回复

使用道具 举报

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

请问为什么write_come括号里是0x80+0x40呢?
回复

使用道具 举报

地板
ID:97554 发表于 2021-7-30 16:23 | 只看该作者
Flynnkk 发表于 2021-7-30 16:03
请问为什么write_come括号里是0x80+0x40呢?

第二行第一个字符的地址为0XC0,你不想写0X80 + 0X40可以直接写0XC0;一样可以。
回复

使用道具 举报

5#
ID:97554 发表于 2021-7-30 16:29 | 只看该作者
写指令 0x80;就是光标移动到第一行第一个字符的位置,
然后写数据,在这个第一行第一个字符的位置开始写要显示的数据。
写指令 0xC0; 把光标移动到第二行第一个字符的位置,比如你要在第二行第四个字符的位置写要显示的东西,那么这个就写,write_com(0xc0 + 4); 以此类推。
回复

使用道具 举报

6#
ID:161164 发表于 2021-7-30 16:35 | 只看该作者
Flynnkk 发表于 2021-7-30 16:03
请问为什么write_come括号里是0x80+0x40呢?

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


回复

使用道具 举报

7#
ID:824490 发表于 2021-7-30 16:48 | 只看该作者
要会看手册,不然就只能CRTL+C、CTRL+V。
回复

使用道具 举报

8#
ID:934353 发表于 2021-7-30 17:01 | 只看该作者
看手册,手册里面写的很详细了,有具体的地址
回复

使用道具 举报

9#
ID:957989 发表于 2021-7-31 19:38 | 只看该作者
0x80的指令是第二行的意思 0xc0是第一行,加0x40是第二行第一个位置显示,0xc0+0x00是第一行第一个
回复

使用道具 举报

10#
ID:957989 发表于 2021-7-31 19:39 | 只看该作者
0x80是第二行的意思 0x40是第二行第一个
回复

使用道具 举报

11#
ID:748788 发表于 2021-7-31 20:57 | 只看该作者
有些程序的写法对初学者不太友好,产品手册不存在类似问题
回复

使用道具 举报

12#
ID:821272 发表于 2021-8-1 13:54 | 只看该作者
因为0x40是第二行的第一个地址
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表