Zaslal: st prosinec 10 2014, 23:33 Předmět: Jak zobrazit znaky a čísla na Display 1x16 2x16 4x16?
Dobrý den,
začátkem prosince jsem zakoupil z TME vývojový kit Easy8051 v6 pro procesory Atmel na bázi uP 8051. Umí seriově progamovat pomocí On board programovacího interface procesory, které jsou na to vybavené .. např s-ková řada. Kit obsahuje i 1ks AT89s8253. Na boardu je také alfanumerický LCD display 2x16 znaků, zapojený v "nějakém" 4-bitovém modu. Kdysi jsem psal nějaké programy pro přípravky s 89C51 (ty v něm bohužel naprogramovat nelze), ale se zobrazováním na displayi moc zkušenosti nemám a zde použitý 4-bitový mod mi nic neříká. Na internetu jsem našel pouze Datasheet pro alfanum. LCD display LM 162551 firmy Sharp a i tam je to podáno pro mě nezkušeného dosti těžkopádně. Není zde někdo , kdo má se zobrazováním na display, ať již v normálním nebo oním 4-bitovém modu nějaké zkušenosti a mohl by mi poslat návod nebo nějaký DataSheet z kterého je postup snadno pochopitelný i začátečníkovi, případně příklad v assembleru s komentářem, jak se přistupuje po zběrnici na display a jak se docílí zobrazení požadovaného čísla či znaku. Vím, že display má konektoru Datovou sběrnici, řídící signály RS, W/R, En, ovládání jasu a kontrastu a v sobě má znakovou sadu, ze které se dá znak vybrat a zobrazit na pozici , která se musí nějak někam zadat , že se tam dá zadat i pár uživatelských znaků, ale víc toho nevím.
Za vaše odpovědi předem děkuji a nabízím za poštovné možnost naprogramování procesorů, které tento kit zvládne. Jsem z okolí města Ústí nad Orlicí a zájemcům z regionu to mohu naprogramovat na počkání, když mi dají příslušný HEX soubor.
Založen: Aug 27, 2010 Příspěvky: 463 Bydliště: Příbram
Zaslal: čt prosinec 11 2014, 0:34 Předmět:
Na stránkách GME najdeš většinou u každé součástky datasheet. Tam si najdi ten displej, který máš na vývoj. desce. Komunikace ve 4 bitovem modu znamená, že používáš jen vstupy D4 až D7 (piny 11 až 14). Assembler jsem nikdy nepochopil a co se týká Cčka, tak tam musíš mít knihovnu pro LCD. Víc ti určitě poradí nějaký borec v programování, kterých je tu dost ale já mezi ně bohužel nepatřím. _________________ Zdraví vás Mirek
Založen: Jul 21, 2006 Příspěvky: 25741 Bydliště: skoro Brno
Zaslal: čt prosinec 11 2014, 0:44 Předmět:
Já ty knihovny pro 8051 mám. Moje, ale snad pochopitelný. Důležitá je inicializace displeje při zapnutí, popř. při hot restartu procesoru, kdy se dá displej krásně zblbnout.... _________________ Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Dík za reakci. No, já právě přesně nevím, co je to za typ, je to od firmy MIKROELEKTRONIKA, je na tom kitu zapojený ve 4-bitovém modu a nějaké typové označení neuvádějí a ani není vidět na desce displaye, vím jenom že je 2x16 a že je zapoojený pro 4-bitový režim. Mám kromě toho na tom kitu ještě jeden 2x16 ... jak jsem psal ten od Sharpa a ještě jeden 4x16, ale od toho jsem vyhledávačem žádný Datasheet nenašel ani v GM ani v TME ani jinde .Napsat něco v Assembleru mi nedělá problém, ale musím vědět, co mám na tu "svorkovnici .... sběrnici " displaye posílat a jestli musím ty znaky vytahovat adresací z jeho paměti, nebo jestli se to dá posílat i nějak přímo do zobrazovací paměti RAM displaye a jak si mohu nadefinovat uživatelské znaky. Asi budou mít většinou LCD displaye stejný systém, ale potřeboval bych ho mít pro mě přijatelným a pochopitelným způsobem napsaný. Něco málo jsem k tomu našel, ale nic uceleného. Jinak mě zajímá i normální 8-bitový režim. V diskusích ještě píšou něco o nějakém řadiči HD 44780 .. ten asi bude na desce displaye a ten zpracovává posílané instukce.
Tak to bys byl moc laskav a udělal bys mi velikou radost, kdybys mi je mohl poslat, abych se v tom trochu porochňal, ..protože já to potřebuju pochopit, nechci jenom slepě používat podprogramy, o kterých bych neměl šajnu, jak fungují. Chci po delší pauze zase začít programovat nějaké aplikace v 51 assembleru a chci začít s automatickým otevíráním slepic a k tomu potřebuju i display, kvůli nastavování režimu. Na netu jsem našel poměrně slušný Simulátor s compilérem a programátor s ovladačem jsou v tom kitu. Mám doma i starý emulátor 51-ky, ale bohužel je na počítač s IDE konektorem a já mam už jenom PCI, tak nevím, jestli se na to dá udělat nějaká přechodka, abych ho mohl i nadále používat. Nevím ale bohužel, jaké mají tyto dva konektory zapojení signálů, abych si ji, když to půjde, mohl sám udělat .
Potom bych rád udělal prodram pro nastavování úhlu natočení pomocí krového motoru .. např. pro solární panel.
Založen: Jul 21, 2006 Příspěvky: 25741 Bydliště: skoro Brno
Zaslal: čt prosinec 11 2014, 1:06 Předmět:
Pošlu to sem, ale musíš vydržet, hned to nebude. _________________ Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Neboj, vydržím. Teď jsem sice našel popis funkce displayů, o kterých tu jde řeč, ale vnitřní instrukce displaye jsou tam pouze dobře popsané .. co dělají, ale není tam uveden jejich kód, nebo popis, v které pozici posílaného Byte/ čveřice bitů a jaké logické úrovni se jednotlivé bity mají nacházet .
Uf, uf, tak teď jsem našel většinu toho, co jsem poteboval:
Pokud to myslíš s programováním vážně, tak jsi zvolil správný postup. U assembleru pochopíš co a jak v uC funguje. Ale do ničeho většího než ten displej a jednoduchý np. teploměr bych už v assembleru nešel. Vyznat se pak ve stovkách až tisících řádků kódu, řešit meziskoky a hledat chyby bych už znovu nechtěl dobrovolně podstupovat. Nainstaluj si Keil (jsou pro něho i simulátory alfanum. displeje), kup si toto
http://shop.ben.cz/cz/121280-c-pro-mikrokontrolery-atmel-at89s52.aspx http://shop.ben.cz/cz/121320-programovani-mikrokontroleru-s-jadrem-8051-v-jazyce-c.aspx
a můžeš začít naplno. Sám jsem si to před časem zažil a byl jsem mile překvapen, jak se snadno, rychle a přehledně se dají psát kódy (v porovnání k ASM).
Je to celé kompletní vývojové prostředí, můžeš si vybrat jazyk C, Pascal (ten jsem si vybral já, ale pro PICy) nebo Basic. Jsou u toho příklady, můžeš samozřejmě přepnout i do assembleru. Je k tomu vývojová deska - ta už ale něco stojí, SW je pro malé aplikace do asi 2kB zadarmo.
Má to hotové všechny knihovny, tzn. podle příkladu navolíš připojení datových vodičů k displeji, ovládacích vodičů a pak už je příkazem např. LCDOUT (1, 5, "Ahoj") zobrazíš na 1. řádku a 5. sloupci text Ahoj. Chceš-li poslat něco po RS232, tak buď má brouk fyzický RS232 a jen ho nadefinuješ a jedním příkazem to pošleš, nebo použiješ jejich knihovnu a vytvoříš si SW seriový port. Prostě je to hodně zaměřené na praktičnost. Na webu mají hromadu přídavných modulů (displeje LCD a LED, teploměry 18B20, čidla, komunikace, ...). Na webu taky mají už hotové projekty, např. teploměry apod., stačí je jen stáhnout.
Neříkám že nemají v programu chyby, ale obvykle stačí stáhnout novější verzi a je po problému.
Založen: Jun 14, 2003 Příspěvky: 2795 Bydliště: Blížejov
Zaslal: čt prosinec 11 2014, 9:00 Předmět:
Korado napsal(a):
... Jinak mě zajímá i normální 8-bitový režim. V diskusích ještě píšou něco o nějakém řadiči HD 44780 .. ten asi bude na desce displaye a ten zpracovává posílané instukce.
Ten řadič je jakýsi standard, pro který existuje SW podpora.
Komunikace procesoru s tímto řadičem byla dost pěkně popsaná k KTE magazínu v seriálu o vývojovém modulu Chipon, tady se to dá najít a stahnout:
http://www.jvproject.cz/KTE.htm
Moc dík za info, časem bych se rád dohrabal i k práci s USB a GSM moduly (seznam AT příkazů pro ně už někde mám (tak 8 roků), jenom ho najít .
tzeď ještě koupit laserovou tiskárnu, abych si mohl dělat masky pro výrobu plošných spojů pomocí UV lampy a horkovzdušnou pistoli na práci se SMD součástkami a snad se časem rozhýbu po několikaleté pause.
;napred horni byte 0010 xxxx - prepne do 4-bit modu
;potom znovu,ale uz cely 2x4bity
;0000 0001 smaz disp a kurzor na zacatek - 2ms !
;0000 0010 vrat kurzor na zacatek radku - 2ms !
; 1kt Kurzor vlevo/vpravo, posun Text ne/ano
;=================================================
;0000 0110 posun kurz vpravo, text se neposouva
;0000 0111 posun textu vlevo
; 1dcb zapne Diplej Kurzor Blikani
;=====================================
;0000 1111 zapnout disp, kurzor a blikani
;0000 1100 vypni kurzor a jeho blikani
;01aa aaaa - prepnuti na zapis + adresa v CG-ram
;1aaa aaaa - prepnuti na zapis + adresa v DD-ram
;dddd dddd + Bit_rs=1 > zapis dat do CG nebo DD ram
;==================================================
;1001 0000 nastav pozici v ddram na 16 (10000b)
;CG ram - 8 vlastnich znaku zzz= 000 .. 111
;zapis dat do CGRram > 01 zzz sss
; sss je 8 sub-radku znaku po 5 bitech dat
; data jsou xxx11111
;t.j. 8x cykl rs=0+adresa, rs=1+data
;posledni radek je 00000 > misto pro kurzor
;3x znak "sloupec vybuzeni" 1,2,3 carky
;3x znak "znacka" - jen 1 carka v urovni 1.,2.,3. carky
;
_________________ Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
LCD_W_DATA:
SETB RS_LCD ;DATA
CLR RW_LCD ;ZAPIS
MOV P1,A ;ODESLI DATA
SETB E_LCD ;LCD ENABLE
CALL BUSY ;VYSTUP NA DISPLEJ
RET
;********************************
INIT:
CALL PAUSE2 ;cekani po privedeni Ucc
CLR A
MOV B,#5
MODS:
MOV DPTR,#INITBL
PUSH ACC
MOVC A,@A+DPTR
CALL LCD_W_INST
CALL PAUSE
POP ACC
INC A
DJNZ B,MODS
RET
;................................
Pause2: ;zpozdeni asi 390ms
mov R4,#255
mov R2,#255
mov R7,#3
Znovu2:
djnz R4,$ ;256 x
mov R4,#255
djnz R2,Znovu2 ;256 x 256 x
mov R2,#255
mov R4,#255
djnz R7,Znovu2 ;256 x 256 x 3
Ret
Pause:
mov R3,#155
djnz R3,$ ;zpozdeni asi 310 microsec
Ret
;................................
;inicializacni tabulka
INITBL:
DB 00000001b ;maze displej a vraci kurzor na poz.0
DB 00000010b ;vypina posun a vraci kurzor na pozici 0.
DB 00000110b ;smer pohybu kurzoru I/D vpravo, posun
;displeje SH vypmut.
DB 00001100b ;displej D zap, kurzor C, blikani B vyp
DB 00111100b ;8 bitu, 2 radky, font 5x10
;********************************
; texty
;*******************************
uvod1: DB '* TEXT 2 LINE *`'
uvod2: DB '* TEXT 1 LINE *`'
;********************************
END
Omlouvám se za chaos, nějak se poondil tabelátor a mezery.
Počítej s tím, že LCD 2x16 ma řadič pro displej 2x 40, proto je mezi koncem 1 řádku a začátkem 2 řádku pamětová díra ale zapisovat a číst tam jde. Já tu paměť drze používal na jiný účely. Stejný to bude asi i u jednořádku a čtyřřádku, ty jsem nezkoumal.
Pokud chceš jet jen po 4 bitech musí se LCD inicializovat jako při 8 bitech a na konci teprv převrátit na 4 bity
Jirka
Založen: Sep 19, 2007 Příspěvky: 3698 Bydliště: Praha
Zaslal: čt prosinec 11 2014, 16:56 Předmět:
Tyhle knihovny jsou všechny dost podobné a jejich hlavním nedostatkem jsou čekací doby pro odměřování impulsů E a čekání na dokončení operace v HD44780.
Časy uváděny v GMT + 1 hodina Jdi na stránku 1, 2Další
Strana 1 z 2
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.