 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.93 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Čet Jul 22, 2010 12:28 pm Naslov sporočila: |
|
|
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  |
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...  _________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
Jule Član


Pridružen-a: Sob 27 Okt 2007 12:48 Prispevkov: 2533 Aktiv.: 11.79 Kraj: Ajdovščina
|
Objavljeno: Čet Jul 22, 2010 12:41 pm Naslov sporočila: |
|
|
Odlično!  _________________ lp Jure |
|
Nazaj na vrh |
|
 |
mucek4 Član


Pridružen-a: Sob 18 Jun 2005 20:52 Prispevkov: 2952 Aktiv.: 12.46 Kraj: Tržič - Mesto med gorami
|
Objavljeno: Čet Jul 22, 2010 1:46 pm Naslov sporočila: |
|
|
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 |
|
 |
Jule Član


Pridružen-a: Sob 27 Okt 2007 12:48 Prispevkov: 2533 Aktiv.: 11.79 Kraj: Ajdovščina
|
Objavljeno: Pet Jul 23, 2010 3:56 pm Naslov sporočila: |
|
|
Dela kot namazano!  _________________ lp Jure |
|
Nazaj na vrh |
|
 |
|
|
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
|