Advertisement
peterzig

[ASM] KODZIK

Jun 10th, 2017
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $ include (reg51.inc)
  2.  
  3. LED1            EQU             P3.7
  4. LED2            EQU             P3.6
  5. LED3            EQU             P3.5
  6. LED4            EQU             P3.4
  7. OFF             EQU             P3.3
  8. LOAD            EQU             P3.2
  9. CLOCK           EQU             P3.1
  10. DANE            EQU             P3.0
  11. ENTER           EQU             P1.7
  12. DOWN            EQU             P1.6
  13. UP              EQU             P1.5
  14. ESC             EQU             P1.4
  15. SDA             EQU             P1.2
  16. SCL             EQU             P1.1
  17.  
  18.                 ACALL           BIT_STARTU
  19.                 MOV             A,#10010000B;
  20.                 ACALL           WYSLIJ
  21.                 MOV             A,#00000001B;
  22.                 ACALL           WYSLIJ
  23.                 ACALL           BIT_STARTU;
  24.                 MOV             A,#10010001B
  25.                 ACALL           WYSLIJ
  26. TU:
  27.                 ACALL           ODBIERZ
  28.                 ACALL           DZIELENIE
  29.                 ACALL           WYSWIETLANIE
  30.                 SJMP            TU
  31. BIT_STARTU:
  32.                 SETB            SDA
  33.                 SETB            SCL
  34.                 CLR             SDA
  35.                 CLR             SCL
  36.                 RET
  37. BIT_STOPU:
  38.                 CLR             SDA
  39.                 CLR             SCL
  40.                 SETB            SCL
  41.                 SETB            SDA
  42.                 RET
  43. ;WYSYLANIE BIT PO BICIE DO I2C
  44. WYSLIJ:    
  45.                 MOV             R0,#8
  46. SKOK:          
  47.                 RLC             A
  48.                 MOV             SDA,C
  49.                 SETB            SCL
  50.                 CLR             SCL
  51.                 DJNZ            R0,SKOK
  52.                 SETB            SDA
  53. STOP:  
  54.                 JB              SDA,STOP
  55.                 SETB            SCL
  56.                 CLR             SCL
  57.                 RET
  58. ;ODBIERANIE DANYCH Z I2C
  59. ODBIERZ:    
  60.                 MOV             R1,#8
  61. SKOK2:
  62.                 MOV             C,SDA
  63.                 RLC             A
  64.                 SETB            SCL
  65.                 CLR             SCL
  66.                 DJNZ            R1,SKOK2
  67.                 CLR             SDA
  68.                 SETB            SCL
  69.                 CLR             SCL
  70.                 SETB            SDA
  71.                 RET
  72. DZIELENIE:
  73.                 MOV             B,#100
  74.                 DIV             AB
  75.                 MOV             R1,A
  76.                 MOV             A,B
  77.                 MOV             B,#10
  78.                 DIV             AB
  79.                 MOV             R2,A
  80.                 MOV             R3,B
  81.                 RET
  82.                
  83. WYSWIETLANIE:
  84.                 JNB             DOWN, ABC;jesli jest klikniety to skacz do abc
  85.                 JB              DOWN, BCD;jesli nie jest klikniety to skacz do bcd
  86.  
  87. ABC:                
  88.                 MOV             A,#10
  89.                 ACALL           WPIS
  90.                 SJMP            CDE
  91. BCD:
  92.                 MOV             A,R3
  93.                 ACALL           WPIS
  94.                
  95. CDE:      
  96.                 MOV             A,R2
  97.                 ACALL           WPIS
  98.                 MOV             A,R1
  99.                 ACALL           WPIS
  100.                 MOV             A,#10
  101.                 ACALL           WPIS
  102.                 CLR             LOAD
  103.                 SETB            LOAD
  104.                 CLR             OFF
  105.                 RET
  106.  
  107. WPIS:
  108.                 MOV             DPTR,#TABLICA
  109.                 MOVC            A,@A+DPTR
  110.                 MOV             R0,#8
  111.  
  112. TAM:
  113.                 RRC             A
  114.                 MOV             DANE,C
  115.                 CLR             CLOCK
  116.                 SETB            CLOCK
  117.                 DJNZ            R0,TAM
  118.                 RET
  119.                
  120. TABLICA:
  121. DB              0C0H            ;0
  122. DB              0F9H            ;1
  123. DB              0A4H            ;2
  124. DB              0B0H            ;3
  125. DB              099H            ;4
  126. DB              092H            ;5
  127. DB              082H            ;6
  128. DB              0F8H            ;7
  129. DB              080H            ;8
  130. DB              090H            ;9
  131. DB              0FFH            ;PUSTKA NA WYSWIETLACZU
  132. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement