LCD12684液晶显示屏接口定义

LCD126x84液晶显示屏是一种常用于与单片机连接的显示设备,有带中文字库和不带中文字库之分,带中文字库的LCD126x84液晶显示屏由128个点 x 64个点组成,可以显示中文、英文、曲线等字符,显示中文字符时,一个中文字符由16*16的点阵组成,12864LCD液晶显示屏一排可显示8个中文字符,全屏可显示32个中文字符。

LCD126x84液晶显示屏特性

(1)低电源电压(VDD:+3.0–+5.5V)
(2)显示分辨率:128×64 点
(3)内置汉字字库,提供8192 个16×16 点阵汉字(简繁体可选)
(4)内置128 个16×8 点阵字符
(5)2MHZ 时钟频率
(6)显示方式:STN、半透、正显
(7)驱动方式:1/32DUTY,1/5BIAS
(8)视角方向:6 点
(9)背光方式:侧部高亮白色LED,功耗仅为普通LED 的1/5—1/10
(10)通讯方式:串行、并口可选
(11)内置DC-DC 转换电路,无需外加负压
(12)无需片选信号,简化软件设计
(13)工作温度: 0℃ – +55℃ ,存储温度: -20℃ – +60℃

LCD126x84液晶显示屏的购买地址

LCD126x84液晶显示屏(蓝屏带背光带中文字库)

LCD126x84液晶显示屏的接口定义

LCD126x84液晶显示屏的SPI接口定义

pin#  description
  ====  ========================================
    1   GND   - 电源地, 0V
    2   VCC   - 电源输入, 5V
    3   V0    - LCD偏压输入, 控制显示对比度
    4   CS    - 选择输入, 1:enable 0:disable
    5   SID   - 串行输入
    6   SCLK  - 串行时钟
   15   PSB   - 接口选择, 0:串行 1:並行
   17   /RST  - 复位
   18   VOUT  - LCD倍压输出
   19   LED_A - 背光LED电源正
   20   LED_K - 背光LED电源负

与 Raspberry Pi 之间的 SPI 接口:

  Raspberry Pi  LCD12864
  ============  ========
   #19 MOSI   -- #5 SID
   #23 SCLK   -- #6 SCLK
   #24 CE0    -- #4 CS

LCD126x84液晶显示屏连接树莓派Python代码

import spidev
import time

class LCD12864B:
    def __init__(self, port, cs):
        self.spi = spidev.SpiDev()
        self.spi.open(port, cs)
        self.spi.cshigh = True
        
    def writeCommand(self, cmd):
        self.spi.xfer2([0xf8, cmd & 0xf0, (cmd << 4) & 0xf0])
        time.sleep(0.001)
        
    def writeByte(self, byte):
        self.spi.xfer2([0xfa, byte & 0xf0, (byte << 4) & 0xf0])
        
    def writeData(self, data):
        bytes = [0xfa]
        for c in data:
            b = c.encode('big5')
            if len(b) == 1:
                bytes.append(ord(c) & 0xf0)
                bytes.append((ord(c) << 4) & 0xf0)
            elif len(b) == 2:
                bytes.append(ord(b[0]) & 0xf0)
                bytes.append((ord(b[0]) << 4) & 0xf0)
                bytes.append(ord(b[1]) & 0xf0)
                bytes.append((ord(b[1]) << 4) & 0xf0)
        self.spi.xfer2(bytes)
        time.sleep(0.001)
        
    def reset(self):
        self.writeCommand(0x30)
        self.writeCommand(0x0c)
        self.writeCommand(0x01)
        self.writeCommand(0x06)
        
    def close(self):
        self.spi.close()
        
    def position(self, row, col):
        addr = {
             0: 0x80,
             1: 0x90,
             2: 0x88,
             3: 0x98,
        }
        ac = addr.get(row) + col
        self.writeCommand(ac)
        
    def display(self, row, col, str):
        self.position(row, col)
        self.writeData(str)


lcd = LCD12864B(0, 0)
lcd.reset()
lcd.display(0, 0, u'白日依山尽,')
lcd.display(1, 0, u'黄河入海流。')
lcd.display(2, 0, u'欲穷千里目,')
lcd.display(3, 0, u'更上一层楼。')
lcd.close()
标签:

热门文章

Leave a Reply