Guest User

Untitled

a guest
Jun 15th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "8051.h"
  2. .org 0000h
  3.  
  4.     mov P0,#00000000b
  5.     mov P1,#00000000b
  6.     mov P3,#00000000b
  7.  
  8.     ; Anfangsposition
  9.     setb P1.2       ; D7 - rot - Lindenstraße Nord
  10.     setb P3.3       ; D14 - rot - Lindenstraße Süd
  11.     setb P1.3       ; D8 - rot - Bahnhofstraße Osten
  12.     setb P3.0       ; D11 - rot - Bahnhofstraße Westen
  13.    
  14.     setb P1.6       ; D1 u. D4 - rot - Fußgängerampeln
  15.     setb P3.7       ; D19 u. D20 - rot - Fußgängerampeln
  16.  
  17.  
  18. LOOP:               ; Wechsel von rot nach grün Lindenstraße Nord/Süd
  19.     setb P1.1       ; D6 - gelb - Lindenstraße Nord
  20.     setb P3.4       ; D15 - gelb - Lindenstraße Süd
  21.     lcall ZTS2      ; 1 Sekunde warten
  22.     clr P1.1        ; D6 - gelb - Lindenstraße Nord
  23.     clr P3.4        ; D15 - gelb - Lindenstraße Süd
  24.     clr P1.2        ; D7 - rot - Lindenstraße Nord
  25.     clr P3.3        ; D14 - rot - Lindenstraße Süd
  26.     setb P1.0       ; D5 - grün - Lindenstraße Nord
  27.     setb P3.5       ; D16 - grün - Lindenstraße Süd
  28.  
  29.     lcall ZTS       ; 5 Sekunden warten
  30.  
  31.                 ; Wechsel von grün nach rot Lindenstraße Nord/Süd
  32.     clr P1.0        ; D5 - grün - Lindenstraße Nord
  33.     clr P3.5        ; D16 - grün - Lindenstraße Süd 
  34.     setb P1.1       ; D6 - gelb - Lindenstraße Nord
  35.     setb P3.4       ; D15 - gelb - Lindenstraße Süd
  36.     lcall ZTS2      ; 1 Sekunde warten
  37.     setb P1.2       ; D7 - rot - Lindenstraße Nord
  38.     clr P3.4        ; D15 - gelb - Lindenstraße Süd
  39.     clr P1.1        ; D6 - gelb - Lindenstraße Nord
  40.     setb P3.3       ; D14 - rot - Lindenstraße Süd
  41.  
  42.  
  43.                 ; Wechsel von rot nach grün Bahnhofstraße Osten/Westen
  44.     setb P1.4       ; D9 - gelb - Bahnhofstraße Osten
  45.     setb P3.1       ; D12 - gelb - Bahnhofstraße Westen
  46.     lcall ZTS2
  47.     clr P1.4        ; D9 - gelb - Bahnhofstraße Osten
  48.     clr P3.1        ; D12 - gelb - Bahnhofstraße Westen
  49.     clr P1.3        ; D8 - rot - Bahnhofstraße Osten
  50.     clr P3.0        ; D11 - rot - Bahnhofstraße Westen
  51.     setb P1.5       ; D10 - grün - Bahnhofstraße Osten
  52.     setb P3.2       ; D13 - grün - Bahnhofstraße Westen
  53.    
  54.     lcall ZTS       ; 5 Sekunden warten
  55.  
  56.                 ; Wechsel von grün nach rot Bahnhofstraße Osten/Westen
  57.     clr P1.5        ; D10 - grün - Bahnhofstraße Osten
  58.     clr P3.2        ; D13 - grün - Bahnhofstraße Westen  
  59.     setb P1.4       ; D9 - gelb - Bahnhofstraße Osten
  60.     setb P3.1       ; D12 - gelb - Bahnhofstraße Westen
  61.     lcall ZTS2      ; 1 Sekunde warten
  62.     setb P1.3       ; D8 - rot - Bahnhofstraße Osten
  63.     setb P3.0       ; D11 - rot - Bahnhofstraße Westen
  64.     clr P1.4        ; D9 - gelb - Bahnhofstraße Osten
  65.     clr P3.1        ; D12 - gelb - Bahnhofstraße Westen
  66.  
  67.    
  68.     mov A,P2        ; Signalzustände der Schalter in den Akku kopieren
  69.     mov C,ACC.1     ; Signalzustand P2.1 ins Carry kopieren
  70.     jnc DEFEKT      ; Wenn Carry nicht 1 dann nach DEFEKT springen.
  71.  
  72.                 ; Fußgängerampeln von rot nach grün
  73.     clr P1.6        ; D3 u. D4 - rot - Fußgängerampeln
  74.     clr P3.7        ; D19 u. D20 - rot - Fußgängerampeln
  75.     setb P1.7       ; D2 u. D3 - grün - Fußgängerampeln
  76.     setb P3.6       ; D17 u. D18 - grün - Fußgängerampeln
  77.    
  78.     lcall ZTS       ; 5 Sekunden warten
  79.  
  80.                 ; Fußgängerampeln von grün nach rot
  81.     setb P1.6       ; D3 u. D4 - rot - Fußgängerampeln
  82.     setb P3.7       ; D19 u. D20 - rot - Fußgängerampeln
  83.     clr P1.7        ; D2 u. D3 - grün - Fußgängerampeln
  84.     clr P3.6        ; D17 u. D18 - grün - Fußgängerampeln
  85.  
  86. DEFEKT: mov A,P2        ; Signalzustände der Schalter in den Akku kopieren
  87.     mov C,ACC.0     ; Signalzustand P2.0 ins Carry kopieren
  88.     jnc AP          ; Wenn Carry nicht 1 dann nach AP springen.
  89.  
  90.                 ; Rote Lampe an allen Ampeln abschalten
  91.     clr P1.2        ; D7 - rot - Lindenstraße Nord
  92.     clr P3.3        ; D14 - rot - Lindenstraße Süd
  93.     clr P1.3        ; D8 - rot - Bahnhofstraße Osten
  94.     clr P3.0        ; D11 - rot - Bahnhofstraße Westen
  95.     clr P1.6        ; D3 u. D4 - rot - Fußgängerampeln
  96.     clr P3.7        ; D19 u. D20 - rot - Fußgängerampeln
  97.  
  98.     setb P1.1       ; D6 - gelb - Lindenstraße Nord
  99.     setb P3.1       ; D12 - gelb - Bahnhofstraße Westen
  100.     setb P1.4       ; D9 - gelb - Bahnhofstraße Osten
  101.     setb P3.4       ; D15 - gelb - Lindenstraße Süd
  102.    
  103.     lcall ZTS2      ; 1 Sekunde warten
  104.     clr P1.1        ; D6 - gelb - Lindenstraße Nord
  105.     clr P1.4        ; D9 - gelb - Bahnhofstraße Osten
  106.     clr P3.1        ; D12 - gelb - Bahnhofstraße Westen
  107.     clr P3.4        ; D15 - gelb - Lindenstraße Süd
  108.     lcall ZTS2      ; 1 Sekunde warten
  109.     sjmp DEFEKT     ; Nochmal blinken, falls Bedingung noch zutrifft.
  110.  
  111.                 ; Rote Lampe an allen Ampeln einschalten. Vorherige Bedingungen herstellen.
  112. AP: setb P1.2       ; D7 - rot - Lindenstraße Nord
  113.     setb P3.3       ; D14 - rot - Lindenstraße Süd
  114.     setb P1.3       ; D8 - rot - Bahnhofstraße Osten
  115.     setb P3.0       ; D11 - rot - Bahnhofstraße Westen
  116.     setb P1.6       ; D3 u. D4 - rot - Fußgängerampeln
  117.     setb P3.7       ; D19 u. D20 - rot - Fußgängerampeln
  118.     ljmp LOOP       ; Zum Anfang springen. Erneuter Durchlauf.
  119.  
  120.     ; Zeit (µs): 5007691
  121. ZTS:    mov r3,#255d
  122. LOOP1:  mov r2,#255d
  123. LOOP2:  mov r1,#37d
  124. LOOP3:  djnz r1,LOOP3
  125.     djnz r2,LOOP2
  126.     djnz r3,LOOP1
  127.     ret
  128.  
  129.     ; Zeit (µs): 976141
  130. ZTS2:   mov r3,#255d
  131. LOOP4:  mov r2,#255d
  132. LOOP5:  mov r1,#6d
  133. LOOP6:  djnz r1,LOOP6
  134.     djnz r2,LOOP5
  135.     djnz r3,LOOP4
  136.     ret
  137.  
  138.     .end
Add Comment
Please, Sign In to add comment