display ovladaný atmelem
Moderátor: Moderátoři
display ovladaný atmelem
(jsou to pochopitelne jen vzpsane funkce, nikoli cely program)
void lcd_init(void)
{
//nastaveni osmibitove komunikace,4 radky,font 5x7
lcd_comm(0b00111011);
lcd_comm(0b00001111);
}
void lcd_clr(void)
{
CLR_BIT(COMM_PORT,RS);
write_delay();
DATA_PORT=1;
SET_BIT(COMM_PORT,ENABLE);
clr_delay();
CLR_BIT(COMM_PORT,ENABLE);
write_delay();
}
void lcd_comm(unsigned char byte)
{
CLR_BIT(COMM_PORT,RS);
write_delay();
DATA_PORT=byte;
SET_BIT(COMM_PORT,ENABLE);
write_delay();
CLR_BIT(COMM_PORT,ENABLE);
write_delay();
}
?!snad je to i z verze funkcniho programu uz je to doba co sem to psal
http://pdf1.alldatasheet.com/datasheet-pdf/view/63673/HITACHI/HD44780.html
tohle asi bude ta prodleva po zapnutí
Kód: Vybrat vše
The busy state lasts for 10 ms after VCC rises to 4.5 V.asi nejdůležitější je že po resetu se nastaví mimo jiné tohle
Kód: Vybrat vše
N = 0; 1-line display
D = 0; Display offtakže displej zůstane zhasnutý
0b00111011 ;nestaví sběrnici a par dalších fcí
;počkej 40us
0b00001111 ;zapne displej, upraví zobrzení kursoru atd..
;dalších 40us
0b00000001 ;vzmaže znaky na displeji
;počkej 1,6ms a už mužes posilat data
Config Lcd = 16 * 2
Lcd "Nejaky TExt"
Když si představím co bych všechno musel napsat v assembleru abych dosáhl toho co udělají tyto 3 příkazy, tak mě jímá hrůza.
S pozdravem "bojovník proti assembleru"
nekmil píše:Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Portc.7 , Rs = Portc.6
Config Lcd = 16 * 2
Lcd "Nejaky TExt"
Že by další dušička píšící v Bascomu?
Jinak jak už zaznělo, LCD potřebuje na začátku provést inicializaci a ta není okamžitě, je potřeba počkat než se příkaz provede. A také po rozjezdu vnitřního procesoru (řadiče) se musí počkat na ustálení jeho oscilátoru a tak podobně.
Jen tak na okraj, máš připojené napájení? A nastavený kontrast? Pokud se zapne jen napájení, tak se na displeji zobrazí v horním řádku kostičky. To není podceňování, tuhle jsem hledala důvod podivného poblikávání LCD a on to nakonec byl upadlý drátek od napájení...