Técnica Programação Assembler - PIC - Microchip

Técnica Programação Assembler - PIC - Microchip

(Parte 3 de 6)

;7LVPLow Voltage Programming1Desligado

;6BORENBrown-out Reset Enable0Ligado

;5MCLRERA5/Master Clear Enable0RA5 entrada digital

;3PWTERNPower-up Time Enable0Ligado

;2WDTENWatchdog Timer Enable0Desligado

; 4,1,0 FOSC2:FOSC0 Oscillator Selection 100 Oscilador Interno

#DEFINEBANK0BCFSTATUS,RP0; ATIVA BANCO DE MEMÓRIA 0 (ZERO) #DEFINEBANK1BSFSTATUS,RP0; ATIVA BANCO DE MEMÓRIA 1 (UM)

CBLOCK0X20; ENDEREÇO INICIAL MEMÓRIA USO GERAL

W_TEMP; REGISTRO TEMPORÁRIO PARA W STATUS_TEMP; REGISTRO TEMPORÁRIO PARA STATUS FLAG; REGISTRO PARA DESVIOS CONDICIONAIS CONT_1; REGISTRO CONTAGEM CONT_1

#DEFINEF_CONT_1FLAG,1; DESVIO CONT_1 NO REG. FLAG, BIT 1

CT_CONT_1EQU.250; CONSTANTE DE INÍCO DO CONT_1

#DEFINEB1PORTA,1; BOTAO B1 LIGADO AO PINO RA1

#DEFINEL1PORTA,6; LED L1 LIGADO AO PINO RA6

Bento Alves Cerqueira Cesar Filho - R 1.2 - JUN/07 13/28

ORG0X00; ENDEREÇO INICIAL DO CÓDIGO GOTOSET_UP; VAI PARA INÍCIO DO SET_UP CONTROLADOR

ORG0X04; ENDEREÇO INICIAL DA INTERRUPÇÃO MOVWFW_TEMP; SALVA W EM W_TEMP SWAPFSTATUS,W; TROCA NIB_HI POR NIB_LO EM STATUS E GRAVA ; EM W MOVWFSTATUS_TEMP; SALVA STATUS EM STATUS_TEMP

SET_UP BANK1; PÁGINA DE MEMÓRIA 1

MOVLW B'10000011' MOVWFOPTION_REG; RESISTORES PULL-UP DESABILITADOS ; TRANSIÇÃO RB0/INT NÃO UTILIZADA

; INCREMENTO TMR0 INTERNO (CM)

; TRANSIÇÃO T0CK1 NÃO UTILIZADA

; PRE SCALER SELECIONADO PARA TMR0

; DIVISÃO 1:16 NO PRE SCALER MOVLW B'0' MOVWFINTCON; INTERRUPÇÕES NÃO HABILITADAS

MOVLW B'010' MOVWFTRISA; RA2:3 ENTRADA, DEMAIS SAÍDAS MOVLW B'0' MOVWFTRISB; TODOS OS BITS SAÍDAS

CALL3FFh; CHAMA VALOR EXISTENTE NO ENDEREÇO MOVWFOSCCAL; CALIBRADOR DO OSCILADOR LOCAL

BANK0; PÁGINA DE MEMÓRIA 0

MOVLW B'01' MOVWFCMCON; DESLIGA OS COMPARADORES ANALÓGICOS E ; HABILITA OS PINOS DO PORTA PARA I/O DIGITAL

Bento Alves Cerqueira Cesar Filho - R 1.2 - JUN/07 14/28

Bento Alves Cerqueira Cesar Filho - R 1.2 - JUN/07 15/28

ARQUIVO BASICO.asm - COMENTADO

1- Área de Identificação

Esta área foi criada para que o projetista possa identificar e descrever o tipo de código-fonte que se encontra no arquivo.

Como na abertura do programa a tela apresentada começa exatamente nesta posição, o programador identifica a origem, destino, aplicação, datas etc. que interessam logo de início.

Observar que o texto da Área de Identificação é formado por Comentários – todas as linhas são iniciadas por ponto-e-vírgula (;) – logo, como são ignoradas pelo compilador, pode-se usar a acentuação normal da língua portuguesa.

Os comentários expressos em cada capítulo procuram orientar o programador para realizar o código-fonte da melhor maneira possível.

;PIMIL – PICARETAGENS MIL LTDA- SISTEMAS DE AUTOMAÇÃO
; PROJETO: [nome de identificação ou referencia do projeto]
; CLIENTE: [nome do cliente ou mercado ou produto de aplicação]
; NOME ARQUIVO: [nome de localização do arquivo no servidor principal ou outro meio de arquivo[

; [cada linha pode conter informações desde o princípio do projeto, modificações e descrição sucinta de cada modificação realizada] ;

; INÍCIO0/0/0VERSÃO..... 0.0RESPONSÁVEL..... [nome ou sigla do programdor]
; INÍCIO0/0/0VERSÃO..... 0.0RESPONSÁVEL.....
; INÍCIO0/0/0VERSÃO..... 0.0RESPONSÁVEL.....
; INÍCIO0/0/0VERSÃO..... 0.0RESPONSÁVEL.....

[Descrever a operação do código-fonte com informações suficientes para a correta compreensão do funcionamento. Deve existir documentação com diagramas elétricos detalhados, lista de materiais e manual de instruções/operação/manutenção em outros tipos de documentos que podem e devem ser referenciados neste capítulo. Procurre não se apoiar em documentação exclusivamente eletronica.]

2- Área de Diretivas

Nesta área o programador define todos os parametros de uso do controlador, identificando o modelo de controlador, a configuração, os Nomes dos Registros e Bits de Uso Geral, a correlação existente entre os Nomes dos dispositivos de Entrada/Saída e os Registros Especiais.

Bento Alves Cerqueira Cesar Filho - R 1.2 - JUN/07 16/28

Essas informações serão utilizadas pelo compilador para transformar o arquivo do código-fonte (code.asm) em um arquivo na linguagem de máquina (code.hex).

O compilador não interpreta a forma de capítulos agrupando as diretivas por função ou destinação. Durante a execução da compilação do código-fonte, apenas as diretivas são buscadas e interpretadas. A sequencia em que estão escritas e a distribuição organizada é ignorada – sua utilidade reside apenas na facilidade de leitura e interpretação pelo programador. O Anexo 2 mostra uma comparação da Área de Diretivas comentada e simples onde se pode ver a diferença de tamanho de texto com a compreensão deste mesmo texto.

Outros capítulos, além dos apresentados, podem ser acrescentados para melhorar o detalhamento das diretivas bem como podem ser excluídos quando não utilizados no projeto.

[Neste capítulo o programador deve definir os arquivos de inclusão com o modelo do microcontrolador usado e as macros com sequencias de instruções já estabelecidas – sub rotinas.]

┬ ┬ ┬
│ │ └─> Comentário
│ └─> Arquivo de Inclusão do microcontrolador selecionado
└─> Diretiva

#INCLUDE<P16F628A.INC>; ARQUIVO PADRÃO DO CONTROLADOR

[Neste capítulo coloca-se a configuração que o controlador vai operar. O acesso ao registro de configuração só é possível durante a gravação ds memória de programa. As opções de configuração dependem do modelo de controlador e devem ser estabelecidas com as informações da folha de dados do modelo escolhido no arquivo de inclusão.]

┬ ┬ ┬
│ │ └─> Comentário
│ └─> Valor numérico do Registro de Configuração que representa as opções escolhidas (ver Nota)
└─> Instrução MPASM

__CONFIG B’10000101001000’; 3F50h – REGISTRO DE CONFIGURAÇÃO

[Nota: o valor numérico colocado após a instrução CONFIG pode assumir qualquer representação, isto é, decimal ou binária ou hexadecimal. Para melhor compreensão das opções determinadas pelo programador, recomenda-se a utilização do formato binário, compatível com a página da folha de dados do componente – O Anexo 1 mostra a cópia da folha do datasheet que contém as informações de aplicação das opções de uso do controlador 16F628A..]

[Descrever as opções do registro CONFIG torna mais fácil interpretar as escolhas de funcionamento do componente. Para cada modelo de controlador existe um registro específico, que o programador deve buscar na folha de dados.]]

; BIT CÓDIGO FUNÇÃO VALOR ; 13 CP Code Protection 1 Desligado

; 12 Não implementado 0

(Parte 3 de 6)

Comentários