 |
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.95 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Tor Avg 12, 2008 4:05 pm Naslov sporočila: |
|
|
Evo, na hitro spisano:
Ura "gre" (sicer po internem oscilatorju).
Koda: |
;-----------------------------------------
;testni program Ura z led displejem
;v multiplex načinu
;-----------------------------------------
.include "tn26def.inc"
.def tmp=r16
.def tmp1=r17
.def ure=r18
.def minute=r19
.def t1=r1
.def t2=r2
.def sekunde=r3
.def kontrolni=r20
.def Enica=r21
.def Dtica=r22
.def Stica=r23
.def Ttica=r24
.org 0x0
rjmp G_program
.org 0x6
rjmp T0_prekinitev
.org 0xD
TABELA: //0123456789AbcdEFPHI-
.db 123,34,87,118,46,124,125,50,127,126,63,109,69,103,93,29,31,47,9,4,0
;---------------------------------
;prekinitev TMR0
;---------------------------------
T0_prekinitev:
push tmp
rcall Sekunda ;definiranje takta 1.sekunde
rcall Pripravi_prikaz
rcall Osvezi
ldi tmp,6
out TCNT0,tmp
pop tmp
reti
;----------------------------------
;procedura pripravi prikaz
;----------------------------------
Pripravi_prikaz:
clr dtica
mov enica,minute
Ponovi_1:
cpi enica,10
brcs Na_ure1
subi Enica,10
inc Dtica
rjmp Ponovi_1
Na_ure1:
clr ttica
mov Stica,ure
Ponovi_2:
cpi Stica,10
brcc Naprej2
ret
Naprej2:
subi Stica,10
inc Ttica
rjmp Ponovi_2
ret
;----------------------------------
;procedura osvezi displej
;----------------------------------
Osvezi:
cbi PORTA,3
sbis PORTA,7
rjmp STO_T
cbi PORTA,7
mov tmp,Ttica
rcall Cifre
sbi PORTA,6
ret
STO_T:
sbis PORTA,6
rjmp DES_T
cbi PORTA,6
mov tmp,Dtica
rcall Cifre
sbi PORTA,5
ret
DES_T:
sbis PORTA,5
rjmp ENI_
cbi PORTA,5
mov tmp,Enica
rcall Cifre
sbi PORTA,4
ret
ENI_:
cbi PORTA,4
mov tmp,Stica
rcall Cifre
sbi PORTA,7
sbrs Kontrolni,0
ret
sbi PORTA,3
ret
Cifre:
ldi ZH,high(Tabela*2)
ldi ZL,low(Tabela*2)
add ZL,tmp
brvs Prekoracitev
lpm
out PORTB,r0
ret
Prekoracitev:
inc ZH
lpm
out PORTB,r0
ret
;---------------------------------
;definiranje 1 sekunde
;---------------------------------
Sekunda:
dec t1
breq Naprej
ret
Naprej:
ldi tmp,250
mov t1,tmp ;do sem pride vsako sekundo
rcall Minuta
sbrs kontrolni,0
rjmp Pika_on
cbr Kontrolni,0b00000001
ret
Pika_on:
sbr Kontrolni,0b00000001
ret
;----------------------------------
;minuta
;----------------------------------
Minuta:
dec sekunde
breq Cela_m
ret
Cela_m:
ldi tmp,60
mov sekunde,tmp
rcall Povecaj_uro
ret
;---------------------------------
;procedura poveča uro
;---------------------------------
Povecaj_uro:
inc minute
cpi minute,60
breq Na_ure
ret
Na_ure:
clr minute
inc ure
cpi ure,24
breq Dan
ret
Dan:
clr ure
ret
;--------------------------------
;glavna procedura
;--------------------------------
G_program:
ldi tmp,RAMEND
out SP,tmp
ldi ure,15
ldi minute,34
clr kontrolni
ldi tmp,60
mov sekunde,tmp
clr tmp
out PORTA,tmp
out PORTB,tmp
ser tmp
out DDRB,tmp
ldi tmp,0b11111000
out DDRA,tmp
ldi tmp,250
mov t1,tmp
ldi tmp,0b10
out TIMSK,tmp
ldi tmp,0b11
out TCCR0,tmp
sei
nop
rjmp PC-1
|
Vrjetno bi lahko pisal še bolj varčno. Porabljeno ca 12% pomnilnika.
Koda: |
[.cseg] 0x000000 0x00011c 240 22 262 2048 12.8%
[.dseg] 0x000060 0x000060 0 0 0 128 0.0%
[.eseg] 0x000000 0x000000 0 0 0 128 0.0%
|
Opis: |
|
 Download |
Ime datoteke: |
ura.ZIP |
Velikost datoteke: |
2.13 MB |
Downloadano: |
8 krat |
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
tiger Član

Pridružen-a: Čet 05 Feb 2004 0:22 Prispevkov: 1161 Aktiv.: 4.90
|
Objavljeno: Sre Avg 13, 2008 10:56 pm Naslov sporočila: |
|
|
Hi
PCF8583 dela do ledišča, je kakšen podoben čip, ki ga lahko tudi malo zebe ali je problem prevelika temperaturna razlika-točnost??
LP
|
|
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: 492 dni
Powered by phpBB © 2001, 2005 phpBB Group
|