SHARE
TWEET

ASSSSSSS

a guest Oct 14th, 2019 70 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;------------------------------------------------
  2. ; Licznik Johnsona - zbudowany z wykorzystaniem
  3. ; tablicy przekodowania
  4. ; Licznik BIN -> TAB -> Kod Johnsona
  5. ; Zmieniajac zawartosci tablicy mozna
  6. ; zaimplementowac dowolny kod (wzorzec)
  7. ; np. kod wskaznika 7 seg.
  8. ; Opoznienie programowe
  9. ; Wskazniki LED P3
  10. ;------------------------------------------------
  11. DSEG    AT 28H
  12. CNT:    DS  1
  13.  
  14.  
  15. CSEG    AT 0
  16. SYS_INIT:
  17.     ; Inicjalizacja stosu - nie korzystamy ze stosu
  18.     ; Nalezy bezwglednie pamietac gdy uzywamy
  19.     ; pary CALL - RET
  20.     ; lub przerwan  niejawny -> CALL
  21.     MOV     SP,#7FH
  22.     MOV     CNT,#0H
  23.     ; Petla glowna programu
  24. MAIN:  
  25.    
  26.     ;Zwieksz lub skoryguj
  27.     MOV     A,CNT
  28.     INC     A
  29.     CJNE    A,#16,CNT_OK
  30.     CLR     A
  31. CNT_OK:
  32.     MOV     CNT,A
  33.  
  34. DECODE:
  35.     MOV     A,CNT; Mozna wyeliminowac gdyz A == CNT
  36.     MOV     DPTR,#JOHNSON_TAB  
  37.     MOVC    A,@A + DPTR        
  38.    
  39.     MOV     P3,A
  40.     ; Inicjalizacja opoznienia (256 x 514)
  41.     MOV     R7,#0
  42.     ACALL   DELAY
  43.    
  44.     SJMP    MAIN
  45.  
  46. ;------------------------------------------------
  47. ; Opoznienie programowe
  48. ; R7 - Zakres opznienia -> R7 x 514 cykli
  49. ; cykl -> 12 x CLK
  50. ;------------------------------------------------
  51.  
  52. DELAY:
  53.     MOV     R6,#0
  54. DY_L1:
  55.     DJNZ    R6,DY_L1
  56.     DJNZ    R7,DY_L1
  57.     RET
  58.    
  59.    
  60. JOHNSON_TAB:
  61.     DB  0FFh, 0FEh, 0FCh, 0F8h, 0F0h, 0E0h, 0C0h, 80h, 00h, 01h, 03h, 07h, 0Fh, 1Fh, 3Fh, 7Fh
  62.      
  63.    
  64.     END
  65.  
  66. //
  67.  
  68. ;------------------------------------------------
  69. ; Licznik pierscieniwy z krazacym zerem
  70. ; Opoznienie programowe
  71. ; Wskazniki LED P3
  72. ;------------------------------------------------
  73.  
  74. CSEG    AT 0
  75. SYS_INIT:
  76.     ; Inicjalizacja stosu - nie korzystamy ze stosu
  77.     ; Nalezy bezwglednie pamietac gdy uzywamy
  78.     ; pary CALL - RET
  79.     ; lub przerwan  niejawny -> CALL
  80.     MOV     SP,#7FH
  81.     MOV     A,#0FEH
  82.     ; Petla glowna programu
  83. MAIN:  
  84.     MOV     P3,A   
  85.     RL  A
  86. DJNZ R7,P3.0
  87.    
  88.     ; Inicjalizacja opoznienia (256 x 514)
  89.     MOV     R7,#0
  90.     ACALL   DELAY
  91.  
  92.     SJMP    MAIN
  93.    
  94.  
  95. ;------------------------------------------------
  96. ; Opoznienie programowe
  97. ; R7 - Zakres opznienia -> R7 x 514 cykli
  98. ; cykl -> 12 x CLK
  99. ;------------------------------------------------
  100.  
  101. DELAY:
  102.     MOV     R6,#0
  103. DY_L1:
  104.     DJNZ    R6,DY_L1
  105.     DJNZ    R7,DY_L1
  106.     RET
  107.    
  108.     END
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top