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 

Urni alarm
Pojdi na stran Prejšnja  1, 2
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Avtomatizacija v industriji
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.95
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Tor Avg 12, 2008 4:05 pm    Naslov sporočila:   Odgovori s citatom

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%



ura.ZIP
 Opis:

Download
 Ime datoteke:  ura.ZIP
 Velikost datoteke:  2.13 MB
 Downloadano:  8 krat


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



Pridružen-a: Čet 05 Feb 2004 0:22
Prispevkov: 1161
Aktiv.: 4.90

PrispevekObjavljeno: Sre Avg 13, 2008 10:56 pm    Naslov sporočila:   Odgovori s citatom

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
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 -> Avtomatizacija v industriji Č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: 492 dni


Powered by phpBB © 2001, 2005 phpBB Group