import machine
import utime
rs = machine.Pin(4,machine.Pin.OUT)
e = machine.Pin(5,machine.Pin.OUT)
d4 = machine.Pin(0,machine.Pin.OUT)
d5 = machine.Pin(1,machine.Pin.OUT)
d6 = machine.Pin(2,machine.Pin.OUT)
d7 = machine.Pin(3,machine.Pin.OUT)
def pulseE():
e.value(1)
utime.sleep_us(40)
e.value(0)
utime.sleep_us(40)
def send2LCD4(BinNum):
d4.value((BinNum & 0b00000001) >>0)
d5.value((BinNum & 0b00000010) >>1)
d6.value((BinNum & 0b00000100) >>2)
d7.value((BinNum & 0b00001000) >>3)
pulseE()
def send2LCD8(BinNum):
d4.value((BinNum & 0b00010000) >>4)
d5.value((BinNum & 0b00100000) >>5)
d6.value((BinNum & 0b01000000) >>6)
d7.value((BinNum & 0b10000000) >>7)
pulseE()
d4.value((BinNum & 0b00000001) >> 0)
d5.value((BinNum & 0b00000010) >> 1)
d6.value((BinNum & 0b00000100) >> 2)
d7.value((BinNum & 0b00001000) >> 3)
pulseE()
def setUpLCD():
rs.value(0)
send2LCD4(0b0011)#8 bit
send2LCD4(0b0011)#8 bit
send2LCD4(0b0011)#8 bit
send2LCD4(0b0010)#4 bit
send2LCD8(0b00101000)#4 bit,2 lines?,5*8 bots
send2LCD8(0b00001100)#lcd on, blink off, cursor off.
send2LCD8(0b00000110)#increment cursor, no display shift
send2LCD8(0b00000001)#clear screen
utime.sleep_ms(2)#clear screen needs a long delay
setUpLCD()
rs.value(1)
for x in 'Hello World!':
send2LCD8(ord(x))
utime.sleep_ms(100)