Backup vom Rp2040Zero 16.05.2026 hinzugefügt
This commit is contained in:
50
lcd1602_backup.py
Normal file
50
lcd1602_backup.py
Normal file
@@ -0,0 +1,50 @@
|
||||
import time
|
||||
from machine import Pin
|
||||
|
||||
class LCD1602:
|
||||
def __init__(self, rs, en, d4, d5, d6, d7):
|
||||
self.rs = Pin(rs, Pin.OUT)
|
||||
self.en = Pin(en, Pin.OUT)
|
||||
self.data_pins = [
|
||||
Pin(d4, Pin.OUT),
|
||||
Pin(d5, Pin.OUT),
|
||||
Pin(d6, Pin.OUT),
|
||||
Pin(d7, Pin.OUT)
|
||||
]
|
||||
self._init_lcd()
|
||||
|
||||
def _pulse(self):
|
||||
self.en.value(1)
|
||||
time.sleep_us(1)
|
||||
self.en.value(0)
|
||||
time.sleep_us(100)
|
||||
|
||||
def _send(self, value, mode=0):
|
||||
self.rs.value(mode)
|
||||
for i in range(2):
|
||||
for j in range(4):
|
||||
self.data_pins[j].value((value >> (4 * (1 - i) + j)) & 0x01)
|
||||
self._pulse()
|
||||
time.sleep_ms(2)
|
||||
|
||||
def _init_lcd(self):
|
||||
time.sleep_ms(20)
|
||||
self._send(0x33) # init
|
||||
self._send(0x32) # 4-bit mode
|
||||
self._send(0x28) # 2 lines, 5x7 matrix
|
||||
self._send(0x0C) # display on, cursor off
|
||||
self._send(0x06) # entry mode
|
||||
self.clear()
|
||||
|
||||
def clear(self):
|
||||
self._send(0x01)
|
||||
time.sleep_ms(2)
|
||||
|
||||
def putstr(self, string):
|
||||
for char in string:
|
||||
self._send(ord(char), 1)
|
||||
|
||||
def move_to(self, col, row):
|
||||
addr = col + (0x40 if row else 0x00)
|
||||
self._send(0x80 | addr)
|
||||
|
||||
Reference in New Issue
Block a user