Advertisement
Guest User

Sleep PIC12F675

a guest
Apr 30th, 2019
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MPASM 7.16 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_CLKOUT
  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.  
  45.         ;NOVAS VARIÁVEIS
  46.  
  47.     ENDC            ;FIM DO BLOCO DE MEMÓRIA
  48. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  49. ;*                        FLAGS INTERNOS                           *
  50. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  51. ; DEFINIÇÃO DE TODOS OS FLAGS UTILIZADOS PELO SISTEMA
  52.  
  53. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  54. ;*                         CONSTANTES                              *
  55. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  56. ; DEFINIÇÃO DE TODAS AS CONSTANTES UTILIZADAS PELO SISTEMA
  57.  
  58. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  59. ;*                           ENTRADAS                              *
  60. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  61. ; DEFINIÇÃO DE TODOS OS PINOS QUE SERÃO UTILIZADOS COMO ENTRADA
  62. ; RECOMENDAMOS TAMBÉM COMENTAR O SIGNIFICADO DE SEUS ESTADOS (0 E 1)
  63.  
  64. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  65. ;*                           SAÍDAS                                *
  66. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  67. ; DEFINIÇÃO DE TODOS OS PINOS QUE SERÃO UTILIZADOS COMO SAÍDA
  68. ; RECOMENDAMOS TAMBÉM COMENTAR O SIGNIFICADO DE SEUS ESTADOS (0 E 1)
  69.  
  70. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  71. ;*                       VETOR DE RESET                            *
  72. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  73.  
  74.     ORG 0x00            ;ENDEREÇO INICIAL DE PROCESSAMENTO
  75.     GOTO    INICIO
  76.    
  77. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  78. ;*                    INÍCIO DA INTERRUPÇÃO                        *
  79. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  80. ; ENDEREÇO DE DESVIO DAS INTERRUPÇÕES. A PRIMEIRA TAREFA É SALVAR OS
  81. ; VALORES DE "W" E "STATUS" PARA RECUPERAÇÃO FUTURA
  82.  
  83.     ORG 0x04            ;ENDEREÇO INICIAL DA INTERRUPÇÃO
  84.     MOVWF   W_TEMP      ;COPIA W PARA W_TEMP
  85.     SWAPF   STATUS,W
  86.     MOVWF   STATUS_TEMP ;COPIA STATUS PARA STATUS_TEMP
  87.  
  88. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  89. ;*                    ROTINA DE INTERRUPÇÃO                        *
  90. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  91. ; AQUI SERÁ ESCRITA AS ROTINAS DE RECONHECIMENTO E TRATAMENTO DAS
  92. ; INTERRUPÇÕES
  93.    
  94.     BCF INTCON,INTF ;LIMPAR FLAG DA INTERRUPCAO DA FLAG
  95.     BCF INTCON,T0IF ;LIMPAR FLAG DA INTERRUPCAO DO TMR0
  96.     MOVLW   .0
  97.     MOVWF   TMR0        ;ZERAR TMR0
  98.     BCF GPIO,GP5    ;DESLIGAR GP5
  99.    
  100.  
  101. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  102. ;*                 ROTINA DE SAÍDA DA INTERRUPÇÃO                  *
  103. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  104. ; OS VALORES DE "W" E "STATUS" DEVEM SER RECUPERADOS ANTES DE
  105. ; RETORNAR DA INTERRUPÇÃO
  106.  
  107. SAI_INT
  108.     SWAPF   STATUS_TEMP,W
  109.     MOVWF   STATUS      ;MOVE STATUS_TEMP PARA STATUS
  110.     SWAPF   W_TEMP,F
  111.     SWAPF   W_TEMP,W    ;MOVE W_TEMP PARA W
  112.     RETFIE
  113.  
  114. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  115. ;*                   ROTINAS E SUBROTINAS                      *
  116. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  117. ; CADA ROTINA OU SUBROTINA DEVE POSSUIR A DESCRIÇÃO DE FUNCIONAMENTO
  118. ; E UM NOME COERENTE ÀS SUAS FUNÇÕES.
  119.  
  120. SUBROTINA1
  121.  
  122.     ;CORPO DA ROTINA
  123.  
  124.     RETURN
  125.  
  126. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  127. ;*                     INICIO DO PROGRAMA                          *
  128. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  129.    
  130. INICIO
  131.     BANK1               ;ALTERA PARA O BANCO 1
  132.     MOVLW   B'00001100' ;CONFIGURA TODAS AS PORTAS DO GPIO (PINOS)
  133.     MOVWF   TRISIO      ;COMO SAÍDAS
  134.     CLRF    ANSEL       ;DEFINE PORTAS COMO Digital I/O
  135.     MOVLW   B'00000000'
  136.     MOVWF   OPTION_REG  ;DEFINE OPÇÕES DE OPERAÇÃO
  137.     MOVLW   B'10010000'
  138.     MOVWF   INTCON      ;DEFINE OPÇÕES DE INTERRUPÇÕES
  139.     BANK0               ;RETORNA PARA O BANCO
  140.     MOVLW   B'00000111'
  141.     MOVWF   CMCON       ;DEFINE O MODO DE OPERAÇÃO DO COMPARADOR ANALÓGICO
  142.  
  143. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  144. ;*                     INICIALIZAÇÃO DAS VARIÁVEIS                 *
  145. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  146.  
  147. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  148. ;*                     ROTINA PRINCIPAL                            *
  149. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  150. MAIN
  151.  
  152.     ;CORPO DA ROTINA PRINCIPAL
  153.     BANK1
  154.     MOVLW   B'11001111' ;ECONOMIZAR ENERGIA
  155.     MOVWF   TRISIO
  156.     BANK0
  157.     BSF GPIO,GP5 ;LIGAR LED
  158.     SLEEP
  159.     NOP
  160.     BTFSS   INTCON,T0IF ;TESTAR SE INTERRUPCAO FOI GERADA
  161.     GOTO    $-1
  162.     GOTO MAIN
  163.  
  164. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  165. ;*                       FIM DO PROGRAMA                           *
  166. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  167.  
  168.     END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement