PIC16F84A a 16bit číslo - 16 bit inkrementace a dekrementace

To bych taky chtěl, “už si příliš nepamatovat assembler”… Nějak mě to C leze do hlavy pomaleji, než bych si představoval :confused: Ale pořád nevíme, co na to náš beginner, nějak se neozývá.

Děkuju moc všem, ale jsem trochu natvrdlej. Můžete mi to prosím nějak líp vysvětlit? Chci to dát na konec programu, bude to jakoby smyčka která čeká pokaždé na stisknutí tlačitka, pak projede program a na konci se to zvýší o 1, aby při příštím stisku začínal program s větším číslem. Jo a ještě do toho aby se číslo zobrazilo na displeji. Mam tu k dispozici nejake lcd znakove displeje a nebo ledkove.

nooooooo, takže viděl bych to asi takhle, cucni si ten texťák a podiv se na to. přeci jen už je po půlnoci, tak mi to moc nemyslí, takže prosim ostatní o kontrolu :smiley:
zdrojak.txt (1.52 KB)

Pawalos: Pěknej full service :slight_smile: Co myslíš, zvládne si sám napsat obsluhu displeje?

Dredd: Jakej displej teda hodláš použít? To je nějaká školní úloha?

no tak já teda doufám že se alespoň pokusí něco napsat :slight_smile:

ted bych se tedy rád podíval, co kolega Dredd má napsaného, aby sme viděli, že naše snaha není marná :slight_smile:

muzes bejt natvrdlej sebevic ale musis si umet poradit,
ve vetsine pripadu pokud davam nejakej kod verejne tak je funkcni i v simulatoru, takze kdyz si to skopirujes do MPLABu a odsimulujes tak zjistis jak to funguje, pak muzes podnikat vlastni upravy klide pokus/omyl tim se to naucis …
jinak ovladat dislpej (jakejkoliv) kdyz se nedokazes poprat s timto ? :unamused:
tak ukaz co si napsal sam …?

Tak Vám znova děkuju, zkusim to zpíchnout. S tím displejem to zvládnu, už jsem viděl pár příkladů a mam i na to knížku. Akorád mi furt nebylo jasné co s tím číslem, teď už to vim. Jestě to musim trochu domyslet. Musim vyleptat plošňák a čekam na nějaké součástky. Abych to moch odskoušet. Jo a jak se někdo ptal jestli je to školní úloha, tak není. Jsem mechanik elektronik se širším zaměřením (PC,Spotřební elektronika a zabezpečovačka). Zkrátka, hrabu se ve všem. Programování jsme měli ve škole taky ale jen tak okrajově. Dost bastlim a rozšiřuju si postupně vědomosti, když dělá člověk v práci pořád stejné věci už 6 let tak se trochu zapomíná. :question: :question: :bulb:

melo by to bejt obracene, nejdriv to odskouset a pak udelat plosnak :wink: , pak se muze stat ze budes skrabat desku, neco tam zapomenes atd, dej nam nejakej popis co to bude, jak to bude fungovat, schema , poradime…, vymyslime …

Proč to řešíte přes Z??

incfsz LOW goto $+2 incf HIGH

Tak jinak, potřebuju přidat do programu ten lcd displej aby mi zobrazil a zvýšil aktuální hodnotu MCODE_2 a ještě bych tam potřeboval nejaký výstup na relé které po naprogramování toho “černého obvodu” na obrázku bylo sepnuté asi cca 3-5s. Půjde tam ten displej?
Programator.png
Program.txt (23.3 KB)

Ja a je mi jedno jestli zobrazí ten displej čislo ve dvojkové, desítkové nebo 16kové soustavě.

RA4 na rele, otevřenej kolektor, RB0-RB5 LCD.

No tak na jeho místě bych si dal spíš LEDkovej displej, bude to s ním pro začátek o trochu jednodušší, ale to se bude muset rozhodnout on sám…

Dredd: Co nepájivý kontaktní pole, máš?

No jasně, nepájivé pole mám, co bych to byl za elektronika bez nepájivého pole.

Dobrý, tak než začneš dělat nějaký desky, tak do něj zaraž tu 16F84 a ozkoušej si to všechno na něm (mimochodem, když jsem začínal s PIC, tak jsem neměl ani to pole, svoji první 16F84 jsem cpal do Alfy 2, měl jsem v ní na místě čítače 7493 patici… 4 horní nožičky “vedly” do vzduchu :smiley: )

Jakej displej k tomu chceš dát? Jde o to, že každej má nějaký výhody a nevýhody, a nevíme, co přesně máš k dispozici a ani pořádně to, jestli jenom děláš pokusy nebo jestli a kam chceš finální produkt nakonec dávat… (?) Znakový displeje umějí na začátku občas trošku potrápit (kontrast, čekačky, čtyřbitový zapojení taky není pro začátek úplně nejlehčí…), ale zase jak už ho jednou rozjedeš, tak už s ním tolik práce není, a umožní ti zobrazit toho víc (ovšem zase třeba nesmí moc na sluníčko, moc nesvítí atd). LEDkový displeje jsou lepší v tom, že líp svítí, a že vidíš hned jak to funguje či nefunguje, ovšem znamená to taky to (kromě spotřeby), že ho musíš řídit multiplexně, což je občas taky legrace (nějaký ty tabulky, přerušení, časovače…), trochu víc vývodů na propojování, a krom toho by se ti v daném zapojení už nedostávalo I/O vývodů toho PICu.

Ale to už jistě všechno víš, tak ať tu zbytečně neplácáme, tak nám řekni, jakej přesně displej teda dáme (a máme)…? A taky jeslti znáš třeba takovej obvod 74LS(HC)595, 74164, a jak funguje…?

Jo ty integráče znám, takže ty displeje mam atm1602b, mc16021E8 (2řádky) a nakonec 4 řádkovej amc2004ar-b. Mě by stačili ty ty první dva dvouřádkový.

Nešel jsem takovou ukázku animace, ale je to pro atmegu, to by se dalo použít né? myslím teda po menší úpravě.

.NOLIST
.INCLUDE “m16def.inc”
.LIST

.DEF REG=R16	;prac. registr		
.DEF POC=R20	;počítadlo
.CSEG	;kódový segment	
;hlavní program:	

START: LDI REG,LOW(RAMEND)
OUT SPL,REG ;nastavení SP
LDI REG,HIGH(RAMEND)
OUT SPH,REG ;na konec SRAM
;inicializace LCD:
RCALL LCDINI
;nastavení adresy textu:
LDI ZL,LOW(ADRZTX)
LDI ZH,HIGH(ADRZTX)
;smycka animace:
SMYCKA: ;příprava na první řádek:
LDI REG,$80
RCALL LCDWCM ;první řádek
LDI POC,16 ;počet sloupců
RADEK1: LPM REG,Z+ ;nahraj znak
RCALL LCDWDT ;zapiš znak
DEC POC ;konec řádku?
BRNE RADEK1
;příprava na druhý řádek:
LDI REG,$C0
RCALL LCDWCM ;druhý řádek
LDI POC,16 ;počet sloupců
RADEK2: LPM REG,Z+ ;nahraj znak
RCALL LCDWDT ;zapiš znak
DEC POC ;konec řádku?
BRNE RADEK2
;čekání 2 s:
RCALL CEK2S
;test konce animace:
CPI ZL,LOW(ADRKTX) ;porovná
LDI REG,HIGH(ADRKTX) ;Z s ADRKTX
CPC ZH,REG
BREQ START ;celé znovu
;příprava na další krok:
SBIW ZL,16 ;Z=Z-16
RJMP SMYCKA ;další krok
;text pro výpis:
ZTEXT: .DB " "
.DB " "
.DB " "
KTEXT: ;konec textu+1
.EQU ADRZTX=2ZTEXT ;adresa začátku textu
.EQU ADRKTX=2
KTEXT ;adresa konce textu
;vložení rurin pro LCD:
.INCLUDE “ATLCDTX2.INC”

Jo a odepisuju pomalu, protože se v tom zrovna hrabu a kouším co z toho bude.

Sorry, trochu se to rozházelo. Tady posílam soubor.
Animace.txt (1.27 KB)

Jak by bylo snadnější psát to v C a nemuset rozlišovat PIC a AVR. :unamused:

Pravda. ATmegy bych do toho zatím netahal.

Takže když už víme displej, tak nemůžeme nezmínit notoricky známou, ale pořád výbornou stránku:

dinceraydin.com/djlcdsim/djlcdsim.html

Najdi si datasheet ke svýmu displeji 2x16 (nebo podobnej), a na té stránce si to pořádně oklikej (jde hlavně o inicializaci toho displeje, a pak o paměti, aby člověk věděl, kam co zapisovat, když chce např. psát něco na druhej řádek displeje atd). Dá se to tam přepnout i do 4bit, takže si můžeš udělat krásnou představu, jak se takovej displej řídí a co všechno a kdy je třeba poslat, aby to dělalo to co chceme. Zapojení k PIC už ti napsal Honza3, pole máš, tak můžeš začít laborovat. Když ti něco nepůjde, tak zde napiš o co jsi se snaži a kde přesně a na čem se to prozatím zastavilo, a pak se ptej co dál. Většina lidí zde (včetně mě) ti ráda pomůže.