36
06/08/2017 1 Parte 10 BÔNUS 1 06/08/2017 2 06/08/2017 1. I 2 C 2. USART 3. OPERAÇÕES ARITMÉTICAS 4. DSP 5. APLICAÇÕES DE DSP 6. INTEL ® 8051 1 06/08/2017 3 I 2 C I 2 C 1 06/08/2017 4 Diagrama A gigantesca complexidade do circuito empregado na implementação do protocolo I 2 C™ na PIC16F877 em relação ao protocolo SPI™ revela que a maior parte do circuito do módulo MSSP presta-se ao uso exclusivo do protocolo I 2 C™ e que a implementação do protocolo SPI™ não acarreta aumento de custo no sistema. I 2 C 1 06/08/2017 5 SPI™/I 2 C™ – Pinagem SDA SCL Os dois pinos devem ser configurados como entrada. 18 RC3/SCL 23 RC4/SDA • TRISC<3> = 1 SCL Entrada • TRISC<4> = 1 SDA Entrada I 2 C 1 06/08/2017 6 Diagrama O mesmo pino (SDA) é usado para entrada e para saída. Para a entrada, existe um buffer ST para filtragem de altas frequências. O deslocamento é feito a partir do bit mais significativo. Esses dois pinos devem ser configurados como entrada. glitch filter glitch filter

10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

  • Upload
    ngonhu

  • View
    222

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

1

Parte 10BÔNUS

106/08/2017 206/08/2017

1. I2C2. USART3. OPERAÇÕES ARITMÉTICAS4. DSP5. APLICAÇÕES DE DSP6. INTEL® 8051

I2C1

06/08/2017 3

I2C

I2C1

06/08/2017 4

Diagrama

• A gigantesca complexidade do circuito empregado naimplementação do protocolo I2C™ na PIC16F877 emrelação ao protocolo SPI™ revela que a maior parte docircuito do módulo MSSP presta-se ao uso exclusivo doprotocolo I2C™ e que a implementação do protocoloSPI™ não acarreta aumento de custo no sistema.

I2C1

06/08/2017 5

SPI™/I2C™ – Pinagem

SDASCL

• Os dois pinos devemser configurados comoentrada.

• 18 RC3/SCL• 23 RC4/SDA

• TRISC<3> = 1 SCL Entrada• TRISC<4> = 1 SDA Entrada

I2C1

06/08/2017 6

Diagrama

• O mesmo pino (SDA) é usado para entrada e para saída.• Para a entrada, existe um buffer ST para filtragem de

altas frequências.• O deslocamento é feito a partir do bit mais significativo.• Esses dois pinos devem ser configurados como entrada.

glitch filter

glitch filter

Page 2: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

2

I2C1

06/08/2017 7

Diagrama

• O buffer register é o mesmo usado na função SPI™.• O shift register é o mesmo usado na função SPI™.

glitch filter

glitch filter

I2C1

06/08/2017 8

SFR’s – MSSP

SSPCON2

SSPSTAT

SSPCON

I2C1

06/08/2017 9

<SSPM3:SSPM0> SSP BSSP MSSP0110 I2C™ Slave0111

1000Reservado

I2C™ Master1001

Reservado

10101011 I2C™ Master1100 Reservado11011110 I2C™ Slave I2C™ Master1111

VEREMOS

SSPCONI2C1

06/08/2017 10

<SSPM3:SSPM0> Modo0110 I2C™ Slave mode, 7-bit address0111 I2C™ Slave mode, 10-bit address1000 I2C™ Master mode, clock = fOSC/(4(SSPADD+1))1001 I2C™ Firmware Controlled Master mode (slave idle)1010

I2C™ Firmware Controlled Master mode, 7-bit address with START and STOP bit interrupts enabled

1011I2C™ Firmware Controlled Master mode, 10-bit address with START and STOP bit interrupts enabled

11xx Reservado

SSPCON

VEREMOS

I2C1

06/08/2017 11

DiagramaI2C1

06/08/2017 12

Slave address• No SPI™, se vários slaves estão presentes, então o

master precisa usar bits de portas paralelas paraexecutar a função slave select, uma para cada slave.

• No I2C™, não existe a função slave select,economizando, assim, os bits de portas paralelas.

• Cada slave possui um exclusivo slave address, enviadojuntamente com as palavras de dados, em SDA.

• Este endereço pode ser de 7 (128 slaves) ou de 10 bits(1024 slaves).

• Este endereço é enviado antes das palavras de dados.

<SSPM3:SSPM0> Modo0110 I2C™ Slave mode, 7-bit address0111 I2C™ Slave mode, 10-bit address

Page 3: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

3

I2C1

06/08/2017 13

Slave address

<SSPM3:SSPM0> Modo0110 I2C™ Slave mode, 7-bit address0111 I2C™ Slave mode, 10-bit address

• Em 7-bit address, o endereço é fornecido por SSPADR<6:0>.• Em 10-bit address, o endereço é fornecido por um GPR

seguido por SSPADR<7:0>.

X 6 5 4 3 2 1 0

SSPADR

7 6 5 4 3 2 1 0

SSPADR1 1 1 1 0 9 8 0

GPR

7-bit address

10-bit address

I2C1

06/08/2017 14

7-bit Slave address

SSPSR<7:1>

7-bitCOMPARATOR

SSPADD<7:1>

Acknowledge

8 shifts

SCL

I2C1

06/08/2017 15

• Cada slave possui um endereço próprio.• O endereço é armazenado em SSPADD<7:1>.• O slave verifica se o endereço enviado pelo

master corresponde ao seu endereço.• Em caso afirmativo (reconhecimento), é

gerado o pulso /ACK.

• SSPCON2<4> ACKEN: Acknowledge Sequence Enable bit.• SSPCON2<5> ACKDT: Acknowledge Data bit.• SSPCON2<6> ACKSTAT:Acknowledge Status bit.

7-bit Slave addressI2C1

06/08/2017 16

• O slave address precisa ser configurado emSSPADR<7:1> antes do início da comunicação.

• A primeira palavra enviada na comunicação é o slaveaddress.

• Se o slave address recebido na comunicação correspondea SSPADR, então a palavra de dado recebia em seguidaem SSPSR<7:0> é copiada para SSPBUF<7:0>.

• Se o slave address recebido na comunicação nãocorresponde a SSPADR, então a palavra de dado recebiaem seguida em SSPSR<7:0> não é copiada paraSSPBUF<7:0>.

• Várias palavras de dados podem ser recebidassequencialmente no mesmo slave address.

7-bit Slave address

I2C1

06/08/2017 17

Comunicação

Recepção do slave address Recepção/envio do dado

Recepção do slave address

Recepção do slave address Recep/env do dado 1 Recep/env do dado 2

I2C1

06/08/2017 18

Comunicação

Recepção do slave address

Start bit Stop bit

Nenhum dado

Recepção do slave address

Start bitUm dado

Recepção/envio do dado

Stop bit

Recepção do slave address

Start bitDois dado

Recepção/envio do dado 2

Stop bitRecepção/envio do dado 1

Page 4: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

4

I2C1

06/08/2017 19

SSPCON

• SSPCON<4> CKP: Clock Polarity Select bit.• 1: Relógio habilitado.• 0: Relógio em nível baixo (reset default).

• Usado, apenas, no modo Master.• Em nível baixo, é usado no clock stretch, visto mais adiante.

I2C1

06/08/2017 20

SSPCON

• SSPCON<5> SSPEN: Synchronous Serial Port Enable bit.• SSPCON<6> SSPOV: Receive Overflow Indicator bit.• SSPCON<7> WCOL: Write Collision Detect bit.• Possuem a mesma função vista no SPI™.

I2C1

06/08/2017 21

• SSPSTAT<0> BF: Buffer full status bit.• 1: Recepção completada ou transmissão em progresso.• 0: Nada recebido ou transmissão completada (reset default).

• SSPSTAT<1> UA: Update address (10-bit address).• 1: Precisa atualizar o endereço em SSPADD.• 0: Não precisa atualizar o endereço (reset default).

• SSPSTAT<2> R_W: Read/Write bit information.• 1: Read.• 0: Write (reset default).

SSPSTATI2C1

06/08/2017 22

• SSPSTAT<3> S: Start bit.• 1: Start bit has been detected last.• 0: Start bit was not detected last (reset default).

• SSPSTAT<4> P: Stop bit.• 1: Stop bit has been detected last.• 0: Stop bit was not detected last (reset default).

• SSPSTAT<5> D_NOT_A: Data/Address bit.• 1: A última palavra recebida é um dado.• 0: A última palavra recebida é um endereço (reset default).

SSPSTAT

I2C1

06/08/2017 23

• SSPSTAT<6> CKE: Edge select bit.• 1: Níveis de entrada conforme especificação SMBus™.• 0: Níveis de entr. conf. espec. I2C™ (reset default).

• SSPSTAT<7> SMP: Sample bit.• 1: Slew rate control disabled.• 0: Slew rate control enabled (reset default).

SSPSTATI2C1

06/08/2017 24

SSPCON2

• SSPCON2<0> SEN: START Condition Enable bit.• SSPCON2<1> RSEN: Repeated START Condition Enable bit.• SSPCON2<2> PEN: STOP Condition Enable bit.• SSPCON2<3> RCEN: Receive Enable bit.• SSPCON2<4> ACKEN: Acknowledge Sequence Enable bit.• SSPCON2<5> ACKDT: Acknowledge Data bit.• SSPCON2<6> ACKSTAT:Acknowledge Status bit.• SSPCON2<7> GCEN: General Call Enable bit.

• Bits 0 a 6: Somente no modo master.• Bits 7: Somente no modo master.

Page 5: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

5

I2C1

06/08/2017 25

General call address

• Após o início da comunicação, o primeiro byte recebidoidentifica qual slave precisa copiar o SSPSR<7:0> para oSSPBUF<7:0>.

• O general call address é um modo especial de operação, noqual todos os slave´s fazem esta cópia.

• SSPCON2<7> GCEN = 1

• SSPSTAT<2> R_W = 0

• Slave address = 00h

I2C1

06/08/2017 26

Modo multi-master

• O protocolo SPI™ permite a existência de, apenas, um master.• O protocolo I2C™ permite a existência de mais de um master.• É necessário procedimento para determinar se o barramento

está ocupado por uma comunicação efetuada por outro master.• Arbitration logic: Lógica para determinação de prioridade.• O master que iniciou a comunicação antes tem preferência.• Quando dois master´s iniciam a comunicação ao mesmo

tempo, algum critério de desempate precisa ser determinado.• Todos os master´s precisam estar operando no modo multi-

master.

USART2

2706/08/2017

USART

USART2

2806/08/2017

Introdução

• USART Universal SynchronousAsynchronous Receiver Transmitter.

• Também conhecido como:• SCI Serial Communications Interface .• Dois modos de operação:

• Assíncrono.• Síncrono.

USART2

2906/08/2017

Pinagem na PIC

RX/DTTX/CK

Multiplexação

• TX Asynchronous Transmit• RX Asynchronous Receive• CK Synchronous Clock• DT Synchronous Data

USART2

3006/08/2017

Modo assíncrono

• TXSTA<4> SYNC=0 (reset default)• Não é usado serial clock.• Uma via é o envio (TX) e a outra via é o recebimento (RX).• Os dados trafegam em duas vias, como no SPI™.• Como há duas vias de dados, é permitido full-duplex.• Como não existe serial clock, não existe master e slave.

Page 6: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

6

USART2

3106/08/2017

RXTX

• TXSTA<7> SCRC=X

• TXSTA<4> SYNC=0

• TRISC<7> = 1 RX Entrada• TRISC<6> = 0 TX Saída

Modo assíncronoUSART2

3206/08/2017

Modo síncrono• TXSTA<4> SYNC=1

• É usado serial clock, tal como no SSP.• Uma via é o relógio (CK) e a outra via é o dado (DT).• Os dados trafegam em uma única via, como no I2C™.• Como há uma única via de dados, não é permitido full-duplex.• É permitida comunicação half-duplex e simplex.• Como existe serial clock, existe master e slave.• TXSTA<7> SCRC: Clock Source Select bit.

• 0: Síncrono Slave (reset default).• 1: Síncrono Master.

USART2

3306/08/2017

DTCK

• TXSTA<7> SCRC=1

• TXSTA<4> SYNC=0

• TRISC<6> = 0 CK Saída

Modo síncrono masterUSART2

3406/08/2017

DTCK

• TXSTA<7> SCRC=0

• TXSTA<4> SYNC=0

• TRISC<6> = 1 CK Entrada

Modo síncrono slave

USART2

3506/08/2017

• Baud Rate Generator.• Baud: Bits transmitidos por segundo.• Usado nos modos:

• Assíncrono• Síncrono Master.

• Controlado pelo SFR SPBGR.• 8 bits.• SPBGR é um period register para um 8-bit timer.• O cálculo do Baud Rate em função de SPBGR é

diferente nos modo síncrono e assíncrono.

BRGUSART2

3606/08/2017

• TXSTA<2> BRGH: High Baud Rate Select bit.• 0: Baixa velocidade (reset default).• 1: Alta velocidade.

• Somente para modo assíncrono.• A alta velocidade é o quádruplo da baixa.

BRGH

Low High

Page 7: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

7

USART2

3706/08/2017

SFR’s• TXSTA Transmit Status 098h• RCSTA Receive Status 018h

• TXREG Transmit Data Register 019h• RCREG Receive Data Register 01Ah

• SPBRG Baud Rate Generator Register 099h

USART2

3806/08/2017

SFR’s

RCSTA

TXSTA

USART2

3906/08/2017

• RCSTA<7> SPEN: Serial Port Enable bit.• 0: Desabilitado (reset default).• 1: Habilitado.

• TXSTA<4> SYNC: USART Mode Select bit.• 0: Assíncrono (reset default).• 1: Síncrono.

• TXSTA<7> SCRC: Clock Source Select bit.• 0: Síncrono Slave (reset default).• 1: Síncrono Master.

ConfiguraçõesUSART2

4006/08/2017

• TXSTA<5> TXEN: Transmit Enable bit.• 0: Transmissão desabilitada (reset default).• 1: Transmissão habilitada.

• RCSTA<5> SREN: Single Receive Enable bit*.• 0: Desabilitad0 (reset default).• 1: Habilitado.

• RCSTA<4> CREN: Continuous Receive Enable bit.• 0: Desabilitad0 (reset default).• 1: Habilitado.

Configurações

* Somente no modo síncrono master.

USART2

4106/08/2017

• Dois tipos de informação podem ser enviados:• Dado 8 bits.• Endereço 9 bits.• O USART permite o envio de palavras de 8 ou 9 bits.• O nono bit também pode ser usado como paridade.• O controle de paridade não está implementado em

hardware mas pode ser implementado em software.

Data / AddressUSART2

4206/08/2017

• TXSTA<6> TX9: 9-bit Transmit Enable bit.• 0: Transmissão de 8 bits (reset default).• 1: Transmissão de 9 bits.

• CXSTA<6> RX9: 9-bit Receive Enable bit.• 0: Recepção de 8 bits (reset default).• 1: Recepção de 9 bits.

• TXSTA<0> TX9D: 9th bit of transmit data.• RCSTA<0> RX9D: 9th bit of received data.• RCSTA<3> ADDEN: Address Detect Enable bit.

• 0: Desabilitado.• 1: Habilitado.

• O bit 9D é o mais significativo do endereço.

Address Detection

Page 8: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

8

USART2

4306/08/2017

Data / Address

AN547

USART2

4406/08/2017

• No modo assíncrono, os pinos TX e RXgarantem a comunicação full-duplex, tal comoocorre com o protocolo SPI™.

• No modo síncrono, é necessária a comunicaçãodo sinal de relógio (pino CK), a comunicação éfeita por um único pino (DT), half-duplex, talcomo ocorre com o protocolo I2C™.

• O modo assíncrono é mais utilizado.• Um exemplo de aplicação assíncrona é a

comunicação com PC por meio do protocoloRS-232 (requer adequação das tensões).

Modos

USART2

4506/08/2017

MAX232 e RS-232

http://www.ti.com/lit/ds/symlink/max232.pdf

• Dual EIA-232 drivers/receivers.• O protocolo RS232 não emprega níveis TTL.• Interface entre níveis TTL e RS232.

USART2

4606/08/2017

Ethernet na PIC

• Presente na PIC18 ou superior.• 10Base-T Ethernet transceiver.• 8KB dedicated Ethernet buffer RAM.• Up to 128KB of Flash, easily accommodating a TCP/IP stack.• Advanced analog and communication peripherals.

USART2

4706/08/2017

• Quando não há transmissão nem recepção,o pino permanece em nível lógico alto.

• Ao iniciar uma transmissão ou recepção, oprocedimento é identificado por meio dostart bit.

• O start bit é ativo em nível baixo.• Se o pino RX recebe o start bit, é iniciada

uma recepção.• Se é iniciada uma transmissão, o pino TX

recebe o start bit

Modo Assíncrono – DesocupadoUSART2

4806/08/2017

• Ao escrever em TXREG, os oito bits dodado ou os nove bits do endereço sãocopiados para o transmit shift register.

• Os bits são enviados ao pino TX.• Inicialmente, é enviado o start bit.• A palavra é enviada (8 ou nove bits).• O bit 0 é enviado primeiramente.• Para finalizar, é enviado o stop bit.

Modo Assíncrono – Transmissão

Page 9: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

9

USART2

4906/08/2017

Modo Assíncrono – Transmissão• A existência do TXREG e do transmit shift register

permite que a segunda palavra seja escritaantes do término do envio da primeira palavra.

USART2

5006/08/2017

Modo Assíncrono – Transmissão

Transmit Shift Register

USART2

5106/08/2017

Modo Assíncrono – TransmissãoDado = 00100101b

Endereço = 100100101b

USART2

5206/08/2017

• O start bit é identificado no pino RX.• Os bits são enviados ao receive shift register.• O bit 0 é recebido primeiramente.• O stop bit é identificado no pino RX.• A palavra é copiada a um registrador provisório (buffer).• O buffer é copiado para RXREG e RX9D.

Modo Assíncrono – Recepção

USART2

5306/08/2017

Modo Assíncrono – Recepção

Receive Shift Register

USART2

5406/08/2017

Modo Assíncrono – Recepção

Page 10: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

10

USART2

5506/08/2017

EUSART

• Enhanced USART.• Presente na PIC18 ou superior.• Possui recursos adicionais como:

• Automatic baud rate detection.• Automatic baud rate calibration.• Automatic wake-up on Sync Break reception.• 12-bit Break character transmit.

OPERAÇÕES ARITMÉTICAS3

06/08/2017 56

OPERAÇÕES ARITMÉTICAS

OPERAÇÕES ARITMÉTICAS3

06/08/2017 57

Algoritmos• Em fundo rosa, são apresentados os algoritmos que

aplicam as rotações.• Quando rotações são usadas (RRF e RLF), e se presume

que o argumento seja um número inteiro de 8 bits, épreciso colocar o carry em zero previamente.

• BCF STATUS, C

• Quando várias rotações são realizadas, é precisoreiniciar o carry antes de cada rotação.

• Em fundo verde, são apresentados os algoritmos que nãoaplicam as rotações, não requerendo limpeza do carry.

• Em fundo branco, são apresentadas outras opções.• Todos esses programas usam, apenas, um GPR.

OPERAÇÕES ARITMÉTICAS3

06/08/2017 58

1 – Multiplicação por 2

; 01 - Multiplicação por 2; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

;multiplica por 2BCF STATUS,CRLF ondecadê,F

end

Dois opcodes

; 01 - Multiplicação por 2; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

;multiplica por 2MOVF ondecadê,WADDWF ondecadê,F

end

Máximo: 127

OPERAÇÕES ARITMÉTICAS3

06/08/2017 59

2 – Multiplicação por 3

; 02 - Multiplicação por 3; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

;multiplica por 3BCF STATUS,CRLF ondecadê,WADDWF ondecadê,F

end

Três opcodes

; 02 - Multiplicação por 3; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

;multiplica por 3MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,F

end

Máximo: 85

OPERAÇÕES ARITMÉTICAS3

06/08/2017 60

3 – Multiplicação por 4

; 03 - Multiplicação por 4; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

;multiplica por 2BCF STATUS,CRLF ondecadê,F

;multiplica por 2BCF STATUS,CRLF ondecadê,F

end

Outras opções:

Quatro opcodes

MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,FADDWF ondecadê,F

; 03 - Multiplicação por 4; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

;multiplica por 2MOVF ondecadê,WADDWF ondecadê,F

;multiplica por 2MOVF ondecadê,WADDWF ondecadê,F

end

Máximo: 63

BCF STATUS,CBCF STATUS,0x7RLF ondecadê,FRLF ondecadê,F

Page 11: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

11

OPERAÇÕES ARITMÉTICAS3

06/08/2017 61

4 – Multiplicação por 5

; 04 - Multiplicação por 5; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

;multiplica por 2MOVF ondecadê,WADDWF ondecadê,F

ADDWF ondecadê,WADDWF ondecadê,F

end

; 04 - Multiplicação por 5; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

;multiplica por 2BCF STATUS,CRLF ondecadê,W

ADDWF ondecadê,FADDWF ondecadê,F

end

Quatro opcodesMáximo: 55

OPERAÇÕES ARITMÉTICAS3

06/08/2017 62

5 – Multiplicação por 6

; 05 - Multiplicação por 6; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

;multiplica por 2BCF STATUS,CRLF ondecadê,F

;multiplica por 3BCF STATUS,CRLF ondecadê,WADDWF ondecadê,F

end

; 05 - Multiplicação por 6; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

;multiplica por 2MOVF ondecadê,WADDWF ondecadê,F

;multiplica por 3MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,F

end

Cinco opcodesMáximo: 42

OPERAÇÕES ARITMÉTICAS3

06/08/2017 63

6 – Multiplicação por 7

; 06 - Multiplicação por 7; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

BCF STATUS,CRLF ondecadê,WADDWF ondecadê,FADDWF ondecadê,FADDWF ondecadê,F

end

; 06 - Multiplicação por 7; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,WADDWF ondecadê,F

end

Cinco opcodesMáximo: 36

OPERAÇÕES ARITMÉTICAS3

06/08/2017 64

7 – Multiplicação por 8

; 07 - Multiplicação por 8; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,FADDWF ondecadê,F

end

Cinco opcodes

; 07 - Multiplicação por 8; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

BCF STATUS,CRLF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,F

end

Máximo: 31

Outras opções:MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,FADDWF ondecadê,F

BCF STATUS,CBCF STATUS,0x7RLF ondecadê,FRLF ondecadê,F

OPERAÇÕES ARITMÉTICAS3

; 08 - Multiplicação por 9; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

;multiplica por 3BCF STATUS,CRLF ondecadê,WADDWF ondecadê,F

;multiplica por 3BCF STATUS,CRLF ondecadê,WADDWF ondecadê,F

end

06/08/2017 65

8 – Multiplicação por 9; 08 - Multiplicação por 9; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

;multiplica por 3MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,F

;multiplica por 3MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,F

end

;multiplica por 2MOVF ondecadê,WADDWF ondecadê,F

ADDWF ondecadê,FADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,F

Seis opcodes

;multiplica por 3BCF STATUS,CRLF ondecadê,WADDWF ondecadê,F

ADDWF ondecadê,FADDWF ondecadê,FADDWF ondecadê,F

;multiplica por 2MOVF ondecadê,WADDWF ondecadê,F

ADDWF ondecadê,WADDWF ondecadê,WADDWF ondecadê,WADDWF ondecadê,F

Máximo: 28

OPERAÇÕES ARITMÉTICAS3

06/08/2017 66

9 – Multiplicação por 10Seis opcodes

; 09 - Multiplicação por 10; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

BCF STATUS,CRLF ondecadê,WADDWF ondecadê,WADDWF ondecadê,FADDWF ondecadê,FADDWF ondecadê,F

end

; 09 - Multiplicação por 10; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,WADDWF ondecadê,F

end

;multiplica por 2MOVF ondecadê,WADDWF ondecadê,F

;multiplica por 5 (não isolado)MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,F

Máximo: 25

Page 12: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

12

OPERAÇÕES ARITMÉTICAS3

06/08/2017 67

10 – Multiplicação por 11

; 10 - Multiplicação por 11; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

BCF STATUS,CRLF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,WADDWF ondecadê,F

end

Seis opcodes

; 10 - Multiplicação por 11; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,FADDWF ondecadê,FADDWF ondecadê,F

end

Máximo: 23

OPERAÇÕES ARITMÉTICAS3

; 11 - Multiplicação por 12; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

BCF STATUS,CRLF ondecadê,WADDWF ondecadê,FADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,F

end

; 11 - Multiplicação por 12; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,WADDWF ondecadê,FADDWF ondecadê,F

end

06/08/2017 68

11 – Multiplicação por 12Seis opcodes

Máximo: 21

OPERAÇÕES ARITMÉTICAS3

; 12 - Multiplicação por 13; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

BCF STATUS,CRLF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,FADDWF ondecadê,F

end

; 12 - Multiplicação por 13; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,F

end

06/08/2017 69

12 – Multiplicação por 13Seis opcodes

Máximo: 19

OPERAÇÕES ARITMÉTICAS3

06/08/2017 70

13 – Multiplicação por 14Sete opcodes

; 13 - Multiplicação por 14; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

;multiplica por 7MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,WADDWF ondecadê,F

;multiplica por 2MOVF ondecadê,WADDWF ondecadê,F

end

; 13 - Multiplicação por 14; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

;multiplica por 7BCF STATUS,CRLF ondecadê,WADDWF ondecadê,FADDWF ondecadê,FADDWF ondecadê,F

;multiplica por 2BCF STATUS,CRLF ondecadê,F

end

MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,FADDWF ondecadê,FADDWF ondecadê,FADDWF ondecadê,F

MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,FADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,FADDWF ondecadê,F

Máximo: 18

OPERAÇÕES ARITMÉTICAS3

06/08/2017 71

14 – Multiplicação por 15Sete opcodes

; 14 - Multiplicação por 15; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

;multiplica por 5MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,F

;multiplica por 3MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,F

end

; 14 - Multiplicação por 15; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

;multiplica por 5BCF STATUS,CRLF ondecadê,WADDWF ondecadê,FADDWF ondecadê,F

;multiplica por 3BCF STATUS,CRLF ondecadê,WADDWF ondecadê,F

end; 14 - Multiplicação por 15; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

MOVLW 0x0fANDWF ondecadê,FSWAPF ondecadê,FSWAPF ondecadê,WSUBWF ondecadê,F

end

MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,FADDWF ondecadê,FADDWF ondecadê,FADDWF ondecadê,F

MOVF ondecadê,WADDWF ondecadê,WADDWF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,WADDWF ondecadê,F

Máximo: 17

OPERAÇÕES ARITMÉTICAS3

06/08/2017 72

15 – Multiplicação por 16; 15 - Multiplicação por 16; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

SWAPF ondecadê,F

end

Um opcodeMáximo: 15

Page 13: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

13

OPERAÇÕES ARITMÉTICAS3

06/08/2017 73

16 – Multiplicação por 17; 16 - Multiplicação por 17; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

SWAPF ondecadê,FSWAPF ondecadê,WADDWF ondecadê,F

end

Três opcodesMáximo: 15

OPERAÇÕES ARITMÉTICAS3

06/08/2017 74

17 – Multiplicação por 18; 17 - Multiplicação por 18; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

SWAPF ondecadê,FSWAPF ondecadê,WADDWF ondecadê,FADDWF ondecadê,F

end

Quatro opcodesMáximo: 13

OPERAÇÕES ARITMÉTICAS3

06/08/2017 75

18 – Multiplicação por 19Cinco opcodes

; 18 - Multiplicação por 19; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

SWAPF ondecadê,FSWAPF ondecadê,WADDWF ondecadê,FADDWF ondecadê,FADDWF ondecadê,F

end

MOVF ondecadê,WADDWF ondecadê,WADDWF ondecadê,WSWAPF ondecadê,FADDWF ondecadê,F

Máximo: 13

OPERAÇÕES ARITMÉTICAS3

06/08/2017 76

19 – Multiplicação por 20; 19 - Multiplicação por 20; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

MOVF ondecadê,WADDWF ondecadê,WSWAPF ondecadê,FADDWF ondecadê,FADDWF ondecadê,F

end

Cinco opcodesMáximo: 12

OPERAÇÕES ARITMÉTICAS3

06/08/2017 77

20 – Multiplicação por 21Sete opcodes

; 20 - Multiplicação por 21; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,FADDWF ondecadê,F

end

MOVF ondecadê,WADDWF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,F

Máximo: 12

OPERAÇÕES ARITMÉTICAS3

06/08/2017 78

21 – Multiplicação por 22Seis opcodes

; 21 - Multiplicação por 22; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

MOVF ondecadê,WADDWF ondecadê,WADDWF ondecadê,WSWAPF ondecadê,FADDWF ondecadê,FADDWF ondecadê,F

end

Máximo: 11

Page 14: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

14

OPERAÇÕES ARITMÉTICAS3

06/08/2017 79

22 – Multiplicação por 24

; 22 - Multiplicação por 24; Argumento inteiro, desprezar parte fracionária

#include <p16f877.inc>constant ondecadê = 0x20

;multiplicação por 16SWAPF ondecadê,F

;multiplicação por 1,5BCF STATUS,CRRF ondecadê,WADDWF ondecadê,F

end

Quatro opcodesMáximo: 10

OPERAÇÕES ARITMÉTICAS3

06/08/2017 80

23 – Multiplicação por 25

; 23 - Multiplicação por 25; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

;multiplica por 5MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,F

;multiplica por 5MOVF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,F

end

; 23 - Multiplicação por 25; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

;multiplica por 5BCF STATUS,CRLF ondecadê,WADDWF ondecadê,FADDWF ondecadê,F

;multiplica por 5BCF STATUS,CRLF ondecadê,WADDWF ondecadê,FADDWF ondecadê,F

end

Oito opcodesMáximo: 10

OPERAÇÕES ARITMÉTICAS3

06/08/2017 81

24 – Multiplicação por 32Três opcodes

; 24 - Multiplicação por 32; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

SWAPF ondecadê,FBCF STATUS,CRLF ondecadê,F

end

Máximo: 7

OPERAÇÕES ARITMÉTICAS3

06/08/2017 82

25 – Multiplicação por 33Seis opcodes

; 25 - Multiplicação por 33; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

MOVLW 0x0fANDWF ondecadê,FSWAPF ondecadê,FSWAPF ondecadê,WADDWF ondecadê,WADDWF ondecadê,F

end

OPERAÇÕES ARITMÉTICAS3

06/08/2017 83

26 – Multiplicação por 34Sete opcodes

; 26 - Multiplicação por 34; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

MOVLW 0x0fANDWF ondecadê,FSWAPF ondecadê,FSWAPF ondecadê,WADDWF ondecadê,FMOVF ondecadê,WADDWF ondecadê,F

end

OPERAÇÕES ARITMÉTICAS3

06/08/2017 84

27 – Multiplicação por 35Sete opcodes

; 27 - Multiplicação por 35; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

MOVLW 0x0fANDWF ondecadê,FSWAPF ondecadê,FSWAPF ondecadê,WADDWF ondecadê,FADDWF ondecadê,WADDWF ondecadê,F

end

Page 15: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

15

OPERAÇÕES ARITMÉTICAS3

06/08/2017 85

28 – Multiplicação por 49Sete opcodes

; 28 - Multiplicação por 49; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

MOVLW 0x0fANDWF ondecadê,FSWAPF ondecadê,FSWAPF ondecadê,WADDWF ondecadê,WADDWF ondecadê,WADDWF ondecadê,F

end

OPERAÇÕES ARITMÉTICAS3

06/08/2017 86

29 – Multiplicação por 50Sete opcodes

; 29 - Multiplicação por 50; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

MOVLW 0x0fANDWF ondecadê,FSWAPF ondecadê,FSWAPF ondecadê,WADDWF ondecadê,WADDWF ondecadê,FADDWF ondecadê,F

end

OPERAÇÕES ARITMÉTICAS3

06/08/2017 87

30 – Multiplicação por 64Quatro opcodes

; 30 - Multiplicação por 64; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

RLF ondecadê,FRLF ondecadê,FMOVLW 0x0cANDWF ondecadê,FSWAPF ondecadê,F

end

OPERAÇÕES ARITMÉTICAS3

06/08/2017 88

31 – Multiplicação por 128Quatro opcodes

; 31 - Multiplicação por 128; Argumento inteiro, desprezar overflow

#include <p16f877.inc>constant ondecadê = 0x20

RLF ondecadê,FRLF ondecadê,FRLF ondecadê,FMOVLW 0x08ANDWF ondecadê,FSWAPF ondecadê,F

end

OPERAÇÕES ARITMÉTICAS3

06/08/2017 89

32 – Multiplicação por 0,5

; 32 - Multiplicação por 0,5; Argumento inteiro, desprezar parte fracionária

#include <p16f877.inc>constant ondecadê = 0x20

;divide por 2BCF STATUS,CRRF ondecadê,F

end

Dois opcodes

OPERAÇÕES ARITMÉTICAS3

06/08/2017 90

33 – Multiplicação por 1,5

; 33 - Multiplicação por 1,5; Argumento inteiro, desprezar parte fracionária

#include <p16f877.inc>constant ondecadê = 0x20

BCF STATUS,CRRF ondecadê,WADDWF ondecadê,F

end

Três opcodes

Page 16: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

16

OPERAÇÕES ARITMÉTICAS3

06/08/2017 91

34 – Multiplicação por 2,5

; 34 - Multiplicação por 2,5; Argumento inteiro, desprezar parte fracionária

#include <p16f877.inc>constant ondecadê = 0x20

BCF STATUS,CRRF ondecadê,WADDWF ondecadê,WADDWF ondecadê,F

end

Quatro opcodes

OPERAÇÕES ARITMÉTICAS3

06/08/2017 92

35 – Multiplicação por 3,5; 35 - Multiplicação por 3,5; Argumento inteiro, desprezar parte fracionária

#include <p16f877.inc>constant ondecadê = 0x20

BCF STATUS,CRRF ondecadê,WADDWF ondecadê,WADDWF ondecadê,WADDWF ondecadê,F

end

Cinco opcodes

OPERAÇÕES ARITMÉTICAS3

06/08/2017 93

36 – Multiplicação por 4,5

; 36 - Multiplicação por 4,5; Argumento inteiro, desprezar parte fracionária

#include <p16f877.inc>constant ondecadê = 0x20

BCF STATUS,CRRF ondecadê,WADDWF ondecadê,WADDWF ondecadê,WADDWF ondecadê,WADDWF ondecadê,F

end

Seis opcodes

BCF STATUS,CRRF ondecadê,WBCF STATUS,CRLF ondecadê,FADDWF ondecadê,WADDWF ondecadê,F

Outra opção:

OPERAÇÕES ARITMÉTICAS3

06/08/2017 94

38 – Multiplicação por 0,25; 38 - Multiplicação por 0,25; Argumento inteiro, desprezar parte fracionária

#include <p16f877.inc>constant ondecadê = 0x20

;divide por 2BCF STATUS,CRRF ondecadê,F

;divide por 2BCF STATUS,CRRF ondecadê,F

end

Quatro opcodes

OPERAÇÕES ARITMÉTICAS3

06/08/2017 95

39 – Multiplicação por 0,75

; 39 - Multiplicação por 0,75; Argumento inteiro, desprezar parte fracionária

#include <p16f877.inc>constant ondecadê = 0x20

BCF STATUS,CRRF ondecadê,FBCF STATUS,CRRF ondecadê,WADDWF ondecadê,F

end

Cinco opcodes

OPERAÇÕES ARITMÉTICAS3

06/08/2017 96

40 – Multiplicação por 1,25

; 40 - Multiplicação por 1,25; Argumento inteiro, desprezar parte fracionária

#include <p16f877.inc>constant ondecadê = 0x20

BCF STATUS,CRRF ondecadê,FBCF STATUS,CRRF ondecadê,WADDWF ondecadê,WADDWF ondecadê,F

end

Seis opcodes

MOVF ondecadê,WBCF STATUS,CRRF ondecadê,FBCF STATUS,CRRF ondecadê,FADDWF ondecadê,F

Outra opção*:

*Contribuição de Diego Fernandes Almeida Silva e João Paulo Vieira Cordeiro

Page 17: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

17

OPERAÇÕES ARITMÉTICAS3

06/08/2017 97

41 – Multiplicação por 1,75; 41 - Multiplicação por 1,75; Argumento inteiro, desprezar parte fracionária

#include <p16f877.inc>constant ondecadê = 0x20

BCF STATUS,CRRF ondecadê,FBCF STATUS,CRRF ondecadê,WADDWF ondecadê,WADDWF ondecadê,WADDWF ondecadê,F

end

Sete opcodes

OPERAÇÕES ARITMÉTICAS3

06/08/2017 98

42 – Multiplicação por 40

; 42 - Multiplicação por 40; Argumento inteiro, desprezar parte fracionária

#include <p16f877.inc>constant ondecadê = 0x20

;multiplicação por 16MOVLW 0x0fANDWF ondecadê,FSWAPF ondecadê,F

;multiplicação por 2,5BCF STATUS,CRRF ondecadê,WADDWF ondecadê,WADDWF ondecadê,F

end

Sete opcodes

OPERAÇÕES ARITMÉTICAS3

06/08/2017 99

43 – Multiplicação por 48

; 43 - Multiplicação por 48; Argumento inteiro, desprezar parte fracionária

#include <p16f877.inc>constant ondecadê = 0x20

;multiplicação por 16MOVLW 0x0fANDWF ondecadê,FSWAPF ondecadê,F

;multiplicação por 3BCF STATUS,CRLF ondecadê,WADDWF ondecadê,F

end

Seis opcodes

MOVLW 0x0fANDWF ondecadê,FSWAPF ondecadê,WSWAPF ondecadê,FADDWF ondecadê,FADDWF ondecadê,F

Outra opção:

OPERAÇÕES ARITMÉTICAS3

06/08/2017 100

44 – Multiplicação por 56; 44 - Multiplicação por 56; Argumento inteiro, desprezar parte fracionária

#include <p16f877.inc>constant ondecadê = 0x20

;multiplicação por 16MOVLW 0x0fANDWF ondecadê,FSWAPF ondecadê,F

;multiplicação por 3,5BCF STATUS,CRRF ondecadê,WADDWF ondecadê,WADDWF ondecadê,WADDWF ondecadê,F

end

Sete opcodes

OPERAÇÕES ARITMÉTICAS3

06/08/2017 101

45 – Multiplicação por 80

; 45 - Multiplicação por 56; Argumento inteiro, desprezar parte fracionária

#include <p16f877.inc>constant ondecadê = 0x20

MOVLW 0x0fANDWF ondecadê,FSWAPF ondecadê,WSWAPF ondecadê,FADDWF ondecadê,WADDWF ondecadê,FADDWF ondecadê,F

end

Sete opcodes

OPERAÇÕES ARITMÉTICAS3

06/08/2017 102

xx – Multiplicação por 96

; xx - Multiplicação por 96; Argumento inteiro, desprezar parte fracionária

#include <p16f877.inc>constant ondecadê = 0x20

;multiplicação por 32RLF ondecadê,FMOVLW 0x0eANDWF ondecadê,FSWAPF ondecadê,F

;multiplicação por 3BCF STATUS,CRLF ondecadê,WADDWF ondecadê,F

end

Sete opcodes

Page 18: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

18

OPERAÇÕES ARITMÉTICAS3

06/08/2017 103

xx – Multiplicação por 192; xx - Multiplicação por 96; Argumento inteiro, desprezar parte fracionária

#include <p16f877.inc>constant ondecadê = 0x20

;multiplicação por 64RLF ondecadê,FRLF ondecadê,FMOVLW 0x0cANDWF ondecadê,FSWAPF ondecadê,F

;multiplicação por 3BCF STATUS,CRLF ondecadê,WADDWF ondecadê,F

end

Oito opcodes

DSP4

06/08/2017 104

DSP

DSP4

06/08/2017 105

• DSP – Digital Signal Processor.• Processador digital para sinais.• Sinal: Grandeza física que retrata uma informação.• Processador específico para tratamento digital de sinais.• Neste tipo de aplicação, é muito mais rápido do que a MCU.

Significado

• O ponto forte da DSP é a alta capacidade de realizaçãode operações matemáticas complexas que permitam atransformação de um sinal original em um sinal desejado.

DSP4

06/08/2017 106

• O processamento digital de sinais também pode serrealizado por um P, MCU ou, até mesmo, umcomputador, porém de forma mais lenta.

• A vantagem do uso de computador é a facilidade naalteração de parâmetros e da programação.

• A resposta de um DSP é sempre mais lenta do quea proveniente de um processamento analógico.

• A vantagem do processamento digital é a menorsensibilidade a interferências externas ao processo.

Significado

DSP4

06/08/2017 107

Performance em aplicação específica

• Comparação entre DSP, MCU e P comigual capacidade de processamento (MIPS).

Analógico

DSP

MCU

P

Computador

DSP4

06/08/2017 108

Exemplos de DSP’s32-BIT FLOATING POINT (5% do mercado):

– TI TMS320C3X, TMS320C67xx– AT&T DSP32C– ANALOG DEVICES ADSP21xxx– Hitachi SH-4

16-BIT FIXED POINT (95% do mercado):– TI TMS320C2X, TMS320C62xx– Infineon TC1xxx (TriCore1)– MOTOROLA DSP568xx, MSC810x– ANALOG DEVICES ADSP21xx– Agere Systems DSP16xxx, Starpro2000– LSI Logic LSI140x (ZPS400)– Hitachi SH3-DSP– StarCore SC110, SC140

http://meseec.ce.rit.edu/eecc722-fall2003/722-10-8-2003.pdf, página 13, 2003

Page 19: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

19

DSP4

06/08/2017 109

Exemplos de aplicações• Real/Non-real time procesing• Simulação• Radares militares• Controle• Computadores• Processamento de imagem/som• Internet/redes de computadores• Comunicação digital• Telefonia (móvel, VOIP)• Modem’s (dial-up, 2G/3G, cable)• Televisão digital• Instrumentos musicais

http://meseec.ce.rit.edu/eecc722-fall2003/722-10-8-2003.pdf, página 15, 2003

DSP4

06/08/2017 110

Tipos de aquisição de dados• Non-real time procesing• Um arquivo é gerado com o sinal adquirido.• A aquisição do sinal é feita por um certo tempo.• O processamento é feito sobre o arquivo.• O processamento do arquivo pode ser lento.• A exigência de performance é menor.

• Real time procesing• Não há geração de arquivo.• A aquisição do sinal é feita por um tempo indefinido.• O processamento é feito sobre o sinal continuamente.• A exigência de performance é maior.

DSP4

06/08/2017 111

Dados para o processamento

• Arquivo de amostragem – Sample• Non-real time procesing

• Sinal contínuo infinito – Stream• Real time procesing

DSP4

06/08/2017 112

Exemplos

http://meseec.ce.rit.edu/eecc722-fall2003/722-10-8-2003.pdf, página 18, 2003

DSP4

06/08/2017 113

Programação mais comum

• P: Linguagens de alto nível – Exemplo: Java• MCU: Linguagens de baixo nível – Exemplo: C• DSP: Linguagens de baixo nível – Exemplo: C

• P: Multitarefa• MCU: Monotarefa• DSP: Monotarefa

• Exemplos de sistemas P multitarefa: smartphone, smartTV.• Exemplos de sistemas MCU ou DSP monotarefa: telefone e

TV convencionais.

DSP4

06/08/2017 114

Sinal analógico

t

intensidade

• Pode mudar em qualquer instante.• Pode assumir qualquer valor.• Não possui descontinuidade.• A função é derivável em todos os pontos.

Page 20: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

20

DSP4

06/08/2017 115

Sinal analógico amostrado

t

intensidade

• Pode mudar, apenas, em instantes determinados.• Pode assumir qualquer valor analógico.• É descontínuo no tempo.• Proveniente de circuito de amostra e retenção (sample/hold)

DSP4

06/08/2017 116

Sinal analógico amostradohttp://www.eecs.tufts.edu/~dsculley/tutorial/opamps/sampleAndHold.JPG

http://www.spectrum-soft.com/news/winter97/sample2.gif

DSP4

06/08/2017 117

Sinal analógico quantizadointensidade

• Pode mudar em qualquer instante.• Pode assumir, apenas, valores pré-determinados.• É descontínuo em intensidade.

t

DSP4

06/08/2017 118

Sinal analógico amostrado e quantizado

• Pode mudar, apenas, em instantes determinados.• Pode assumir, apenas, valores pré-determinados.• É descontínuo no tempo e na intensidade.• Proveniente de um conversor D/A.

intensidade

t

DSP4

06/08/2017 119

Parâmetros do sinal analógico processado• Sampling rate.• Taxa de amostragem.• Frequência de amostragem.

• Bit rate.• Taxa de bits.• Bits usados na quantização.

• Exemplo: CD-DA.• 44,1 kHz• 16 bits

DSP4

06/08/2017 120

Exemplo 1• Tempo de 16 horas diárias.• Conversor A/D com resolução de 4 bits.• Período de amostra de 8ms.• Determine o tamanho do arquivo diário.

Page 21: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

21

DSP4

06/08/2017 121

Quantização não linear• O intervalo entre os valores quantizados não é constante.• Valores baixos recebem intervalos baixos.• A resolução é proporcional ao valor instantâneo sinal.• Isto melhora a relação sinal/ruído em sinais alternados.

t

intensidade

DSP4

06/08/2017 122

Quantização não linear• Escala logarítmica.• Usado em som e imagem.

nível 1nível 2nível 3nível 4

nível 5

nível 6

nível 7

DSP4

06/08/2017 123

Exemplo 2• Quantização logarítmica.• O nível 3 vale 6mV.• O nível 4 vale 8mV.• Determine n1, n2, n5 e n6.

3,375mV4,5mV6mV8mV

10,67mV

14,22mV

DSP4

06/08/2017 124

Controle Linear• ASP – Analog Signal Processor• Emprega dispositivos analógicos.• Pode ser elétrico, mecânico, ótico, etc.• Pode ser proporcional, integral, derivativo, etc.• Proporciona o controle mais rápido.• O projeto envolve transformada de Laplace.• Operações matemáticas podem ser feitas or AMP-OP.

• Adição• Subtração• Multiplicação• Divisão

• Radiciação• Logaritmação• Exponencial• Derivação• Integração

DSP4

06/08/2017 125

Controle discreto

Discreto.• Emprega eletrônica digital.• O projeto envolve transformada Z.• A resposta é mais lenta do que no controle analógico.• Problemas: Histereses, propagação de atraso, harmônicos.• Operações matemáticas executadas por uma ULA.

DSP4

06/08/2017 126

ControleProcessado.• Para que a resposta seja rápida, usa-se DSP.• Para resposta lenta, pode-se usar P ou MCU.• O controle envolve tomadas de decisão.• Limiares são definidos para a decisão.

Processado por faixas.• O controle envolve tomadas de decisão.• Limiares são definidos para a decisão.• Faixas de valores para a entrada analógica são definidas.• Para cada faixa, é determinado o valor da saída analógica.

Page 22: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

22

DSP4

06/08/2017 127

Exemplo de controle processado por faixas

• Sistema de refrigeração por ventilador.• Abaixo de 20C, o motor é desligado.• Entre 20C e 25C, o motor recebe 1/4 da potência máxima.• Entre 25C e 30C, o motor recebe 2/4 da potência máxima.• Entre 30C e 35C, o motor recebe 3/4 da potência máxima.• Entre 35C e 40C, o motor recebe a potência máxima.

• O controle processado por faixaspode gerar oscilações na seleçãoda faixa por tempo indeterminado.

DSP4

06/08/2017 128

Vantagens do controle processado

• Facilidade na alteração de parâmetros.• Facilidade de projeto.• Facilidade no acréscimo de novas variáveis.• Pequena variação nos requisitos de hardware.• Facilidade na deteção de defeitos.• Possibilidade de monitoramento computacional.• Grande repetibilidade.

DSP4

06/08/2017 129

Desvantagens do controle processado

• Lentidão – Inviável para processos que requeremmonitoramento de muita informação em pouco tempo.

• Limitada faixa de temperatura de operação.• Para projetos pequenos, a versão analógica pode ser

mais barata.• Menor liberdade de escolha dos conceitos envolvidos

no projeto.

DSP4

06/08/2017 130

Controle digital

SensoresProcessamento

DigitalAtuadores

Input Output

DSP4

06/08/2017 131

Controle

• O controle é feito por meio da aplicação de funçõesdeterminadas.

• No controle analógico, estas funções são obtidas, deforma aproximada, por meio de circuitos analógicos.

• No controle processado, estas funções são obtidas apartir das funções básicas contidas na ULA.

• Nas DSP’s, a ULA pode conter funções maissofisticadas, a fim de facilitar a programação e arapidez de execução do programa.

DSP4

06/08/2017 132

ULA

MCU ou P:• ULA com poucas funções.• Funções sofisticadas requerem vários ciclos de instrução.

DSP:• ULA com muitas funções.• ULA com as funções específicas (DSP específica).• Um ou poucos ciclos para realizar operações sofisticadas.

Page 23: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

23

DSP4

06/08/2017 133

Realimentação

• Se nenhum sensor é afetado pelos atuadores, o controleé de malha aberta.

• Se, pelo menos, um sensor é afetado por, pelo menos,um atuador, o controle é de malha fechada.

• Um controle de malha aberta é transformado em controlede malha fechada por meio da realimentação (feedback).

DSP4

06/08/2017 134

Controle digital

SensoresProcessamento

DigitalAtuadores

Input Output

Feedback

DSP4

06/08/2017 135

ExemplosSensores• De posição• De temperatura• De pressão• De umidade• De luz• De força• De Ph• De som• De concentração• De viscosidade

Atuadores• Motor• Válvula solenóide• Aquecedor/Forno• Lâmpada• Alto-falante

DSP4

06/08/2017 136

Conversão analógico-digital

Sensores Conversores A/D

BarramentoAnalógico

Processamento

Digital

BarramentoDigital

Opções:• Conversor A/D separado.• Conversor A/D embutido no sensor.• Conversor A/D embutido na DSP ou MCU.

DSP4

06/08/2017 137

Sensoriamento de longa distância

• Para pequenas distâncias ou para sensores espalhados,a transmissão pode ser feita de forma paralela.

• Para longas distâncias ou para sensores concentrados,a transmissão pode ser feita de forma serial.

Sensores Conversores A/D

BarramentoAnalógico

Processamento

Digital

Inlcui entrada serial

Conversor paralelo /

serial

BarramentoDigital 1 bit

DSP4

06/08/2017 138

Sensoriamento de longa distância

Sensores Conversores A/D

BarramentoAnalógico

Processamento

Digital

Inlcui entrada serial

Conversor paralelo /

serial

BarramentoDigital 1 bit

Opções:• Conversores A/D e serial separados.• Conversor A/D embutido no sensor e serial separado.• Conversores A/D e serial embutidos no sensor.

• Como o conversor serial é simplex, há, apenas, uma via desaída de dados, mesmo se o protocolo for Microwire, SPI, etc.

Page 24: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

24

DSP4

06/08/2017 139

Derivadas• Muitas vezes, o valor médio ou instantâneo de

uma grandeza não é interessante.• Há casos em que a variação desta grandeza é

mais importante.• Como exemplo, tem-se o gradiente térmico, que

pode ser mais prejudicial a um sistemaelétrico/mecânico do que uma temperatura alta.

• Sensores especiais conseguem aplicar a derivadaprimeira no valor instantâneo da grandeza medida.

• A forma mais fácil de obter a derivada é por meiodo uso de amplificadores derivadores a AMP-OP.

• Outras funções, como logarítmo ou derivadasegunda, também podem ser obtidos.

DSP4

06/08/2017 140

Derivadas – Exemplo

• Em elevadores, a sacudida é o que determina oconforto para os usuários.

• Em robótica, a sacudida é o que determina o estressemecânico das partes móveis e do objeto manipulado.

DSP4

06/08/2017 141

Adequação do sensoriamento• A adequação do valor medido ao

processamento através da aplicação de algumafunção de transformação (derivação,integração, logaritmação, etc) geralmente éfeita de forma analógica diretamente no sinalfornecido pelo sensor.

• Esta operação pode ser feita por meio de umAMP-OP.

• Caso esta manipulação precise receberparâmetros configuráveis ou precise seralterada livremente, pode ser mais interessanteaplicar a alteração nos valores digitais.

DSP4

06/08/2017 142

Adequação do sensoriamento

SensoresDerivaçãoIntegração

LogaritmaçãoPotenciação

etc

Processamento

DigitalConversores

A/D

SensoresProcessamento Digital

Inlcui derivação, integraçãologaritmação, potenciação,

etc

Conversores A/D

Opção 1

Opção 2

APLICAÇÕES DE DSP5

APLICAÇÕES DE DSP

06/08/2017 143

APLICAÇÕES DE DSP5

06/08/2017 144

Exemplo: Som em computação• Exemplo do computador pessoal.• A CPU poderia lidar com o tratamento de som.• Isso tornaria a performance do computador muito baixa

para outras tarefas durante o tratamento do áudio.• Uma placa de som (off-borad ou on-board) faz o

tratamento do som, liberando a CPU para outras tarefas.• A placa de som possui um DSP (se for on-board, esta

DSP está incorporada ao chipset.• O tratamento do som pode incluir desde a conversão D/A,

como a decodificação de algoritmos de compactação e acolocação de efeitos de áudio.

Page 25: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

25

APLICAÇÕES DE DSP5

06/08/2017 145

Exemplo: Som em computaçãoAPLICAÇÕES DE DSP5

06/08/2017 146

http://www.soundblaster.com/images/desktop/products/zx_pdtimg1.png

Audio Processor: Sound Core3D

Audio Resolution: 24-Bit

Digital Audio Conv ertor (DAC): Cirrus Logic

Signal to Noise Ratio (SNR) (20kHz Low-pass f ilter, A-Wgt): 116dB

Maximum Play back Quality : 5.1 : Up to 96kHz Stereo Direct: Up to 192kHz

Frequency Response @96kHz:

Front Channel Out : 10Hz to 45kHz Rear Channel Out : 15Hz to 45kHz Center Out : 10Hz to 45kHz Headphone (33 ohms): 10Hz to 45kHz

Frequency Response @192kHz (Stereo Direct Only ):

Front Channel Out : 10Hz to 88kHz

16-bit to 24-bit Recording Sample Rates:

8,11.025,16, 22.05, 24, 32, 44.1, 48, 96 (kHz)

16-bit to 24-bit Play back Sample Rates:

8,11.025,16, 22.05, 24, 32, 44.1, 48, 96, 192 (kHz)

Maximum Recording Quality : Up to 24-bit/96kHz

I/O Ports (Main Card):

Headphone : 1 x Amplif ied 3.5mm jack Speaker Out : 3 x 3.5mm jacks(F/R/C-Sub)Line / Mic In : 1x shared 3.5mm jackOptical Out : 1x TOSLINKOptical In : 1x TOSLINK

Audio Control Module / Front Panel Connectiv ity:

Volume Control Knob Built-in Beam-Forming Microphone Headphone-Out : 1x 3.5mm jack, 1x 1/4” jackMicrophone-In : 1x 3.5mm jack, 1x 1/4” jack

600 Ohm Amplif ied Headphone Output: Maxim MAX97220A

Exemplo: Som em computação

APLICAÇÕES DE DSP5

06/08/2017 147

• Exemplo do computador pessoal.• A CPU poderia lidar com o tratamento de imagem.• O tratamento de imagem é muito mais crítico do que o

tratamento de som.• Jogos 3D têm impulsionado a indústria de placas de

processamento de imagem (on-board e,principalmente, off-board).

• O processamento é tão grande que essas placasutilizam GPU (CPU para gráficos), que consomemmuita energia, aquecem bastante e podem, atémesmo, ser mais caras do que a placa-mãe ou a CPU.

• O processamento de imagem é tão intenso que asplacas-mãe possuem barramento para uso específicodo tratamento de imagem.

Exemplo: Imagem em computaçãoAPLICAÇÕES DE DSP5

06/08/2017 148

Exemplo: Imagem em computação

http://www.nvidia.com/content/titan/us/img/titan_angle-view.png

http://images.productwiki.com/upload/images/nvidia_geforce_gt_520m.pnghttp://www.geforce.com/Active/en_US/shared/images/products/geforce-gt-610/geforce-gt-610-3qtr_gallery_preview.png

APLICAÇÕES DE DSP5

06/08/2017 149

Exemplo: IMGLIB

http://www.ti.com/tool/sprc264

• C6000 Image Processing Library (IMGLIB) is an optimizedimage/video processing function library for C programmers.

• It includes C-callable general-purpose image/videoprocessing routines that are typically used incomputationally intensive real-time applications.

• With these routines, you can achieve higher performancethan equivalent code written in standard ANSI C language.

• By providing ready-to-use DSP functions with source code,IMGLIB can significantly shorten your applicationdevelopment time.

APLICAÇÕES DE DSP5

06/08/2017 150

Classes de operações com imagem – IMGLIB

http://www.ti.com/lit/ug/spruf30a/spruf30a.pdf

• Análise de imagem.• Filtragem.• Compressão/descompressão.

Page 26: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

26

APLICAÇÕES DE DSP5

06/08/2017 151

Exemplos de operações de análise de imagem

http://www.ti.com/lit/ug/spruf30a/spruf30a.pdf

APLICAÇÕES DE DSP5

06/08/2017 152

Arquitetura de câmera DSP

http://www.electronicproducts.com/images2/z32texad0202.gif

APLICAÇÕES DE DSP5

06/08/2017 153

Exemplos de funções de câmera DSP• Ajuste à luminosidade.• Ajuste da temperatura de cor.• Ajuste de posicionamento.• Foco automático.• Flash automático.• Zoom máximo automático em função da macro.• Identificação de padrões (ex: sorriso).• Disparo automático por movimento ou som.• Compressão (JPG, LZH, MPEG, outros).• Redução de ruído (som e imagem).

APLICAÇÕES DE DSP5

06/08/2017 154

Exemplo: SGTL5000

http://cache.freescale.com/files/analog/doc/data_sheet/SGTL5000.pdf?pspll=1

• The SGTL5000 is a Low Power Stereo Codecwith Headphone Amp from Freescale, and isdesigned to provide a complete audio solutionfor portable products needing line-in, mic-in,line-out, headphone-out, and digital I/O.

• Target markets include portable mediaplayers, GPS units, and smart phones.

APLICAÇÕES DE DSP5

06/08/2017 155

Exemplo: SGTL5000

http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=SGTL5000&nodeId=01435959C059C3

Analog InputsStereo Line In

Support for external analog inputCodec bypass for low power

MIC MIC bias providedProgrammable MIC gainAuto volume control

ADC 85 dB SNR and -70 dB THD+N (VDDA=1.8 V)93 dB SNR and -73 dB THD+N (VDDA = 3.3 V)

Analog OutputsDAC/Line Out

100 dB SNR and -85 dB THD+N (VDDA=3.3 V)DAP/HP Output

98 dB SNR and -80 dB THD+N(VDDA=1.8 V 16 Ohm load, DAC to headphone)45 mW max into 16 Ohm load @ 3.3 VCapless designBest in class PSRR without Lin Reg.Only two external components needed for digital playbackRamped digital volumesPopless volume0.5 db analog volume steps (0 db to – 64 db)

Integrated Digital Audio ProcessingSurround, bass, tone control/parametric equalizer/graphic equalizerDigital I/OI2S port to allow routing to applications processor

APLICAÇÕES DE DSP5

06/08/2017 156

Exemplo: SGTL5000

http://cache.freescale.com/files/graphic/block_diagram/SGTL5000_BD.gif

Page 27: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

27

APLICAÇÕES DE DSP5

06/08/2017 157

Exemplo: SGTL5000

http://cache.freescale.com/files/analog/doc/data_sheet/SGTL5000.pdf?pspll=1

APLICAÇÕES DE DSP5

06/08/2017 158

Exemplo de sistema programável com DSP

http://line6.com/tcddk/images/devbackground.jpg

APLICAÇÕES DE DSP5

06/08/2017 159

Exemplo de sistema programável com DSP

http://www.cuk-audio.com/uploads/images/SymNet_Designer_Glamour3o.pnghttp://www.cuk-audio.com/uploads/images/8x8DSPFront_MF.jpg

APLICAÇÕES DE DSP5

06/08/2017 160

dsPIC30F

http://www.microchip.com/_images/dsPIC30FArchblkdgrm.jpg

APLICAÇÕES DE DSP5

06/08/2017 161

dsPIC33F/E

http://www.microchip.com/_images/dsPIC33FArchblkdgrm.jpg

APLICAÇÕES DE DSP5

06/08/2017 162

SUMMARY• High performance 32-bit/40-bit floating-point processor optimized for high

performance audio processing• Single-instruction, multiple-data (SIMD) computational architecture• On-chip memory—2M bits of on-chip SRAM and 6M bits of on-chip mask

programmable ROM• Code compatible with all other members of the SHARC family• The ADSP-21367/ADSP-21368/ADSP-21369 are available with a 400 MHz

core instruction rate with unique audiocentric peripherals such as the digitalapplications interface, S/PDIF transceiver, serial ports, 8-channelasynchronous sample rate converter, precision clock generators, and more.

DEDICATED AUDIO COMPONENTS• S/PDIF-compatible digital audio receiver/transmitter• 4 independent asynchronous sample rate converters (SRC)• 16 PWM outputs configured as four groups of four outputs• ROM-based security features include• JTAG access to memory permitted with a 64-bit key• Protected memory regions that can be assigned to limit access under

program control to sensitive code• PLL has a wide variety of software and hardware multiplier/divider ratios

ADSP-21367/ADSP-21368/ADSP-21369

Page 28: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

28

APLICAÇÕES DE DSP5

06/08/2017 163

ADZS

-213

69-E

ZLIT

E-N

Dht

tp://

med

ia.d

igike

y.co

m/p

hoto

s/A

nalo

g%20

Devi

ces%

20Ph

otos

/ADZ

S-21

369-

EZLI

TE.J

PG

APLICAÇÕES DE DSP5

06/08/2017 164

ADZS

-213

69-E

ZLIT

E-N

D

http

://m

edia

.dig

ikey.

com

/pho

tos/

Ana

log%

20De

vice

s%20

Phot

os/A

DZS-

2136

9-EZ

LITE

.JPG

APLICAÇÕES DE DSP5

06/08/2017 165

VisualDSP++APLICAÇÕES DE DSP5

06/08/2017 166

VisualDSP++

http://www.automation-drive.com/EX/05-13-10/visualdsp_01_b.gif

APLICAÇÕES DE DSP5

06/08/2017 167

Exemplo de aplicação

http://www.ferrofish.de/gfx/b4000.jpg

Processadores:• Sharc DSP• Cortex 3 ARM

APLICAÇÕES DE DSP5

06/08/2017 168

Sistema embarcado

http://www.microchip.com/_images/dsPIC33FArchblkdgrm.jpg

• Embedded system.• Permite o uso de apenas alguns aplicativos.• Possui aplicação específica.• Tem baixo custo.• Performance facilmente medida.• Ideal para DSP.• Exemplo: Windows Embedded.

Page 29: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

29

APLICAÇÕES DE DSP5

06/08/2017 169

Exemplo de sistema embarcado com P

Placa-mãe dedicada

Sistema operacional dedicado

APLICAÇÕES DE DSP5

06/08/2017 170

Exemplo de sistema embarcado com P

Placa-mãe de PC rodando Windows™

6 INTEL® 8051

17106/08/2017

INTEL® 8051

6 INTEL® 8051

17206/08/2017

Siglas

• R0, R1, R2, R3,R4, R5, R6, R7: GPR´s (8 bits).• A: Acumulador (work register) (8 bits).• IRAM: Internal RAM address (8 bits).• #data: Palavra fornecida na instrução (8 bits).• PC: Program Counter (16 bits).• DPTR: Data Pointer: GPR (16 bits).

6 INTEL® 8051

17306/08/2017

Arquitetura

Program& Data

data bus

data bus

data bus

File registers

6 INTEL® 8051

17406/08/2017

Instruction Set00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f

00 NOP AJMP LJMP RR INC INC INC INC INC INC INC INC INC INC INC INC

10 JBC ACALL LCALL RRC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC

20 JB AJMP RET RL ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD

30 JNB ACALL RETI RLC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC

40 JC AJMP ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL

50 JNC ACALL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL

60 JZ AJMP XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL

70 JNZ ACALL ORL JMP MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

80 SJMP AJMP ANL MOVC DIV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

90 MOV ACALL MOV MOVC SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB

a0 ORL AJMP MOV INC MUL ? MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

b0 ANL ACALL CPL CPL CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE

c0 PUSH AJMP CLR CLR SWAP XCH XCH XCH XCH XCH XCH XCH XCH XCH XCH XCH

d0 POP ACALL SETB SETB DA DJNZ XCHD XCHD DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ

e0 MOVX AJMP MOVX MOVX CLR MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

f0 MOVX ACALL MOVX MOVX CPL MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

Page 30: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

30

6 INTEL® 8051

17506/08/2017

Instruction Set – Parte 1

Mnem SignificadoACALL Absolute CallADD Add Accumulator (With Carry)ADDC Add Accumulator (With Carry)AJMP Absolute JumpANL Bitwise ANDCJNE Compare and Jump if Not EqualCLR Clear RegisterCPL Complement RegisterDA Decimal AdjustDEC Decrement RegisterDIV Divide Accumulator by BDJNZ Decrement Register and Jump if Not ZeroINC Increment Register

Mnem SignificadoJB Jump if Bit SetJBC Jump if Bit Set and Clear BitJC Jump if Carry SetJMP Jump to AddressJNB Jump if Bit Not SetJNC Jump if Carry Not SetJNZ Jump if Accumulator Not ZeroJZ Jump if Accumulator ZeroLCALL Long CallLJMP Long JumpMOV Move MemoryMOVC Move Code MemoryMOVX Move Extended MemoryMUL Multiply Accumulator by BNOP No OperationORL Bitwise OR

6 INTEL® 8051

17606/08/2017

Mnem SignificadoPOP Pop Value From StackPUSH Push Value Onto StackRET Return From SubroutineRETI Return From InterruptRL Rotate Accumulator LeftRLC Rotate Accumulator Left Through CarryRR Rotate Accumulator RightRRC Rotate Accumulator Right Through CarrySETB Set BitSJMP Short JumpSUBB Subtract From Accumulator With BorrowSWAP Swap Accumulator NibblesXCH Exchange BytesXCHD Exchange DigitsXRL Bitwise Exclusive OR

Instruction Set – Parte 2

6 INTEL® 8051

17706/08/2017

General Purpose Registers

• Oito registradores.• R0, R1, R2, R3,

R4, R5, R6, R7.• Selecionados

através do opcode.

R0 R1 R2 R3 R4 R5 R6 R708 09 0a 0b 0c 0d 0e 0f

00 INC INC INC INC INC INC INC INC

10 DEC DEC DEC DEC DEC DEC DEC DEC

20 ADD ADD ADD ADD ADD ADD ADD ADD

30 ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC

40 ORL ORL ORL ORL ORL ORL ORL ORL

50 ANL ANL ANL ANL ANL ANL ANL ANL

60 XRL XRL XRL XRL XRL XRL XRL XRL

70 MOV MOV MOV MOV MOV MOV MOV MOV

80 MOV MOV MOV MOV MOV MOV MOV MOV

90 SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB

a0 MOV MOV MOV MOV MOV MOV MOV MOV

b0 CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE

c0 XCH XCH XCH XCH XCH XCH XCH XCH

d0 DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ

e0 MOV MOV MOV MOV MOV MOV MOV MOV

f0 MOV MOV MOV MOV MOV MOV MOV MOV

6 INTEL® 8051

17806/08/2017

Operações entre o acumulador e o GPR

R0 R1 R2 R3 R4 R5 R6 R708 09 0a 0b 0c 0d 0e 0f

20 ADD ADD ADD ADD ADD ADD ADD ADD

30 ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC

40 ORL ORL ORL ORL ORL ORL ORL ORL

50 ANL ANL ANL ANL ANL ANL ANL ANL

60 XRL XRL XRL XRL XRL XRL XRL XRL

90 SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB

• A resposta vai para o acumulador.• O acumulador é o primeiro operando.• O GPR é o segundo operando.• A = R op A• 1 byte (sem argumentos).

ADD AdiçãoADDC Adição com carryORL ORANL AND XRL XOR SUBB Subtração com borrow

6 INTEL® 8051

17906/08/2017

Operações com o GPR• A resposta vai para o GPR.• Um operando.• R = op (R)• 1 byte (sem argumentos).

R0 R1 R2 R3 R4 R5 R6 R708 09 0a 0b 0c 0d 0e 0f

00 INC INC INC INC INC INC INC INC

10 DEC DEC DEC DEC DEC DEC DEC DEC

INC IncrementoDEC Decremento

6 INTEL® 8051

18006/08/2017

R0 R1 R2 R3 R4 R5 R6 R708 09 0a 0b 0c 0d 0e 0f

70 MOV MOV MOV MOV MOV MOV MOV MOV

• O 8-bit data é copiado no GPR.• O dado é o operando.• R byte• 2 bytes (um argumento).

Operações de gravação de GPR

Page 31: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

31

6 INTEL® 8051

18106/08/2017

• O segundo operando é copiado no primeiro operando.• 1 byte (sem argumentos).

R0 R1 R2 R3 R4 R5 R6 R708 09 0a 0b 0c 0d 0e 0f

e0 MOV MOV MOV MOV MOV MOV MOV MOV

f0 MOV MOV MOV MOV MOV MOV MOV MOV

MOV A RMOV R A

Operações de movimentação entre GPR e A6 INTEL® 8051

18206/08/2017

• O segundo operando é copiado no primeiro operando.• Somente a memória interna pode ser acessada.• O argumento é o 8-bit IRAM address.• 2 bytes (um argumento).

R0 R1 R2 R3 R4 R5 R6 R708 09 0a 0b 0c 0d 0e 0f

80 MOV MOV MOV MOV MOV MOV MOV MOV

a0 MOV MOV MOV MOV MOV MOV MOV MOV

MOV IRAM RMOV R IRAM

Operações de movimentação com GPR e IRAM

6 INTEL® 8051

18306/08/2017

Operações de permutação entre GPR e A – XCH• Exchange bytes.• A R.• R A.• 1 byte (sem argumentos).

R0 R1 R2 R3 R4 R5 R6 R708 09 0a 0b 0c 0d 0e 0f

c0 XCH XCH XCH XCH XCH XCH XCH XCH

6 INTEL® 8051

18406/08/2017

Operações de decremento de GPR – DJNZ

R0 R1 R2 R3 R4 R5 R6 R708 09 0a 0b 0c 0d 0e 0f

d0 DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ

• Decrement and Jump if Not Zero.• O argumento é o 8-bit relative address da program memory.• 2 bytes (um argumento).

6 INTEL® 8051

18506/08/2017

Operação de comparação com GPR – CJNE

R0 R1 R2 R3 R4 R5 R6 R708 09 0a 0b 0c 0d 0e 0f

b0 CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE

• Compare and Jump If Not Equal.• O segundo operando é comparado com primeiro operando.• O primeiro operando é o GPR.• O segundo operando é o 8-bit data.• O primeiro argumento é o 8-bit data.• O segundo argumento é o 8-bit relative address.• 3 bytes (dois argumentos).

6 INTEL® 8051

18606/08/2017

Resumo das operações sobre GPRR0-7 Endereçamento

direto Bytes08-0f

00 INC R inc R 110 DEC R dec R 120 ADD A A + R 130 ADDC A A + R 140 ORL A A or R 150 ANL A A and R 160 XRL A A xor R 170 MOV R #data 280 MOV IRAM R 290 SUBB A A - R 1a0 MOV R IRAM 2b0 CJNE Compara R e #data 3c0 XCH A R, R A 1d0 DJZN R R-1 2e0 MOV A R 1f0 MOV R A 1

• 128 instruções.• Metade das instruções.

Page 32: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

32

6 INTEL® 8051

18706/08/2017

Endereçamento indireto

• Um GPR contém o 8-bit IRAM address.• O endereçamento indireto é sinalizado por @.• O GPR pode ser R0 ou R1.• O argumento é @R0 ou @R1.

6 INTEL® 8051

18806/08/2017

Endereçamento indiretoR0-7 Endereçamento

direto08-0f

00 INC R inc R10 DEC R dec R20 ADD A A + R30 ADDC A A + R40 ORL A A or R50 ANL A A and R60 XRL A A xor R70 MOV R data80 MOV IRAM R90 SUBB A A - Ra0 MOV R RAMb0 CJNE Compara R e datac0 XCH A R, R Ad0 DJZN R R-1e0 MOV A Rf0 MOV R A

@R0 @R1 Endereçamentoindireto06 07

00 INC INC @R inc @R10 DEC DEC @R dec@R20 ADD ADD A A + @R30 ADDC ADDC A A + @R40 ORL ORL A A or @R50 ANL ANL A A and @R60 XRL XRL A A xor @R70 MOV MOV @R byte80 MOV MOV IRAM @R90 SUBB SUBB A A - @Ra0 MOV MOV @R IRAMb0 CJNE CJNE Compara @R e datac0 XCH XCH A @R, @R A

e0 MOV MOV A @Rf0 MOV MOV @R A

6 INTEL® 8051

18906/08/2017

Operações entre A, IRAM e dataOperação Bytes

42 ORL IRAM = IRAM or A 252 ANL IRAM = IRAM and A 262 XRL IRAM = IRAM xor A 2f5 MOV IRAM A 2

Operação Bytes24 ADD A = A + data 234 ADDC A = A + data 244 ORL A = A or data 254 ANL A = A and data 264 XRL A = A xor data 274 MOV A data 294 SUBB A = A - data 2b4 CJNE Compara A e data 3

Operação Bytes

25 ADD A = A + IRAM 235 ADDC A = A + IRAM 245 ORL A = A or IRAM 255 ANL A = A and IRAM 265 XRL A = A xor IRAM 2e5 MOV A IRAM 295 SUBB A = A - IRAM 2c5 XCH A IRAM, IRAMA 2b5 CJNE Compara A e IRAM 385 MOV IRAM IRAM 3

Operação Bytes

43 ORL IRAM = IRAM or data 353 ANL IRAM = IRAM and data 363 XRL IRAM = IRAM xor data 375 MOV IRAM data 3

Nibble menos signific. Bytesd6 XCHD A @R, @R A 2d7 XCHD A @R, @R A 2

6 INTEL® 8051

19006/08/2017

Operações sobre A ou sobre IRAM

04 Operação Bytes00 INC A inc A 110 DEC A dec A 1e4 CLR A 0 1f4 CPL A A + 1 1

05 Operação Bytes00 INC IRAM inc IRAM 210 DEC IRAM dec IRAM 2d0 DJZN IRAM IRAM-1 3

6 INTEL® 8051

19106/08/2017

Operações sobre bits

Operação no bit(address) Bytes

b2 CPL bit(address) /bit(address) 2c2 CLR bit(address) 0 2d2 SETB bit(address) 1 2

Operação com acumulador Bytes

03 RR Rotate AccumulatorRight 1

13 RRC Rotate Accumulator Right Through Carry 1

23 RL Rotate AccumulatorLeft 1

33 RLC Rotate Accumulator Left Through Carry 1

Operação no C e no b Bytes72 ORL C C or bit address 282 ANL C C andbit address 2a0 ORL C C or /bit address 2b0 ANL C C and /bit address 292 MOV bit address C 2A2 MOV C bit address 2

Operação no carry Bytesb3 CPL C /C 1c3 CLR C 0 1d3 SETB C 1 1

6 INTEL® 8051

19206/08/2017

Outras operações lógicas/aritméticas

Operação Bytes00 NOP None 184 DIV Divide Accumulatorby B 1a4 MUL Multiply Accumulatorby B 1c4 SWAP Swap AccumulatorNibbles 1d4 DA Decimal Adjust Accumulator 1

Page 33: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

33

6 INTEL® 8051

19306/08/2017

DPTR

Operação Bytes73 JMP Jump to DPTR + A 1A3 INC Increment DPTR 190 MOV DPTR data16 393 MOVC A @(A + DPTR) 1E0 MOVX A @DPTR 1F0 MOVX @DPTRA 1

• Data pointer.• 16-bit GPR• @DPTR: Endereçamento indireto.• @DPTR indica o 16-bit address da memória externa.• @(A+DPTR) indica o 16-bit address da memória de programa.

6 INTEL® 8051

19406/08/2017

External Memory

• XRAM• 16-bit program counter• A program memory também é chamada de code memory.• Parte da program memory pode ser externa.

Operação Bytese0 MOVX A @DPTR 1e2 MOVX A @R0 1e3 MOVX A @R1 1f0 MOVX @DPTR A 1f2 MOVX @R0 A 1f3 MOVX @R1 A 1

6 INTEL® 8051

19506/08/2017

Program Memory

• 8-bit program memory• 16-bit program counter• A program memory também é chamada de code memory.• Parte da program memory pode ser externa.

Operação Bytes83 MOVC A @(A + PC) 193 MOVC A @(A + DPTR) 1

6 INTEL® 8051

19606/08/2017

• Long call – Long jump.• Três bytes de instrução.• A program memory possui 16 bits de endereço.• São 64k bytes de memória.• O low byte <A07:A00> é escrito pelo terceiro byte da

instrução.• O high byte <A07:A00> é escrito pelo segundo byte da

instrução.• Na instrução ACALL, a pilha sofre um push de dois bytes

com o endereço da instrução seguinte a ACALL.

LJMP / LCALL

6 INTEL® 8051

19706/08/2017

Jump / Call

Operação no carry Bytes

02 LJMP Long jump within 2K block 312 LCALL Long call within 2K block 380 SJMP Short Jump 2C0 PUSH Push Value Onto Stack 2D0 POP Pop Value From Stack 222 RET Return From Subroutine 132 RETI Return From Interrupt 1

6 INTEL® 8051

19806/08/2017

AJMP / ACALL• Absolute call – Absolute jump.• Dois bytes de instrução.• A program memory possui 16 bits de endereço.• São 64k bytes de memória.• O low byte <A07:A00> provém do segundo byte da instrução.• Os três bits menos significativos do high byte <A10:A08> são

escritos pelo primeiro byte da instrução.• Os cinco bits mais significativos do high byte <A15:A11> não

são alterados.• São alterados os 11 bits menos significativos <A10:A00>

totalizando 2k bytes.• O salto está restrito a 1/32 da program memory.• Na instrução ACALL, a pilha sofre um push de dois bytes.

Page 34: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

34

6 INTEL® 8051

19906/08/2017

• Absolute call – Absolute jump.• A program memory é dividida em oito páginas.• Cada página possui 256 endereços.• Cada página utiliza oito bits de endereço.• A seleção da página é feita por três bits.• Os três bits de seleção de página estão contidos no opcode.• As instruções ACALL e AJMP consomem dois bytes.• O primeiro byte identifica a instrução e a página.• O segundo byte identifica o endereço dentro da página.• A palavra “absolute” indica que é permitido mudar de página.• São usados 11 (3+8) bits de endereço.• O tamanho máximo de programa acessável é de 2k bytes.

AJMP / ACALL6 INTEL® 8051

20006/08/2017

Mnem Page A10:A0901 AJMP

0 00011 ACALL

21 AJMP 1 001

31 ACALL

41 AJMP 2 010

51 ACALL

61 AJMP 3 011

71 ACALL

81 AJMP 4 100

91 ACALL

a1 AJMP 5 101b1 ACALL

c1 AJMP 6 110

d1 ACALL

e1 AJMP 7 111

f1 ACALL

Abso

lute

cal

l with

in 2

K bl

ock

Abso

lute

jum

p w

ithin

2K

bloc

k

AJMP / ACALL

6 INTEL® 8051

20106/08/2017

Outros jumpsJump if not equal Bytes

b4 CJNE Compara A e data 3b5 CJNE Compara A e IRAM 3

b6-b7 CJNE Compara @R e data 3b8-bf CJNE Compara R e data 3

Jump Bytes10 JBC Jump if Bit Set and Clear Bit 320 JB Jump if Bit Set 330 JNB Jump if Bit Not Set 340 JC Jump if Carry Set 250 JNC Jump if Carry Not Set 260 JZ Jump if AccumulatorZero 270 JNZ Jump if Accumulator Not Zero 273 JMP Jump to Data Pointer + Accumulator 1

Jump if not zero Bytesd5 DJZN Decrementa IRAM 3

d6-d7 DJZN Decrementa @R 3d8-df DJZN Decrementa R 3

6 INTEL® 8051

98SUBB A,R0A A addc R0 1

99SUBB A,R1A A addc R1 1

9aSUBB A,R2A A addc R2 1

9bSUBB A,R3A A addc R3 1

9cSUBB A,R4A A addc R4 1

9dSUBB A,R5A A addc R5

1

9eSUBB A,R6A A addc R6 1

9fSUBB A,R7A A addc R7 1

20206/08/2017

Sintaxe

28ADD A,R0A A add R0 1

29ADD A,R1A A add R1 1

2aADD A,R2A A add R2 1

2bADD A,R3A A add R3 1

2cADD A,R4A A add R4 1

2dADD A,R5A A add R5

1

2eADD A,R6A A add R6 1

2fADD A,R7A A add R7 1

38ADDC A,R0A A addc R0 1

39ADDC A,R1A A addc R1 1

3aADDC A,R2A A addc R2 1

3bADDC A,R3A A addc R3 1

3cADDC A,R4A A addc R4 1

3dADDC A,R5A A addc R5

1

3eADDC A,R6A A addc R6 1

3fADDC A,R7A A addc R7 1

Operações aritméticas entre A e GPR

6 INTEL® 8051

58ANL A,R0A A anl R0 1

59ANL A,R1A A anl R1 1

5aANL A,R2A A anl R2 1

5bANL A,R3A A anl R3

1

5cANL A,R4A A anl R4 1

5dANL A,R5A A anl R5 1

5eANL A,R6A A anl R6 1

5fANL A,R7A A anl R7 1

20306/08/2017

Sintaxe

68XRL A,R0A A xrl R0 1

69XRL A,R1A A xrl R1 1

6aXRL A,R2A A xrl R2 1

6bAXRLDD A,R3A A xrl R3 1

6cXRL A,R4A A xrl R4 1

6dXRL A,R5A A xrl R5

1

6eXRL A,R6A A xrl R6 1

6fXRL A,R7A A xrl R7 1

Operações lógicas entre A e GPR

48ORL A,R0A A orl R0 1

49ORL A,R1A A orl R1 1

4aORL A,R2A A orl R2 1

4bORL A,R3A A orl R3

1

4cORL A,R4A A orl R4 1

4dORL A,R5A A orl R5 1

4eORL A,R6A A orl R6 1

4fORL A,R7A A orl R7 1

6 INTEL® 8051

20406/08/2017

Sintaxe

f8MOV R0,AR0 A 1

f9MOV R1,AR1 A 1

faMOV R2,AR2 A 1

fbMOV R3,AR3 A 1

fcMOV R4,AR4 A 1

fdMOV R5,AR5 A

1

feMOV R6,AR6 A 1

ffMOV R7,AR7 A 1

e8MOV A,R0A R0 1

e9MOV A,R1A R1 1

eaMOV A,R2A R2 1

ebMOV A,R3A R3 1

ecMOV A,R4A R4 1

edMOV A,R5A R5

1

eeMOV A,R6A R6 1

efMOV A,R7A R7 1

c8XCH A,R0AR0, R0A 1

c9XCH A,R1AR1, R1A 1

caXCH A,R2AR2, R2A

1

cbXCH A,R3AR3, R3A 1

ccXCH A,R4AR4, R4A 1

cdXCH A,R5AR5, R5A 1

ceXCH A,R6AR6, R6A 1

cfXCH A,R7AR7, R7A 1

Operações de movimentação entre A e GPR

Page 35: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

35

6 INTEL® 8051

20506/08/2017

Sintaxe

08INC R0R0 R0 + 1 1

09INC R1R1 R1 + 1 1

0aINC R2R2 R2 + 1 1

0bINC R3R3 R3 + 1 1

0cINC R4R4 R4 + 1 1

0dINC R5R5 R5 + 1

1

0eINC R6R6 R6 + 1 1

0fINC R7R7 R7 + 1 1

18DEC R0R0 R0 – 1 1

19DEC R1R1 R1 – 1 1

1aDEC R2R2 R2 – 1 1

1bDEC R3R3 R3 – 1 1

1cDEC R4R4 R4 – 1 1

1dDEC R5R5 R5 – 1

1

1eDEC R6R6 R6 – 1 1

1fDEC R7R7 R7 – 1 1

Operações com GPR´s

6 INTEL® 8051

20606/08/2017

Sintaxe

26ADD A,@R0A A add @R0 1

27ADD A,@R1A A add @R1

1

36ADDC A,@R0A A addc @R0 1

37ADDC A,@R1A A addc @R1

1

56ANL A,@R0A A anl @R0 1

57ANL A,@R1A A anl @R1 1

06INC @R0@R0 @R0 + 1 1

07INC @R1@R1 @R1 + 1

1

16DEC @R0@R0 @R0 – 1 1

17DEC @R1@R1 @R1 – 1

1

f6MOV @R0,A@R0A 1

f7MOV @R1,A@R1A 1

e6MOV A,@R0A @R0 1

e7MOV A,@R1A @R1

1

46ORL A,@R0A A orl @R0 1

47ORL A,@R1A A orl @R1

1

96SUBB A,@R0A A subb @R0 1

97SUBB A,@R1A A subb @R1 1

c6XCH A,@R0A@R0, @R0A 1

c7XCH A,@R1A A add @R1 1

66XLR @R0,AA A xlr @R0 1

67XLR @R1,AA A xlr @R1 1

• O endereço da Internal data RAM é fornecido por @R.

Operações com a IRAM – endereçamento indireto

6 INTEL® 8051

20706/08/2017

Sintaxe

25ADD A,iramA A add iram 2

Operações com a IRAM – endereçamento direto

35ADDC A,iramA A addc iram 2

55ANL A,iramA A anl iram 2

52ANL iram,Airam iram anl A 2

05INC iramiram iram + 1 2

15DEC iramiram iram – 1 2

f5MOV iram,Airam A 2

e5MOV A,iramA iram 2

45ORL A,iramA A orl iram 2

42ORL iram,Airam iram orl A

2

95SUBB A,iramA A subb iram 2

c5XCH A,iramA iram, iramA 2

65XLR A,iramA A xlr iram 2

62XLR iram,Airam iram xlr A 2 • Internal data RAM.

• 256 bytes.• 2-bit instruction.• O segundo byte é o 8-bit address.• O endereço é fornecido no opcode.

6 INTEL® 8051

20806/08/2017

Sintaxe

a8MOV R0,iramR0 iram 2

a9MOV R1,iramR1 iram 2

aaMOV R2,iramR2 iram 2

abMOV R3,iramR3 iram

2

acMOV R4,iramR4 iram 2

adMOV R5,iramR5 iram 2

aeMOV R6,iramR6 iram 2

afMOV R7,iramR7 iram 2

88MOV iram,R0iram R0 2

89MOV iram,R1iram R1 2

8aMOV iram,R2iram R2 2

8bMOV iram,R3iram R3

2

8cMOV iram,R4iram R4 2

8dMOV iram,R5iram R5 2

8eMOV iram,R6iram R6 2

8fMOV iram,R7iram R7 2

Operações de movimentação na IRAM – endereçamento direto e indireto

86MOV iram,@R0iram @R0 2

87MOV iram,@R1iram @R1 2

a6MOV @R0,iram@R0 iram 2

a7MOV @R1,iram@R1 iram 2

•O

segu

ndo

byte

éo

8-bi

tadd

ress

.•

Oen

dere

çoé

forn

ecid

ono

opco

de.

6 INTEL® 8051

20906/08/2017

SintaxeOperações com dados de 8 bits

• 8-bit #data.• 2-bit instruction.• O segundo byte é o 8-bit #data.• O valor é fornecido no opcode.

76MOV @R0,#data@R0 @R0 add #data 2

77MOV @R1,#data@R1 @R0 add #data

2

78MOV R0,#dataR0 #data 2

79MOV R1, #dataR1 #data

2

7aMOV R2, #dataR2 #data 2

7bMOV R3, #dataR3 #data 2

7cMOV R4, #dataR4 #data 2

7dMOV R5, #dataR5 #data 2

7eMOV R6, #dataR6 #data 2

7fMOV R7, #dataR7 #data 2

24ADD A,#dataA A add #data 2

34ADDC A,#dataA A addc #data

2

44ORL A,#dataA A orl #data 2

54ANL A,#dataA A anl #data 2

64XRL A,#dataA A xrl #data 2

74MOV A,#dataA #data 2

94SUBB A,#dataA A subb #data 2

6 INTEL® 8051

21006/08/2017

SintaxeOperações com dados de 8 bits e a IRAM

43ORL iram,#datairam iram orl #data 3

53ANL iram,#datairam iram anl #data 3

63XRL iram,#datairam iram xrl #data 3

75MOV iram,#datairam #data 3

• 8-bit #data.• 3-bit instruction.• O segundo byte é o 8-bit address.• O terceiro byte é o 8-bit #data.

Page 36: 10 - Bônus - UFSJ - PB... · • O protocolo SPI™ permite a existência de, apenas, um master. • O protocolo I2C™ permite a existência de mais de um master. • É necessário

06/08/2017

36

6 INTEL® 8051

21106/08/2017

SintaxeOperações com dados de 8 bits e a IRAM

01 AJMP page0 221 AJMP page1 241 AJMP page2 261 AJMP page3 281 AJMP page4 2a1 AJMP page5 2b1 AJMP page6 2c1 AJMP page7 2

11 ACALL page0 231 ACALL page1 251 ACALL page2 271 ACALL page3 291 ACALL page4 2b1 ACALL page5 2d1 ACALL page6 2f1 ACALL page7 2