Advertisement
Guest User

Zegar

a guest
May 25th, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $include (reg52.inc)
  2.  
  3.  
  4. ;-------------------------------------------- Definy
  5.  SDA EQU P1.2
  6.  SCL EQU P1.1
  7.  
  8.  LED1 EQU P3.7
  9.  LED2   EQU P3.6
  10.  LED3 EQU P3.5
  11.  LED4 EQU P3.4
  12.  
  13.  OFF     EQU    P3.3
  14.  LOAD  EQU  P3.2
  15.  CLOCK EQU  P3.1
  16.  DANE  EQU  P3.0
  17.      
  18.  ENTER  EQU P1.7
  19.  DOWN   EQU P1.6
  20.  UP       EQU P1.5
  21.  ESCAPE EQU P1.4
  22.  
  23.  ;-------------------------------------------- Czyszczenie Rejestrow
  24.  
  25.  MOV R0, #10
  26.  MOV R1, #10
  27.  MOV R2, #0
  28.  MOV R3, #10
  29.  MOV R4, #0
  30.  MOV R5, #10
  31.  CLR OFF
  32.  ACALL SBIT
  33.  
  34.  ;--------------------------------------------
  35.  
  36.  MOV A, #11010000B ;    Wpisanie do akumulatora adresu układu RTC
  37.  ACALL WYSLIJ ; Wysylanie bajtu
  38.  ACALL ACK ;    Potwierdzenie odbioru danych
  39.  ; ...
  40.  MOV A, #00000000B
  41.  ACALL WYSLIJ
  42.  ACALL ACK
  43.  
  44.  MOV A, #00000000B
  45.  ACALL WYSLIJ
  46.  ACALL ACK
  47.  
  48.  ACALL NOACK
  49.  ACALL STBIT
  50.  
  51.  ACALL SBIT
  52.  
  53.  MOV A, #11010000B
  54.  ACALL WYSLIJ
  55.  ACALL ACK
  56.  
  57.  MOV A, #00000001B
  58.  ACALL WYSLIJ
  59.  ACALL ACK
  60.  
  61.  MOV A, #00000000B
  62.  ACALL WYSLIJ
  63.  ACALL ACK
  64.  
  65.  ACALL NOACK
  66.  ACALL STBIT
  67.  
  68.  ;--------------------------------------------
  69.  
  70. SHOW:
  71.  
  72. MOV C, ACC.0 ; Ustawienie akumulatora na 0
  73. MOV OFF, C
  74.  
  75.         MOV A, R5
  76.         ACALL WPIS
  77.          
  78.         MOV A, R1
  79.         ACALL WPIS
  80.          
  81.         MOV A, R2
  82.         ACALL WPIS
  83.          
  84.         MOV A, R3
  85.         ACALL WPIS
  86.          
  87.         CLR LOAD
  88.         SETB LOAD
  89.        
  90.    
  91.  ACALL SBIT
  92.  
  93.  MOV A, #11010000B
  94.  ACALL WYSLIJ
  95.  ACALL ACK
  96.  
  97.  MOV A, #00000000B
  98.  ACALL WYSLIJ
  99.  ACALL ACK
  100.  
  101.  ACALL SBIT
  102.  MOV A, #11010001B
  103.  ACALL WYSLIJ
  104.  ACALL ACK
  105.  
  106.  ACALL ODBIERZ
  107.  MOV R4, A
  108.  ANL A, #00001111B
  109.  ADD A, #10
  110.  MOV R5, A
  111.  
  112.  MOV A, R4
  113.  ANL A, #11110000B
  114.  SWAP A
  115.  ADD A, #10
  116.  MOV R1, A
  117.  
  118.  ACALL NOACK
  119.  ACALL STBIT
  120.  
  121.  ;------------------------------------------------------------
  122.  
  123.  ACALL SBIT
  124.  
  125.  MOV A, #11010000B
  126.  ACALL WYSLIJ
  127.  ACALL ACK
  128.  
  129.  MOV A, #00000001B
  130.  ACALL WYSLIJ
  131.  ACALL ACK
  132.  
  133.  ACALL SBIT
  134.  MOV A, #11010001B
  135.  ACALL WYSLIJ
  136.  ACALL ACK
  137.  
  138.  ACALL ODBIERZ
  139.  MOV R4, A
  140.  ANL A, #00001111B
  141.  MOV R2, A
  142.  
  143.  MOV A, R4
  144.  ANL A, #11110000B
  145.  SWAP A
  146.  ADD A, #10
  147.  MOV R3, A
  148.  
  149.  ACALL NOACK
  150.  ACALL STBIT
  151.  
  152.  JNB ESCAPE, SEKUNDY
  153.  
  154.  SJMP SHOW
  155.  
  156.  SEKUNDY:
  157.         MOV R5, #20 ;--------------------- Sekundy
  158.         MOV R1, #20
  159.         MOV R2, #20 ;--------------------- Minuty
  160.         MOV R3, #20
  161.         SJMP SHOW
  162.  
  163.  WPIS: ; Wpis do rejestru
  164.         MOV DPTR, #TABLICA
  165.         MOVC A, @A + DPTR
  166.         MOV R0, #8
  167.        
  168.  WYSWIETL: ; Wpis do wyswietlacza
  169.         RRC A
  170.         MOV DANE, C
  171.         CLR CLOCK
  172.         SETB CLOCK
  173.         DJNZ R0, WYSWIETL
  174.         RET
  175.  
  176.  SBIT: ; Bit Startu
  177.         SETB SDA
  178.         SETB SCL
  179.         CLR SDA
  180.         CLR SCL
  181.         RET
  182.        
  183.  STBIT: ; Bit Stopu
  184.         CLR SDA
  185.         CLR SCL
  186.         SETB SCL
  187.         SETB SDA
  188.         RET
  189.        
  190.  WYSLIJ: ; Podprogram wysylajacy dane
  191.         MOV R0, #8
  192.         SLOOP:
  193.             RLC A
  194.             MOV SDA, C
  195.             SETB SCL
  196.             CLR SCL
  197.             DJNZ R0, SLOOP
  198.         RET
  199.  
  200.  ODBIERZ: ; Podprogram odbierajacy dane
  201.         SETB SDA
  202.         MOV R0, #8
  203.         RLOOP:
  204.             MOV C, SDA
  205.             RLC A
  206.             SETB SCL
  207.             CLR SCL
  208.             DJNZ R0, RLOOP
  209.         RET
  210.  
  211.  ;--------------------------------------------
  212.  ACK:
  213.         SETB SDA
  214.         BACK: JB SDA, BACK
  215.         SETB SCL
  216.         CLR SCL
  217.         RET
  218.  
  219.  ACKP: ; ACK Procesora 
  220.         CLR SDA
  221.         SETB SCL
  222.         CLR SCL
  223.         RET
  224.        
  225.  NOACK:
  226.         SETB SDA
  227.         SETB SCL
  228.         CLR SCL
  229.         RET
  230.  
  231.  ;                       Na wyswietlaczu
  232.  ;               Index  |
  233.  ;                 |    |
  234.  ;----------------\|/  \|/
  235.  TABLICA:
  236.             DB 040H ;0      0.
  237.             DB 079H  ;1     1.
  238.             DB 024H ;2      2.
  239.             DB 030H ;3      3.
  240.             DB 019H ;4      4.
  241.             DB 012H  ;5     5.
  242.             DB 002H  ;6     6.
  243.             DB 078H ;7      7.
  244.             DB 000H ;8      8.
  245.             DB 010H ;9      9.
  246.             DB 0C0H ;10     0
  247.             DB 0F9H  ;11    1
  248.             DB 0A4H ;12     2
  249.             DB 0B0H ;13     3
  250.             DB 099H ;14     4
  251.             DB 092H  ;15    5
  252.             DB 082H  ;16    6
  253.             DB 0F8H ;17     7
  254.             DB 080H ;18     8
  255.             DB 090H ;19     9
  256.             DB 0FFH ;20     NULL
  257.             DB 0BFH ;21     -
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement