Bild
zeigt ein HD44780-kompatibles
27x2 Zeichen LC-Display (dieses hat zwei
separate LC-Kontroller) an C-Control I 1.1 Applicationboard |
|
Den momentan im LCD-Kontroller gespeicherten Text auslesen.
DEFINE b21 BYTE [21]
DEFINE B22 BYTE [22]
DEFINE B23 BYTE [23]
DEFINE B24 BYTE [24]
DEFINE LCD_PORT BYTEPORT[2]
DEFINE lcd_d4 PORT [9]
DEFINE lcd_d5 PORT[10]
DEFINE lcd_d6 PORT[11]
DEFINE lcd_d7 PORT[12]
DEFINE lcd_rw PORT[13]
DEFINE lcd_rs PORT[14]
DEFINE lcd_e_1 PORT[15] DEFINE lcd_e_2 PORT[16] DEFINE LCD_MAXLINE 2 DEFINE LCD_MAXROW 27 PRINT " LCD-Kontroller #1 auslesen (Enable-Signal an Port 15)"
PRINT
GOSUB LCD_MEMORY_DUMP
PRINT
END
#LCD2_Init
lcd_port = OFF
b21=&b00111000:gosub LCD_WriteCMD
lcd_port=&B00000010
pulse lcd_e_1
b21 = &b00101000:gosub LCD_WriteCMD
b21 = &b00001100:gosub LCD_WriteCMD
#LCD_cls
b21 = &b00000010:gosub LCD_WriteCMD
b21 = &b00000001:gosub LCD_WriteCMD
RETURN
#LCD_GotoLine
if b21 = 1 then b21 = &b10000000 if b21 = 2 then b21 = &b11000000 #LCD_WriteCmd
lcd_rs=OFF
GOTO TRANSFER_DATA
#LCD
lcd_rs=ON
#TRANSFER_DATA
lcd_port = (lcd_port and &b10100000) or (b21 shr 4)
PULSE lcd_e_1
lcd_port = (lcd_port and &b10100000) or (b21 and &b00001111)
PULSE lcd_e_1
RETURN
#LCD_MEMORY_DUMP PRINT : PUT 13 b21=&he7:GOSUB LCD_WriteCMD DEACT lcd_D4 DEACT lcd_D5 DEACT lcd_D6 DEACT lcd_D7 lcd_e_1=ON lcd_rs =ON lcd_rw =ON PULSE lcd_e_1 FOR b21=0 to 79
if b21=40 then print
PULSE lcd_e_1
b24=&b00001111 and lcd_port
PULSE lcd_e_1
b23=&b00001111 and lcd_port
b22=(b24*16) + b23
PUT b22
NEXT
PRINT
lcd_rw=OFF
RETURN
END
Bild:
Auslesen eines per Fernwartung zugänglichen LC-Displays...
Erste
Version dieser Seite erstellt am
10 Juli 2021, trotz
eines störrischen USB-Seriell Adapters von "das |_
Team"
(ein Hobbyprojekt, keine Einnahmenerzielungsabsicht)
1. Update am 14. September 2021 -
Beispielbild zur Anwendung mit einer Telnet Session hinzugefügt