12864LCM显示器初始化

12864LCM显示器初始化,第1张

你的LCM应该是COB KS0108的驱动 初始化如下

void Initial()

{

CS1=1 CS2=1 // 高位选通

RES =0

delay(500)

RES =1

delay(100)

ComWrite(0x0C0) // start line 00

ComWrite(0x3f) //Display ON

CS1=0CS2=0// CS3=1 // CLOSE IC 低位选通,开显示,此为高低选通用程序,以防你的LCM为低选而点不亮

ComWrite(0x3f) //Display ON

}

以下为SPI4线时序写指令

void ComWrite(unsigned char com)

{

unsigned char count

CS1=1

A0=0

for (count = 0count <8count++)

{

SCL=0

SDA=(bit)(com&0x80)

SCL=1

com=com<<1

}

delay(10)

}

void DatWrite(unsigned char dat)

{

unsigned char count

CS1=0

A0=1

for (count = 0count <8count++)

{

SCL=0

SDA=(bit)(dat&0x80)

SCL=1

dat=dat<<1

}

delay(10)

}

*/

80时序:

void DatWrite(Uchar dat)//80

{

A0 = 1

RD1=1

WR1=0

P1=dat

WR1=1

}

void ComWrite(Uchar com)

{

A0 = 0

RD1=1

WR1=0

P1=com

WR1=1

}

有什么不懂的,Q 451526010

本人专业编写各类LCM驱动程序

定义的是管脚的寄存器状态。查找相关Gpio寄存器状态字就明白了,很简单。

你最好看清楚定义的是什么,DIR,DAT。此外,它定义CSIN和CSOUT是不一样的,定义的是GPIO的输入输出方向不同,可能涉及到画点时的读取液晶端口状态。这个你自己看看资料都有。此外,小写cs那部分定义只是定义管脚,并未作赋值,也就是说用作他用的。只能说这么多了。

你好:

12864的寄存器是不需要用户关心的,用户只管搭建好读写(读不是必须的)函数,然后通过写函数往12864写初始化值就行了。

其次,初始化流程没有什么强制规定,按照手册来即可。

至于时间,查看手册会有一个最小的写周期,只要速度不高于这个时间就可以。

希望我的回答能帮助到你。


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

原文地址: http://outofmemory.cn/yw/7834053.html

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

发表评论

登录后才能评论

评论列表(0条)

保存