有个51单片机关于12864串口显示读写程序求助(c语言)

有个51单片机关于12864串口显示读写程序求助(c语言),第1张

if(a&(1<<(i-1))) RW_SID=1

表示1左移i-1位再于a进行与运算,i=8的情况下i-1=7,1左移7位就是0x80。再跟a与运算(全1出1有0出0)即可获得a的最高位。以此类推可以取出a的所有位。

if(RW_SID==1) dat|=(1<<(i-1))

当RW_SID端口为1时把1左移i-1位跟dat或运算。i=8的情况下1左移i-1位正好是0x80,再经过与运算保存最高位,循环移位再或运算就能读取到全部位保存在dat里面

可以写成

//写部分

if(a&0x80)//取出a的最高位

RW_SID=1//如果是1则输出1

else

RW_SID=0//否则输出0

a<<=1//a整体左移,让第7位补到最高位的位置,循环取出

E_CLK=1

delay(100)

E_CLK=0

delay(100)

//读部分

E_CLK=1

delay(100)

dat<<=1//接收1次数据后左移。第一次为0的情况影响数据

if(RW_SID)//当端口为高的时候

dat++//dat+1相当于dat|=1 当端口为0的时候默认左移最低位是补零的,所以不用管

E_CLK=0//循环8次后第一次接受到的数据就在最高位了

delay(100)

效果是一样的相对来说比较好理解

     12864是属于LCD 液晶显示的,LCD是 Liquid Crystal Display 的简称,LCD 的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。

     12864就是利用这样的原理实现字符与图片的显示的。但是单纯的液晶屏仅仅指那两片玻璃屏,不容易 *** 作,所以一般都会加上驱动IC。

     下面我以图片详细像你说明:

这个就是那两片玻璃,中间夹有液体。 *** 作它很麻烦,要用到很多的连接线:

那上下两侧的就是用来控制屏幕的,这些接口和玻璃瓶是通过两个小东西连接的:

连接之后就是这个样子了:

当然只是这样还是不行的,还要加上背光,不然显示出来的字符或图片看不到,背光是用很多串联的LED实现的:

大体就是这样了。


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

原文地址: https://outofmemory.cn/yw/11636784.html

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

发表评论

登录后才能评论

评论列表(0条)

保存