630 likes | 769 Views
EEL7030 - Microprocessadores. Prof. Raimes Moraes GpqCom – EEL UFSC. Sem RAM, ROM ou dispositivos de I/O. Microprocessador de Propósito Geral. Barramento de Dados. CPU Microprocessador de propósito geral. Portas de I/O. RAM. ROM. Timer. Interface Serial. Barramento de Endereço.
E N D
EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC
Sem RAM, ROM ou dispositivos de I/O Microprocessador de Propósito Geral Barramento de Dados CPU Microprocessador de propósito geral Portas de I/O RAM ROM Timer Interface Serial Barramento de Endereço Vantagem: flexibilidade, sistema expansível ; Desvantagem: custo, roteamento de placa e dimensões do circuito.
CPU + Periféricos Microcontrolador CPU RAM ROM Serial COM Port Timer I/O Port Vantagem: menor custo, menor dimensão, rápido desenvolvimento; Desvantagem: baixa flexibilidade, não expansível;
Periféricos: • - Portas de entrada e saída - Interface Serial (CAN, SPI, USB, RF e etc) • - Memórias (ROM, RAM, Flash, XRAM, etc) - Conversores AD e DA - Timers - ... • Família de Microcontrolador: CPU + diferentes periféricos Microcontrolador
Escolhendo umMicrocontrolador • Considerar: consumo, velocidade, capacidade de memória, número de portas de entrada e saída, timers, encapsulamento, tamanho, interfaces de comunicação e demais periféricos necessários a aplicação; • Custo e disponibilidade no mercado. Facilidade para upgrade (grande família) • 3. Disponibilidade de ferramentas de desenvolvimento: • assemblers, debuggers, compiladores, emuladores, simuladores, suporte técnico
8051 • Características Básicas: • CPU de 8 bits; • endereça 64 Kb de memória de programa externa; • endereça 64 Kb de memória de dados externa; • 4 kbytes de memória ROM interna para programas; • 128 bytes de memória RAM interna para dados; • 4 portas de entrada e saída (8 pinos cada); • 5 vetores de interrupção com 2 níveis de prioridade: • 2 interrupções externas • 2 temporizadores / contadores • 1 interface serial
8051 Interrupções Externas ROM para memória de programa 4 k bytes Controle de Interrupções Entradas do contador Timer 1 RAM 128 bytes Timer 0 CPU Porta Controle de Barramento 4 Portas de I/O OSC Serial P0 P2 P1 P3 TxD RxD Endereço/Dados
Conexão do 8051 com Memória de ProgramaExterna date P0 INSTR P1 EPROM 74HC373 80C51BH Latch ALE G ADDR P2 P3 OE PSEN EA
date P0 INSTR P1 EPROM 74HC373 80C51BH Latch ALE G ADDR P2 P3 OE PSEN EA Interface do 8051 Com Memória de Programa Externa
date P0 INSTR P1 EPROM 74HC373 80C51BH Latch ALE G ADDR P2 P3 OE PSEN EA Exemplo de Leitura da Memória de Programa Externa
date P0 INSTR P1 EPROM 74HC373 EA 80C51BH Latch ALE G ADDR P2 P3 OE PSEN CE RD WR DATA RAM ADDR DECODER ADDR CE WR RD Interface do 8051 Com Memória de Programa e Dados Externas
7 6 5 4 3 2 1 0 F0 RS1 P CY AC RS0 OV F1 D0H PSW - Program Status Word - Bit Addressable CY PSW.7 Carry flag AC PSW.6 Auxiliary carry flag F0 PSW.5 Definido pelo usuário RS1 PSW.4 Bit 1 do seletor de Register Bank RS0 PSW.3 Bit 0 do seletor de Register Bank OV PSW.2 Overflow flag F1 PSW.1 Definido pelo usuário P PSW.0 Flag de paridade. 1 = impar,
Mnemônicos Rn - registrador R0 a R7 do banco correntemente selecionado. direct - endereçamento direto, ou seja, direct é o endereço de uma posição de memória RAM interna. @Ri - endereçamento indireto a uma posição de memória RAM interna Ri=R0 ou R1 #data - endereçamento imediato, onde data é uma constante de 8 bits incluída no corpo da instrução. #data16 - endereçamento imediato, onde data é uma constante de 16 bits incluida no corpo da instrução.
Organização da Memória MOVX @DPTR,A
RAM INTERNA FFh: 8052 SFR MEMÓRIA REGISTERS 00h:
SUBROTINA Exemplo • Salva atual PC (000Dh) na pilha. (O PC é atualizado ao obter o código da instrução CALL da memória); • Sobrescreve PC com endereço da subrotina; (PC = 2028H) • 3 Executa subrotina; • Retorna à instrução que se segue ao CALL no programa principal (instrução RET). • OBS: O SP é inicializado com o valor 07 quando o microprocessador é energizado/resetado
Mnemônicos para SUBROTINA LCALL: Especifica endereço de 16 bits. A instrução possui 3 bytes (opcode + 16 bits de endereço). Endereço de destino em qualquer lugar da memória (64 kiB). ACALL: Especifica endereço de 11 bits. A instrução possui 2 bytes (opcode + 11 bits de endereço). Endereço de destino distante em até 2k (2^11). Mnemônicos para Desvio LJMP: Especifica endereço de 16 bits. A instrução possui 3 bytes (opcode + 16 bits de endereço). AJMP: Especifica endereço de 11 bits. A instrução possui 3 bytes (opcode + 116 bits de endereço). SJMP: Especifica off-set (-128 to +127) a ser somado ao PC para acessar a próxima instrução. A instrução possui 2 bytes (opcode + offset).
ORG 0000H MOV R1,#3 MOV R3,#4 INC @R1 MOV A,@R1 MOV DPTR,#MENS MOVC A,@A+DPTR MOV DPTR,#20H MOVX @DPTR,A SJMP $ MENS: DB '124567890ABCDE' END
Fontes de Interrupção MOV IE,#10000101B; habilita INT0 E INT1
Interrupções Externas As interrupcões externasINT0 e INT1 podem ser ativadas por nível ou borda. Depende dos bits IT0 e IT1 do registrador TCON. Os flags que identificam ocorrência destas interrupcões externas são os flags IE0 e IE1 de TCON.
Temporizadores / Contadores Registradores TCON ITx - Interrupt control bit. 1 => borda de descida 0 => nível lógico baixo IEx - External Interrupt flag. Setado pelo hardware quando interrupção detectada. Apagada pelo software qdo salta para o tratador int.
Temporizadores / Contadores Registradores TCON MOV A,TCON ORL A,#00000101B; habilita INTs por borda MOV TCON,A
Interrupções MOV IP,#00000100B; prioridade INT1 superior às demais
Faça um programa que aceite int0 (acionada por borda). Qdo a int0 for solicitada, escrever na porta P1, caractere por caractere, a cadeia de 16 caracteres: ‘Microcontrolador’.
reset equ 00h ltint0 equ 03h ; local tratador state equ 20h org reset ;PC=0 depois de reset jmp inicio org ltint0 jmp handler inicio: mov ie,#10000001b ; habilita int mov tcon,#00000001b ; borda mov state,#0h ;inicialização mov r0,# state mov dptr,#tabela mov r1,#0 volta: cjne @r0,#1,volta movstate,#0h mov a,r1 movc a,@a+dptr mov p1,a inc r1 cjne r1,#16,volta jmp $ handler: movstate,#1h reti tabela: db 'Microcontrolador' end
Temporizadores / Contadores Modos 0 e 1 TMOD
Programação dos Timers • Habilitar interrupções dos timers (EA, ETx) • Especificar o modo de funcionamento dos timers (TMOD) • Especificar intervalo de contagem (THx e TLx) • Disparar contador (setb TRx) • Não esquecer tratadores para os timers nos seus devidos endereços. • OBS: É possível testar, freqüentemente, se houve encerramento da contagem sem necessidade de habilitar interrupções (polling dos flags TFx) em programas mais dedicados. Exemplo: Faça um programa que escreva na porta P1, a cadeia de 16 caracteres: ‘Microcontrolador’ à taxa de 10 kiB/s ( (1/10000) = 100 us)
reset equ 0h ltmr0 equ 0bh ; local tratador state equ 20h org reset ;PC=0 depois de reset jmp inicio org ltmr0 jmp handler inicio: mov ie,#10000010b ; habilita mov tmod,#01h ; modo 1 mov th0,#0ffh mov tl0,#09ch mov state,#0h ;inicialização mov r0,# state mov dptr,#tabela mov r1,#0 setb tr0 volta: cjne @r0,#1,volta mov th0,#0ffh mov tl0,#09ch movstate,#0h mov a,r1 movc a,@a+dptr mov p1,a inc r1 cjne r1,#16,volta jmp $ handler : movstate,#1h reti tabela: db 'Microcontrolador' end
Temporizadores / Contadores Modos 2 TMOD
Temporizadores / Contadores Modos 3 No modo 3, Timer 1 cessa contagem (o mesmo que TR1=0). Se fora do modo 3, pode ser usado pela serial No modo 3, Timer 0 implementa dois contadores de 8 bits. TR1 e TF1 são redirecionados para o Timer 0 (TH0)
Transmissão Serial EIA RS-232C: padrão industrial para a comunicação serial de dados binários entre um DTE (terminal de dados) e um DCE (comunicador de dados). Foi largamente utilizado em PCs, estando ainda presente em muitos equipamentos.
Níveis Lógicos EIA RS-232C (Electronics Industries Association) • Tamanho máximo do cabo: 15 metros • Velocidade de transmissão: 1Mbits/s
Pin DB25 1 2 3 4 5 6 7 8 20 22 DB9 2 3 7 8 6 5 1 4 9 Signal Name CD Chassis Ground TD Transmit Data RD Receive Data RTS Request To Send CTS Clear To Send DSR Data Set Ready SG Signal Ground DCD Data Carrier Detect DTR Data Terminal Ready RI Ring Indicator Direction - DTE DCE DTE DCE DTE DCE DTE DCE DTE DCE - DTE DCE DTE DCE DTE DCE DTE Conector Macho
Conexões Ideal Mínimo
Handshaking • Troca de sinais para estabelecer comunicação condicional • Processo • Transmissor ativa RTS • Receptor detecta CTS por interrupção ou polling • Receptor ativa RTS • Transmissor aguarda CTS • Transmissor envia dados