Advertisement
dessel191

TM timer

Jun 2nd, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $INCLUDE (REG51.INC)
  2.  
  3. SDA  EQU P1.2
  4. SCL   EQU P1.1
  5. LED1  EQU P3.7
  6. LED2  EQU P3.6
  7. LED3  EQU P3.5
  8. LED4  EQU P3.4
  9. OFF   EQU   P3.3
  10. LOAD  EQU   P3.2
  11. CLOCK EQU   P3.1
  12. DANE  EQU   P3.0    
  13. ENTER  EQU P1.7
  14. DOWN   EQU P1.6
  15. UP  EQU P1.5
  16. ESCAPE EQU P1.4
  17.  
  18.  
  19. START:
  20.  
  21. MOV R0, #10
  22. MOV R1, #10
  23. MOV R2, #0
  24. MOV R3, #10
  25. MOV R4, #0
  26. MOV R5, #10
  27. CLR OFF
  28. ACALL BIT_STARTU
  29.  
  30. MOV A, #11010000B
  31. ACALL WYS_BAJT
  32. ACALL BIT_POTWIERDZENIA
  33.  
  34. MOV A, #00000000B
  35. ACALL WYS_BAJT
  36. ACALL BIT_POTWIERDZENIA
  37.  
  38. MOV A, #00000000B
  39. ACALL WYS_BAJT
  40. ACALL BIT_POTWIERDZENIA
  41.  
  42.  
  43.  
  44. ACALL BIT_STARTU
  45.  
  46. MOV A, #11010000B
  47. ACALL WYS_BAJT
  48. ACALL BIT_POTWIERDZENIA
  49.  
  50. MOV A, #00000001B
  51. ACALL WYS_BAJT
  52. ACALL BIT_POTWIERDZENIA
  53.  
  54. MOV A, #00000000B
  55. ACALL WYS_BAJT
  56. ACALL BIT_POTWIERDZENIA
  57.  
  58. ACALL BIT_STOPU
  59.  
  60. SHOW:
  61.  
  62. MOV C, ACC.0
  63. MOV OFF, C
  64.  
  65.         MOV A, R5
  66.         ACALL WPIS
  67.          
  68.         MOV A, R1
  69.         ACALL WPIS
  70.          
  71.         MOV A, R2
  72.         ACALL WPIS
  73.          
  74.         MOV A, R3
  75.         ACALL WPIS
  76.          
  77.         CLR LOAD
  78.         SETB LOAD
  79.        
  80.  
  81. JNB     DOWN, SHOW
  82. ACALL   POBIERZ
  83.  
  84. JNB ESCAPE, ODB_SEK
  85. JNB ENTER, WYL
  86.  
  87. SJMP SHOW
  88.  
  89.  
  90.  
  91. ODB_SEK:
  92.         MOV R5, #20
  93.         MOV R1, #20
  94.         MOV R2, #20
  95.         MOV R3, #20
  96.         JMP START
  97.        
  98. WYL:
  99.  
  100.         MOV R5, #20
  101.         MOV R1, #20
  102.         MOV R2, #20
  103.         MOV R3, #20
  104.         JMP SHOW
  105.  
  106.  
  107. POBIERZ:
  108.         ACALL BIT_STARTU
  109.         MOV A, #11010000B
  110.         ACALL WYS_BAJT
  111.         ACALL BIT_POTWIERDZENIA
  112.  
  113.         MOV A, #00000000B
  114.         ACALL WYS_BAJT
  115.         ACALL BIT_POTWIERDZENIA
  116.  
  117.         ACALL BIT_STARTU
  118.         MOV A, #11010001B
  119.         ACALL WYS_BAJT
  120.         ACALL BIT_POTWIERDZENIA
  121.  
  122.         ACALL ODB_BAJT
  123.         MOV R4, A
  124.         ANL A, #00001111B
  125.         ADD A, #10
  126.         MOV R5, A
  127.  
  128.         MOV A, R4
  129.         ANL A, #11110000B
  130.         SWAP A
  131.         ADD A, #10
  132.         MOV R1, A
  133.  
  134.         ACALL BIT_POTWIERDZENIA
  135.         ACALL BIT_STOPU
  136.  
  137.         ACALL BIT_STARTU
  138.  
  139.         MOV A, #11010000B
  140.         ACALL WYS_BAJT
  141.         ACALL BIT_POTWIERDZENIA
  142.  
  143.         MOV A, #00000001B
  144.         ACALL WYS_BAJT
  145.         ACALL BIT_POTWIERDZENIA
  146.  
  147.         ACALL BIT_STARTU
  148.         MOV A, #11010001B
  149.         ACALL WYS_BAJT
  150.         ACALL BIT_POTWIERDZENIA
  151.  
  152.         ACALL ODB_BAJT
  153.         MOV R4, A
  154.         ANL A, #00001111B
  155.         MOV R2, A
  156.  
  157.         MOV A, R4
  158.         ANL A, #11110000B
  159.         SWAP A
  160.         ADD A, #10
  161.         MOV R3, A
  162.  
  163.         ACALL BIT_POTWIERDZENIA
  164.         ACALL BIT_STOPU
  165.         RET
  166.        
  167. BIT_STARTU:
  168.         SETB SCL
  169.        SETB SDA
  170.         CLR SDA
  171.         CLR SCL
  172.         RET
  173.        
  174. BIT_STOPU:
  175.         CLR SCL
  176.        CLR SDA
  177.         SETB SCL
  178.         SETB SDA
  179.         RET
  180.  
  181. WYS_BAJT:  MOV R0, #8  
  182. TMP:    RLC A
  183.         MOV SDA, C
  184.         SETB SCL
  185.         CLR SCL
  186.         DJNZ R0, TMP
  187.        RET
  188.        
  189. BIT_POTWIERDZENIA:  SETB SDA
  190.         SETB SCL
  191.         CLR SCL
  192.         RET
  193.  
  194. ODB_BAJT:
  195.        SETB SDA
  196.         MOV R0, #8
  197. TMPZ:   MOV C, SDA
  198.         RLC A
  199.         SETB SCL
  200.         CLR SCL
  201.         DJNZ R0, TMPZ
  202.         RET
  203.  
  204. WPIS:   MOV DPTR, #TABLICA
  205.         MOVC A, @A + DPTR
  206.         MOV R0, #8
  207. NEXT:   RRC A
  208.         MOV DANE, C
  209.         CLR CLOCK
  210.         SETB CLOCK
  211.         DJNZ R0, NEXT
  212.         RET
  213.        
  214.        
  215.  
  216.  
  217. TABLICA:    DB 040H ;0  "0."
  218.             DB 079H ;1  "1."
  219.             DB 024H ;2  "2."
  220.             DB 030H ;3  "3."
  221.             DB 019H ;4  "4."
  222.             DB 012H ;5  "5."
  223.             DB 002H ;6  "6."
  224.             DB 078H ;7  "7."
  225.             DB 000H ;8  "8."
  226.             DB 010H ;9  "9."
  227.             DB 0C0H ;10 "0"
  228.             DB 0F9H ;11 "1"
  229.             DB 0A4H ;12 "2"
  230.             DB 0B0H ;13 "3"
  231.             DB 099H ;14 "4"
  232.             DB 092H ;15 "5"
  233.             DB 082H ;16 "6"
  234.             DB 0F8H ;17 "7"
  235.             DB 080H ;18 "8"
  236.             DB 090H ;19 "9"
  237.             DB 0FFH ;20 NIC
  238.             DB 0BFH ;21 "-"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement