当前位置:技术支持>典型实例
核心板v10x 网络通信v20x F407系列 通信定位v70x 底层类库 最小系统板

[Micropython]TPYBoardV10X控制LCD1602显示字符

原创版权归山东萝卜科技有限公司所有,转载必须以链接形式注明作者和原始出处。


    1. 实验目的


    1. 学习在PC机系统中扩展简单I/O 接口的方法。

    2. 进一步学习编制数据输出程序的设计方法。

    3. LCD1602的硬件接线方法。

    4. TPYboard控制Lcd1602显示字符 。


    2. 所需元器件


    TPYBoard开发板一块

    LCD1602液晶屏一块

    电位器3296一个

    面包板一块

    数据线一条

    杜邦线若干

    硬件接线方法

    1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下表所示:



编号

符号

引脚说明

编号

符号

引脚说明

1

VSS

电源地

9

D2

数据

2

VDD

电源正极

10

D3

数据

3

V0

液晶显示偏压

11

D4

数据

4

RS

数据/命令选择

12

D5

数据

5

RW

读/写选择

13

D6

数据

6

E

使能信号

14

D7

数据

7

D0

数据

15

A

背光源正极

8

D1

数据

16

K

背光源负极



    1602液晶模块引脚说明:


    第1脚:VSS为地电源。

    第2脚:VDD接5V正电源。

    第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度,下面是实物图与针脚图对应的关系。


blob.pngblob.png


    第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

    第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

    第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

    第7~14脚:D0~D7为8位双向数据线。

    第15脚:背光源正极。

    第16脚:背光源负极。

blob.pngblob.png


    按照上面针脚对应关系接线ok后,并且导入tpyb_lcd1602.py文件和tpyb_gpio_lcd1602.py文件再可运行main.py了(tpyb_lcd1602.py和pyb_gpio_lcd1602..py可以从官网上下载,最后会告诉下载地址)。


blob.png


    main.py源代码:

# main.py -- put your code here!
import pyb
from pyb import Pin
from pyb import delay, udelay,millis
from tpyb_lcd1602 import TPYBoardLcd1602Api
from tpyb_gpio_lcd1602 import TPYBoardGpioLcd1602
 
 
def main():
    lcd = TPYBoardGpioLcd1602(rs_pin=Pin.board.Y10,
                  enable_pin=Pin.board.Y9,
                  d4_pin=Pin.board.Y5,
                  d5_pin=Pin.board.Y6,
                  d6_pin=Pin.board.Y7,
                  d7_pin=Pin.board.Y8,
                  num_lines=2, num_columns=16)
    lcd.lcd1602_write_string("Hi,TurnipSmart!\n This TPYBoard!")
    delay(5000)
    lcd.clear()
    lcd.lcd1602_write_string("This  lcd1602!\n Start Work!")
    delay(5000)
    lcd.clear()
    count = 0
    while True:
        lcd.move_to(0, 0)
        #%1d 宽度  返回运行当前程序的累计时间,单位是毫秒
        lcd.lcd1602_write_string("%1d" % (millis() // 1000))
        delay(1000)
        count += 1
        print(count)
 

main()

源代码下载:


lcd1602.zip