micropython 8266 驱动 12864G 液晶LCD屏幕

 

 

1,接线顺序

#引脚定义
cs=Pin(4)   #片选 
reset=Pin(5)  #复位
rs=Pin(16)    #数据/指令 1数据 0 指令  #DC
sda=Pin(13)  #数据信号
sck=Pin(14)    #时钟信号

对照GPIO 按照下图链接即可

如图

 

 

2 驱动代码

·初始化

def init():
  
      rs.init(rs.OUT, value=0)
      reset.init(reset.OUT, value=0)
      cs.init(cs.OUT, value=1)  
      reset.off()# /*低电平复位*/
      time.sleep_us(100)#
      reset.on()# /*复位完毕*/
      time.sleep_us(100)#
      write_cmd(0xe2)# /*软复位*/
      time.sleep_us(5)#
      write_cmd(0x2c)# /*升压步聚 1*/
      time.sleep_us(5)#
      write_cmd(0x2e)# /*升压步聚 2*/
      time.sleep_us(5)#
      write_cmd(0x2f)# /*升压步聚 3*/
      time.sleep_us(5)#
      write_cmd(0x27)# /*粗调对比度,可设置范围 0x20~0x27*/
      write_cmd(0x81)# /*微调对比度*/
      write_cmd(0x2a)# /*0x1a,微调对比度的值,可设置范围 0x00~0x3f*/
      write_cmd(0xa2)# /*1/9 偏压比(bias)*/
      write_cmd(0xc8)# /*行扫描顺序:从上到下*/
      write_cmd(0xa0)# /*列扫描顺序:从左到右*/
      write_cmd(0x40)# /*起始行:第一行开始*/
      write_cmd(0xaf)# /*开显示*/ 
      time.sleep(1)
      # 初始化渐变效果 不需要的可以不要
      for a in range(1,3):
        time.sleep_ms(100)
        write_cmd(0x27-a)
      write_cmd(0xA7) #反显
      write_cmd(0x24)


#0xA0:常规 列地址从左到右,
#0xA1:反转:列地址从右到左
#0xA6:常规:正显
#0xA7:反显 
#0xA4:常规 显示全部点阵
#0xA5:显示全部点阵 
#0XE2 :软件复位。
#0XC0:普通扫描顺序:从上到下
#0XC8:反转扫描顺序:从下到上
#0x20~0x27,粗调 数值越大对比度越浓,越小越淡
#0x00~0x3F,微调 值越大对比 度越浓,越小越淡
#0xAC: 关, 0xAD: 开。静态图标的开关设置

 

 

· 写入指令

        cs.off()      选片低电压    

       rs.off()        低电压写入指令

       spi.write(bytearray([cmd])) 已bytearray 写入指令

· 写入需要绘画的图片或者字符串:

        cs.off()      选片低电压    

       rs.on()        高电压写入屏幕数据

       spi.write(bytearray([cmd])) 已bytearray 写入数据

 

·开始绘画

1.设置列地址 页地址,行地址

       write_cmd(0xb0+page); #设置页地址。每页是 8 行。一个画面的 64 行被分成 8 个页。我们平常所说的第 1 页,在 LCD驱动 IC 里是第 0 页,所以在这里减去 1*/

       write_cmd(((column>>4)&0x0f)+0x10) #设置列地址的高 4 位      

       write_cmd(column&0x0f) #设置列地址的低 4 位

2 写入数据(行列式)

 

def draw(arr,width,x=0,column=1):
  #arr :  16进制数组 0xff
  #width: 字符画宽度
  #x:     x坐标
  #column:y坐标
  index=0
  for a in range(0,len(arr)/width):
    lcd_address(x,column)
    column+=1
    write_data(arr[index:index+width])
    index+=width

从第一个像素往下画8个像素

然后在画第二列的8个像素 以此类推

用一个十六进制表示 一列的8个像素

*1不显示     
**不显示     
*1不显示     
*1不显示     
*1不显示     
*1不显示     
*1不显示     
*1不显示     
0XFF0X00     

 

所有代码 直接丢8266 可以直接跑

https://github.com/xinruoyusixian/12864G

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值