laofuz1024 发表于 2012-12-2 00:09:18

totson 发表于 2012-10-30 22:22 static/image/common/back.gif
小白请教,这两句语句的意思,先谢了 !
digitalWrite(i,value & 01);
value >>= 1;


&和>>这两个符号是计算机的位操作,操作对象是内部的二进制
& 是 并
>> 是右移

value&01就是 value的二进制值和1的二进制值比较,比如 value值是7,则二进制是 0111,1的二进制是0001
0 1 1 1
0 0 0 1
------------
0 0 0 1   结果
&的结果就是同位相比,如果该都为1则为1,否则该位都为0


>>是右移...value>>=1就是value = value>>1 就是value的二进制往右移一位

laofuz1024 发表于 2012-12-2 00:11:36

那两个命令和数据传数据的两个函数...跟液晶的四种操作是什么关系啊?

看得不是很明白...

弘毅 发表于 2012-12-2 00:12:57

laofuz1024 发表于 2012-12-2 00:11 static/image/common/back.gif
那两个命令和数据传数据的两个函数...跟液晶的四种操作是什么关系啊?

看得不是很明白...

介个。。。年代久远。。。偶也忘了=.=估计得去看1602液晶的datasheet,里面貌似有相关通信协议介绍。

把自己唱给妳聼 发表于 2013-1-13 14:53:07

laofuz1024 发表于 2012-12-2 00:11 static/image/common/back.gif
那两个命令和数据传数据的两个函数...跟液晶的四种操作是什么关系啊?

看得不是很明白...

两个命令和数据函数就是给2-12引脚赋2进制位值(赋0表低电位 1表示电位)
其中3-10为8位数据位,12 11以及2号 这3个引脚是用来控制是读还是写,以及是指令、状态还是数据
具体不懂可以看1602手册或者继续提问 。还有你说的4种操作? 没懂什么一

龙腾东山 发表于 2013-1-13 18:48:27

慢慢探索学习,

laofuz1024 发表于 2013-1-13 22:48:12

把自己唱给妳聼 发表于 2013-1-13 14:53 static/image/common/back.gif
两个命令和数据函数就是给2-12引脚赋2进制位值(赋0表低电位 1表示电位)
其中3-10为8位数据位,12 11以 ...

嗯,谢谢!懂什么意思了,但还有一些不明白。
按代码里面的。
把12口和设置成高电位,11口设置成低电位,就是指现在要往屏上写数据显示,
把要写的数据转换成8进制,然后和8个接口对应上,每一位的二进制0或1写到对应的接口上,是不是这样啊?

那个接口2是指什么意思呢?是不是把屏的状态设置可读可写间变一次,就把11和12口的状态给设成默认了?


pgf017979 发表于 2013-1-13 23:02:52

1602多余的地址空间很有用途,比如可以用来显示字体的移动,先把数据放到地址17之后,使用一条移动指令,就实现自提从右边向左移位,可以看到动态效果,类似外面的广告平的移动效果

把自己唱给妳聼 发表于 2013-1-17 12:30:00

laofuz1024 发表于 2013-1-13 22:48 static/image/common/back.gif
嗯,谢谢!懂什么意思了,但还有一些不明白。
按代码里面的。
把12口和设置成高电位,11口设置成低电位 ...

1."把12口和设置成高电位,11口设置成低电位,就是指现在要往屏上写数据显示" 可以这么理解,其实按我个人理解应该是往1602显存的地址:80H+相应地址码   里写数据,往这个地址写相应数据,就显示到1602显示屏的相应位置上了,若这里不理解可以看1602手册。
2.要写数据用LcdDataWrite()函数就可以了,至于怎么转成2进制是该函数封装好的,你要知道具体内容的话,还要看该函数的源码。你说的8进制应该不正确,和8进制没有关系。
3.接口2只是一个使能(Enable)位,配合12 11 位一起使用,共同控制 读写状态或者数据。记住接口2 11 12 是一起作用控制信号的

lnpctf 发表于 2013-1-18 22:48:38


写得很详细啊,对新手很好。

太行摄狼 发表于 2013-2-14 19:31:53

很详细,正在研究,还没搞出来

<一一巛 发表于 2013-3-7 15:12:49

按照官方解法,效果非常好#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
lcd.print("nana xiao baobei");
lcd.setCursor(0, 1);
lcd.print(" I LOVE U (^3^)");
}

void loop() {
}

laofuz1024 发表于 2013-3-11 21:18:06

本帖最后由 laofuz1024 于 2013-3-11 21:30 编辑

准备买液晶回来试试,主要是学习使用官方的库

dushiyizhan 发表于 2013-4-2 23:12:34

我按8位接法照做。能显示字符,但是无背光?求教。

insert0003 发表于 2013-4-9 15:16:05

弘毅,四位接法的程序写错了。
两处设置端口
i<=10
改成
i<=9
显示就正常了。

弘毅 发表于 2013-4-9 22:22:30

insert0003 发表于 2013-4-9 15:16 static/image/common/back.gif
弘毅,四位接法的程序写错了。
两处设置端口
i

{:soso_e153:} 原来是这个错误。。谢谢提醒。。我明天测试下后进行改正。。。
页: 1 2 3 4 5 [6] 7 8 9 10 11 12
查看完整版本: arduino学习笔记10 - 1602液晶实验