Aula 05 - Mircrocontroladores

17 Pages • 950 Words • PDF • 912.6 KB
Uploaded at 2021-09-24 08:46

This document was submitted by our user and they confirm that they have the consent to share it. Assuming that you are writer or own the copyright of this document, report to us by using this DMCA report button.


Microcontroladores Alan Tavares Controle e Automação

Jaguariúna – SP

Alan Tavares

Microcontroladores

1

Objetivo da Aula 1. Revisar conteúdo da aula passada 2. O que seria Sub-Rotinas em Assembly? 3. Como compilar e testar código em Assembly no MPLAB?

4. Exercício prático programando em Assembly utilizando MPLAB

Instruções Básicas

▪ PIC16 possui um conjunto de 35 instruções;

▪ Podem ser divididas em três grupos: ➢Instruções orientadas por bytes, ➢Instruções orientadas por bit, e ➢Operações literais e de controle.

Instruções Básicas Instruções Orientadas por Bit

Instrução Op

Descrição

BSF

f, b

Nível lógico alto bit b

BCF

f, b

Nível lógico baixo bit b

BTFSS

f, b

Testa bit b, salta se 1

BTFSC

f, b

Testa bit b, salta se 0

Instruções Básicas

Instrução ADDWF ADDWF CLRF CLRW COMF DECF

Op f, d fd f fd f, d

Descrição Soma W e f AND W com f Apaga f Apaga W Complementa f Decrementa f

Instrução Op Descrição DECFSZ f ,d Decrementa f, salta se 0 INCF f, d Incrementa f INCFSZ f, d Incrementa f, salta se 0 IORWF f, d OR W com f MOVF f,d Move f MOVLW l w Move L para W MOVWF f, d Move W para f GOTO Desvia para Etiqueta

Instruções Básicas

Instrução

Op

Descrição

NOP

-

Nenhuma operação

RLF

f, d

Desloca os dados para esquerda

RRF

f, d

Desloca os dados para direita

SUBWF

f, d

Subtrai W de F

SWAPT

f, d

Troca os nibbles de F

XORWF

f, d

XOR entre W e f

Termos de Configuação das Instruções w: work (registrador de trabalho ou acumulador) F: file (registradores especiais e/ou de uso geral | posição de memória) L: literal (constante, número qualquer) utilizado como L nas instruções e k nos argumentos D: destination (local onde o resultado de uma operação será armazenado B: bit (bit dentro dos registradores, dentro de um byte, flags) T: test (utilizado para teste de bit) S: skip (pulo, salto, desvio condicional) S: set (setar, tornar nível alto) C: clear (limpar, tornar nível baixo) Z: zerar (testar se é equivalente a zero)

Pull-up & Pull-Down

Normalmente Fechado

1 - VCC

0 - GND

Normalmente Aberto

MEMÓRIA DE DADOS (F REGISTER) Registradores de Funções Especiais (SFR) Os Registros de Funções Especiais são usados ​pela CPU e periféricos para controlar a operação do microcontrolador.

Registradores de Propósito Geral (GPR) Cada Registro de Propósito Geral (GPR) é uma memória de 8 bits e é acessado direta ou indiretamente através do registro FSR.

Registradores de Funções Especiais (SFR) Os Registros de Funções Especiais são usados ​pela CPU e periféricos para controlar a operação do microcontrolador.

Registradores de Propósito Geral (GPR)

Estudo de Caso: Acionamento 2 LEDs

Botão 2

LED 1

Botão 1

LED 2

Entradas: Botão 1 – Pino RA0 Botão 2 – Pino RA4 Saídas: LED 1 – Pino RB2 LED 2 – Pino RB6

Deseja-se controlar o chaveamento de dois LEDs através de dois botões normalmente abero (pull-down). Para o mesmo, deseja-se criar um programa em Assembly que simule o acionamento das chaves utilizando o MPLAB. Botão (RA0/RA4) – Valor 1: Aciona Botão/ Valor 0: Libera Botão LED (RB2/RB6) – Valor 1: Liga LED / Valor 0: Desligado LED

Resolução Código Assembly #include ORG H’0000’ GOTO INICIO

BCF BSF

STATUS,RP0 STATUS,RP0

Entradas: Botão 1 Botão 2

– Pino RA0 – Pino RA4

Saídas: LED 1 LED 2

– Pino RB2 – Pino RB6

#define #define

BANK0 BANK1

#define #define

BOTAO1 BOTAO2

PORTA,RA0 PORTA,RA4

Botão 1 ligado em RA0 Botão 2 ligado em RA4

#define #define

LED1 LED2

PORTB,RB2 PORTB,RB6

LED 1 ligado em RB2 LED 2 ligado em RB6

Cria um mnemônico para o banco 0 de memória Cria um mnemônico para o banco 1 de memória

Resolução

Código Assembly

INICIO: BANK1 MOVLW MOVWF MOVLW MOVWF BANK0 MOVLW MOVWF

B’11111111’ TRISA B’10111011’ TRISB B’10111011’ PORTB

Entradas: Botão 1 Botão 2

– Pino RA0 – Pino RA4

Saídas: LED 1 LED 2

– Pino RB2 – Pino RB6

Seleciona Banco de Memória 1 (BANK1) Configura: RA0 e RA4 Entrada(Input) W = B’xxx1 1111’ Configura: RB2 e RB6 Saída(Output) W = B’1011 1011’ Seleciona Banco de Memória 0 (BANK0) W = B’1011 1011’ LEDs iniciam desligados

1

Resolução Código Assembly LOOP: CALL CALL GOTO

TRATA_BUT1 TRATA_BUT1 LOOP

Comentários Chama a sub-rotina para tratar botão1 Chama a sub-rotina para tratar botão2 Volta para label loop

TRATA_BUT1: BTFSS GOTO BSF RETURN

BOTAO1 APAGA_LED1 LED1

Botão foi pressionado? Salta se b = 1 Não, b = 0 desvia para label Sim, b = 1 liga led1 Retorna a sub-rotina

APAGA_LED1: BCF RETURN

LED1

apaga LED1 Retorna a sub-rotina

2

3

4

Resolução Código Assembly LOOP: CALL CALL GOTO

TRATA_BUT1 TRATA_BUT1 LOOP

Comentários Chama a sub-rotina para tratar botão1 Chama a sub-rotina para tratar botão2 Volta para label loop

TRATA_BUT2: BTFSS GOTO BSF RETURN

BOTAO2 APAGA_LED2 LED2

Botão foi pressionado? Salta se b = 1 Não, b = 0 desvia para label Sim, b = 1 liga led1 Retorna a sub-rotina

APAGA_LED2: BCF RETURN

LED2

apaga LED2 Retorna a sub-rotina

2

3

4

Exercício Mircrocontrolador

Sensor Nível 1 Sensor Nível 2

Válvula 1

Válvula 2

Deseja-se controlar a vazão de água utilizando sensores de nível digitais. O programa deverá ser feito em Assembly e o acionamento dos sensores simulados pelo MPLAB. Aciona Válvula (RA2 = 1) se o Sensor de Nível (RB6 = 0) Quando Sensor de Nível (RB6 = 1), desliga Válvula (RA2 = 0) Aciona Válvula (RA3 = 1) se o Sensor de Nível (RB5 = 0)

Quando Sensor de Nível (RB5 = 1), desliga Válvula (RA3 = 0)

M. Sc. Alan Tavares E-mail: [email protected] GitHub: https://github.com/alanprodam

E-mail: [email protected] Linkedin : https://www.linkedin.com/in/alantavares-sp-br/ 14/02/2019

Alan Tavares – (FEM/UNICAMP)

49
Aula 05 - Mircrocontroladores

Related documents

17 Pages • 950 Words • PDF • 912.6 KB

13 Pages • 3,806 Words • PDF • 196.4 KB

26 Pages • 1,923 Words • PDF • 896.8 KB

33 Pages • 11,169 Words • PDF • 586.6 KB

12 Pages • 473 Words • PDF • 485.6 KB

47 Pages • 1,436 Words • PDF • 8.9 MB

27 Pages • 6,203 Words • PDF • 724.3 KB

33 Pages • 2,746 Words • PDF • 23.8 MB

6 Pages • 66 Words • PDF • 1 MB