Advertisement
Guest User

Untitled

a guest
Oct 24th, 2018
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pic 16 11.99 KB | None | 0 0
  1.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  * * * * * * * * * * * * *  
  2.         ;*                  TITULO: PARTE 2 DO PROJETO CORREDOR: ACIONAMENTO DE LÂMPADAS E          *
  3.         ;*                                                       ALARME DE INCÊNDIO(COM INTERRUPÇÃO)*
  4.         ;*                                                                                          *
  5.         ;*      DESENVOLVIDO PELO GRUPO:                                                            *
  6.         ;*   => JONATAS VICENTE                                                                     *
  7.         ;*   => GABRIEL DE BENEVIDES                                                                *
  8.         ;*                                                                                          *
  9.         ;*      VERSÃO: 1.0                             DATA: 24/10/2018                            *
  10.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  * * * * * * * * * * * *
  11.         ;*                      DESCRIÇÃO DO ARQUIVO                                                *
  12.         ;*------------------------------------------------------------------------------------------*
  13.         ;* COMENTÁRIOS E DESCRIÇÃO DO PROBLEMA PROPOSTO:                                            *
  14.         ;* PROJETO DA DISCIPLINA DE MICROCOMPUTADORES. PROJETAR UM SISTEMA DE CONTROLE              *
  15.         ;* UTILIZANDO O PIC16F628A PARA ACIONAMENTO DE LÂMPADAS E ALARME DE INCÊNDIO                *
  16.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **
  17.        
  18.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  19.         ;*                     ARQUIVOS DE DEFINIÇÕES                                                *
  20.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  21.        
  22.         #INCLUDE <P16F628A.INC>     ;ARQUIVO PADRÃO MICROCHIP
  23.         __CONFIG _BOREN_OFF & _CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_ON    
  24.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  25.         ;*                    PAGINAÇÃO DE MEMÓRIA                                                   *
  26.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  27.         ;DEFINIÇÃO DE COMANDOS PARA ALTERAÇÃO DA PÁGINA DE MEMÓRIA
  28.        
  29.         #DEFINE BANK0   BCF STATUS,RP0      ;SETA BANK 0 DE MEMÓRIA
  30.         #DEFINE BANK1   BSF STATUS,RP0            ;SETA BANK 1 DE MEMÓRIA
  31.         ;*************************************************************************
  32.         ;*                          DEFINIÇÕES GERAIS                              *
  33.         ;*************************************************************************
  34.         ;DEFINIÇÃO DE MNEMÔNICOS PARA ACESSO A BITS DE REGISTRADORES ESPECIAIS
  35.         #DEFINE TMHAB       INTCON, TOIE          ;HABILITA A INTERRUPÇÃO DO TIMER
  36.         #DEFINE TFLAG       INTCON, T0IF        ;FLAG SINALIZADOR DE ESTOURO DO TIMER
  37.         #DEFINE PFLAG       INTCON, INTF        ;FLAG SINALIZADOR DE INTERRUPÇÃO EM RB0
  38.         #DEFINE CHFLAG      INTCON, RBIF          ;FLAG SINALIZADOR DE INT DE RB4_RB7
  39.         #DEFINE HGINT       INTCON, GIE         ;HABILITACAO GERAL
  40.         #DEFINE HINTE       INTCON, INTE        ;HABILITACAO DA INT EXTERNA
  41.        
  42.         ;************************************************************************
  43.         ;*                             VARIÁVEIS                               *
  44.         ;************************************************************************
  45.         ;DEFINIÇÃO DO BLOCO DE VARIÁVEIS
  46.             CBLOCK 0X20         ;ENDEREÇO INICIAL DA MÉMORIA DO USUÁRIO
  47.                 W_TEMP          ;REGISTROS TEMPORARIOS PARA USO JUNTO AS
  48.                 STATUS_TEMP ;INTERRUPÇÕES
  49.        
  50.                                     ;VARIÁVEIS ESPECIFICAS DO PROJETO
  51.        
  52.                 AUXILIAR         ;GUARDA O VALOR DO SENSOR
  53.                 TEMPO_1
  54.                 TEMPO_2
  55.                 TEMPO_3
  56.                 TEMPO_F
  57.             ENDC                    ;FIM DE BLOCO DE VARIÁVEIS
  58.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  59.         ;*                        FLAGS                                                              *
  60.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  61.         ; DEFINIÇÃO DE TODOS OS FLAGS UTILIZADOS PELO SISTEMA
  62.            
  63.         #DEFINE  ZERO STATUS,;FLAG Z DO REGISTRADOR STATUS
  64.                                         ;PARA IDENFICAR SE O RESULTADO DA
  65.                                         ;ULTIMA OPERAÇÃO FOI ZERO
  66.                                         ;(NÃO => Z=0, SIM => Z=1 )
  67.         #DEFINE AUX AUXILIAR,7  ;BIT QUE IRÁ CORRESPONDERAO RB7
  68.                            
  69.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  70.         ;*                              CONSTANTES                                                   *
  71.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  
  72.         ;DEFINIÇÃO DAS CONSTANTES UTILIZADAS NO PROGRAMA
  73.         ;BASE DE TEMPO DE 10HZ. O DELAY É CALCULADO USANDO
  74.         ; A EXPRESSÃO: D=((CONTMAX - N)*PRESCALER)/F;
  75.         ;ONDE D= DELAY DESEJADO, N= CONSTANTE A SER COLOCADO NO TIMER
  76.         ; F= FREQUENCIA DO OSCILADOR EXERNO EM HERTZ , CONTMAX = 256 PARA TMR0
  77.        
  78.         DELAY_1S    EQU     .255 ;DELAY DE 1 SEGUNDO COM F=1HZ
  79.         DELAY_10S   EQU     .246 ;DELAY DE 10  SEGUNDOS COM F=1HZ
  80.         ;************************************************************************
  81.             ;PARA ESCREVER EM HEXA: 0X1F
  82.             ;PARA ESCREVER EM DECIMAL: .132
  83.             ;PARA ESCREVER EM BINÁRIO: B'10010000'
  84.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  85.         ;*                           ENTRADAS                                                        *
  86.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  87.         ; DEFINIÇÃO DOS OS PINOS QUE SERÃO UTILIZADOS COMO ENTRADA
  88.        
  89.         ;#DEFINE        INT_E            PORTB,0  ;BOTÃO DE INTERRUPÇÃO EXTERNA
  90.         #DEFINE     FUMACA           PORTB,RB0  ;CHAVE 4 (INT POR RB0)
  91.         #DEFINE     PRESENCA_1       PORTB,RB7  ;CHAVE 3  (INT POR RB6)
  92.         #DEFINE     PRESENCA_2       PORTB,RB5  ;CHAVE 2 (INT POR RB5)
  93.         #DEFINE     PRESENCA_3       PORTB,RB4  ;CHAVE 1  (INT POR RB4)
  94.         #DEFINE     LUMINOS          PORTB,RB1  ;SENSOR DE  LUMINOSIDADE 1(RB1)
  95.        
  96.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  97.         ;*                           SAÍDAS                                                          *
  98.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  99.         ; DEFINIÇÃO DE TODOS OS PINOS QUE SERÃO UTILIZADOS COMO SAÍDA
  100.         ; RECOMENDAMOS COMENTAR O SIGNIFICADO DE SEUS ESTADOS (0 E 1)
  101.        
  102.        
  103.         #DEFINE     LED_STR              PORTB,RB3  ;LED INTERUP.
  104.         #DEFINE     LED_BUZZ             PORTB,RB2  ;LED TIMER
  105.         #DEFINE     LUZ1                 PORTA,RA0  ;LED 1
  106.         #DEFINE     LUZ2                 PORTA,RA1  ;LED 2
  107.         #DEFINE     LUZ3                 PORTA,RA2  ;LED 3
  108.         #DEFINE     BUZZ                 PORTA,RA3  ;LED 4
  109.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  110.         ;*                       VETOR DE RESET                                                      *
  111.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  112.        
  113.             ORG 0X00            ;ENDEREÇO INICIAL DE PROCESSAMENTO
  114.             GOTO    INICIO
  115.                        
  116.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  117.         ;*                       INICIO DA INTERRUPÇÃO                                                 *
  118.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  119.             ORG     0X04            ;ENDEREÇO INICIAL DA INTERRUPÇÃO
  120.             MOVWF   W_TEMP          ;COPIA W PARA W_TEMP
  121.             SWAPF   STATUS,W   
  122.             MOVWF   STATUS_TEMP     ;COPIA STATUS PARA STATUS_TEMP
  123.        
  124.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  125.         ;*                  ROTINA DE ATENDIMENTO DA INTERRUPÇÃO                                   *
  126.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  127.             BCF      HGINT          ;DESABILITA INTERRUP.
  128.             BTFSC    PFLAG          ;OCORREU FOGO?
  129.             GOTO     FOGO           ;SIM, VA PARA ROTINA DE RB0
  130.             BTFSC    CHFLAG         ;NAO, OCORREU UMA INTERRUPCAO EM RB4-7?
  131.             GOTO     TRATA_CHAVE    ;SIM, VA PARA ROTINA DE RB4-7
  132.             BTFSC    TFLAG          ;NAO, OCORREU UMA INTERRUPCAO DO TIMER?
  133.             GOTO     TRATA_TIMER    ;SIM, VA PARA ROTINA DE ESTOURO DO TIMER
  134.             GOTO     SAI_INT        ;NAO, SAI DA INTERRUPCAO
  135.        
  136.        
  137.         TRATA_CHAVE
  138.             BCF     CHFLAG          ;LIMPA FLAG
  139.             BTFSC   LUMINOS
  140.             GOTO    SAI_INT                
  141.             BTFSC   PRESENCA_1             
  142.             GOTO    LUZ_1            
  143.             BTFSC   PRESENCA_2             
  144.             GOTO    LUZ_2            
  145.             BTFSC   PRESENCA_3             
  146.             GOTO    LUZ_3          
  147.             GOTO    SAI_INT
  148.        
  149.         FOGO
  150.             BCF         PFLAG       ;LIMPA PFLAG
  151.             MOVLW       D'10'
  152.             MOVWF       TEMPO_F
  153.             GOTO SAI_INT
  154.         LUZ_1
  155.             BSF LUZ1
  156.             MOVLW       D'60'
  157.             MOVWF       TEMPO_1
  158.             GOTO SAI_INT
  159.         LUZ_2
  160.             BSF LUZ2
  161.             MOVLW       D'60'
  162.             MOVWF       TEMPO_2
  163.             GOTO SAI_INT
  164.         LUZ_3
  165.             BSF LUZ3
  166.             MOVLW       D'60'
  167.             MOVWF       TEMPO_3
  168.             GOTO SAI_INT
  169.        
  170.         TRATA_TIMER
  171.             BCF     TFLAG           ;LIMPA TFLA
  172.             BSF     AUX
  173.             BTFSC   FUMACA
  174.             CALL    CORRE
  175.             BTFSC   LUZ1
  176.             CALL    DEC_1
  177.             BTFSC   LUZ2
  178.             CALL    DEC_2
  179.             BTFSC   LUZ3
  180.             CALL    DEC_3
  181.             GOTO    SAI_INT         ;SAI DA INTERRUPCAO
  182.        
  183.         CORRE
  184.             DECFSZ TEMPO_F
  185.             RETURN
  186.             CALL PISCA
  187.             RETURN
  188.         DEC_1
  189.             DECFSZ TEMPO_1
  190.             RETURN
  191.             BCF LUZ1
  192.             RETURN
  193.         DEC_2
  194.             DECFSZ TEMPO_2
  195.             RETURN
  196.             BCF LUZ2
  197.             RETURN
  198.         DEC_3
  199.             DECFSZ TEMPO_3
  200.             RETURN
  201.             BCF LUZ3
  202.             RETURN
  203.        
  204.         PISCA
  205.             BSF BUZZ
  206.             BSF LED_BUZZ
  207.             RETURN
  208.         ;*************************************************************************
  209.         ;*                          SAÍDA DA INTERRUPÇÃO                      *
  210.         ;*************************************************************************
  211.         SAI_INT
  212.             SWAPF   STATUS_TEMP,W
  213.             MOVWF   STATUS      ;MOVE STATUS_TEMP PARA STATUS
  214.             SWAPF   W_TEMP,W    ;MOVE W_TEMP PARA W
  215.             BSF         HGINT
  216.             RETFIE 
  217.        
  218.        
  219.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  220.         ;*    DEFINIÇÃO DE ROTINAS E SUB-ROTINAS:                                                      *
  221.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  222.         LIMPA_TUDO              ;CONDIÇÕES INICIAIS
  223.              BCF     AUX        ;ZERAR VARIAVEL
  224.              CLRF   PORTA       ;ZERAR PORTA A
  225.              CLRF   PORTB       ;ZERAR PORTA B
  226.              RETURN
  227.    
  228.         DELAY
  229.             CLRF    TMR0
  230.             MOVLW   DELAY_1S
  231.             MOVWF   TMR0
  232.             RETURN
  233.        
  234.        
  235.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  236.         ;*                     INICIO DO PROGRAMA                                                          *
  237.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  238.            
  239.         INICIO
  240.            
  241.             BANK1                   ;ALTERA PARA O BANCO 1
  242.             MOVLW   B'00110000'     ;OUT: RA0,RA1,RA2 E RA3; IN: AS DEMAIS
  243.             MOVWF   TRISA           ;CONFIGURA ENTRADAS E SAÍDAS DA PORTA A
  244.             MOVLW   B'11110011'     ;IN:RB0, RB4,RB5,RB6, RB7;  OUT: RB1,RB2,RB3,
  245.             MOVWF   TRISB           ;CONFIGURA ENTRADAS E SAÍDAS DA PORTA B
  246.             MOVLW   B'11111000'
  247.             MOVWF   OPTION_REG      ;DEFINE OPÇÕES DE OPERAÇÃO
  248.                                      
  249.             MOVLW   B'10111000'
  250.             MOVWF   INTCON          ;DEFINE OPÇÕES DE INTERRUPÇÃO
  251.                                     ;RB0, TMR0 E RB4 A RB7
  252.             MOVLW   B'00010000'     ;UTILIZAR CRISTAL INTERNO DE 4 MHZ
  253.             MOVWF   PCON   
  254.             BANK0                   ;ALTERA PARA O BANCO 0
  255.             MOVLW   B'00000111'     ;ENTRADAS ANALOGICAS DESATIVAS
  256.             MOVWF   CMCON                      
  257.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  258.         ;*                     INICIALIZAÇÃO DAS VARIÁVEIS                                                 *
  259.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  260.             CALL    LIMPA_TUDO  ;CONDIÇÕES INICIAIS E
  261.          
  262.             BSF LED_STR
  263.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  264.         ;*                     ROTINA PRINCIPAL                                                              *
  265.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  266.              
  267.         MAIN     
  268.            
  269.             CALL DELAY
  270.        
  271.             GOTO MAIN
  272.        
  273.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  274.         ;*                       FIM DO PROGRAMA                           *
  275.         ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  276.        
  277.             END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement