Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   1211 / 1211
(#) jpocok hozzászólása Pé, 20:40 /
 

DCF77 - 16F628A - TPIC595

Szevasztok!

Ez itt álmaim órája: végtelenül egyszerű, mégis atom-pontos. Többször megépítettem, szépen működik. Sajnos LCD-kijelzős, ami óriási hiba! Szeretnék valami könnyebben leolvasható 7-szegmensest, például Numitron-t, vagy LED-et. Ugyanakkor viszont NEM szeretem a multiplex vezérlést, így Vicsys Overkill Nixie órája nem jöhet számításba. Legjobb megoldásnak a Shift-regisztert tartom, például a TPIC595-öt.

Pali79 bináris órája tartalmaz egy gombelemes megoldást is, áramszünet esetére. Ez is egy nagyon jó ötlet, mivel a DCF jel beolvasása néha hosszú ideig tart, nálunk viszont gyakoriak az áramszünetek.

Ezen a ponton zsákutcába kerültem, mert nem tudom átírni az ASM programot! Tehát keresem azt a vállalkozó kedvű fórumtársat, akinek ideje és tehetsége volna hozzá, hogy ebben támogasson. Csak a program módosításában, mert a hardver nem probléma.

Úgy gondolom, hogy a részleteket jobb volna privát üzenetekben tisztázni, azután ha már működik az óra, akkor egy cikkben tenném közzé a végleges megoldást. Ugyanis hiába kerestem példákat a Shift-regiszterek ASM programozására 16F PIC-hez, legtöbbször csak C és az is Arduino-hoz érhető el.

Éppen ezért kérek segítséget ilyen formában, mert egyrészt a működő ASM programot szeretném megérteni, másrészt azoknak is átadni, akik hasonló megoldásra vágynak.

Az eredeti program és kapcsolás Uwe Nagel munkája, amit Topi magyarított.

schaltung.gif
    
(#) Hp41C válasza jpocok hozzászólására (») Szo, 16:14 /
 
A 74HC595 hasonlóan vezérelhető, mint a TPIC595. Rá található példa assembly -ben is.
Using 74HC595 to expand output pins of a PIC microcontroller: Assem... code
(#) jpocok válasza Hp41C hozzászólására (») Szo, 21:08 /
 
Köszönöm válaszodat! Bár a fotókon nem látható, de ezzel 5 éve már foglalkoztam egyszer. Sajnos ez csak egy példaprogram, fogalmam sincs, hogyan alakíthatnám át az LCD kijelzést.
(#) Pali79 válasza jpocok hozzászólására (») Szo, 21:27 /
 
Mi a baj a multiplexel?
(#) Hp41C válasza jpocok hozzászólására (») Vas, 9:27 /
 
Szia!

A programban az alábbi rész írja ki az LCD -re az időt:
  1. ;  0123456789abcdef
  2. ; wenn alterText definiert ist
  3. ; +----------------+
  4. ; |20:03:15 MESZ ##|
  5. ; |Di 01.04.2003 ##|
  6. ; +----------------+
  7. ; sonst
  8. ; +----------------+
  9. ; |20:03:15 MESZ ##|
  10. ; |Di 01. APR 03 ##|
  11. ; +----------------+
  12. ;-- 1. Zeile
  13.         movlw   0x80
  14.         call    write_lcd_comm
  15.         movf    dispStd,w
  16.         call    write_byte
  17.         movlw   ':'
  18.         call    write_lcd_data
  19.         movf    dispMin,w
  20.         call    write_byte
  21.         movlw   ':'
  22.         call    write_lcd_data
  23.         movf    dispSec,w
  24.         call    write_byte
  25.         movlw   ' '
  26.         call    write_lcd_data
  27.  
  28.         movlw   lcd_mez_table-lcd_init_table
  29.         btfsc   dispStat,4
  30.         movlw   lcd_mesz_table-lcd_init_table
  31.         call    lcd_string

A dispStd az órákat, dispMin a perceket és a dispSec a másodperceket tartalmazza 2 difit BCD formában.
  1. ;********************************************************************
  2. write_byte               ; writes a hex-byte
  3.         movwf   temp_byte
  4.         swapf   temp_byte,w
  5.         call    write_nibble
  6.         movf    temp_byte,w
  7.  
  8. write_nibble  
  9.         andlw   0x0f
  10.         addlw   0x06
  11.         btfsc   STATUS,DC
  12.         addlw   0x07
  13.         addlw   0x30-0x06
  14.         goto    write_lcd_data
  15. ;********************************************************************
  16. write_byte               ; writes a hex-byte
  17.         movwf   temp_byte
  18.         swapf   temp_byte,w
  19.         call    write_nibble
  20.         movf    temp_byte,w
  21.  
  22. write_nibble  
  23.         andlw   0x0f
  24.         addlw   0x06
  25.         btfsc   STATUS,DC
  26.         addlw   0x07
  27.         addlw   0x30-0x06
  28.         goto    write_lcd_data

A kiírás két részből áll. Előbb az adatokból a felső nibble-t alakítja ASCII karakterré, beírja az LCD -re (call write_byte) majd az alsó nibble-vel teszi ugyanezt.
Ha át akarod írni TPIC595 -re, akkor előbb azt kellene eldönteni, hogyan csatlakoznak a kijelzők a shift regiszterre.
(#) jpocok válasza Pali79 hozzászólására (») Vas, 19:21 /
 
Idézet:
„Mi a baj a multiplexel?”

Zavar a vibrálás. Vezetés közben is nagyon kellemetlennek tartom, ha az előttem haladó kocsi LED-es lámpái vibrálnak. Természetesen ezt csak olyankor tapasztalom, amikor megmozdítom a szemem. No de nem nézhetek állandóan ugyanabba az irányba.
Ugyanakkor a Nixie csövek esetén műszakilag sem ajánlott - legalábbis ezt olvasom mindenhol.
(#) jpocok válasza Hp41C hozzászólására (») Vas, 19:38 /
 
Szia!
Nagyon szépen köszönöm fáradozásodat, ez értékes segítség!
Előbb megpróbálom úgy átalakítani a mintaprogramot, hogy egy hétszegmenses kijelzőre küldje ki a 0-9 számjegyeket. Ennek tesztelésére van egy nagyon jó "univerzális" panelem (mellékelt kép), amit egy évvel ezelőtt egy másik projekthez készítettem. Amint látható, 18-20-28 lábú PIC-hez is jó, illetve a kimenetet is többféle módon lehet variálni (csak 74595, vagy ULN..., vagy UDN..., illetve szükség esetén előtét ellenállásokkal).
Ezután már "csak" azt kell kitalálni, hogyan küldhetek ki 6 digitetet és végül jöhet Uwe Nagel programjának átalakítása az általad küldött segítség alapján.
Köszönöm!
(#) kaqkk válasza jpocok hozzászólására (») Vas, 19:40 /
 
6*8 bit + latch és már készen is van Ha nem sikerül szólj segítek ...
A hozzászólás módosítva: Vas, 19:41
(#) Pali79 válasza jpocok hozzászólására (») Vas, 21:28 /
 
A bináris órám is multiplex. Azóta megcsináltam 7 szegmenses változatban is. Megnéztem szimulátorban a bináris másodpercenként 32300-szor, a 7 szegmenses, 193-szor villan fel 1 másodperc alatt. Nem hinném, hogy bármelyiket is észrevennéd.
(#) kaqkk válasza Pali79 hozzászólására (») Hé, 16:53 / 1
 
Nekem is hiába mondták hogy finom a spenót sok vas van benne mégis útálom. Ha nem szereti ne akard rábeszélni
(#) Pali79 válasza kaqkk hozzászólására (») Hé, 18:54 /
 
Dehogy akarom én rábeszélni. Felőlem aztán olyan órát gyárt magának amilyet akar. Csupán megállapítottam, hogy szerintem egy közel 200 Hz-es villogást nem lehet észrevenni.
(#) benjami válasza Pali79 hozzászólására (») Hé, 19:05 /
 
Ha éppen interferál egy másik hasonló frekvencián működő LED-el akkor azért elképzelhető, hogy zavaró
Következő: »»   1211 / 1211
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem