Advertisement
Guest User

mikolaj_luk_at_dys

a guest
Jun 11th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. LJMP START
  2.  
  3.  
  4. P5 EQU 0F8H
  5. P7 EQU 0DBH
  6.  
  7.  
  8.     LCDstatus equ 0FF2EH
  9.     LCDcontrol equ 0FF2CH
  10.     LCDdataWR equ 0FF2DH
  11.     RTCxs  equ 0FF00H
  12.     RTCsx  equ 0FF01H
  13.     RTCxm  equ 0FF02H
  14.     RTCmx  equ 0FF03H
  15.     RTCxh  equ 0FF04H
  16.     RTChx  equ 0FF05H
  17.     RTCpd  equ 0FF0DH
  18.  
  19.     #define HOME 0x80
  20.     #define INITDISP 0x38
  21.     #define HOM2 0xc0
  22.     #define LCDON 0x0e
  23.     #define CLEAR 0x01
  24.  
  25.  
  26. ORG 000BH
  27.  
  28. MOV TH0, #00H //do zmiany
  29. MOV TL0, #00H //do zmiany
  30.  
  31. DEC R0
  32. RETI
  33.  
  34. ORG 0100H //program glowny
  35.  
  36. LCDcntrlWR MACRO x
  37.              LOCAL loop
  38.       loop:
  39.              MOV    DPTR,#LCDstatus
  40.              MOVX   A,@DPTR
  41.              JB     ACC.7,loop       ; check if LCD busy
  42.    
  43.              MOV    DPTR,#LCDcontrol ; write to LCD control
  44.              MOV    A, x
  45.              MOVX   @DPTR,A
  46.             ENDM
  47.    
  48.   LCDcharWR MACRO
  49.             LOCAL loop1,loop2
  50.    
  51.             PUSH    ACC
  52.   loop1:    MOV     DPTR,#LCDstatus
  53.             MOVX    A,@DPTR
  54.             JB      ACC.7,loop1            ; check if LCD busy
  55.    
  56.   loop2:    MOV     DPTR,#LCDdataWR        ; write data to LCD
  57.             POP     ACC
  58.             MOVX    @DPTR,A
  59.             ENDM
  60.    
  61.   init_LCD  MACRO
  62.              LCDcntrlWR #INITDISP
  63.              LCDcntrlWR #CLEAR
  64.              LCDcntrlWR #LCDON  
  65.          ENDM
  66.  
  67.     disp_nibble MACRO              
  68.           movx A,@DPTR                
  69.           anl  A,#0Fh          ; select 4-bits
  70.           orl  A,#30H          ; change to ASCII                
  71.           LCDcharWR;            
  72.           ENDM
  73.  
  74.  
  75. RTC_PROC  SEGMENT CODE
  76.           RSEG  RTC_PROC
  77.          
  78. MOV A, R1
  79. SUBB A, #36H
  80. JZ deci4
  81. JMP koniec
  82. deci4:
  83. MOV R1, #30H
  84. MOV R2, #30H
  85. MOV R3, #30H
  86. MOV R4, #30H
  87. koniec:
  88. RET
  89.  
  90. _Nowa2:
  91. MOV A, B;
  92. JNZ cos1
  93. LCDcntrlWR #CLEAR
  94. MOV A, R1
  95. LCDcharWR
  96. MOV A, R2
  97. LCDcharWR
  98. MOV A, #3AH
  99. LCDcharWR
  100. MOV A, R3
  101. LCDcharWR
  102. MOV A, R4
  103. LCDcharWR
  104. JMP koniec2
  105. cos1:
  106. DEC A
  107. JNZ cos2
  108. cos2:
  109. DEC A
  110. JNZ koniec2
  111. LCDcntrlWR #CLEAR
  112. MOV R1, #30H
  113. MOV R2, #30H
  114. MOV R3, #30H
  115. MOV R4, #30H
  116. koniec2:
  117. RET
  118.  
  119.  
  120.  _CZEKAJ:
  121. mov R1, #03Fh
  122. TAM2: mov R2, #0FFH
  123. TU2: DJNZ R2, TU2
  124. DJNZ R1, TAM2
  125. RET
  126.  
  127. START:
  128. MOV DPH, #80H
  129. MOV DPL, #77H
  130. MOV A, #31H
  131. MOVX @DPTR, A
  132. MOV DPH, #80H
  133. MOV DPL, #7BH
  134. MOV A, #32H
  135. MOVX @DPTR, A
  136. MOV DPH, #80H
  137. MOV DPL, #7DH
  138. MOV A, #33H
  139. MOVX @DPTR, A
  140. MOV DPH, #80H
  141. MOV DPL, #7EH
  142. MOV A, #41H
  143. MOVX @DPTR, A
  144. MOV DPH, #80H
  145. MOV DPL, #0B7H
  146. MOV A, #34H
  147. MOVX @DPTR, A
  148. MOV DPH, #80H
  149. MOV DPL, #0BBH
  150. MOV A, #35H
  151. MOVX @DPTR, A
  152. MOV DPH, #80H
  153. MOV DPL, #0BDH
  154. MOV A, #36H
  155. MOVX @DPTR, A
  156. MOV DPH, #80H
  157. MOV DPL, #0BEH
  158. MOV A, #42H
  159. MOVX @DPTR, A
  160. MOV DPH, #80H
  161. MOV DPL, #0D7H
  162. MOV A, #37H
  163. MOVX @DPTR, A
  164. MOV DPH, #80H
  165. MOV DPL, #0DBH
  166. MOV A, #38H
  167. MOVX @DPTR, A
  168. MOV DPH, #80H
  169. MOV DPL, #0DDH
  170. MOV A, #39H
  171. MOVX @DPTR, A
  172. MOV DPH, #80H
  173. MOV DPL, #0DEH
  174. MOV A, #43H
  175. MOVX @DPTR, A
  176. MOV DPH, #80H
  177. MOV DPL, #0E7H
  178. MOV A, #2AH
  179. MOVX @DPTR, A
  180. MOV DPH, #80H
  181. MOV DPL, #0EBH
  182. MOV A, #30H
  183. MOVX @DPTR, A
  184. MOV DPH, #80H
  185. MOV DPL, #0EDH
  186. MOV A, #23H
  187. MOVX @DPTR, A
  188. MOV DPH, #80H
  189. MOV DPL, #0EEH
  190. MOV A, #44H
  191. MOVX @DPTR, A
  192. MOV R6, #0H
  193. MOV R7, #0H
  194. MOV R4, #30H
  195. MOV R3, #30H
  196. MOV R1, #30H
  197. MOV R2, #30H
  198. MOV R5, #0
  199. MOV B, #0
  200.  
  201. init_LCD
  202.  
  203.  MOV TMOD, #01H
  204.  MOV TH0, #00H
  205.  MOV TL0, #00H
  206.  SETB TR0
  207.  MOV IE, #82H
  208.  MOV A, #00H
  209.  
  210.  DALEJ: MOV R0, #0FH
  211.  CZEKAM: MOV A, R0
  212.  JNZ CZEKAM
  213.  MOV R5, A;
  214.  ACALL _Nowa
  215.  ACALL _Nowa2
  216.  MOV A, R5;
  217.  CPL A
  218.  
  219. NEXT1:
  220. MOV R6, #7FH
  221. MOV A, R6
  222. MOV P5, A
  223. MOV A, P7
  224. ANL A, R6 ;W AKUMULATORZE JEST TO CO WPISALISMY DO R0
  225. MOV R7, A
  226. CLR C
  227. SUBB A, R6
  228. JZ DALEJ ;JEZELI '0' PRZESKAKUJEMY DO KOLEJNEGO BLOKU
  229. MOV A, R7 ; JEZELI NIE WYSZLO '0' TO PRZYWRACAMY WARTOSC AKUMULATORA
  230. lol2:
  231. MOV A, P7
  232. ANL A, R6
  233. CLR C
  234. SUBB A, R6
  235. JNZ lol2
  236. ACALL _Nowa
  237. ACALL _Nowa2
  238. MOV A, R7 ; JEZELI NIE WYSZLO '0' TO PRZYWRACAMY WARTOSC AKUMULATORA
  239. MOV DPH, #80H
  240. MOV DPL,A              
  241. MOVX A,@DPTR
  242. MOV P1, A
  243. SUBB A, #31H
  244. MOV B, A;
  245. JMP DALEJ
  246.  
  247.  
  248.  NOP
  249.  NOP
  250.  NOP
  251.  JMP $
  252.  END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement