AlfaLCD - generovaní vlastních znaku

Milan MCM magixe@volny.cz
Pondělí Červenec 4 16:59:25 CEST 2005


Dobrý den
Mám trošku malý problémek.
Jedná se o X51 proc a LCD display alfanumerický 4x16 znaků.

Vše mě dupe jak má , ale nyní potřebuji generovat cca 25vlastních znaků
Vzhledem k tomu že display má jen 8 pozic 00-07h  pro definovaní vlastních
znaků uživatelem musím je generovat ON THE FLY - za běhu a to se mě 
nedaří :((

Konám zhruba toto ale nerabotajet  ...
Pokud vytvořím po inicializaci LCD znaky 0 - 7
a pak je za běhu programu jen používám tak to funguje
ale pokud je začnu generovat za běhu tak to nějak nechce fungovat - 
patrně hrubá chyba.

Máte prosím někdo něco v ASM ? děkuji




; // podprogramy pro obsluhu LCD

Procedure LCD
Setbit EN                             ; Zapis do displeje
WrP0
Pause
Clearbit EN
Pause
EndProc

Procedure MAIN_I              ; Zápis vlastních znaků do LCD
Clearbit RS                           ; jde o prikaz pro LCD
LCD                                     ; posli to na oba display 
..přenos přes A
Delay 3                                 ; poseckame
SetBit RS                              ; jde o data do LCD
Delay 3                                 ; poseckame
EndProc

; //  vlastní napsání znaků

Procedure Napisto
Make_Invert1                       ; měl by na 07h vytvořit znak
delay 2
LCD 7                                  ; banka 07h na LCD

Make_Invert2                       ; měl by na 07h vytvořit znak
delay 2
LCD 7                                  ; banka 07h na LCD
EndProc


;// dva znaky 1 - 2  invertované

Procedure Make_Invert1
Main_I 01111000b
LCD   00011011b
Main_I 01111001b
LCD   00010011b
Main_I 01111010b
LCD   00011011b
Main_I 01111011b
LCD   00011011b
Main_I 01111100b
LCD   00011011b
Main_I 01111101b
LCD   00011011b
Main_I 01111110b
LCD   00010001b
Main_I 01111111b
LCD   00000000b
Main_I 10000000b              ; vrať to na DDRAM ??!!
EndProc

Procedure Make_Invert2
Main_I 01111000b
LCD   00010001b
Main_I 01111001b
LCD   00001110b
Main_I 01111010b
LCD   00011110b
Main_I 01111011b
LCD   00011101b
Main_I 01111100b
LCD   00011011b
Main_I 01111101b
LCD   00010111b
Main_I 01111110b
LCD   00000000b
Main_I 01111111b
LCD   00000000b
Main_I 10000000b              ; vrať to na DDRAM ??!!
EndProc







Další informace o konferenci Hw-list