Apostila - Família Microcontrolador 8051

Embed Size (px)

Citation preview

Microcontrolador 8051Alcides Silveira Costa Alex Silveira Martins Cristina Cunha Elbio Renato Torres Abib Rafael Zan Roberto Drebes

Famlia, Fabricantes e Aplicaes

Rafael Zan

Caractersticas do 8051! CPU de 8-bits otimizada para aplicaes de controle ! Processamento Booleano Amplo (lgica Single-bit) ! Espao de endereamento de Memria de Programa de 64K ! Espao de endereamento de Memria de Dados de 64K ! 4K bytes de Memria de Programa on-chip ! 128 bytes de RAM de Dados on-chip ! 32 linhas de I/O programveis ! Dois contadores/timer de 16-bits ! UART Full duplex ! Estrutura de interrupo com dois nveis de prioridade ! Oscilador de relgio On-chip

Chip do 8051

Arquitetura Bsica em Blocos do 8051

Organizao das Estruturas internas do Microprocessador 8051

Bloco de Interrupo, Timer e Serial

! alm dos registradores da figura tambm fazem parte deste bloco registradores como P0, P1, P2, P3, IE ... !Existem registradores de uso casado como ! A+B, DPH+DPL,TH0+TL0,TH1+TL1

PSW

UART

Taxas Mximas AbsolutasTemperatura Ambiente.................................................-40C a +125C Temperatura de Armazenamento.................................-65C a +150C Voltagem no ~EA/Pino VPP para VSS....................................0V a +13V Voltagem em quaisquer outros pinos .............................-0,5V a +6,5V IOL por Pino de I/O.......................................................................15 mA Dissipao de Potncia................................................................1,5 W

Caractersticas DCSmbolo VIL VIL1 VIH VIH1 VOL VOL1 VOH VOH1 IIL ITL ILI ICC Parmetro Voltagem de Entrada Baixa (Exceto ~EA) Voltagem de Entrada Baixa para ~EA Voltagem de Entrada Alta (Exceto XTAL1,RST) Voltagem de Entrada Alta (XTAL1,RST) Voltagem de Sada Baixa (Portas 1, 2, 3) Voltagem de Sada Baixa (Portas 0,ALE,~PSEN) Voltagem de Sada Alta (Portas 1, 2, 3, ALE, ~PSEN) Voltagem de Sada Alta (Porta 0 no Modo de Barramento Externo) Corrente de Entrada Lgica 0 (Portas 1, 2, 3) Corrente de Transio Lgica 1-para-0 (Portas 1, 2, 3) Corrente de Entrada de Fuga (Porta 0) Corrente de Alimentao de Energia: Modo Ativo a 12MHz Modo de Espera Idle Modo de Power Down Resistor de Reset Interno Capacitncia do Pino Min-Max -0,5 ! 0,2 VCC-0,25 0 ! 0,2 VCC-0,45 0,2VCC+1,0! VCC+0,5 0,7VCC+0,1! VCC+0,5 0,45 0,45 2,4 ou 0,9VCC 2,4 ou 0,9VCC -75 -750 10 11,5 1,3 3 50 ! 300 10 Unidade V V V V V V V V A A A mA mA A K pF

RRST CIO

Componentes da Famlia MCS 51

Caractersticas dos Componentes do MCS 51

Componentes da linha 8051 - 8031AH, 8051AH, 8051AHP, 8751H, 8751BH Componentes da Famlia (linhas): - 8052, 80C51, 8XC52/54/58, 8XC52/54/58, 8XC51FA/FB/FC, 8XL51FA/FB/FC, 8XC51GX, 8XC152, 8XC51SL

Memria

Memria O 8051 possui 4kB de memria de programa internos (ROM), podendo-se ainda utilizar 64kB externos (8031 no possui ROM interna). Possui RAM interna e possibilidade de RAM externa, com espaos de endereamento distintos (instrues distintas).

Roberto Jung Drebes

Memria Mapeia em memria registradores, portas de I/O, ponteiros do sistema, temporizadores. Os endereos de 0x00 a 0x20 so 4 bancos de registradores com 8 registradores cada. Os endereos de 0x21 a 0x30 podem ser endereados bit a bit ou byte a byte.

Memria O pino PSEN elevado a 1 para acessos a memria interna, ficando em 0 em acessos a memria externa. O sinal ALE utilizado para enviar o endereo a ser acessado na memria externa a um latch. Esse endereo vem do registrador DPTR.

Entrada e Sada

Entrada e SadaCapacidades de I/O:A famlia 8051 possui as seguintes capacidades de I/O nativas, variveis conforme o modelo:" 32 Portas de I/O endereveis individualmente, divididas em 4 portas de 8 bits mapeadas em RAM com bits individualmente endereveis (58 ou 24 portas dependendo do modelo):

Alex Targanski Medeiros

P0(80h), P1(90h), P2(A0) e P3(B0)" 1 UART Full-Duplex " Modelos com 4 ou 8 Canais A/D " Modelos com 10 ou 5 Canais PCA

Entrada e Sada

Entrada e SadaAcesso s portasPode ser feito a byte, com instrues normais de movimentao de dados (endereamento direto) ou utilizando instrues de bit. Endereamento direto entre os endereos 80h e FFh acessa os registradores especiais e portas de I/O, enquanto que endereamento indireto acessa a memria. Por exemplo: MOV 80H,#0AAH escreve o valor hexa 0AAH na porta 0, enquanto que MOV R0,#80H MOV @RO,#OBBH escreve o valor hexa 0BBH no endereo de memria 80h.

O 8051 standard possui 1 canal serial bem como 4 entradas e sadas de 8 bits, sendo 2 para memria externa (caso utilizada).

Entrada e SadaAcesso s portas - confuso vistaPara tornar as coisas ainda mais estranhas, existem endereos que referencia-se a BIT e a BYTE. MOV 80H, C MOV 80H,#0AAH bit 0 da porta 0 = carry exemplo anterior

Entrada e SadaAcesso s portas - ainda mais confusoAs portas do 8051 tem ainda mais uma particularidade: So compostas basicamente por um flip-flop e um latch. Dependendo da instruo, o contedo lido pode ser a sada do FF (pino direto) ou a sada do latch. Aparentemente o resultado deveria ser o mesmo, mas observe o esquema eltrico:

Entrada e SadaAcesso s portasA finalidade disto permitir que as portas funcionem como I e tambm como O. Escrevendo-se nvel 1 na sada, pode-se forar o nvel 0 externamente e ler este nvel com a instruo apropriada. Assim, as instrues que lem e modificam a porta operam no latch, e as que s lem operam no pino direto.

Entrada e SadaPortas multifuncionais de I/OQuase todas so multifuncionais, ou seja, podem ser utilizadas tanto para I/O comum enderevel a bit quanto para sua funo especial, como no caso de acesso memria externa, com as portas 0, 2 e 3:Porta 0: "

dados e parte baixa dos endereos multiplexados alta dos endereos

Porta 2: " parte Porta 3: " WR

e RD (write strobe e read strobe para mem. dados)

Combinaes extremas:" 1 Portas de I/O (8 bits em P1) + 6 bits da P3 + 64K ROM + 64K RAM (EXTERNAS) " 4 Portas de I/O + 128bits RAM + 4K ROM (INTERNAS)

Entrada e SadaPortas multifuncionais de I/OUtilizando uma ROM Externa:" ~EA em 0: mem. ext. programas para 8051 " ~PSEN : habilita acesso ROM externa

Entrada e SadaPortas multifuncionais de I/OP0 - Se for utilizada memria externa (RAM ou ROM) fica perdida. P2 - Cada 28+2n bits de endereo externo alm de 256 utilizam n bits desta. P3 - Se memria RAM externa for usada, perde-se os bits 6 e 7 (WR/RD).

Neste caso temos 64K ROM, e as portas 0 e 2 completamente ocupadas. Utilizando uma RAM Externa:" ~EA em 1: mem. interna programas para 8051 " ~RD e ~WR: sinalizam o acesso RAM

Resumo da pera:

A memria externa consome muito da capacidade de I/O nativa

Neste caso temos 4K ROM + 2K RAM, e ocupadas as portas: P0 (totalmente), P2 (bits 0,1,2) e P3 (bits 6,7)

Entrada e SadaPortas multifuncionais de I/OAlm das funes especiais j vistas, ainda temos as portas 1 e parte da P3, que tm as seguintes funes especiais:

Entrada e SadaPorta 3 - Comunicao Serial feito pelos bits 0 e 1 de P3:" bit 0: RXD (serial input port) " bit 1: TXD (serial output port)

Porta 1:" bit 0: T2 Timer/Counter2 external input " bit 1: T2EX Timer/Counter2 Capture/Reload trigger (Apenas no 8052)

Comunicao serial sncrona ou assncrona, full-duplex, com buffer de leitura. Possui vrios modos de operao:" Modo " Modo " Modo " Modo 0: 1: 2: 3: sncrono, RXD transmite/recebe, TXD o clock, opera 8 bits. Taxa 1/12. assncrono, 10bits: 1 start, 8 data, 1 stop. Taxa programvel. assncrono, 11bits: start, 8 data, 1 programvel, stop. Taxa 1/32 ou 1/64. igual ao modo 2, mas com taxa programvel.

Porta 3:" bit 0: " bit 1: " bit 2: " bit 3: RXD (serial input port) TXD (serial output port) INTO (external interrupt) INT1 (external interrupt) bit 4: T0 (Timer/Counter 0 external input) bit 5: T1 (Timer/Counter 1 external input) bit 6: WR (external Data Memory write strobe) bit 7: RD (external DataMemory read strobe)

Entrada e SadaPorta 3 - Comunicao SerialA transmisso/recepo feita pelo registro especial SBUF (desde que a taxa e demais configuraes estejam OK):" Escreve em SBUF: transmite o dado (byte) " L SBUF: recebe o dado (byte)

Entrada e SadaPorta 3 - Registro SCON

Para controlar o I/O serial, temos os registros especiais SCON e PCON, que controlam o modo de operao e taxa de transmisso, alm do nono bit dos modos 2 e 3 e outros.

Entrada e SadaPorta 3 - Registro PCONNa verdade, o nico bit que interessa em PCON o bit 0, j que os outros so bits de controle de energia (PCON = Power Control Register).

Entrada e SadaPorta 3 - Formato dos dadosModo 0:Sncrono, 8 bits, taxa alta (1/12 clock)

O Bit 0 dobra a taxa de transmisso nos modos 1, 2 e 3.

Modo 1:Assncrono, 10bits: 1 start, 8 data, 1 stop, com taxa programvel.

Entrada e SadaPorta 3 - Formato dos dadosModo 2 e 3:Assncrono, 11bits: 1 start, 8 data, 1 programvel, 1 stop. Taxa 1/32 ou 1/64 (modo 2) ou programvel (modo 3).

Entrada e SadaPorta 3 - Comunicao entre vrios 8051Os modos 2 e 3 foram intercomunicao de 8051s. feitos especialmente para a

Neste modo, pode ser gerada uma interrupo caso o nono bit seja 1; assim, no modelo mestre-escravo, basta o mestre enviar o endereo de um microcontrolador com nono bit 1, o micro selecionado ficar pronto para recepo, e os dados seguintes sero enviados com nono bit 0.

Entrada e SadaExpandindo o I/O: + 512 portasUtilizando I/O mapeada em memria e os ltimos 256 bytes de endereamento externo, podemos criar uma expanso de 512 portas para o 8051 (256 entrada + 256 sada). Note que, alm do hardware bsico, ainda so precisos outros chips, como demux e latches, para efetivamente usar as 512 portas. As desvantagens do sistema que aumentam muito o nmero de componentes do mesmo, e o tempo de acesso s portas de I/O feitas desta maneira o dobro do tempo das portas nativas.

Entrada e SadaExpandindo o I/O: + 1 porta com a serialUtilizando um contador de deslocamento e um latch para proteo contra rudos, podemos criar mais uma porta a partir da sada serial (bits 0 e 1 da porta 3). No modo 0 (sncrono), basta escrever na serial o valor desejado na sada, e pronto! Note a necessidade de controle adicional por software (P1 bit 0) que efetivamente transfere o valor do contador para o latch.

Entrada e Sada Conjunto de InstruesExpandindo o I/O: sada analgicaCom um conversor do tipo R/2R podemos ter uma sada analgica para uma porta livre ou mapeada em memria, como o caso da figura.

Elbio Renato Torres Abib

Conjunto de Instrues Modos de endereamento Status do Programa Instrues aritmticas Instrues Lgicas Instrues para transferncia de dados Instrues de jump

Modos de endereamento Viso da memria para o programador

Modos de endereamento Registradores especiais --> Registradores de uso geral

Modos de endereamento Endereamento direto8 bits RAM de Dados Interna

Endereamento indiretoR0 R1 SP DPTR (16 bits) RAM de Dados Externa

Modos de endereamento Endereamento de registradores opcodes especficos : 3 bits (R0 a R7) operador implcito : ex. Acumulador, DPTR, ...

Modos de endereamentoBits endereveis diretamente

Endereamento imediato constantes seguem o opcode na memria de programa

Exemplos

Status do Programa (PSW)

Instrues aritmticas

BCD

CY tambm serve como acumulador em operaes booleanas RS0 e RS1 selecionam um dos 4 bancos de registradores

Instrues Lgicas

Instrues Lgicas(bits)

Xor

Instrues para transferncia de dados

Instrues de JUMP

Instrues observaoPequena ortogonalidade Instrues de tamanho varivel(1-3 bytes)

Interrupes

Interrupes

Interrupes

Interrupes

Timers e contadores

Timers e contadores

Timers e contadores

Famlia, Fabricantes e Aplicaes

A Famlia MCS-51 No incio da dcada de 80, a INTEL, que j tinha lanado o microcontrolador 8048, lanou uma nova famlia, herdeira do 8048, intitulada 8051, tambm de 8 bits. Inicialmente ela lanou o 8051 com ROM interna programvel de fbrica, o 8751 com EPROM interna programvel pelo usurio e o 8031 com necessidade de ter chips de EPROM externa. Aps alguns anos, a famlia se expandiu para o8052, que tem um timer a mais que o 8051 e suas variaes: com EPROM (8752) e sem ROM/EPROM (8032), e uma verso especial do 8052, chamado 8052-BASIC, que tem dentro de sua ROM um interpretador BASIC que permite program-lo tambm em linguagem BASIC (BASIC-52).

Alcides Silveira Costa

A Famlia MCS-51

A Famlia MCS-51

A Famlia MCS-51

A Famlia MCS-51Boolean Processing Processador Booleano (opera com bits); One Level Memory Lock Permite o usurio proteger o seu programa embutido na EPROM contra ataques de pirataria de software (1 lock bit). Quando habilitado, nega qualquer espcie de acesso eltrico para a leitura da memria de programa interna (a verificao da EPROM desabilitada, o dispositivo no pode ser mais programado e no pode executar cdigo da memria externa); Two Level Memory Lock Consiste de um array de criptografia (Encrypt Array) de 32 bytes (estado inicial com todos 1s, XNOR) e 2 lock bits com 3 nveis de segurana com criptografia (verificao habilitada, verificao habilitada e movc desabilitado para as memrias de programa externa, o mesmo que anterior e verificao desabilitada);

A Famlia MCS-51 Three Level Memory Lock Consiste de um Encrypt Array de 64 bytes e 3 lock bits com 4 nveis de segurana com criptografia (verificao habilitada, verificao habilitada e movc desabilitado para as memrias de programa externa, o mesmo que anterior e verificao desabilitada, o mesmo que o anterior e memria de programa externa no pode ser executada); Power Save Modes - Verso CHMOS do MCS-51 possuem dois modos de baixo consumo de energia (Idle e Power Down); Up-Down Timer/Counter - Timer 2 pode ser configurado para incrementar ou decrementar (nas linhas que possuem o Timer 2); Expanded RAM 512 bytes de RAM interna (256 a mais que o da verso anterior);

A Famlia MCS-51 WatchDog timer quando ativado incrementa seu registrador a cada ciclo de mquina, resetando o dispositivo quando houver estouro (14 bits). Usado em aplicaes sujeitas a descargas eltricas; Programmable Counter Array - consiste de um temporizador/contador de 16 bits e cinco mdulos de comparao/captura, tambm de 16 bits. Os mdulos de comparao/captura podem ser programados em cinco modos diferentes (rising and/or falling edge capture, software timer, high speed output, pulse width modulator e watchdog timer); Programmable Clock Out - P1.0 (porta 1 pino 0) pode servir de gerador de clock, variando de 61 Hz a 4 MHz (trabalhando a uma freqncia de operao de 16 MHz);

A Famlia MCS-51 8 Channel 8 bit A/D - conversor analgico digital. Possui 8 canais de entrada analgicas para um mesmo conversor. A seleo do canal feita por um multiplexador; Em 1994, a Intel a lanou a famlia MCS-251, um upgrade a antiga famlia MCS-51. Incorporando novas caractersticas, permitia execuo de instrues em pipeline, at 24 bits de endereamento (16 Mbytes) e barramentos de cdigo de 16 bits. Contudo, o salto entre MCS-51 e MCS-251 foi muito grande e uma nova famlia, intitulada MCS-151 foi lanada em abril de 1996 para preencher o espao tecnolgico e financeiro entre as duas arquiteturas (custo/benefcio); Ambas famlias MCS-151 e MCS-152 mantm compatibilidade com o original MCS-51.

A Famlia MCS-51

Fabricantes Outros fabricantes tm autorizao de fabricar o 8051, como a Atmel, Dallas, Temic, Philips, Siemens, Advanced Microcontroller Device, Fujitsu, e Oki.

Fabricantes

AT89LV55 - 2.7-Volt, 80C32 com 20 Kbytes de memria Flash; AT89C51 - 80C31 com 4Kbytes de memria Flash; AT87F52 QuickFlash - 80C32 com 8K bytes de OTP QuickFlash; AT89C2051 - 2.7-Volt, 80C31 com 2Kbytes de Flash e encapsulamento de 20 Pinos; AT87F51RC Preliminary - 80C32 com 512 bytes SRAM e 32K bytes OTP QuickFlash.

DS87C520 - 87C51/87C52 com 16 Kbytes de EPROM e 1Kbyte de SRAM; DS87C550 80C51 com 8 canais A/D de 10 bits, 4 canais PWM de 8 bits; DS80C323 80C31/80C32 com baixo consumo de potncia; DS80C390 80C51 com capacidade de endereamento de 4Mbytes (memria externa), co-processador matemtico de 16/32 bits; DS80C320 801C31/80C32 com dois ponteiros para dados;

Fabricantes

Aplicaes O microcontrolador 83C51FA pode ser utilizado eficientemente para controlar um motor de corrente contnua (CC) com o mnimo de hardware; Conceitos bsicos de um motor (FB = i L x B, fora sobre uma corrente); Em muitos casos , preciso absoluta em movimentos no necessrio, mas velocidade constante sim. Por exemplo, um motor CC em um toca-fitas deve manter velocidade angular constante. Ele no precisa parar exatamente em um certo ponto, em contraponto com um ploter de alta resoluo. Motores de passo so utilizados nestas aplicaes.

83C552/80C552 8 canais A/D de 10 bits, 2 sadas PWM; P87LPC764 - 4K bytes de OTP ROM com 128 bytes of SRAM (20 pinos); XAS3 32 Kbytes de EPROM, 1024 bytes de RAM e 50 pinos de I/O (palavras de 16 bits); A extenso XA significa microcontroladores de 16 bits (eXtensive Architecture); T89C51RD2 - compatvel com 80C52 (Tecmic); C513AO compatvel 8051 padro (Siemens).

Aplicaes Normalmente, aplicaes que utilizam motores CC requerem variao na sua velocidade e inverso no sentido de rotao; A inverso do sentido de rotao facilmente adquirida invertendose a polaridade da tenso nos terminais do motor;

Aplicaes Variar a velocidade significa variar a tenso nos terminais do motor; Em um sistema digital, o sinal analgico para o amplificador deve vir de alguma forma de conversor D/A, significando um componente a mais no circuito e, conseqentemente, maior custo e consumo; Uma alternativa pode ser utilizar a sada PWM (pulse width modulator) do 83C51FA, variando a tenso mdia entregue ao motor; O 83C51 pode ser configurando para utilizar at sadas 5 PWM ao mesmo tempo (possui um PCA com 5 mdulos); O PCA possui um timer principal compartilhado com os demais mdulos que pode ter at 4 diferentes taxas de contagem (oscillator frequency / 12, oscillator frequency / 4, Timer 0 overflow, external input on ECI (P1.2).);

Aplicaes

Aplicaes Alguns pinos da porta 1 so utilizados por cada mdulo do PCA para se comunicar com o mundo exterior; Quando os mdulos do PCA no esto em uso, os pinos da porta 1 so utilizados como pinos de I/O normalmente; Os cada mdulo do PCA pode trabalhar em cinco modos diferentes de operao. Um desses modos o PWM; Cada mdulo possui um registrador de modo de 8 bits (CCAPMn) e um registrador de captura/comparao, de 16 bits, chamado CCAPnL & CCAPnH; CCAPMn deve ser setado apropriadamente para trabalhar no modo PWN;

Aplicaes

Aplicaes Primeiramente, o clock do PCA timer/counter deve ser definido (osc freq/12, osc freq/4, timer 0 overflow e external clock); Para definir o clock, outros registradores so utilizados (CCON, CMOD e CCAPMn);

AplicaesMOV MOV MOV SETB CMOD,#06 CCAPM2,#42H CCAP2H,#0 CR ; ; ; ; timer input external put the module in PWM mode. 0 provides 100% duty cycle (5V) turn timer on

Aplicaes Quando usamos o 83C51FA pouco hardware necessrio para o controle de um motor CC; Apenas necessrio um driver, pois o microcontrolador no tem como fornecer a corrente e a tenso necessria para o motor;

No exemplo acima, o modulo 2 foi selecionado para fornecer um sinal PWM para o amplificador do motor. Um clock externo foi selecionado para a entrada do timer.

Aplicaes Driver circuit atravs do sinal proveniente do microcontrolador (83C51FA) entrega a corrente e a tenso necessria para o funcionamento do motor; Um exemplo de driver circuit pode ser da serie L293, podendo fornecer 1A quando ligado a uma tenso de 36V. Atravs de entradas lgicas pode ser controlado para habilitar e desabilitar o fornecimento de corrente para o motor; Rudo eltrico motores geram rudo eltrico suficiente para atrapalhar a performance do controlador. Logo, capacitores ajudam a eliminar o rudo proveniente do motor e devem ser adicionados ao circuito;

Aplicaes

Aplicaes Podemos ter um controle maior do motor atravs de uma linha de realimentao proveniente de um sensor detector de movimento contido no motor; Esse sensor pode ser do tipo sensvel ao campo magntico; Algum cuidado deve ser tomado para que a distncia entre o im e o sensor no seja muito grande;

Aplicaes O 83C51FA pode utilizar o sinal proveniente da realimentao para determinar a velocidade e a posio do motor. Logo, podemos fazer ajustes, variando a velocidade, revertendo a rotao ou parando o motor; A cada momento que o im passa na frente do sensor, um pulso gerado e mandado para a porta 1 pino 6 do microcontrolador (interface externa do mdulo 3 do PCA); No exemplo a seguir, o mdulo 3 do PCA setado para trabalhar no modo de captura, sensvel a borda de subida; O tempo ente duas capturas consecutivas correspondem a meia revoluo. Isso nos fornece informao suficiente para calcular a velocidade atual do motor. Usando esse mtodo podemos, por exemplo, sincroniz-lo com outro evento;

Aplicaes

Aplicaes

Aplicaes

Bibliografia 8051 Microcontrolador Detalhado; Aplicaes Prticas do Microcontrolador 8051 Vidal Pereira da Silva Jr; Fundamentos de Fsica 3 David Halliday e Robert Resnick - 3 edio; Mquinas Eltricas A. E. Fitzgerald, Charles Kingsley e Alexander Kusko; www.intel.com, www.dalsemi.com, www.philips.com, www.atmel.com ...