Alan468

Assembler V2 APR 27TH, 2017

May 22nd, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.             $INCLUDE (REG52.INC)
  2. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DEFINY
  3. LED1        EQU     P3.7        ; Taki #define
  4. LED2        EQU     P3.6   
  5. ;LED3       EQU     P3.5       
  6. ;LED4       EQU     P3.4   
  7.  
  8. ENT         EQU     P1.7
  9. ESC     EQU     P1.4
  10. UP      EQU     P1.5
  11. DOWN        EQU     P1.6
  12.  
  13. LOAD        EQU     P3.2
  14. OFF     EQU     P3.3
  15.  
  16. CLOCK       EQU     P3.1
  17. DANE        EQU     P3.0
  18.  
  19. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MAIN
  20.             ORG     0
  21.             MOV R1,#0
  22.             MOV R2,#10
  23. SHOW:  
  24.             MOV A ,R1
  25.             ACALL WPISZ
  26.             MOV A ,R2
  27.             ACALL WPISZ
  28.             MOV A ,#10
  29.             ACALL WPISZ
  30.             MOV A ,#10
  31.             ACALL WPISZ
  32.            
  33.             CLR LOAD
  34.             SETB LOAD
  35.             CLR OFF
  36.            
  37. STOP:      
  38.             JNB UP,ZWIEKSZ          ; Zwieksz licznik jesli klikniety
  39.             JNB DOWN,ZMIEJSZ            ;    Zmniejsz licznik jesli klikniety
  40.             SJMP STOP
  41.            
  42. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ZWIEKSZENIE LICZNIKA 7 -SEGMENT
  43. ZWIEKSZ:
  44.             CJNE R1,#9, DALEJ1
  45.             SJMP SHOW
  46. DALEJ1:
  47.             INC R1
  48. LOOP1:  JNB UP,LOOP1
  49.             SJMP SHOW
  50.             RET
  51. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ZMNIEJSZENIE LICZNIK 7-SEGMET    
  52. ZMIEJSZ:       
  53.             CJNE R1,#0, DALEJ2
  54.             SJMP SHOW
  55. DALEJ2:        
  56.             DEC R1
  57. LOOP2:  JNB DOWN,LOOP2
  58.             SJMP SHOW
  59.             RET
  60.  
  61. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ZAPALENIE LED
  62. ;TAM:       CPL     LED1        ; no nie ';' komentarzem ; Zapelenie LED 3.7
  63. ;           CPL     LED2   
  64.                
  65. ;STOP:      DJNZ        R0,STOP
  66. ;           JNB     ESC ,KONIEC ; Jesli klikniety
  67. ;           DJNZ        R1,STOP
  68. ;           JB          ESC ,TAM           
  69.  
  70. ;KONIEC:           
  71. ;           SETB        LED1
  72. ;           SETB        LED2
  73.  
  74. ;           SJMP        PO       ; Skok do 'TAM'
  75.  
  76.             ;END                    ; Na koniec!
  77.            
  78. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; WPISANIE NA 7-SEGMENT        
  79. WPISZ:
  80.             MOV DPTR ,#TABLICA
  81.             MOVC A,@A+DPTR
  82.             MOV R0 ,#8
  83. NEXT:      
  84.             RLC A
  85.             MOV DANE ,C
  86.            
  87.             CLR CLOCK
  88.             SETB CLOCK
  89.             DJNZ R0 ,NEXT
  90.            
  91.             RET
  92. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BIT STARTU   
  93. BIT_STARTU:
  94.             SETB SCL
  95.             SETB SDA
  96.             CLR SCL
  97.             CLR SDA
  98.             RET
  99. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BIT STOPY
  100. BIT_STOPU:
  101.             CLR SDA
  102.             CLR SCL
  103.             SETB SDA
  104.             SETB SCL
  105.             RET
  106. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; WYSLIJ_BAJ
  107. WYSLIJ_BAJT:
  108.          MOV R0,#8
  109. TMP:        RLC A
  110.          MOV SDA,C
  111.          SETB SCL
  112.          CLR SCL
  113.          DJNZ R0,TMP
  114.          SETB SDA
  115. L2:         JB SDA,L2
  116.          SETB SCL
  117.          CLR SCL
  118.  
  119.             RET
  120. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ODBIERZ BAJT
  121. ODBIERZ_BAJT:
  122.             SETB SDA
  123.          MOV R0,#8
  124. TMP2:   MOV C,SDA
  125.          RLC A
  126.          SETB SCL
  127.          CLR SCL
  128.          DJNZ R0,TMP2
  129.          CLR SDA
  130.          SETB SCL
  131.          CLR SCL
  132.             RET
  133. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; TABLICA LICZB
  134. TABLICA:       
  135.             DB 03H
  136.             DB 9FH
  137.             DB 25H
  138.            DB 0DH
  139.            DB 99H
  140.            DB 49H
  141.            DB 41H
  142.            DB 1FH
  143.            DB 01H
  144.            DB 09H
  145.            DB 0FFH
Add Comment
Please, Sign In to add comment