Robert írta:A HD44780 adatlapot leasd meg. A kijelzőchipek ez alapján működnek.
Ha az újabb KS0066 vagy KS0077-es chip van rajta, azokat _kompatibilis_ módban használja mindenki. De ha akarsz el lehet menni ezirányba is (itt lehet sorkeverés, gyorskódok, stb). Viszont esetleges kijelzőcserekor szívatod magadat... mert nem érted miért nem megy...
Hát nem tudom, már nagy keservesen kiirtam a két sort, de egyáltalán nem ugy ahogy gondoltam ill. irtátok. Szoval ha beirom cimet akkor magkeveri a dolgot.
Kód: Egész kijelölése
ldi ZL, LOW (Header*2) ; Load the address of the string
ldi ZH, HIGH (Header*2) ; into the Z pointer
rcall lcd_flash_string ; Subroutine gives out the Header,
; what is addressed by Z-pointer
; ldi temp1, 0x14
; rcall lcd_command ;
;
ldi temp1, ' '
rcall lcd_data
ldi temp1, ' '
rcall lcd_data
ldi temp1, ' '
rcall lcd_data
ldi temp1, '0'
rcall lcd_data
ldi temp1, '1'
rcall lcd_data
;
ldi temp1, ':'
rcall lcd_data
;
ldi temp1, '0'
rcall lcd_data
;
ldi temp1, '0'
rcall lcd_data
ldi temp1, 0x1b
rcall lcd_command ;
ldi temp1, ' '
rcall lcd_data
ldi temp1, '^'
rcall lcd_data
ldi temp1, ' '
rcall lcd_data
ldi temp1, ' '
rcall lcd_data ;
ldi temp1, '2'
rcall lcd_data
;
ldi temp1, '3'
rcall lcd_data
ldi temp1, ' '
rcall lcd_data
ldi temp1, ' '
rcall lcd_data ;
ldi temp1, '4'
rcall lcd_data
ldi temp1, '5'
rcall lcd_data
loop:
rjmp loop
Header: .db " Time DR STEP RP foreachoxcvbnmsdfertz",0
Ha beirok ilyen kodokat:
ldi temp1, 0x1b
rcall lcd_command
akkor baj van.
Elösztör is (a leirásban is igy van) ha beirok egy karaktert, akkor a pointer automatikusan eggyel arrébb megy, igy az abszolut cimésnek löttek. Nem baj mert hála az istennek a változok fixek, igy igy is megoldható, de gondoltam szebben megirni a programot.......
(Ha ezt az ákombákomot " foreachoxcvbnmsdfertz " kiveszem, megint minden megváltozik. Maga az ákombákom nem látható, de arra kell, hogy jo helyen legyen a szöveg:
Pl.
Time DR STEP RP
01:00 ^ 23 45