Advertisement
Guest User

Untitled

a guest
Dec 13th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. _7SEG_1 DATA 030H
  2. _7SEG_2 DATA 031H
  3. _7SEG_3 DATA 032H
  4. _7SEG_4 DATA 033H
  5. _7SEG_5 DATA 034H
  6. _7SEG_6 DATA 035H
  7. _LED DATA 02FH
  8. _CURRENT DATA 037H
  9. _LICZNIK_SEKUNDY DATA 039h
  10. _INDEKS DATA 040H
  11. ;921600 - 1000ms
  12. ;   x   - 50ms
  13. ;x=46080
  14. ;65536-46080=19456
  15.     ORG 000H
  16. _RESET:
  17.     LJMP _INIT
  18.  
  19.     ORG 0BH
  20. _PRZERWANIE_T0:
  21.     INC _LICZNIK_SEKUNDY
  22.     MOV TL0, #00000000b
  23.     MOV TH0, #01001100b
  24.     RETI
  25.  
  26.     ORG 0100H
  27. _INIT:
  28.     LCALL _7SEG_INIT
  29.     LCALL _TIMER_INIT
  30.  
  31. _LOOP:
  32.     LCALL _7SEG_REFRESH
  33.  
  34.     MOV A, #19d ;ustawia za każdym razem 19 do akumulatora
  35.     SUBB A, _LICZNIK_SEKUNDY ;19-0,19-1,...,19-20 ustawia się bit przeniesienia
  36.     JNC _LOOP
  37.     LCALL _LED_OK_CPL
  38.     INC R0
  39.     MOV _LICZNIK_SEKUNDY, #0d
  40.     CLR CY
  41.    
  42.     LJMP _LOOP
  43.  
  44.  
  45. _TIMER_INIT:
  46.     SETB ET0 ;zezwolenie na przerwanie z Timera0  
  47.     SETB EA  ;aktywacja systemu przerwan
  48.  
  49.     ANL TMOD, #11110001b
  50.     ORL TMOD, #00000001b
  51.  
  52.     MOV TL0, #00000000b
  53.     MOV TH0, #01001100b
  54.  
  55.     MOV _LICZNIK_SEKUNDY, #0d
  56.     MOV R0, #0d
  57.  
  58.     CLR TF0  ;flaga przepelnienia ukladu czasowo licznikowego
  59.     SETB TR0 ;uruchomienie pracy ukladu czasowo-licznik
  60.  
  61. _7SEG_INIT:
  62.     MOV _LED, #11111111B
  63.  
  64.     MOV R1, #_7SEG_6
  65.     MOV _INDEKS, #6d
  66.     MOV DPTR, #_WZORCE_CYFR ; Rejestr DPTR sluzy głównie jako wskaznik przy
  67.                             ;dostepie do pamieci programu i zewnetrznej
  68.                             ;pamieci RAM.
  69.  
  70.     _FOR:
  71.         MOV A, _INDEKS
  72.         MOVC A, @A+DPTR
  73.    
  74.         DEC _INDEKS
  75.    
  76.         MOV @R1, A
  77.         DEC R1
  78.    
  79.         MOV A, _INDEKS
  80.        
  81.         JNZ _FOR
  82.  
  83.     ; od ostatniego zaczynamy
  84.     MOV _CURRENT, #10000000B
  85.    
  86.     RET
  87.  
  88. _7SEG_REFRESH:
  89.     SETB P1.6
  90.     ; pobierz biezacy wskaznik
  91.     MOV A, _CURRENT
  92.     RR A
  93.     MOV _CURRENT, A
  94.     ; wybierz jako aktywny biezacy wskaznik
  95.     MOV DPTR, #0FF30H
  96.     MOVX @DPTR, A
  97.  
  98.  
  99.     _IF_LED:
  100.         CJNE A, #01000000B, _IF_W1
  101.         MOV A, _LED
  102.         LJMP _ENDIF
  103.     _IF_W1:
  104.         CJNE A, #00000001B, _IF_W2
  105.         MOV A, _7SEG_6
  106.         LJMP _ENDIF
  107.     _IF_W2:
  108.         CJNE A, #00000010B, _IF_W3
  109.         MOV A, _7SEG_5
  110.         LJMP _ENDIF
  111.     _IF_W3:
  112.         CJNE A, #00000100B, _IF_W4
  113.         MOV A, _7SEG_4
  114.         LJMP _ENDIF
  115.     _IF_W4:
  116.         CJNE A, #00001000B, _IF_W5
  117.         MOV A, _7SEG_3
  118.         LJMP _ENDIF
  119.     _IF_W5:
  120.         CJNE A, #00010000B, _IF_W6
  121.         MOV A, _7SEG_2
  122.         LJMP _ENDIF
  123.     _IF_W6:
  124.         CJNE A, #00100000B, _DEFAULT
  125.         MOV A, _7SEG_1
  126.         LJMP _ENDIF
  127.     _DEFAULT:
  128.         NOP
  129.  
  130.     _ENDIF:
  131.         NOP
  132.  
  133.     ; Wpisanie do wbufora wyboru danych cyferki
  134.     MOV DPTR, #0FF38H
  135.     MOVX @DPTR, A  
  136.    
  137.     ;wlacz 7seg
  138.     CLR P1.6
  139.     RET
  140.  
  141. _LED_OK_CPL:
  142.     CPL _LED.4
  143.     RET
  144.  
  145. _WZORCE_CYFR:
  146.     DB 00111111B
  147.     DB 00000110B
  148.     DB 01011011B
  149.     DB 01001111B
  150.     DB 01100110B
  151.     DB 01101101B
  152.     DB 01111101B
  153.     DB 00000111B
  154.     DB 01111111B
  155.     DB 01101111B
  156.     DB 01110111B
  157.  
  158. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement