Advertisement
Guest User

Ekstremalnie dobre liczenie w dół

a guest
Nov 18th, 2019
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.75 KB | None | 0 0
  1. ;------------------------------------------------
  2. ; Wyswietlacz 7-segmentowy dekdowanie
  3. ; P0 - segmenty
  4. ; P1 - cyfry
  5. ;------------------------------------------------
  6.  
  7. ; Symboliczne wartosci do inicjalizacji licznikow i dzielnikow
  8. ; Latwosc zmiany wartosc
  9. TH0_INIT EQU 16
  10. DV_T0_INIT EQU 5
  11.  
  12. DSEG AT 28H
  13. DV_T0: DS 1
  14. CNT: DS 1
  15. CNT4: DS 1
  16. DATA4: DS 4
  17.  
  18. BSEG AT 0H
  19.  
  20. CSEG AT 0H
  21. RESET:
  22. AJMP INIT_SYSTEM; Instrukcja skoku w obrebie 2kB sektora
  23. ;Wektory przerwan
  24. ORG 0003H
  25. AJMP INT0_ISR
  26. ORG 000BH
  27. AJMP T0_ISR
  28. ORG 0013H
  29. AJMP INT1_ISR
  30. ORG 001BH
  31. AJMP T1_ISR
  32. ORG 0023H
  33. AJMP UART_ISR
  34. ORG 002BH
  35. AJMP T2_ISR
  36.  
  37. INIT_SYSTEM:
  38. CLR_MEM:
  39. MOV R7,#88;
  40. MOV R0,#8
  41. MOV A,#0;
  42. CLR_MEM_LP:
  43. MOV @R0,A
  44. INC R0
  45. DJNZ R7,CLR_MEM_LP
  46.  
  47. INIT_STACK:
  48. MOV SP,#127
  49. MOV P0+6,#0FFh
  50. MOV P0,#0
  51. MOV P1,#1
  52. MOV DV_T0,#DV_T0_INIT
  53.  
  54. INIT_TIMER:
  55. MOV TH0,#TH0_INIT
  56. ;GATE|C/nT|M1|M0
  57. ;MODE 0 - 8bit TH + div 5bit TL
  58. ;MODE 1 - 16 bit TH + TL
  59. ;MODE 2 - 8 bit TH ld TL
  60. ;MODE 3 - 2 x 8bit TL->T0, TH->T1
  61. MOV TMOD,#11H
  62. ;TF1|TR1|TF0|TR0|IE1|IT1|IE0|IT1
  63. ;TFx - Timer OVF INT trigger
  64. ;TRx - Timer Run
  65. ;IEx - Ext Interrupt detection (Auto CLR after reception)
  66. ;ITx - 0 - Level/ 1 - Edge Int triggering
  67. MOV TCON,#50H
  68. INIT_INT:
  69. ;EA|-|ET2|ES|ET1|EX1|ET0|EX0
  70. ;EA - Global Int Enable
  71. ;ET - Timer
  72. ;ES - Serial
  73. ;EX - External
  74. MOV IE,#10001010B
  75. mov CNT4,#0
  76. mov P1,#0ffh
  77. MOV DATA4,#9
  78. MOV DATA4+1,#9
  79. MOV DATA4+2,#5
  80. MOV DATA4+3,#9
  81. MOV DATA4+4,#9
  82. MOV R0,#2BH
  83.  
  84. MAIN_LOOP:
  85. SJMP MAIN_LOOP
  86.  
  87. T0_ISR:
  88. ;Zachowujemy rejestry ktore ulegaja zmianie
  89. PUSH PSW
  90. PUSH ACC
  91. MOV A,R1
  92. PUSH ACC
  93. MOV A,R7
  94. PUSH ACC
  95.  
  96.  
  97. MOV TH0,#TH0_INIT
  98. MOV R1,#DATA4
  99. MOV R7,#2
  100. T0_DEC_SM:
  101. MOV A,@R1
  102. DEC A
  103. CJNE A,#255,T0_VAL_OK
  104. MOV A,#9
  105. MOV @R1,A
  106. ;Dziesiatki
  107. INC R1
  108. MOV A,@R1
  109. DEC A
  110. CJNE A,#255,T0_VAL_OK
  111. MOV A,#9
  112. MOV @R1,A
  113. ;...
  114. INC R1
  115. MOV A,@R1
  116. DEC A
  117. CJNE A,#255,T0_VAL_OK
  118. MOV A,#5
  119. MOV @R1,A
  120.  
  121. INC R1
  122. MOV A,@R1
  123. DEC A
  124. CJNE A,#255,T0_VAL_OK
  125. MOV A,#9
  126. MOV @R1,A
  127.  
  128. INC R1
  129. MOV A,@R1
  130. DEC A
  131. CJNE A,#255,T0_VAL_OK
  132. MOV A,#9
  133. MOV @R1,A
  134.  
  135. T0_VAL_OK:
  136. MOV @R1,A
  137.  
  138.  
  139.  
  140. OMIN1:
  141. POP ACC
  142. MOV R7,A
  143. POP ACC
  144. MOV R1,A
  145. POP ACC
  146. POP PSW
  147. RETI
  148.  
  149. INT0_ISR:
  150. INT1_ISR:
  151. UART_ISR:
  152. T1_ISR:
  153. mov TH1,#250
  154. PUSH PSW
  155. PUSH ACC
  156. mov DPTR,#TO_DEC
  157. MOV A,CNT4
  158. CJNE A,#05H,omin
  159. MOV CNT4,#0
  160. MOV R0,#2BH
  161. MOV A,CNT4
  162. omin:
  163. MOVC A,@A + DPTR
  164. MOV P1,A
  165. MOV A,@R0
  166. INC R0
  167. mov DPTR,#TO_7SEG
  168. MOVC A,@A + DPTR
  169. MOV P0,A
  170.  
  171. INC CNT4
  172. POP ACC
  173. POP PSW
  174. RETI
  175.  
  176. T2_ISR:
  177. RETI
  178.  
  179. TO_7SEG:
  180. DB 0xDE, 0x82, 0xEC, 0xE6
  181. DB 0xB2, 0x76, 0x7E, 0xC2
  182. DB 0xFE, 0xF6, 0x1C, 0xBA
  183. DB 0xF8, 0xFA, 0x20, 0x00
  184.  
  185. TO_DEC:
  186. DB 0xfe, 0xfd,0xfb, 0xf7, 0xEF, 0xDF
  187.  
  188.  
  189. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement