www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

BCD to 7 segment driver, ki šteje od 0 do F
Pojdi na stran Prejšnja  1, 2
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Komponente in podsklopi
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.92
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Čet Jul 22, 2010 12:28 pm    Naslov sporočila:   Odgovori s citatom

mucek4 je napisal/a:
Silvo, jule. Imam čas, bom napisal sedaj.

PORTA 0-3 binarna vrednost
PORTB 0-6 7SEG
PORTA 4 tipka active LOW

Povej če je OK Smile


Super - sam grem v popoldansko, jutri sem pa zjutraj, tako da bi itak imel čas morebiti šele zvečer ali jutri popoldan. Sem ravno razmišljal, kje imam kak prosti board... Wink

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Jule
Član
Član



Pridružen-a: Sob 27 Okt 2007 12:48
Prispevkov: 2533
Aktiv.: 11.79
Kraj: Ajdovščina

PrispevekObjavljeno: Čet Jul 22, 2010 12:41 pm    Naslov sporočila:   Odgovori s citatom

Odlično! Dancing
_________________
lp Jure
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
mucek4
Član
Član



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 12.46
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Čet Jul 22, 2010 1:46 pm    Naslov sporočila:   Odgovori s citatom

Evo. Na hitro in nepreizkušeno.
Vse kar moraš narediti je zgoraj v tabeli LOOKUP_7SEG napisati "0" tam kjer želiš da tvoj segment sveti - ne vem kako boš povezal. Komentarjev upam, da je dovolj...

Koda:
;*******************************************************
;**        B I N   &   7 S E G   O U T P U T          **
;**                                                   **
;**                      pic 16F84a                   **
;**                                                   **
;**                                  by Mucek4 & Jule **
;*******************************************************

   #include "P16F84A.INC"


;*******************************************************
;** Configuration bits                                **
;*******************************************************
;
;           Code protect OFF, PowerUp timer ON, WDT OFF, XT oscilator
   __CONFIG  _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC

; Possible OSC options _LP_OSC, _XT_OSC, _HS_OSC, _RC_OSC

;*******************************************************
;**  Variables                                        **
;*******************************************************

   cblock 0x0c
    d1, d2, COUNTER, OLDKEYSTATUS
   endc

;*******************************************************
;**  constants                                        **
;*******************************************************

   #DEFINE KEY      4


;*******************************************************
;**  Programm                                          **
;*******************************************************

   ;reset vector
   org 0x00
   goto MAIN

   ;interrupt vector
   org 0x04
   retfie                     ; return from interrupt

LOOKUP_7SEG
   addwf PCL, f               ; adding W to program counter
   retlw b'11111111'            ;0
   retlw b'11111111'            ;1
   retlw b'11111111'            ;2
   retlw b'11111111'            ;3
   retlw b'11111111'            ;4
   retlw b'11111111'            ;5
   retlw b'11111111'            ;6
   retlw b'11111111'            ;7
   retlw b'11111111'            ;8
   retlw b'11111111'            ;9
   retlw b'11111111'            ;A
   retlw b'11111111'            ;B
   retlw b'11111111'            ;C
   retlw b'11111111'            ;D
   retlw b'11111111'            ;E
   retlw b'11111111'            ;F


MAIN

   banksel PORTA               ; set all outputs in PORTA and B
   clrf PORTA                  ; to 0
   clrf PORTB                  ;

   banksel TRISA               ; output selection
         errorlevel      -302
   movlw b'00010000'            ; only RA4 is input
    movwf TRISA                  ;
   clrf TRISB                  ; all output
         errorlevel      +302

   banksel COUNTER
   clrf COUNTER               ; init counter

    movfw PORTA                  ; init old key status
   movwf OLDKEYSTATUS            ;

MAIN_LOOP

   btfss PORTA, KEY            ; if key is not pressed
   goto MAIN_WAIT               ; wait a bit

   ; key is preddes here (PORTA, KEY = SET)
   btfsc OLDKEYSTATUS, KEY         ; if key was pressed in previous loop
   goto MAIN_WAIT               ; wait a bit

   ; key is pressed now and was not pressed in previous loop
   incf COUNTER               ; inc counter

   movlw 0x10                  ; check if counter is too large
   subwf COUNTER, w            ; substract
   btfsc STATUS, Z               ; if result iz 0
   clrf COUNTER               ; reset counter to 0

MAIN_WAIT

    movfw PORTA                  ; init old key status
   movwf OLDKEYSTATUS            ;

   movfw COUNTER               ; write counter to PORTA
   movwf PORTA                  ; as binary output

   call LOOKUP_7SEG            ; call lookup table
   movwf PORTB                  ; and put it to PORTB

   call WAIT_A_BIT               ; we wait a bit (for debouncing)
   goto MAIN_LOOP               ; go back to the loop


   ;delay for 1ms
WAIT_A_BIT
         ;9993 cycles
   movlw   0xCE
   movwf   d1
   movlw   0x08
   movwf   d2
WAIT_A_BIT_0
   decfsz   d1, f
   goto   $+2
   decfsz   d2, f
   goto   WAIT_A_BIT_0

         ;3 cycles
   goto   $+1
   nop

         ;4 cycles (including call)
   return


   end
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Jule
Član
Član



Pridružen-a: Sob 27 Okt 2007 12:48
Prispevkov: 2533
Aktiv.: 11.79
Kraj: Ajdovščina

PrispevekObjavljeno: Pet Jul 23, 2010 3:56 pm    Naslov sporočila:   Odgovori s citatom

Dela kot namazano! Boo hoo!
_________________
lp Jure
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Komponente in podsklopi Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2
Stran 2 od 2

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 494 dni


Powered by phpBB © 2001, 2005 phpBB Group