Download rtf - MICROCONTROLADOR 8051 (1)

Transcript

MICROCONTROLADOR 8051IntroduoUm sistema microprocessado bsico mostrado na figura abaixo:Organizao bsica de um sistema microprocessado.Unidade de Entrada responsvel pela obteno de informaes e dados externos; Unidade Lgica e Aritmtica (ULA) e Unidade de Controle essas unidades juntas so responsveis pela capacidade de processamento e controle das informaes;Unidade de Memria auxiliam no processamento e armazenamento de informaes;Unidade de Sada responsvel pela transferncia de dados e informaes para o mundo exterior.Prof. Sidney Jos Montebeller - FACENS1Diagrama em Blocos de um Sistema Genrico com MicroprocessadorSistema genrico com microprocessador.Conceito de BarramentoO microprocessador tem trs barramentos que conduzem todas as informaes e sinais necessrios operao do sistema. Estes barramentos conectam o microprocessador (CPU) a cada um dos elementos de memria e de E/S.Prof. Sidney Jos Montebeller - FACENS2Interconexo entre os elementos de um sistema microprocessado atravs de barramentos.Funo principal do barramento de controle e conceito de estado de alta impedncia (tri-state).Os sinais de controle so gerados pelo microprocessador (RD,WR, etc) e pelo circuito de seleo de endereos (chip select CS).Prof. Sidney Jos Montebeller - FACENS3Circuito Gerador de Sinais de Controle (CS) ou Lgica de Seleo de EndereosA15A14Memria Liberada (CS/ = 0)00Memria 101Memria 210Memria 311Memria 4Memria selecionada atravs da lgica de seleo de endereos.Lgica de seleo de endereos (mapeamento de memria).Prof. Sidney Jos Montebeller - FACENS4O Microcontrolador 8051 Diagrama de BlocosO diagrama de blocos do microcontrolador 8051 mostrado na figura abaixo:Diagrama em blocos do microcontrolador 8051.Principais Caractersticas do Microcontrolador 8051Entre as caractersticas do microcontrolador 8051 esto:CPU de 8 bits otimizada para aplicaes em controle;32 linhas de E/S bidirecionais e individualmente endereveis; 128 bytes de RAM interna destinada a dados;2 temporizadores/contadores de 16 bits;Prof. Sidney Jos Montebeller - FACENS5UART full duplex (canal serial);5 estruturas de interrupo com 2 nveis de prioridade; Clock interno;4 Kbytes de memria de programa interna;64 Kbytes de memria de programa endereveis; 64 Kbytes de memria de dados endereveis;Microcon-troladoresRAM InternaROM InternaLinhas I/OPerifricosInterrupes ExternasVerso EPROMVerso sem ROM8048AH641 K27Timer18748H8035AHL8049AH1282 K27Timer18749H8039AHL8050AH2564 K27Timer1-8040AHL80511284 K322 Timers Canal Serial2875180318052AH2568 K323 Timers Canal Serial28751H8032AH80C51BH1284 K322 Timers Canal Serial287C5180C31BHComparao entre microcontroladores.Descrio dos PinosNmero dos pinosNomeDescrio1 a 8P1.0 P1.7Estes pinos so endereados como porta bidirecional de 8 bits, podendo ter seus pinos individualmente endereaveis. Podem alimentar ou drenar uma carga TTL, ou vrias cargas MOS diretamente sem pull-up externos.9RST/VPDUsado para resetar o sistema pela aplicao de um nvel lgico 1, durante 2 ou mais ciclos de mquina.10 a 17P3.0 P3.7Porta de I/O bidirecional de 8 bits, com resistores de pull-up interno.18XTAL2Sada do amplificador inversor do oscilador e entrada para o gerador de clock interno. Se for usado clock externo, serveProf. Sidney Jos Montebeller - FACENS6como entrada para o mesmo.19XTAL1Entrada do amplificador inversor do oscilador, deve ser conectado a terra se usarmos clock externo.20VssConexo de terra.21 a 28P2.0 P2.7 (A8 A15)Porta bidirecional de 8 bits, usado como sada ou como parte mais significativa do endereo na expanso de memria.29PSEN/Sada para habilitao do programa externo. Quando o sistema vai buscar instrues ou operando na memria externa, este pino vai a nvel zero. PSEN/ no ativado (permanece em ALTO) durante a busca na memria interna de programa.30ALESada habilitadora do latch de endereos. Serve para separar a parte menos signifivativa do endereo que est multiplexada com os dados, no caso de usarmos memria externa.31EA/Entrada de seleo de memria de programa. Quando em BAIXO, a CPU trabalha apenas com a memria de programa externa. Quando em ALTO, a CPU executa instrues da memria de programa interna.32 a 39P0.7 P0.0 (AD7 AD0)Porta de 8 bits bidirecional com dreno aberto. Durante operaes com memria externa, fornece multiplexadas parte menos significativa de endereos e dados, ativando pull-ups internos.40VccLigao de 5 V para operao normal.Descrio dos pinos do 8051.P3.0RXD/dataReceptor da porta serial assncrona ou entrada e sada de dados sncronos (expanso de I/O pela porta serial)P3.1TXD/clockSada de transmisso da porta assncrona ou sada de clock para os registradores de deslocamento externos (expanso de I/O pela porta serial)P3.2INT0\Interrupo externa nmero 0, ou bit de controle para o timer/counter 0P3.3INT1\Interrupo externa nmero 1, ou bit de controle para o timer/counter 1P3.4T0Entrada externa para o timer/counter 0P3.5T1Entrada externa para o timer/counter 1P3.6WR\Strobe (sinalizador) de escrita na memria de dados externaP3.7RD\Strobe (sinalizador) de leitura na memria de dados externaFunes Especiais dos Pinos da Porta 3Organizao de Memria no 8051Memria de Programa:A memria de programa separada da memria de dados. Omicrocontrolador pode acessar 64 Kbytes de memria de programa. Se o pino EA estiver em ALTO, os primeiros 4 Kbytes so acessados internamente e o restanteexternamente. Se o pino EA estiver em BAIXO, os 64 Kbytes so acessados externamente.O dispositivo emite o sinal PSEN (Program Store Enable) para ler a memria de programa externa.Prof. Sidney Jos Montebeller - FACENS7Memria de programa.Os 64 Kbytes de memria de dados externa so acessados pelo dispositivo atravs dos sinais RD e WR.Memria de Dados:A memria de dados corresponde s RAMs internas e externas.Memria RAM interna e externa.A memria interna vai do endereo 00H at o endereo FFH e dividida conforme a figura abaixo:Prof. Sidney Jos Montebeller - FACENS8Mapa da RAM Interna.Os 4 bancos de registros (endereos de 00H a 1FH da RAM interna) so constitudos de 8 registros cada (R0 a R7). A rea de bytes endereveis bit a bit vai de 20H a 2FH da RAM interna:Prof. Sidney Jos Montebeller - FACENS9Endereos individuais dos bitsEndereos dos bytes7F7E7D7C7B7A79782FH77767574737271702EH6F6E6D6C6B6A69682DH67666564636261602CH5F5E5D5C5B5A59582BH57565554535251502AH4F4E4D4C4B4A494829H474645444342414028H3F3E3D3C3B3A393827H373635343332313026H2F2E2D2C2B2A292825H272625242322212024H1F1E1D1C1B1A191823H171615141312111022H0F0E0D0C0B0A090821H070605040302010020Hrea de bytes endereveis bit a bit. Os 80 bytes endereveis byte a byte vo do endereo 30H ao endereo 7FH da RAM interna.Registros de Funes Especiais (SFR):Esto localizados do endereo 80H ao endereo FFH da RAM interna:RegistroEndereoFunoP080HPort0 I/OP190HPort1 I/OP2A0HPort2 I/OP3B0HPort3 I/OSP81HIndica ltimo endereo de armazenagem na pilhaTH18DHByte mais significativo do temporizador/contador T1TL18BHByte menos significativo do temporizador/contador T1TH08CHByte mais significativo do temporizador/contador T0TL08AHByte menos significativo do temporizador/contador T0TCON88HContmoControleeMododeOperaodos temporizadores/contadoresTMOD89HPCON87HUsado para Controle de PotnciaSCON98HContm dados para programao do canal serialSBUF99HContm o dado recebido ou a ser transmitidoIEA8HIndica quais interrupes sero habilitadas ou desabilitadasIPB8HContm a indicao da prioridade de cada interrupoPSWD0HSinaliza eventos na ULA e indica o Banco de RegistrosACCE0HRegistros de uso geralBF0HRegistros de uso geralDPH83HJuntos formam o DPTR, usado para endereamento indiretoProf. Sidney Jos Montebeller - FACENS10DPL82Hde leitura de constantes na ROM, acessar a RAM externa e para desvio para EPROM de at 64KRegistros de Funes Especiais (SFR).ResetO reset uma operao que causa reinicializao do sistema. Isso pode ser feito quando o pino 9 (RST) permanecer em nvel alto por um determinado perodo. Quando o reset ativado, a CPU executa as seguintes funes:-o PC (Program Counter), o acumulador (A), o registro B, os flags, o DPTR e todos os registros dos temporizadores/contadores so ZERADOS;-no SP (Stack Pointer) colocado o valor 07;-as portas P0 a P3 tero o valor FFH. Isso deve ser levado em considerao no projeto do hardware, para evitar acionamentos indesejveis de algum perifrico externo;-o SBUF (Buffer Serial) estar com contedo indeterminado e o registro de controle da porta serial (SCON) ser zerado;-o registro PCON ter apenas seu bit mais significativo zerado;-os registros de controle de interrupo (IE e IP) contero o valor binrio XXX00000, onde X = irrelevante.No reset forado, a RAM interna no afetada.Ciclo de MquinaUm ciclo de mquina consiste de uma sequncia de 6 estados (S1 a S6). Cada estado toma 2 perodos de clock e, portanto, um ciclo de mquina toma 12 perodos de clock ou 1 s sob uma frequncia de 12 MHz.A figura abaixo mostra a sequncia de busca/execuo para alguns tipos de instrues. Normalmente dois ciclos de busca so executados em cada ciclo de mquina mesmo que a instruo sendo executada no o requer, caso em que o byte buscado ignorado e o PC no incrementado.Prof. Sidney Jos Montebeller - FACENS11Sequncia de busca/execuo de instrues no 8051.Instrues de um ciclo comeam em S1, em S4 gerado uma segunda busca e, no fim de S6, a instruo est completa. O ciclo busca/execuo o mesmo se a Memria de Programas externa ou interna. A figura 10 mostra os sinais e as temporizaes envolvidas quando a Memria de Programas externa.Nesse caso, o sinal PSEN ativo duas vezes por ciclo de mquina. Se umacesso Memria de Dados externa ocorre, dois PSEN so pulados porque o bus de endereos e o bus de dados esto sendo utilizados para acesso Memria de Dados. Note que um ciclo de Memria de Dados externa toma duas vezes mais tempo que um ciclo de Memria de Programas.A figura a seguir mostra a dinmica dos endereos sendo enviados s Portas0 e 2 e dos sinais ALE e PSEN. O sinal ALE ativado indiferentemente se a CPU est executando a partir da Memria de Programas externa ou interna, podendo ser utilizado como uma sada de clock.Prof. Sidney Jos Montebeller - FACENS12Ciclo de Execuo em Memria de Programas Externo.InterrupesO microcontrolador 8051 possui as seguintes fontes de interrupo: 2 interrupes externas, 2 interrupes de temporizadores e uma interrupo pela porta serial.Interrupt Enable (IE) Cada uma das fontes de interrupo pode ser habilitada ou desabilitada setando ou limpando um bit do registrador IE localizado na regio SFR. Este registrador tambm contm um bit global que pode desabilitar todas as interrupes de uma s vez. A figura abaixo mostra o registrador IEProf. Sidney Jos Montebeller - FACENS13O Registrador Interrupt Enable.Prioridade de InterrupesCada fonte de interrupo pode ser programada para um de dois nveis de interrupo setando ou limpando um bit do registrador IP (Interrupt Priority) localizado no espao SFR e mostrado na figura abaixo.Prof. Sidney Jos Montebeller - FACENS14O Registrador Interrupt PrioritySe requisies de interrupo de mesma prioridade so recebidas simultaneamente, uma seqncia de pooling ativada para determinar qual interrupo ser atendida.Todos os flags de interrupo so carregados no sistema de controle de interrupo durante o Estado 5 de todo ciclo de mquina. A anlise desses flags feita no ciclo seguinte. Se um flag para uma interrupo habilitada encontrado setado, o sistema de interrupo gera um LCALL para a correta localizao na Memria de Programas a menos que uma situao de bloqueio de verifique (ex. interrupo de igual ou maior prioridade sendo atendida). Com LCALL sendo executado, o contedo de PC salvo na pilha e este registrador recebe o valor do endereo inicial da rotina de interrupo.Somente PC automaticamente salvo na pilha. Isso permite ao programador decidir quanto tempo deve ser gasto salvando outros registradores. Como resultado, tem-se uma melhoria no tempo de resposta a uma interrupo.Temporizadores e ContadoresO microcontrolador 8051 conta com 2 temporizadores/contadores de 16 bits para uso geral. A configurao dos temporizadores/contadores 0 e 1 feita no registrador TMOD localizado na regio SFR no endereo 89H. Se o bit C/T desse registrador setado, o temporizador/registrador atua como contador e, se zerado, atua como temporizador.Quando na funo temporizador, o registrador de tempo, localizado na regio SFR incrementado a cada ciclo de mquina. Logo, podemos pens-lo como umProf. Sidney Jos Montebeller - FACENS15contador de ciclos de mquina. Quando na funo contador, o registrador incrementado a cada transio 1 para 0 do correspondente sinal externo T0 ou T1 (pino 4 ou pino 5 respectivamente da porta 3).Cada temporizador/contador consiste em 2 registradores de 8 bits que podem ser configurados em um dos 4 possveis modos:- Modo 0: o registro configurado como um registrador de 13 bits. Os bits TF0 (8DH) e TF1 (8FH) so utilizados como flags de overflow associadas s interrupes INT0 e INT1 respectivamente aos temporizadores/contadores 0 e 1.- Modo 1: semelhante ao modo 0 com a diferena de que o registrador atua em 16 bits.- Modo 2: o registrador configurado em 8 bits com recarga automtica, isto , quando numa situao de overflow de TLO (8 bits menos significativos), tal registrador recarregado com o contedo de TLH (8 bits mais significativos) cujo contedo permanece constante.- Modo 3: temporizador/contador 1 desligado enquanto o temporizador/contador 0 utilizado como dois registradores de 8 bits. A interrupo associada a TL0 INT0 enquanto a interrupo associada a TH0 INT1.Interface SerialO 8051 possui uma porta serial full-duplex, o significa que ela pode enviar e transmitir dados simultaneamente. Essa interface pode operar em 4 modos:-Modo 0: (modo sncrono) 8 bits do dado serial entram e saem por RxD0. TxD0 tem como sada o sinal de clock deslocado em fase. A velocidade de transmisso de 1/12 clock.- Modo 1: (modo assncrono) 10 bits so transmitidos (TxD0) ou recebidos (RxD0): 8 bits de dados, 1 stop bit e 1 start bit. A velocidade de transmisso varivel.-Modo 2: (modo assncrono) 11 bits so transmitidos (TxD0) ou recebidos (RxD0): 1 start bit, 8 bits de dados, 1 bit programvel pelo usurio (por exemplo: bit de paridade) e um stop bit. A velocidade de transmisso pode ser programvel para 1/32 ou 1/64 clock.- Modo 3: (modo assncrono) exatamente como no Modo 2, porm, a velocidade de transmisso varivel.Em cada um dos modos, a transmisso iniciada quando da execuo de uma instruo cujo registrador destino o registrador SBUF (endereo 99H, regio SFR). A recepo iniciada no modo 0 pela condio RI = 0 (endereo 98H) e REN0 = 1 (endereo 9CH), ambos localizados no registrador S0CON (endereo 98H, regio SFR). Em outros modos, a recepo iniciada quando REN0 = 1.Prof. Sidney Jos Montebeller - FACENS16Program Status Word (PSW)Importante registrador que contm bits de status da CPU. Localiza-se no endereo D0H da RAM interna. A figura abaixo mostra esse registro:PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0CYACF0RS1RS0OV-PRegistrador PSW (Program Status Word)CY : Flag Carry;AC : Flag Carry Auxiliar;F0 :Flag 0 definido pelo usurio;RS1 : Bit 1 para seleo de Banco de Registradores; RS0 : Bit 0 para seleo de Banco de Registradores; OV : Flag de Overflow;- :Flag definido pelo usurio;P :Flag de Paridade. setado/zerado pelo hardware a cada ciclo de instruo para indicar um nmero mpar/par de bits 1 no acumulador.RS1RS0Banco de RegistradoresEndereo00000H-07H01108H-0FH10210H-17H11318H-1FHSeleo de Banco de Registradores atravs de RS1 e RS0.Modos de EndereamentoPara acessar um dado, as instrues do microcontrolador 8051 contam com seis tipos de endereamentos:Modo Imediato: nesse modo, o endereo do operando especificado por um campo de 8 bits na instruo. Somente RAM de dados interna e a regio SFR podem ser diretamente endereadas.Ex:MOV A, 25H; A (25H)- Move contedo da posio de memria 25H (RAM) para o acumulador (A).Modo Registrador: a instruo a ser executada contm o nome de um dos registradores de R0 a R7 que ser acessado. Um dos quatro bancos de registros selecionado (RS1 e RS0, no registro PSW) em tempo de execuo do programa. Assim podemos identificar qual registro (R0 a R7) e de qual banco de registros estamos acessando.Ex:MOV A, R1; A R1- Move o contedo de R1 para o acumulador (A).Modo Indireto: a instruo especifica um registrador que contm o endereo do operando. Ambas externa e interna RAMs podem ser indiretamente acessadas. Se tal endereo possui 8 bits, seu valor armazenado em R0 ou R1, do respectivoProf. Sidney Jos Montebeller - FACENS17banco selecionado, ou no Stack Pointer. Por outro lado, se tal endereo possui 16 bits, seu valor armazenado no registrador DPTR.Ex:MOV @R1, 15H; (R1) (15H)- Move contedo da posio de memria 15H (RAM) para a posio de memria endereada por R1.Modo Especfico a Registro: o registro a ser acessado faz parte do cdigo de operao da instruo.Ex:DA A;- Ajuste decimal do acumulador.Modo Constante Imediata: quando uma constante faz parte da instruo. Ex:MOV A, #20H; A 20H- Move o valor 20H para o acumulador.Modo Indexado: somente a Memria de Programas, cuja nica operao leitura, pode ser acessada por esse modo. usado para fazer leituras em tabelas na Memria de Programas. Um registrador de 16 bits (DPTR ou PC) aponta para o incio da tabela enquanto o Acumulador ajustado para a n-sima posio da mesma. O endereo de uma entrada para a tabela formado pela soma entre o Acumulador e o registrador de 16 bits.Ex:JMP @A + DPTR; PC A + DPTR- Desvia para o endereo obtido da soma do acumulador com o DPTR.Modo Desvio Indexado: usado em instrues de desvio condicionais, onde estas instrues somam ao PC j ajustado o dado de 8 bits presente no final da instruo. Ex:JNZ 05H; PC PC + 05H-Desvia se acumulador no for zero.Prof. Sidney Jos Montebeller - FACENS18Conjunto de Instrues do 8051O conjunto de instrues dividido em 5 grupos: -Transferncia de Dados;-Operaes Aritmticas; -Desvio;-Operaes Lgicas; -Flag/Bit.Generalidades-@ indica Indireto (endereado pelo valor de); -#N indica valor Constante de 8 bits;-#NN indica valor Constante de 16 bits;-H indica que o valor est na base Hexadecimal; -B indica que o valor est na base Binria;- Rn indica registro R0 a R7; - Ri indica registro R0 ou R1;-N indica um endereo de memria de 8 bits (primeiras 256 posies internas ou externas).Prof. Sidney Jos Montebeller - FACENS19Instrues de Transferncia de DadosMNEMNICODESCRIOOPERAOCOND.DE FLAGSN DE BYTESN DE ESTADOSCYACOVMOV A, RnMove o registro Rn para o AcumuladorA Rn112MOV A, NMove o contedo da memria N para o AcumuladorA (N)212MOV A, @RiMove o contedo da RAM endereada por Ri para o AcumuladorA (Ri)112MOV A, #NMove a constante N para o AcumuladorA N212MOV Rn, AMove o Acumulador para o registro RnRn A112MOV Rn, NMove o contedo da memria N para o registro RnRn (N)224MOV Rn, #NMove a constante N para o registro RnRn N212MOV N, AMove o Acumulador para a memria N(N) A212MOV N, RnMove o registro Rn para a memria N(N) (Rn)224MOV N1, N2Move o contedo da memria N2 para a memria N1(N1) (N2)324MOV N, @RiMove RAM endereada por Ri para a memria N(N) (Ri)224MOV N, #NMove a constante N para o contedo da memria N(N) N324MOV @Ri, AMove o Acumulador para a RAM endereada por Ri(Ri) A112MOV @Ri, NMove o contedo da memria N para a RAM endereada por Ri(Ri) (N)224MOV @RI, #NMove a constante N para a RAM endereada por Ri(Ri) N212MOVDPTR, #NNMove constante NN para o DPTRDPTR NN324MOVC A, @A + DPTRSoma A + DPTR obtendo um endereode16bitsna memria de programa. Carrega o acumulador com o contedo desta memriaA (A + DPTR)124MOVC A, @A + PCIdem ao anterior, mas soma A + PCA (A + PC)124MOVX A, @RiMoveRAMexterna endereada por Ri (endereo 8 bits) para o AcumuladorA (Ri)124MOVXA, @DPTRMoveRAMexterna endereadapor DPTR (endereo 16 bits) para o AcumuladorA (DPTR)124MOVX @Ri, AMove Acumulador para a RAM externa endereada por Ri (endereo 8 bits)(Ri) A124Prof. Sidney Jos Montebeller - FACENS20Instrues de Transferncia de DadosMNEMNICODESCRIOOPERAOCOND.DE FLAGSN DE BYTESN DE ESTADOSCYACOVMOVX @DPTR, AMove Acumulador para a RAM externa endereada por DPTR (endereo 16 bits)(DPTR) A124PUSH NIncrementa o SP e ento coloca a memria no StackSP SP + 1 (SP) N224POP NRetira dado do Stack e coloca namemria,depois decrementa SPN (SP) SP SP - 1224XCH A, RnTroca entre si o contedo do Acumulador e do Registro RnA Rn112XCH A, NTroca entre si o contedo da memria N com AcumuladorA (N)212XCH A, @RiTrocaentresiaRAM endereada por Ri com AcumuladorA (Ri)112XCHD A, @RiTroca entre si o nibble menos significativo do Acumulador e da RAM endereada por RiA3-A0 (Ri) 3-0112Prof. Sidney Jos Montebeller - FACENS21Instrues de Operaes AritmticasMNEMNICODESCRIOOPERAOCOND.DE FLAGSN DE BYTESN DE ESTADOSCYACOVADD A, RnSoma Rn ao AcumuladorA A + Rn***112ADD A, NSoma o contedo da posio de memria N ao AcumuladorA A + (N)***212ADD A, @RiSoma o contedo da RAM endereadaporRiao AcumuladorA A + (Ri)***112ADD A, #NSoma a constante N ao AcumuladorA A + N***212ADDC A, RnSoma Rn e o flag Carrry ao AcumuladorA A + Rn + CY***112ADDC A, NSoma o contedo da posio de memria N e o flag Carry ao AcumuladorA A + (N) + CY***212ADDC A, @RiSoma o contedo da RAM endereada por Ri e o flag Carry ao AcumuladorA A + (Ri) + CY***112ADDC A, #NSoma a constante N e flag Carry ao AcumuladorA A + N + CY***212SUBB A, RnSubtrai Rn e o flag Carry do AcumuladorA A - Rn -CY***112SUBB A, NSubtraiocontedoda posio de memria N e o flag Carry do AcumuladorA A - (N) -CY***212SUBB A, @RiSubtrai o contedo da RAM endereada por Ri e o flag Carry do AcumuladorA A - (Ri) -CY***112SUBB A, #NSubtrai a constante N e o flag Carry do AcumuladorA A - N -CY***212INC ASoma 1 ao AcumuladorA A + 1***112INC RnSoma 1 ao RnRn Rn + 1112INC NSoma 1 ao contedo da posio de memria N(N) (N) + 1212INC @RiSoma 1 ao contedo da RAM endereada por Ri(Ri) (Ri) + 1112DEC ASubtrai 1 do AcumuladorA A - 1112DEC RnSubtrai 1 de RnRn Rn - 1112DEC NSubtrai 1 do contedo da posio de memria N(N) (N) - 1212DEC @RiSubtrai 1 do contedo da RAM endereada por Ri(Ri) (Ri) - 1112INC DPTRSoma 1 ao registro DPTRDPTR DPTR + 1124MUL ABMultiplica A e B, resultado: BABA A x B0*148DIV ABDivide A e B, resultado: A inteiro e B restoA e B A / B0*0148DA AAjustedecimaldo AcumuladorA (A)10**112Prof. Sidney Jos Montebeller - FACENS22Instrues de DesvioMNEMNICODESCRIOOPERAOCOND.DE FLAGSN DE BYTESN DE ESTADOSCYACOVACALL NChama sub-rotina numa faixa de 2 Kbytes da atual posio224LCALL NNChamasub-rotinaem qualquer posio da memria de programa324RETRetorna da sub-rotina124RETIRetorna da interrupo124AJMP NDesvia para outro endereo numa faixa de 2 Kbytes da atual posioPC PC + N224LJMP NNDesvia para qualquer posio da memriaPC NN324SJMP NDesvio curto relativoPC PC + N224JMP@A+ DPTRDesviaparaoendereo obtido da somado Acumulador com o DPTRPC A + DPTR124JZ NDesvia se o Acumulador for zero224JNZ NDesvia se o Acumulador no for zero224CJNE A, N, NComparaedesviaseo Acumulador for diferente do contedo da memria N*324CJNE A, #N, NComparaedesviaseo Acumulador for diferente da constante N*324CJNE Rn, #N, NCompara e desvia se o Rn for diferente da constante N*324CJNE@Ri, #N, NCompara e desvia se a RAM endereadaporRifor diferente da constante N*324DJNZ Rn, NDecrementa Rn e desvia se for diferente de zero224DJNZ N, NDecrementa o contedo da memria N e desvia se for diferente de zero324NOPNenhuma operao112Prof. Sidney Jos Montebeller - FACENS23Instrues de Operaes LgicasMNEMNICODESCRIOOPERAOCOND.DE FLAGSN DE BYTESN DE ESTADOSCYACOVANL A, RnOperao E entre Rn e AcumuladorA A ^ Rn112ANL A, NOperaoEentreo contedo da memria N e o AcumuladorA A ^ (N)212ANL A, @RiOperaoEentreRAM endereada por Ri e AcumuladorA A ^ (Ri)112ANL A, #NOperaoEentrea constante N e AcumuladorA A ^ N212ANL N, AOperaoEentre Acumulador e memria N(N) (N) ^ A212ANL N, #NOperao E entre constante N e memria N(N) (N) ^ N324ORL A, RnOperao OU entre Rn e AcumuladorA A v Rn112ORL A, NOperaoOUentre memria N e AcumuladorA A v (N)212ORL A, @RiOperao OU entre RAM endereadaporRie AcumuladorA A v (Ri)112ORL A, #NOperaoOUentre constante N e AcumuladorA A v N212ORL N, AOperaoOUentre Acumulador e contedo da memria N(N) (N) v A212ORL N, #NOperaoOUentre constante N e contedo da memria N(N) (N) v N324XRL A, RnOperao OU EXCLUSIVO entre Rn e AcumuladorA A " Rn112XRL A, NOperao OU EXCLUSIVO entre o contedo da memria N e AcumuladorA A " (N)212XRL A, @RiOperao OU EXCLUSIVO entre RAM endereada por Ri e AcumuladorA A " (Ri)112XRL A, #NOperao OU EXCLUSIVO entreconstanteNe AcumuladorA A " N212XRL N, AOperao OU EXCLUSIVO entre Acumulador e contedo da memria N(N) (N) " A212XRL N, #NOperao OU EXCLUSIVO entre a constante N e o contedo da memria N(N) (N) " N324CRL AFaz A = 0A 00H112CPL AInverte o estado dos bits do AcumuladorA A112RL ARotao do Acumulador para esquerdaAn + 1 An A0 A7112Prof. Sidney Jos Montebeller - FACENS24Instrues de Operaes LgicasMNEMNICODESCRIOOPERAOCOND.DE FLAGSN DE BYTESN DE ESTADOSCYACOVRLC ARotao do Acumulador para esquerdaatravsdoflag CarryAn + 1 An CY A7A0 CY*112RR ARotao do Acumulador para direitaAn An + 1 A7 A0112RRC ARotao do Acumulador para direita atravs do flag CarryAn An + 1 CY A0A7 CY*112SWAP ATrocaosnibblesdo AcumuladorA7-A4 A3-A0112Prof. Sidney Jos Montebeller - FACENS25Instrues de Flag/BitMNEMNICODESCRIOOPERAOCOND.DE FLAGSN DE BYTESN DE ESTADOSCYACOVCLR CZera o flag CarryCY 00112CLR bitZera o bit endereadobit 0212SETB CSeta o flag CarryCY 11112SETB bitSeta o bit endereadobit 1212CPL CInverte o estado do flag CarryCY CY*112CPL bitInverteoestadodobit endereadobit bit212ANL C, bitOperao E entre o bit endereado e o flag CarryCY CY ^ bit*224ANL C,bitOperaoEentreo complemento do bit endereado e o flag CarryCYCY ^bit*224ORL C, bitOperao OU entre o bit endereado e o flag CarryCY CY v bit*224ORL C,bitOperaoOUentreo complemento do bit endereado e o flag CarryCYCY vbit*224MOV C, bitMove o bit endereado para o flag CarryCY bit*212MOV bit, CMove o flag Carry para o bit endereadobit CY224JC NDesvia se o flag Carry estiver setadose CY = 1PC PC + N224JNC NDesvia se o flag Carry estiver zeradose CY = 0PC PC + N224JB bit, NDesvia se o bit endereado estiver setadose bit = 1PC PC + N324JNB bit, NDesvia se o bit endereado estiver zeradose bit = 0PC PC + N324JBC bit, NDesvia se o bit endereado estiver setado e depois zera o bitse bit = 1PC PC + N Bit = 0324Prof. Sidney Jos Montebeller - FACENS26InterrupesOs tipos de interrupo do 8051 so:InterrupoEndereoInterrupo Externa 0 (INT0)0003HTemporizador/Contador 0000BHInterrupo Externa 1 (INT1)0013HTemporizador/Contador 1001BHCanal Serial0023HInterrupes do 8051.Podemos definir dois nveis de prioridade para cada interrupo: 0 e 1. Se uma interrupo de prioridade 0 (menor prioridade) estiver sendo tratada e outra de prioridade 1 (maior prioridade) ocorrer, o 8051 ir atender a de prioridade 1. Depois de atender a interrupo de prioridade 1, o 8051 continua a atender a interrupo de prioridade 0.Se a interrupo que requisitar ser atendida for de nvel igual ou menor da que est sendo tratada, ela ficar aguardando o fim do tratamento desta.Registrador IE (Interrupt Enable) Indica qual das interrupes est habilitada ou desabilitada.IE.7IE.6IE.5IE.4IE.3IE.2IE.1IE.0EA--ESET1EX1ET0EX0Registro IE.EA : 0 = Desabilita todas as interrupes.1 = Habilita as interrupes escolhidas.ES : 0 = Desabilita interrupo do canal serial. 1 = Habilita interrupo do canal serial.ET1 : 0 = Desabilita interrupo do temporizador/contador 1. 1 = Habilita interrupo do temporizador/contador 1.EX1 : 0 = Desabilita interrupo externa 1. 1 = Habilita interrupo externa 1.ET0 : 0 = Desabilita interrupo do temporizador/contador 0. 1 = Habilita interrupo do temporizador/contador 0.EX0 : 0 = Desabilita interrupo externa 0. 1 = Habilita interrupo externa 0.Registrador IP (Interrupt Priority) Determina o nvel de prioridade de cada interrupo.IP.7IP.6IP.5IP.4IP.3IP.2IP.1IP.0---PSPT1PX1PT0PX0Prof. Sidney Jos Montebeller - FACENS27Registro IP.PS : 0 = Prioridade baixa para interrupo do canal serial 1 = Prioridade alta para interrupo do canal serial.PT1 : 0 = Prioridade baixa para interrupo do temporizador/contador 1. 1 = Prioridade alta para interrupo do temporizador/contador 1.PX1 : 0 = Prioridade baixa para interrupo externa 1. 1 = Prioridade alta para interrupo externa 1.PT0 : 0 = Prioridade baixa para interrupo do temporizador/contador 0. 1 = Prioridade alta para interrupo do temporizador/contador 0.PX0 : 0 = Prioridade baixa para interrupo externa 0. 1 = Prioridade alta para interrupo externa 0.Registrador TCON (Timer/Counter Control) Os quatro bits menos significativos deste registrador controlam o modo como as interrupes externas sero detectadas. Elas podem ser detectadas atravs de uma transio negativa (nvel 1 para nvel 0) ou atravs de nvel 0.TCON.7TCON.6TCON.5TCON.4TCON.3TCON.2TCON.1TCON.0IE1IT1IE0IT0Registro TCON.IE1 : setado com a ocorrncia de uma borda de descida no pino da Interrupo Externa 1. zerado quando a interrupo for atendida.IT1 : 0 = Deteco atravs de nvel 0 no pino da Interrupo Externa 1.1 = Deteco atravs da ocorrncia de uma borda de descida no pino da Interrupo Externa 1.IE0 : setado com a ocorrncia de uma borda de descida no pino da Interrupo Externa 0. zerado quando a interrupo for atendida.IT0 : 0 = Deteco atravs de nvel 0 no pino da Interrupo Externa 0.1 = Deteco atravs da ocorrncia de uma borda de descida no pino da Interrupo Externa 0.Prof. Sidney Jos Montebeller - FACENS28Temporizadores / ContadoresO 8051 possui dois temporizadores/contadores:-Temporizador/Contador 0 que utiliza o pino P3.2 como entrada de controle e o pino T0 como entrada de pulsos;-Temporizador/Contador 1 que utiliza o pino P3.3 como entrada de controle e o pino T1 como entrada de pulsos.Registrador TCON (Timer/Counter Control) Os quatro bits mais significativos deste registrador mostram o estado e iniciam ou param a contagem dos temporizadores/contadores.TCON.7TCON.6TCON.5TCON.4TCON.3TCON.2TCON.1TCON.0TF1TR1TF0TR0Registro TCON.TF1 : setadocomaocorrnciadeumtransbordo(overflow)do temporizador/contador 1. zerado ao final da rotina de interrupo do temporizador/contador 1.TR1 : 0 = Desabilita a contagem do temporizador/contador 1. 1 = Habilita a contagem do temporizador/contador 1.TF0 : setadocomaocorrnciadeumtransbordo(overflow)do temporizador/contador 0. zerado ao final da rotina de interrupo do temporizador/contador 0.TR0 : 0 = Desabilita a contagem do temporizador/contador 0. 1 = Habilita a contagem do temporizador/contador 0.Registrador TMOD (Timer/Counter Control) Este registrador controla o modo de operao dos temporizadores/contadores.TMOD.7TMOD.6TMOD.5TMOD.4TMOD.3TMOD.2TMOD.1TMOD.0GATE-1T/C-1M1-1M0-1GATE-0T/C-0M1-0M0-0Registro TMOD.GATE-1 : 0 = Temporizador/Contador 1 ser habilitado para contagem quando TR1 = 1 (registro TCON).1 = Temporizador/Contador 1 ser habilitado para contagem quando TR1 = 1 (registro TCON) e o pino /INT1 = 1.Prof. Sidney Jos Montebeller - FACENS29T/C-1 :0 = Temporizador/Contador 1 funcionar como temporizador usando um sinal interno (clock dividido por 12).1 = Temporizador/Contador 1 funcionar como um contador de sinais externos.M1-1, M0-1 : Definem o modo de operao do temporizador/contador 1.M1-1M0-1Modo de Operao00Modo 001Modo 110Modo 211Modo 3Modos de Operao do Temporizador/Contador 1.GATE-0 :T/C-0 : 0 = Temporizador/Contador 0 ser habilitado para contagem quando TR0 = 1 (registro TCON).1 = Temporizador/Contador 0 ser habilitado para contagem quando TR0 = 1 (registro TCON) e o pino /INT0 = 1.0 = Temporizador/Contador 0 funcionar como temporizador usando um sinal interno (clock dividido por 12).1 = Temporizador/Contador 0 funcionar como um contador de sinais externos.M1-0, M0-0 : Definem o modo de operao do temporizador/contador 0.M1-1M0-1Modo de Operao00Modo 001Modo 110Modo 211Modo 3Modos de Operao do Temporizador/Contador 0.Prof. Sidney Jos Montebeller - FACENS30Modos de Operao dos Temporizadores / Contadores-Modo 0 - Temporizador ou Contador de 8 bits com divisor de frequncia de at 32 vezes.TL0 e TL1 servem como divisores de 5 bits.TH0 e TH1 recebem o valor inicial da contagem. A contagem crescente (at FFH).Quando o nmero de pulsos lidos igual ao valor do DIVISOR, o CONTADOR incrementado.O valor do DIVISOR no alterado durante a contagem.Contador (TH0 ou TH1)76543210Temporizadores/Contadores no modo 0. Divisor (TL0 ou TL1)XXX43210-Modo 1 - Temporizador ou Contador de 16 bits.TH0 e TL0 formam o temporizador/contador 0. TH1 e TL1 formam o temporizador/contador 1. A contagem crescente at FFFFH.Contador (TH0 ou TH1)15141312111098Temporizadores/Contadores no modo 1. Contador (TL0 ou TL1)76543210-Modo 2 Temporizador ou Contador de 8 bits com recarga automtica.TL0 e TL1 so os contadores 0 e 1, respectivamente.TH0 e TH1 possuem valores que so transferidos para TL0 e TL1 depois de um overflow do contador.Valor de Recarga (TH0 ou TH1)76543210Temporizadores/Contadores no modo 2. Contador (TL0 ou TL1)76543210-Modo 3 Temporizador ou Contador de 8 bits.TL0 um temporizador/contador de 8 bits controlado pelos bits TR0 e TF0 do registro TCON.TH0 um temporizador/contador de 8 bits controlado pelos bits TR1 e TF1 do registro TCON. O overflow de TL0 acionar o flag de requisio de interrupo (TF0) do temporizador/contador 0.O overflow de TH0 acionar o flag de requisio de interrupo (TF1) do temporizador/contador 1.Nesse modo TH1 e TL1 no tem funo.Prof. Sidney Jos Montebeller - FACENS31Contador (TH0)15141312111098Temporizadores/Contadores no modo 3. Contador (TL0)76543210Comunicao SerialO 8051 transmite dados seriais pelo pino TxD/clock e recebe dados seriais pelo pino RxD/data.Registrador SCON (Serial Port Control) Registrador de controle da comunicao serial.SCON.7SCON.6SCON.5SCON.4SCON.3SCON.2SCON.1SCON.0SM0SM1SM2RENTB8RB8TIRIRegistro SCON.SM0, SM1 : Definem o modo de operao do canal serialSM0SM1Modo de OperaoVelocidade00Modo 0Clock / 1201Modo 1Varivel10Modo 2Clock / 32 ou Clock / 6411Modo 3VarivelModos de Operao do Canal Serial.SM2 : 0 = Operao individual do 8051. 1 = Operao com vrios 8051.-No modo 0 deve permanecer em 0.-No modo 1 no requisitar interrupo se estiver em 1 e se o bit de STOP recebido for ilegal.-Nos modos 2 e 3 habilita comunicao entre vrios 8051.REN : 0 = Desabilita recepo (o pino RxD pode ser usado como E/S). 1 = Habilita recepo de dados seriais.TB8 :-Indica, nos modos 2 e 3, o estado do 9 bit a ser transmitido.RB8 :-No usado no modo 0.Prof. Sidney Jos Montebeller - FACENS32-No modo 1 indica o estado do bit de STOP recebido (desde que o bit SM2 esteja zerado).-Nos modos 2 e 3 indica o estado do 9 bit do dado recebido.TI : setado aps a transmisso do 8 bit de dado no modo 0 e no incio da transmisso do bit de STOP nos demais modos. Deve ser zerado pela rotina de tratamento de interrupo de transmisso para permitir novas interrupes de transmisso.RI : setado aps a recepo do 8 bit de dado no modo 0 e no meio do bit de STOP nos demais modos. Deve ser zerado pela rotina de tratamento da interrupo de recepo para permitir novas interrupes de recepo.Registrador SBUF (Serial Buffer) Registrador onde so recebidos e enviados os dados seriais.-A escrita neste registro implica na transmisso automtica do dado para o meio externo.-A recepo serial de bits do meio externo tambm automtica.SBUF.7SBUF.6SBUF.5SBUF.4SBUF.3SBUF.2SBUF.1SBUF.0Registro SBUF.Modos de Operao do Canal Serial-Modo 0:Transmisso e recepo so sncronas.Os bits de dados so transmitidos e recebidos pelo pino RxD/data.O clock de transmisso e da recepo gerado pelo pino TxD/clock. So transmitidos ou recebidos dados de 8 bits.A velocidade de comunicao clock / 12.-Modo 1:Transmisso e recepo so assncronas.Os bits de dados so transmitidos pelo pino TxD. Os bits de dados so recebidos pelo pino RxD. Velocidade de comunicao varivel e fornecida pelo temporizador/contador 1. Os dados tem 10 bits, sendo: - 1 bit de Start (nvel 0).- 8 bits de dados.- 1 bit de Stop (nvel 1).-Modo 2:Prof. Sidney Jos Montebeller - FACENS33Transmisso e recepo so assncronas.Os bits de dados so transmitidos pelo pino TxD. Os bits de dados so recebidos pelo pino RxD.Velocidade de comunicao pode ser clock / 32 ou clock / 64. Os dados tem 11 bits, sendo:- 1 bit de Start (nvel 0). - 8 bits de dados.- 1 bit extra de dado (9 bit de dado). - 1 bit de Stop (nvel 1).-Modo 3:Idntico ao modo 2, mas com velocidade varivel.Prof. Sidney Jos Montebeller - FACENS34


Recommended