Advertisement
Guest User

Untitled

a guest
Apr 19th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.11 KB | None | 0 0
  1. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  2. ;* MODIFICAÇÕES PARA USO COM 12F675 *
  3. ;* FEITAS PELO PROF. MARDSON *
  4. ;* FEVEREIRO DE 2016 *
  5. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  6.  
  7. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  8. ;* NOME DO PROJETO *
  9. ;* CLIENTE *
  10. ;* DESENVOLVIDO PELA MOSAICO ENGENHARIA E CONSULTORIA *
  11. ;* VERSÃO: 1.0 DATA: 17/06/03 *
  12. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  13. ;* DESCRIÇÃO DO ARQUIVO *
  14. ;*-----------------------------------------------------------------*
  15. ;* MODELO PARA O PIC 12F675 *
  16. ;* *
  17. ;* *
  18. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  19.  
  20. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  21. ;* ARQUIVOS DE DEFINIÇÕES *
  22. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  23. #INCLUDE <p12f675.inc> ;ARQUIVO PADRÃO MICROCHIP PARA 12F675
  24.  
  25. __CONFIG _BODEN_OFF & _CP_OFF & _PWRTE_ON & _WDT_OFF & _MCLRE_ON & _INTRC_OSC_NOCLKOUT
  26.  
  27. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  28. ;* PAGINAÇÃO DE MEMÓRIA *
  29. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  30. ;DEFINIÇÃO DE COMANDOS DE USUÁRIO PARA ALTERAÇÃO DA PÁGINA DE MEMÓRIA
  31. #DEFINE BANK0 BCF STATUS,RP0 ;SETA BANK 0 DE MEMÓRIA
  32. #DEFINE BANK1 BSF STATUS,RP0 ;SETA BANK 1 DE MAMÓRIA
  33.  
  34. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  35. ;* VARIÁVEIS *
  36. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  37. ; DEFINIÇÃO DOS NOMES E ENDEREÇOS DE TODAS AS VARIÁVEIS UTILIZADAS
  38. ; PELO SISTEMA
  39.  
  40. CBLOCK 0x20 ;ENDEREÇO INICIAL DA MEMÓRIA DE
  41. ;USUÁRIO
  42. W_TEMP ;REGISTRADORES TEMPORÁRIOS PARA USO
  43. STATUS_TEMP ;JUNTO ÀS INTERRUPÇÕES
  44. DUTYCYCLE
  45. AUXDUTYCYCLE
  46. CONT1
  47. CONT2
  48.  
  49. ;NOVAS VARIÁVEIS
  50.  
  51. ENDC ;FIM DO BLOCO DE MEMÓRIA
  52. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  53. ;* FLAGS INTERNOS *
  54. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  55. ; DEFINIÇÃO DE TODOS OS FLAGS UTILIZADOS PELO SISTEMA
  56.  
  57. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  58. ;* CONSTANTES *
  59. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  60. ; DEFINIÇÃO DE TODAS AS CONSTANTES UTILIZADAS PELO SISTEMA
  61.  
  62. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  63. ;* ENTRADAS *
  64. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  65. ; DEFINIÇÃO DE TODOS OS PINOS QUE SERÃO UTILIZADOS COMO ENTRADA
  66. ; RECOMENDAMOS TAMBÉM COMENTAR O SIGNIFICADO DE SEUS ESTADOS (0 E 1)
  67.  
  68. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  69. ;* SAÍDAS *
  70. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  71. ; DEFINIÇÃO DE TODOS OS PINOS QUE SERÃO UTILIZADOS COMO SAÍDA
  72. ; RECOMENDAMOS TAMBÉM COMENTAR O SIGNIFICADO DE SEUS ESTADOS (0 E 1)
  73.  
  74. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  75. ;* VETOR DE RESET *
  76. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  77.  
  78. ORG 0x00 ;ENDEREÇO INICIAL DE PROCESSAMENTO
  79. GOTO INICIO
  80.  
  81. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  82. ;* INÍCIO DA INTERRUPÇÃO *
  83. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  84. ; ENDEREÇO DE DESVIO DAS INTERRUPÇÕES. A PRIMEIRA TAREFA É SALVAR OS
  85. ; VALORES DE "W" E "STATUS" PARA RECUPERAÇÃO FUTURA
  86.  
  87. ORG 0x04 ;ENDEREÇO INICIAL DA INTERRUPÇÃO
  88. MOVWF W_TEMP ;COPIA W PARA W_TEMP
  89. SWAPF STATUS,W
  90. MOVWF STATUS_TEMP ;COPIA STATUS PARA STATUS_TEMP
  91.  
  92. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  93. ;* ROTINA DE INTERRUPÇÃO *
  94. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  95. ; AQUI SERÁ ESCRITA AS ROTINAS DE RECONHECIMENTO E TRATAMENTO DAS
  96. ; INTERRUPÇÕES
  97.  
  98. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  99. ;* ROTINA DE SAÍDA DA INTERRUPÇÃO *
  100. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  101. ; OS VALORES DE "W" E "STATUS" DEVEM SER RECUPERADOS ANTES DE
  102. ; RETORNAR DA INTERRUPÇÃO
  103.  
  104. SAI_INT
  105. SWAPF STATUS_TEMP,W
  106. MOVWF STATUS ;MOVE STATUS_TEMP PARA STATUS
  107. SWAPF W_TEMP,F
  108. SWAPF W_TEMP,W ;MOVE W_TEMP PARA W
  109. RETFIE
  110.  
  111. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  112. ;* ROTINAS E SUBROTINAS *
  113. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  114. ; CADA ROTINA OU SUBROTINA DEVE POSSUIR A DESCRIÇÃO DE FUNCIONAMENTO
  115. ; E UM NOME COERENTE ÀS SUAS FUNÇÕES.
  116.  
  117. DELAY
  118. MOVWF CONT2 ;cont2 * 102us (cont2 = dutycycle)
  119. CONTAMAIS1
  120. MOVLW .2 ; = 8us
  121. MOVWF CONT1
  122. CONTAMAIS2
  123. DECFSZ CONT1
  124. GOTO CONTAMAIS2
  125. DECFSZ CONT2
  126. GOTO CONTAMAIS1
  127. RETURN
  128.  
  129. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  130. ;* INICIO DO PROGRAMA *
  131. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  132.  
  133. INICIO
  134. BANK1 ;ALTERA PARA O BANCO 1
  135. MOVLW B'00000001' ;GP0 COMO ENTRADA ;GP5 COMO SAIDA
  136. MOVWF TRISIO
  137. MOVLW B'01110001' ;PORTAS ANALOGICA
  138. MOVWF ANSEL
  139. MOVLW B'00000010' ;255*8 =~ 2ms
  140. MOVWF OPTION_REG ;DEFINE OPÇÕES DE OPERAÇÃO
  141. MOVLW B'00000000'
  142. MOVWF INTCON ;DEFINE OPÇÕES DE INTERRUPÇÕES
  143. BANK0 ;RETORNA PARA O BANCO
  144. MOVLW B'10000001' ;justificado para direita | canal 0 | ativo
  145. MOVWF ADCON0
  146. MOVLW B'00000111'
  147. MOVWF CMCON ;DEFINE O MODO DE OPERAÇÃO DO COMPARADOR ANALÓGICO
  148.  
  149. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  150. ;* INICIALIZAÇÃO DAS VARIÁVEIS *
  151. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  152. MOVLW .126
  153. MOVWF DUTYCYCLE
  154. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  155. ;* ROTINA PRINCIPAL *
  156. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  157. MAIN
  158. BSF ADCON0, 1 ;LEITURA
  159. LOOP
  160. BTFSC ADCON0, 1
  161. GOTO LOOP
  162. ;CORPO DA ROTINA PRINCIPAL
  163.  
  164. MOVLW .51 ;resultado da conversao fica em ADRESL
  165. SUBWF ADRESL, W ;subtrai do work e salva no work
  166. BTFSC STATUS, C ;se for menor carry eh 0 (negativo adresl < w)
  167. GOTO DIMINUIR
  168. GOTO AUMENTAR
  169.  
  170. DIMINUIR
  171. CLRF TMR0
  172. MOVFW DUTYCYCLE
  173. MOVWF AUXDUTYCYCLE
  174. INCFSZ AUXDUTYCYCLE
  175. INCF DUTYCYCLE; 5% 102us eh 5%
  176. MOVFW DUTYCYCLE ;tempo de atividade (nivel alto)
  177. CALL DELAY
  178. BSF GPIO, 5
  179. ESPERAOCUPADA ;espera pelo tempo setado
  180. BTFSS INTCON, T0IF
  181. GOTO ESPERAOCUPADA
  182. BCF INTCON,T0IF
  183. BCF GPIO, 5 ;volta para o nivel baixo
  184. GOTO MAIN
  185. AUMENTAR
  186. CLRF TMR0
  187. MOVFW DUTYCYCLE
  188. MOVWF AUXDUTYCYCLE
  189. DECFSZ AUXDUTYCYCLE
  190. DECF DUTYCYCLE; 5% 102us eh 5%
  191. MOVFW DUTYCYCLE ;tempo de atividade (nivel alto)
  192. CALL DELAY
  193. BSF GPIO, 5
  194. ESPERAOCUPADA2 ;espera pelo tempo setado
  195. BTFSS INTCON, T0IF
  196. GOTO ESPERAOCUPADA2
  197. BCF INTCON,T0IF
  198. BCF GPIO, 5 ;volta para o nivel baixo
  199. GOTO MAIN
  200.  
  201. GOTO MAIN
  202.  
  203. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  204. ;* FIM DO PROGRAMA *
  205. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  206.  
  207. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement