Scope cso vezerlese (prog,elmelet)

Pal Lukacs ekegep at yahoo.com
Wed May 30 10:22:42 CEST 2007


Sziasztok!
 
 Egy virtualis orat szeretnek szkopcsovel epiteni.
 Egyetlen olyan projektet kaptam neten aminek a forraskodja szabad.
 
 http://www.jogis-roehrenbude.de/Leserbriefe/Scope-Clock/Scope-Clock.htm
 
 8051 kompatibilis AVR-t hasznal.Az AVR forraskod asm-ben van irva.Az ora kijelzeshez szukseges koordinatak,szamok generalasahoz van egy PC -re irt szoft .Igy ezt tudnam hasznalni.
 
 Ez alapjan kellene epitsek egy sajatot.(RTC,nyomogombok,ebresztes stb..)
 Ez idaig ok,csak nem nagyon ertem az asm kodot igy 'portolni' nem tudok.
 
 Az alabbi resz mukodese erdekelne,vagyis a kepmegjelenites folyamata.
 Ha tudtok legyszives segitsetek.
 
 
 
 ;               **********************************************
 ;               *** Display-Adressen für Zeiger aktualisieren
 ;               **********************************************
 
 DispAdrPtr:     mov DPTR,#SecPtrData        ; Daten für Sekundenzeiger
                 mov A,R1                    ; Aktuellen Wert holen
                 mov B,#5                    ; Sekundenzeiger sind 5 Byte lang
                 mul AB
                 add A,DPL
                 mov DISP_TAB_SECPL,A
                 mov A,B
                 addc A,DPH
                 mov DISP_TAB_SECPH,A
 
                 mov DPTR,#MinPtrData        ; Daten für Minutenzeiger
                 mov A,R2                    ; Aktuellen Wert holen
                 mov B,#9                    ; Minutenzeiger sind 9 Byte lang
                 mul AB
                 add A,DPL
                 mov DISP_TAB_MINPL,A
                 mov A,B
                 addc A,DPH
                 mov DISP_TAB_MINPH,A
 
                 mov DPTR,#HrPtrData         ; Daten für Stundenzeiger
                 mov A,R2                    ; Aktuellen Wert holen
                 mov B,#12                   ; Etwas aufwendiger, da Zwischenschritte
                 div AB                      ; erforderlich (5 Schritte pro Stunde)
                 mov R4,A                    ; dazu Minuten durch 12 Teilen um
                 mov A,R3                    ; auf die Zuwischenschritte zu kommen
                 mov B,#12                   ; und Stundenwert mit 5 multiplizieren
                 div AB
                 mov A,#5
                 mul AB
                 add A,R4
                 mov B,#9                    ; Stundenzeiger sind 9 Byte lang
                 mul AB
                 add A,DPL
                 mov DISP_TAB_HRPL,A
                 mov A,B
                 addc A,DPH
                 mov DISP_TAB_HRPH,A
 
                 ret
 
 ;               **********************************************
 ;               *** Display-Adressen für Nummern aktualisieren
 ;               **********************************************
 
 DispAdrNum:     mov A,R1                    ; Daten für Sekundenziffern
                 mov B,#10
                 div AB                      ; Zehner
                 rl A
                 mov R4,A
                 mov DPTR,#NumSecTens
                 movc A, at A+DPTR
                 mov DISP_TAB_SECNTH,A
                 mov A,R4
                 inc A
                 movc A, at A+DPTR
                 mov DISP_TAB_SECNTL,A
                 mov A,B                     ; Einer
                 rl A
                 mov R4,A
                 mov DPTR,#NumSecOnes
                 movc A, at A+DPTR
                 mov DISP_TAB_SECNOH,A
                 mov A,R4
                 inc A
                 movc A, at A+DPTR
                 mov DISP_TAB_SECNOL,A
 
                 mov A,R2                    ; Daten für Minutenziffern
                 mov B,#10
                 div AB                      ; Zehner
                 rl A
                 mov R4,A
                 mov DPTR,#NumMinTens
                 movc A, at A+DPTR
                 mov DISP_TAB_MINNTH,A
                 mov A,R4
                 inc A
                 movc A, at A+DPTR
                 mov DISP_TAB_MINNTL,A
                 mov A,B                     ; Einer
                 rl A
                 mov R4,A
                 mov DPTR,#NumMinOnes
                 movc A, at A+DPTR
                 mov DISP_TAB_MINNOH,A
                 mov A,R4
                 inc A
                 movc A, at A+DPTR
                 mov DISP_TAB_MINNOL,A
 
                 mov A,R3                    ; Daten für Stundenziffern
                 mov B,#10
                 div AB                      ; Zehner
                 rl A
                 mov R4,A
                 mov DPTR,#NumHrTens
                 movc A, at A+DPTR
                 mov DISP_TAB_HRNTH,A
                 mov A,R4
                 inc A
                 movc A, at A+DPTR
                 mov DISP_TAB_HRNTL,A
                 mov A,B                     ; Einer
                 rl A
                 mov R4,A
                 mov DPTR,#NumHrOnes
                 movc A, at A+DPTR
                 mov DISP_TAB_HRNOH,A
                 mov A,R4
                 inc A
                 movc A, at A+DPTR
                 mov DISP_TAB_HRNOL,A
 
                 mov A,DCF_R4                ; Daten für DCF-Status
                 rl A
                 mov R4,A
                 mov DPTR,#DCFStats
                 movc A, at A+DPTR
                 mov DISP_TAB_DCFSH,A
                 mov A,R4
                 inc A
                 movc A, at A+DPTR
                 mov DISP_TAB_DCFSL,A
 
                 ret
 
 Koszonom.
 
       
---------------------------------
Be a better Globetrotter. Get better travel answers from someone who knows.
Yahoo! Answers - Check it out.


More information about the Elektro mailing list