16F874A nejde mi

Zdravím,
uz jednou jsem zde potreboval poradit a pomohli jste mi. Ted je to trochu horsi jelokoz jde o moji maturitní práci. Tak doufam, že to nebylo naposled Mam takovy problem:

Do procesoru nahraju program vse se zdá být OK ale jakmile ho dam do patice tistaku jde do nej napětí a ten mrzák nic nedela. Nejprve jsem zkousel krystal s 20Mhz ten nekmital vubec, tak jsem dal krystal na 14Mhz ten sice kmital ale nic se nedolo, ani ledky nesvítili. Tak sem hledal chybu a napsal jsem prg jednoduchého rozsvicení diod na portech a zase nic nefungovalo (osc kmital ale LEDky nic).

Rád bych kdybyste mi pomohli. V příloze přidávám tišták a prg, kterej je docela hezky napsanej s par obezlickama. Je to trochu komentovane ale chtřejší to určitě pochopí. Je to prg k ovladáni displeje LM20A21, ke kteremu jsem se zatim jeste nedostal kdyz sem ani nesprovoznil LEDky a určitě bude předmětem další diskuze.
Děkuji všem za zájem

Podle me bude chyba nekde v úvodu inicializace a to absolutne banální.
LCD PIC FINAL v_00.asm (31 KB)
LCD PIC FINAL v_00.asm (31 KB)

Žádný tišťák nevidím, jen dvakrát program.

tistak

Máš chybu v programu. Adresa RAM musí být 0x20.
0x0C je např. u 16F84

A jinak já používam. např.
cblock 0x20; první adresa paměti RAM pro PIC16F874 - 368bajtů (20h - 7Fh)
Priznak ;FLAGS
KlV_Port ;port klavesnice
KlV_Citac1 ;citac klavesnice opakovani
KlV_Citac2 ;cteni klaves
endc

Zkus to a napiš.

A na MCLR bych dal odpor, tak 4k7. Já ho dávám

Ani jedno z toho nepomohlo :frowning:

Mám to takhle a program normálně běží.

; Special Function Registers ==============================================
RAM EQU H’20’ ;Zde je jiny zpusob zadavani registru.
RAM_END EQU H’7F’ ;konec RAMky

RBF EQU RAM ;Zada se kde je RAM a dalsi registry jsou
RBF1 EQU RAM+1 ;za RAMem

A podle krokování dělá co by asi dělat měl. Dej sem ten program s těmi ledkami, když ti taky nejede.

A abych nezapoměl. Ještě vypnout AD převod, někdy to zlobí.

banksel ADCON1
movlw b’00000110’ ; A/D input OFF
movwf ADCON1

Připojuji soubor, jakou mám incializaci pro 16F877A, třeba ti to pomůže
A upravil jsem ten tvuj původní, tak ho zkus.
LCD PIC FINAL v_00 upravenej.asm (30.6 KB)
INIT.ASM (2.29 KB)

To zní hodně samolibě, s ohledem na to jak program vypadá. honza3 si všiml nejspíš naprosto primárního problému, převálcování SFR, tak s tím něco udělej. Odověď :"Ani jedno z toho nepomohlo " je naprosto irelevantní v diskuzi o programování PIC.

jankop_: hele tenhle prg sem psal docela dloho a na to ze je to jeden z mych prvních uzitecnych prg tak sem na to pysnej… nevim jak si na tom ty ale rekl bych ze na beginera je to pekny…

Special thx to Honza3 :slight_smile: podivam se na to

diky diody uz mi fungujou jak maj…

ted je na rade Display ja tady mam LM20A21 a mam ho zapojenej takhle:

PIC Display

B0 DB4
B1 DB5
B2 DB6
B3 DB7
B4 RS
B5 R/W
B6 E

rekl bych spis ze je spatne zapojenej ale kontoloval jsem se a vse na svem miste. V DataSheetu od tohodle displeje sice je napsano kde je ( BD0-BD7, RS, R/W, E, Vss, Vdd, Vo) co ale na druhy strane jsou dalsi konektory na pripojeni nekam kamsi a ty tam nejsou popsany co to je a k cemu to slouží. Taky nevim poradne kam mam zapojit Vo. Jak uz jsem napsal asi to bude spatne zapojene jelikoz Display nema zadnou reakci - nezobrazuje nic.

thx

Vo zapoj na trimr 5K a ten zapoj na VSS a VDD
Nastavíš si s ním jas displeje, proto ti asi nic neukazuje

Víš vůbec něco o elektronice? :blush:

A ještě k programu. Podle mě je zbytečné kontrolovat příznak BUSY, pokud dodržíš předepsané časové limity, tak není důvod, aby LCD nefungoval. A ušetřil by jsi jeden vývod u procesoru. Vývodů není nikdy dost. :blush:

pravda je ze v elektrotechnice sem spis teoretik naz praktik…
trimr sem tam dal, ale

na prvnim radku u displeje mi svítí jenom ctverce a druhej radej je mrtvej

takze tedkon ovladam kontrast u plnych ctvercu…

No, tak aspoň jeden uspěch, LCD je funkční, ale nemáš ho z inicializovanej.
Zkus tento program zahrnout do svého programu, vývod RW uzemni
V programu si uprav vývody E a RS kam je máš připojené.
LCD.asm (5.31 KB)

tak dislpej uz jsem “rozchodil” ale nezobrazuje to co ma respektive zobrazuje poze nakou nahodnou hatmatilku. V priloze pridavam zatim posledni verzi prg. Snad se na to naka dobra duse podiva a rekne kde byla chyba/y jelioz uz jsem z toho docela zoufalej
LCD PIC FINAL v_00 upravenej 000.asm (31.6 KB)

Máš chybu v podprogramu na ovládání LCD displeje. Na to jsem ti posílal ten můj! Kdyby jsi ten program psal z ověřenými a odzkoušenými podprogramy, asi by ti už fungoval. Na ovládání LCD displeje už asi nic nového nevymyslíš.

a nemohl bys mi to prosimte vepsat do toho myho prg?

Zkus to
Ale máš v tom programu pěknej bordel. Pleteš si zápis instrukcí a dat do LCD. A do TEXT a TEXT2 si dej přímo znaky, a ne čísla znaku.
Např. místo movlw .65 dej movlw ‘A’
Bude to přehlednější
A když chceš registr přesunout do W, tak musíš místo MOVF ADRTX napsat MOVF ADRTX,w

Snad ti to pomůže.
LCD.asm (32.4 KB)

proc v tom programu mas zakomentovane nektere radky pro obsluhu LCD?

mel bych pro tebe nabidku… kdyz mi napises na krofta.jan (zavináč) seznam.cz

:arrow_right: administrator: příspěvek byl upraven
(upravil jsem zápis emailu - ochrana před SPAMem)

ten mail je spatne!!!

krofta.jan (zavinac) gmail.com

No aby se v tom člověk vyznal.