Stránka 1 z 1

display ovladaný atmelem

Napsal: 04 říj 2008, 11:50
od distrikt
zdravim šecky elektroniky mam menší problem nedavno sem si koupil alfanumerický display MC0802A-SYL/H s tim že ho budu ovladat přes atmega8 ale jaksik display vubec nereaguje nevim asi to nějak špatně ovladám prosimvás kdyby někdo měl nějaky navod jak se displaye ovladají byl bych mu vděčný 8-)

Napsal: 04 říj 2008, 12:57
od Bernard
Po připojení na zdroj se musí displej nejdřív inicializovat několika instrukcemi, které mají předepsané časování. Viz katalogový list řídícího obvodu S6A0069.

Napsal: 04 říj 2008, 13:20
od echinus
Předpokládám, že pro komunikaci použivaš 8-mi bitovou sběrnici.(jestlni ne tak je to krapet slozitejsi). v podstate jde jen o to ze na displej musiš poslat dva byty ktere nastavi spravnou fci a mezi nimi dodržet minimalni dobu potřebnou k zapisu slova do řadiče v LCD cca.40us, nebo pockat na nastaveni kontrolniho bitu(konce zapisu) v LCD,a pak displej vymazat, a je vše připraveno k použiti. v mem případě vypadala inicializace kdysi asi takhle:
(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

Napsal: 04 říj 2008, 19:35
od Kado
Pri vacsine takychto LCD plati, ze po pripojeni napajania treba pockat cca 20-40ms a az potom komunikovat s radicom LCD. V datashite LCD urcite takato informacia figuruje...

Napsal: 05 říj 2008, 02:15
od Pepa87
Tady je například datasheet
http://pdf1.alldatasheet.com/datasheet- ... 44780.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 off
takže displej zůstane zhasnutý

Napsal: 05 říj 2008, 20:43
od distrikt
zapoměl sem dodat že na procesory používám assembler jelikož jeho logika je pro mě jednodušší díky za ty datasheety snad něco vykutim jinak použivam k tomu 8mi bitové porty...

Napsal: 06 říj 2008, 07:18
od echinus
Můj člověk, assembler je good. Nicméně nejde o programovací jazyk, nýbrž o sled zadaných instrukcí. Z meho programu v C(viz výše) mužeš vzít ony dvě hodnoty a poslat je na displej

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

Napsal: 06 říj 2008, 15:05
od Atlan
a nezbudnite potom na adresy pre kurzor aby to pisalo...... pre prvy riadok a prvy znak 80h a pre druhy riadok a druhy znak 0ch pre 16znakovy dvoj riadkovy displej vid datashit.... pre ten tvoj

Napsal: 06 říj 2008, 19:05
od nekmil
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"

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"

Napsal: 06 říj 2008, 19:56
od Zirafka
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? :D

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í...

Napsal: 06 říj 2008, 22:00
od distrikt
ano ano je to tady prostě assembler je nejlepši není nejpřehlednějši ale je nejjednodušší na pochopení a není třeba se nic složitého učit (lenost vladne světu) tak díky kluci nějak už to zmaknu snad....

Napsal: 06 říj 2008, 22:03
od caven
nj tak to jsem se o sobě dozvěděl hezký věci ;);) taky jsem přes ten assembler ;)

Napsal: 06 říj 2008, 22:12
od distrikt
jj tak na moje hejbatka mi stači jenom par blbin navic v AVR studiu sou ty registy krasně vypsané