000
12.02.2006, 10:38 Uhr
~dhomo
Gast
|
sodele hab mich au mal mit ampelprogrammierung in assembler beschäftigt in diesem fall hab ich mich für den atmel 8051 microcontroller entschieden
hier mien a51 code:
Code: |
;einfache Ampelschaltung
;*************************Hauptprogramm*************************** code at 0 include Reg_8252.PDF ;*************************1.phase********************************* anfang: ;ampel 1 mov 00010000,#0ffh ; rote led wird eingeschalten mov 00010001,#00h ; grüne led wird ausgeschalten ;ampel 2 mov 00010010,#0ffh ; rote led wird eingeschalten mov 00010011,#00h ; grüne led wird ausgeschalten ;ampel 3 mov 00010100,#00h ; rote led wird ausgeschalten mov 00010101,#0ffh ; grüne led wird eingeschalten ;ampel 4 mov 00010110,#00h ; rote led wird ausgeschalten mov 00010111,#0ffh ; grüne led wird eingeschalten ;ampel 5 mov 00100000,#0ffh ; rote led wird eingeschalten mov 00100001,#00h ; grüne led wird ausgeschalten ;ampel 6 mov 00100010,#0ffh ; rote led wird eingeschalten mov 00100011,#00h ; grüne led wird ausgeschalten ;*********************Unterprogramm warteschleife 1*************** Mov R0,#10 ; register 0 wird mit der konstanten .. geladen
warten1: DJNZ R0, warten1 ; wenn R0 nicht 0 erreicht hat, dann "warten 1" aufrufen ;******************2.Phase**************************************** ;ampel 1 mov 00010000,#00h ; rote led wird ausgeschalten mov 00010001,#0ffh ; grüne led wird eingeschaltet ;ampel 2 mov 00010010,#00h ; rote led wird ausgeschalten mov 00010011,#0ffh ; grüne led wird eingeschaltet ;ampel 3 mov 00010100,#0ffh ; rote led wird eingeschalten mov 00010101,#00h ; grüne led wird ausgeschalten ;ampel 4 mov 00010110,#0ffh ; rote led wird eingeschalten mov 00010111,#00h ; grüne led wird ausgeschalten ;ampel 5 mov 00100000,#00h ; rote led wird ausgeschalten mov 00100001,#0ffh ; grüne led wird eingeschaltet ;ampel 6 mov 00100010,#00h ; rote led wird ausgeschalten mov 00100011,#0ffh ; grüne led wird eingeschaltet ;*********************Unterprogramm warteschleife 2*************** Mov R1,#10 ; register 1 wird mit der konstanten .. geladen
warten2: DJNZ R1, warten2 ; wenn R1 nicht 0 erreicht hat, dann "warten 2" aufrufen jmp anfang ; wenn das Programm fertig abgelaufen ist, großer sprung zu "anfang"
end
|
Dieser Post wurde am 13.02.2006 um 11:15 Uhr von FloSoft editiert. |