Advertisement
Guest User

Untitled

a guest
Oct 17th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.37 KB | None | 0 0
  1.  
  2. CERO EQU 50H
  3. UNO EQU 51H
  4. DOS EQU 52H
  5. TRES EQU 53H
  6. CUATRO EQU 54H
  7. CINCO EQU 55H
  8. SEIS EQU 56H
  9. SIETE EQU 57H
  10. OCHO EQU 58H
  11. NUEVE EQU 59H
  12.  
  13. AHOR EQU 60H
  14. AMIN EQU 61H
  15.  
  16. HOR EQU 63H
  17. MIN EQU 64H
  18. COUNT EQU 65H
  19.  
  20. DISSEG EQU 67H
  21. DISMIN EQU 68H
  22. DISHOR EQU 69H
  23.  
  24. BANCONFIGH EQU 71H
  25. BANCONFIGA EQU 72H
  26.  
  27. AF EQU 7FH ;Bandera de alarma/reloj
  28.  
  29.  
  30.  
  31.  
  32. ORG 0000H ;RESET
  33. SJMP INICIO
  34. ORG 0003H ;EXTERNA 0
  35. ;CONFIGURAR HORA
  36. CPL AF
  37. SETB P0.7
  38. RETI
  39. ORG 000BH ;TEMPORIZADOR 0
  40. ;INTERRUPCION 62500us
  41. JMP INTT0
  42. ORG 0013H ;EXTERNA 1
  43. ;AUMENTA MINUTOS
  44. JMP ISREXT1
  45. ORG 001BH ;TEMPORIZADOR 1
  46. ;INTERRUPCION GTV
  47. JMP GTV
  48. RETI
  49.  
  50. ORG 0040H
  51. INICIO: MOV R7,#0FEH
  52. MOV 26H,#0FFH
  53. ;INICIALIZAMOS LA TABLA OARA LOS DISPLAY
  54. MOV CERO,#0C0H
  55. MOV UNO,#0F9H
  56. MOV DOS,#0A4H
  57. MOV TRES,#0B0H
  58. MOV CUATRO,#99H
  59. MOV CINCO,#92H
  60. MOV SEIS,#82H
  61. MOV SIETE,#0F8H
  62. MOV OCHO,#80H
  63. MOV NUEVE,#98H
  64. ;INICIALIZAMOS LA TABLA PARA LA HORA Y MINUTOS DE LA ALARMA
  65. MOV AHOR,#00H
  66. MOV AMIN,#00H
  67. ;INICIALIZAMOS LA HORA ACTUAL
  68. ;MOV A,#0CH
  69. ;ADD A,#0
  70. ;DA A
  71. ;MOV R4,A
  72.  
  73. SETB AF
  74. MOV R0,#00H
  75. MOV R1,#00H
  76. MOV R2,#00H
  77. MOV R3,#00H
  78. MOV R4,#12H
  79. MOV DISSEG,#00H
  80. MOV DISMIN,#00H
  81. MOV DISHOR,#12H
  82.  
  83. MOV IE,#10001111B
  84. MOV TH1,#-200
  85. MOV TL1,#-200
  86. MOV TH0,#HIGH(-49984)
  87. MOV TL0,#LOW(-49984)
  88.  
  89.  
  90. MOV TMOD,#00100001B ;T0 Modo1
  91. ;MOV TMOD,#00100010B ;T0 Modo2
  92. MOV TCON,#01010000B
  93. SETB IT0
  94. SETB IT1
  95.  
  96. ;R2 SEGUNDOS
  97. ;R3 MINUTOS
  98. ;R4 HORAS
  99. CICLOSINFIN: JNB 2FH,CHECKP
  100. MOV A,R4
  101. CJNE A,AHOR,CHECKP
  102. MOV A,R3
  103. CJNE A,AMIN,CHECKP
  104. ;MOV P0,#0FEH
  105. CLR P0.7
  106. MOV 20H,R3
  107. INC 20H
  108. MOV A,R3
  109. CJNE A,20H,$
  110. ;MOV P0,#0FFH
  111. SETB P0.7
  112. CHECKP: JB P0.1,CICLOSINFIN
  113. CPL 2FH
  114. DJNZ 26H,$
  115. MOV 26H,#0FFH
  116. JMP CICLOSINFIN
  117.  
  118.  
  119. INTT0: CLR TF0
  120. INC R1
  121. CJNE R1,#20,NEXT1
  122. MOV R1,#00H
  123. INC R2 ;R2 SEGUNDOS
  124. MOV A,R2
  125. ADD A,#0
  126. DA A
  127. MOV R2,A
  128. JNB AF,MHS
  129. MOV DISSEG,#00H ;SE MUESTRAN 00 SEGUNDOS SI ESTA ACTIVA EL DISPLAY DE LA ALARMA
  130. JMP CM
  131. MHS: MOV DISSEG,R2 ;SI SE MUESTRA LA HORA ACTUAL
  132.  
  133. CM: CJNE R2,#60H,MINUTOS ;--------CHECA LA H
  134. ;CJNE R2,#60,MINUTOS
  135. MOV R2,#0H
  136. INC R3 ;R3 MINUTOS
  137. MOV A,R3
  138. ADD A,#0
  139. DA A
  140. MOV R3,A
  141. JNB AF,MHM
  142. MOV DISMIN,61H ;MUESTRA LO QUE ESTÁ EN LA ALARMA
  143. JMP MINUTOS
  144. MHM: MOV DISMIN,R3
  145.  
  146. MINUTOS: CJNE R3,#60H,HORAS
  147. MOV R3,#0H
  148. INC R4 ;R4 HORAS
  149. MOV A,R4
  150. ADD A,#0
  151. DA A
  152. MOV R4,A
  153. HORAS: CJNE R4,#24H,NEXT1
  154. MOV R4,#0H
  155. NEXT1: JNB AF,MHH
  156. MOV DISHOR,60H
  157. JMP RETTT
  158. MHH: MOV DISHOR,R4
  159.  
  160. RETTT: MOV TH0,#HIGH(-49984)
  161. MOV TL0,#LOW(-49984)
  162. ;MOV TH0,#HIGH(-50000)
  163. ;MOV TL0,#LOW(-50000)
  164. RETI
  165.  
  166. ;VER QUE DATO ENVIAMOS POR EL PUERTO 1
  167. DATO: CJNE R7,#0DFH,CMPH1 ;MOSTRAMOS DECENA DE HORA
  168. ;MOV 05,R4
  169. MOV 05,DISHOR
  170. ANL 05H,#11110000B
  171. MOV A,R5
  172. SWAP A
  173. ADD A,#50H
  174. MOV R0,A
  175. MOV P2,@R0
  176.  
  177. CMPH1: CJNE R7,#0EFH,CMPM0 ;MOSTRAMOS UNIDAD DE HORA
  178. ;MOV 05,R4
  179. MOV 05,DISHOR
  180. ANL 05H,#00001111B
  181. MOV A,R5
  182. ADD A,#50H
  183. MOV R0,A
  184. MOV P2,@R0
  185.  
  186. CMPM0: CJNE R7, #0F7H,CMPM1 ;MOSTRAMOS DECENA DE MINUTO
  187. ;MOV 05,R3
  188. MOV 05,DISMIN
  189. ANL 05H,#11110000B
  190. MOV A,R5
  191. SWAP A
  192. ADD A,#50H
  193. MOV R0,A
  194. MOV P2,@R0
  195.  
  196. CMPM1: CJNE R7, #0FBH, CMPS0 ;MOSTRAMOS UNIDAD DE MINUTO
  197. ;MOV 05,R3
  198. MOV 05,DISMIN
  199. ANL 05H,#00001111B
  200. MOV A,R5
  201. ADD A, #50H
  202. MOV R0,A
  203. MOV P2,@R0
  204.  
  205. CMPS0: CJNE R7, #0FDH, CMPS1 ;MOSTRAMOS DECENA DE SEGUNDO
  206. ;MOV 05,R2
  207. MOV 05,DISSEG
  208. ANL 05H,#11110000B
  209. MOV A,R5
  210. SWAP A
  211. ADD A,#50H
  212. MOV R0,A
  213. MOV P2,@R0
  214.  
  215. CMPS1: CJNE R7, #0FEH, RETURN ;MOSTRAMOS UNIDAD DE SEGUNDO
  216. ;MOV 05,R2
  217. MOV 05,DISSEG
  218. ANL 05H,#00001111B
  219. MOV A,R5
  220. ADD A,#50H
  221. MOV R0,A
  222. MOV P2,@R0
  223.  
  224. RETURN: RET
  225.  
  226.  
  227.  
  228.  
  229. ISREXT1: SETB P0.7
  230. JNB AF, E1ISRA ;Si AF es UNO, cambia a una subrutina para aumentar la alarma
  231. MOV A, R3
  232. CJNE A, #59H, ADD1 ;Si los minutos NO son 59, llama a una subrutina para aumentarlos en 1
  233. MOV R3, #0 ;Si son 59, los cambia a 0, e intenta aumentar horas
  234. MOV A, R4
  235. CJNE A, #23H, ADD2 ;Si las horas NO son 23, llama a una subrutina para aumentarlos en 1
  236. MOV R4, #0 ;Si son 23 los vuelve 0
  237. JMP RETURN3
  238. ADD1: ADD A, #1 ;Aumenta una minuto
  239. DA A
  240. MOV R3, A
  241. JMP RETURN3
  242. ADD2: MOV A, R4
  243. ADD A, #1 ;Aumenta una hora
  244. DA A
  245. MOV R4, A
  246. JMP RETURN3
  247.  
  248. ;Subrutina para aumentar tiempo de la alarma
  249. E1ISRA: MOV A, AMIN ;Intenta aumentar cada valor del display de la alarma, si puede haber desborde,
  250. CJNE A, #59H, ADD5 ;se sigue con el siguiente valor
  251. MOV AMIN, #0
  252. MOV A, AHOR
  253. CJNE A, #23H, ADD6
  254. MOV AHOR, #0
  255.  
  256. ADD5: ADD A, #1 ;Aumenta en uno la parte baja de los minutos
  257. DA A
  258. MOV AMIN, A
  259. JMP RETURN3
  260.  
  261. ADD6: ADD A, #1 ;Aumenta en uno la parte alta de las horas
  262. DA A
  263. MOV AHOR, A
  264. JMP RETURN3
  265.  
  266. RETURN3: RETI
  267.  
  268. GTV: CLR TF1
  269. MOV A,R7
  270. RL A
  271. MOV R7,A
  272. MOV P1,R7
  273. ;JB AF,MOSALARMA
  274. ;CALL DATO
  275. ;JMP NEXT
  276. ;CALL ALARMA;
  277. JB AF,MOSDATO
  278. MOV DISHOR,60H
  279. MOV DISMIN,61H
  280. MOV DISSEG,#00H
  281. MOV A,DISHOR
  282. ADD A,#00H
  283. DA A
  284. MOV DISHOR,A
  285. MOV A,DISMIN
  286. ADD A,#00
  287. DA A
  288. MOV DISMIN,A
  289. CALL DATO
  290. JMP NEXT
  291. MOSDATO: MOV DISHOR,R4
  292. MOV DISMIN,R3
  293. MOV DISSEG,R2
  294. CALL DATO
  295. NEXT: RETI
  296.  
  297. /**********************************************************************************************/
  298. /****************************NO ESTA TAN BIEN SOLUCIÓN FEA*************************************/
  299. /**********************************************************************************************/
  300. /*
  301. ALARMA: CJNE R7,#0DFH,CMPH1A ;MOSTRAMOS DECENA DE HORA
  302. ;MOV 05,R4
  303. MOV 05,AHOR
  304. ANL 05H,#11110000B
  305. MOV A,R5
  306. SWAP A
  307. ADD A,#50H
  308. MOV R0,A
  309. MOV P2,@R0
  310.  
  311. CMPH1A: CJNE R7,#0EFH,CMPM0A ;MOSTRAMOS UNIDAD DE HORA
  312. ;MOV 05,R4
  313. MOV 05,AHOR
  314. ANL 05H,#00001111B
  315. MOV A,R5
  316. ADD A,#50H
  317. MOV R0,A
  318. MOV P2,@R0
  319.  
  320. CMPM0A: CJNE R7, #0F7H,CMPM1A ;MOSTRAMOS DECENA DE MINUTO
  321. ;MOV 05,R3
  322. MOV 05,AMIN
  323. ANL 05H,#11110000B
  324. MOV A,R5
  325. SWAP A
  326. ADD A,#50H
  327. MOV R0,A
  328. MOV P2,@R0
  329.  
  330. CMPM1A: CJNE R7, #0FBH, CMPS0A ;MOSTRAMOS UNIDAD DE MINUTO
  331. ;MOV 05,R3
  332. MOV 05,AMIN
  333. ANL 05H,#00001111B
  334. MOV A,R5
  335. ADD A, #50H
  336. MOV R0,A
  337. MOV P2,@R0
  338.  
  339. CMPS0A: CJNE R7, #0FDH, CMPS1A ;MOSTRAMOS DECENA DE SEGUNDO
  340. ;MOV 05,R2
  341. MOV 05,DISSEG
  342. ANL 05H,#11110000B
  343. MOV A,R5
  344. SWAP A
  345. ADD A,#50H
  346. MOV R0,A
  347. MOV P2,@R0
  348.  
  349. CMPS1A: CJNE R7, #0FEH, RETURNA ;MOSTRAMOS UNIDAD DE SEGUNDO
  350. ;MOV 05,R2
  351. MOV 05,DISSEG
  352. ANL 05H,#00001111B
  353. MOV A,R5
  354. ADD A,#50H
  355. MOV R0,A
  356. MOV P2,@R0
  357.  
  358. RETURNA: RET
  359.  
  360. */
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement