Kód: Vybrat vše
; hodnota: 0 0 1 1 1 1 0 1
; bit: 7 6 5 4 3 2 1 0
; 1 2 3 4 5 6 7 8
; pozice: P0 P1 P2 P3 P4 P5 P6 P7 -jde opacne, takze do exp jde nejprve P7 a posledni P0
; promena: RS RW E - D4 D5 D6 D7
; drat LCD: 4 5 6 11 12 13 14
; napeti: 0 0 5 - 5 5 0 5 V
Symbol D7 = bit7 ; Data na D7
Symbol D6 = bit6 ; Data na D6
Symbol D5 = bit5 ; Data na D5
Symbol D4 = bit4 ; Data na D4
;bit 3 nezapojen
Symbol E = bit2 ; 1 = enable (zapnuto zapis)
Symbol RW = bit1 ; zapsat do disp = 0, cist z disp = 1 -> ja mam vzdy 0
Symbol RS = bit0 ; zapis povelu = 0, zapis dat = 1
eeprom 0 ,("Teplota: ")
gosub inicializace
prvni_radek:
for b2 = 0 to 8 ; vypis textu "Teplota: "
read b2, b1 ; z EEPROM vezme informaci z pozice 0(dle b2) a ulozi do b1
gosub zapis_dat
next b2
end
inicializace:
HI2cSetup I2CMASTER, %01001110, I2CSLOW, I2CBYTE
b0 = %00110000 ; nastaveno init 8-bit
gosub zapis_povelu
;b0 = %00001100 mam jiz nastaveno pro 8-bit
gosub zapis_povelu
;b0 = %00001100 mam jiz nastaveno pro 8-bit
gosub zapis_povelu
b0 = %00100000 ; nastaveno init 4-bit %0000 0010
gosub zapis_povelu
b0 = %00100000 ; prvni polovina z bytu %0010 0001 - 2 radky,font 5x8
gosub zapis_povelu
b0 = %10000000 ; druha polovina z bytu %0010 0001 - 2 radky,font 5x8
gosub zapis_povelu
b0 = %00000000 ; prvni polovina z bytu %0000 0001 - disp,kurzor,blik vyp
gosub zapis_povelu
b0 = %10000000 ; druha polovina z bytu %0000 0001 - disp,kurzor,blik vyp
gosub zapis_povelu
b0 = %00000000 ; prvni polovina z bytu %0000 1000 - smazat disp
gosub zapis_povelu
b0 = %00010000 ; druha polovina z bytu %0000 1000 - smazat disp
gosub zapis_povelu
b0 = %00000000 ; prvni polovina z bytu %0000 0110 - posun kurzoru doprava
gosub zapis_povelu
b0 = %01100000 ; druha polovina z bytu %0000 0110 - posun kurzoru doprava
gosub zapis_povelu
b0 = %00000000 ; prvni polovina z bytu %0000 0011 - zapnout disp
gosub zapis_povelu
b0 = %11000000 ; druha polovina z bytu %0000 0011 - zapnout disp
gosub zapis_povelu
return
zapis_povelu:
;RS RW D7 D6 D5 D4
;0 0 0 0 1 1
E = 0 ; nastav E na nulu
hi2cout(b0)
pause 10
E = 1 ; nastav E na jednicku pro zapis do displaye
hi2cout(b0)
pause 10
E = 0 ; nastav E na nulu
hi2cout(b0)
pause 100
return
zapis_dat:
RS = 1 ; nastav RS - 1 prijem dat, 0 prijem povelu (cmd)
RW = 0
D4 = b1 / %10000000
D5 = b1 / %01000000
D6 = b1 / %00100000
D7 = b1 / %00010000
E = 0 ; nastav E na nulu
hi2cout(b0)
pause 10
E = 1 ; nastav E na jednicku pro zapis do displaye
hi2cout(b0)
pause 10
E = 0 ; nastav E na nulu
hi2cout(b0)
pause 10
D4 = b1 / %00001000
D5 = b1 / %00000100
D6 = b1 / %00000010
D7 = b1 / %00000001
E = 0 ; nastav E na nulu
hi2cout(b0)
pause 10
E = 1 ; nastav E na jednicku pro zapis do displaye
hi2cout(b0)
pause 10
E = 0 ; nastav E na nulu
hi2cout(b0)
pause 10
return