A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

Apresentações semelhantes


Apresentação em tema: "EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC."— Transcrição da apresentação:

1 EEL Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC

2 Microprocessador de Propósito Geral CPU Micropro cessador de propósito geral RAMROM Portas de I/O Timer Interface Serial Barramento de Dados Barramento de Endereço Sem RAM, ROM ou dispositivos de I/O Vantagem: flexibilidade, sistema expansível ; Desvantagem: custo, roteamento de placa e dimensões do circuito.

3 Microcontrolador Vantagem: menor custo, menor dimensão, rápido desenvolvimento; Desvantagem: baixa flexibilidade, não expansível; RAM ROM I/O Port Timer Serial COM Port CPU CPU + Periféricos

4 Microcontrolador 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

5 1.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; 2.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 Escolhendo um Microcontrolador

6 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

7 8051 CPU RAM 128 bytes ROM para memória de programa 4 k bytes 4 Portas de I/O Timer 0 Porta Serial OSC Controle de Interrupções Interrupções Externas Timer 1 Controle de Barramento TxD RxD P0 P2 P1 P3 Endereço/Dados Entradas do contador

8 Pinos do 8051

9 Organização da Memória

10 Alguns uC da família 8051 da Atmel DeviceFlash (KiB) USBEEPROM (kiB)RAM (Bytes) F.max (MHz)I/O Pins UARTTimersADC AT89C Yes AT89C5130A-M16Yes /34Yes -- AT89C5131A-L32Yes /34Yes -- AT89C5131A-M32Yes /34Yes -- AT89C513264Yes Yes AT89C51AC Yes AT89C51AC Yes AT89C51CC Yes AT89C51CC Yes AT89C51CC /3712Yes AT89C51ED AT89C51IC AT89C51ID AT89C51RB AT89C51RC AT89C51RC

11 Conexão do 8051 com Memória de Programa Externa date ADDR OE INSTR EPROM 80C51BH P1 P3 P2 P0 PSEN Latch ALEG EA 74HC373

12 date ADDR OE INSTR EPROM 80C51BH P1 P3 P2 P0 PSEN Latch ALEG EA 74HC373 Interface do 8051 Com Memória de Programa Externa

13 date ADDR OE INSTR EPROM 80C51BH P1 P3 P2 P0 PSEN Latch ALEG EA 74HC373 Exemplo de Leitura da Memória de Programa Externa

14 date ADDR OE INSTR EPROM 80C51BH P1 P3 P2 P0 PSEN Latch ALEG EA 74HC373 ADDR RD DATA RAM ADDR DECODER CE WR CE RD WR Interface do 8051 Com Memória de Programa e Dados Externas

15 Registradores

16 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, PSW - Program Status Word - Bit Addressable CYAC F0RS1 RS0OV P F D0H

17 MOV A, Rn MOV A, direct MOV MOV A,#data MOV DPTR,#data16 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 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. Mnemônicos

18 Organização da Memória

19 RAM INTERNA 00h: FFh: SFR REGISTERS MEMÓRIA 8052

20 Organização da RAM Interna

21

22

23 Special Function Registers

24 SUBROTINA Exemplo PILHAEND.DADO SP07H SP+108H0DH [PC LSB] SP+109H 00H [PC MSB] 1Salva atual PC (000Dh) na pilha. (O PC é atualizado ao obter o código da instrução CALL da memória); 2Sobrescreve PC com endereço da subrotina; (PC = 2028H) 3 Executa subrotina; 4Retorna à instrução que se segue ao CALL no programa principal (instrução RET). 5OBS: O SP é inicializado com o valor 07 quando o microprocessador é energizado/resetado END.CÓDIGO 000ACALL 2028H 000DMOV A,B

25 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 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).

26 MnemônicoDescrição JZ Salta se A = 0 JNZ Salta se A != 0 JC Salta se C = 1 JNC Salta se C != 1 JB, Salta se bit = 1 JNB, Salta se bit != 1 JBC, Salta se bit =1, limpa bit Mnemônicos para Desvio

27 MnemônicoDescrição CJNE A, direct, Compara A e memória. Salta se não igual CJNE A, #data Compara A e dado. Salta se não igual CJNE Rn, #data Compara Rn e dado. Salta se não igual #data Compara Rn e memória. Salta se não igual DJNZ Rn, Decrementa Rn e salta se não zero DJNZ direct, Decrementa memória e salta se não zero Mnemônicos para Desvio

28 ORG 0000H MOV R1,#3 MOV R3,#4 MOV MOV DPTR,#MENS MOVC MOV DPTR,#20H SJMP $ MENS: DB ' ABCDE' END

29 Fontes de Interrupção

30 MOV IE,# B; habilita INT0 E INT1

31 As interrupcões externas INT0 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. Interrupções Externas

32 Temporizadores / Contadores Registradores TCON IEx - External Interrupt flag. Setado pelo hardware quando interrupção detectada. Apagada pelo software qdo salta para o tratador int. ITx - Interrupt control bit. 1 => borda de descida 0 => nível lógico baixo

33 Temporizadores / Contadores Registradores TCON MOV A,TCON ORL A,# B; habilita INTs por borda MOV TCON,A

34 Interrupções

35 MOV IP,# B; prioridade INT1 superior às demais

36 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.

37 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,# b ; habilita int mov tcon,# b ; borda mov state,#0h ;inicialização mov r0,# state mov dptr,#tabela mov r1,#0 volta: mov state,#0h mov a,r1 movc mov p1,a inc r1 cjne r1,#16,volta jmp $ handler: mov state,#1h reti tabela: db 'Microcontrolador' end

38 Temporizadores / Contadores Modos 0 e 1 TMOD

39 Programação dos Timers 1)Habilitar interrupções dos timers (EA, ETx) 2)Especificar o modo de funcionamento dos timers (TMOD) 3)Especificar intervalo de contagem (THx e TLx) 4)Disparar contador (setb TRx) 5)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)

40 resetequ 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,# b ; 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 setbtr0 volta: mov th0,#0ffh mov tl0,#09ch mov state,#0h mov a,r1 movc mov p1,a inc r1 cjne r1,#16,volta jmp $ handler : mov state,#1h reti tabela: db 'Microcontrolador' end

41

42 Temporizadores / Contadores Modos 2 TMOD

43 Temporizadores / Contadores Modos 3 No modo 3, Timer 0 implementa dois contadores de 8 bits. TR1 e TF1 são redirecionados para o Timer 0 (TH0) No modo 3, Timer 1 cessa contagem (o mesmo que TR1=0). Se fora do modo 3, pode ser usado pela serial

44 Transmissão Serial

45 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). Transmissão Serial Foi largamente utilizado em PCs, estando ainda presente em muitos equipamentos.

46 Níveis Lógicos EIA RS-232C (Electronics Industries Association) Tamanho máximo do cabo: 15 metros Velocidade de transmissão: 1Mbits/s

47 DB Signal Name CDChassis Ground TDTransmit Data RDReceive Data RTSRequest To Send CTSClear To Send DSRData Set Ready SGSignal Ground DCDData Carrier Detect DTRData Terminal Ready RIRing Indicator Direction - DTE DCE - DTE DCE DB Pin DTE Conector Macho

48

49 Conexões Ideal Mínimo

50 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

51

52 SM0SM1MODOTIPOBITSTAXA 000SÍNCRONO - HD8Fclock/12 011ASSÍNCRONO – FD10Variável 102ASSÍNCRONO - FD11Fclock/32 ou /64 113ASSÍNCRONO - FD11Variável Modos de Programação

53 Full duplex (FD): dados são (ou podem ser) transmitidos e recebidos simultaneamente por ambos os dispositivos conectados, requerendo para tal, conexões adequadas Full Duplex

54 SM2: Habilita comunicação serial com múltiplos processadores nos modos 2 e 3. Nestes modos, se SM2 for colocado em 1, Rl não será setado a menos que o nono bit recebido (RB8) seja 0. Desta forma, é possível que um dispotivo acesse vários 8051 em um mesmo barramento e peça para um deles modificar SM2 para que estabeleça comunicação apenas com o mesmo para TB8=1.

55 Modo 2 => BR= [ ( 2^SMOD ) / 64 ] x f osc Modo 1 e 3 => Timer 1 em modo de auto carregamento (auto-load /TMOD = 20H). Neste caso, a baud rate é dada por: BR= [ ( 2^SMOD ) / 32 ] x { f osc / [ 12 x (256 - TH1) ] } Programação Baud Rate

56 Para sair de Idle: por uma interrupção que esteja habilitada ou por Reset. Por interrupção: vai para o tratador e após RETI, continua de onde parou. Por Reset: continua de onde parou. Para sair de Power Down - Somente por Reset (não altera RAM).

57 Organização Pinos da Porta P D Q Clk Q Vcc Load(L1) Read latch Read pin Write to latch Internal CPU bus M1 P1.X pin P1.X TB1 TB2 P0.x

58 Escrevendo 1 em Pino P1.X D Q Clk Q Vcc Load(L1) Read latch Read pin Write to latch Internal CPU bus M1 P1.X pin P1.X output pin is Vcc 1. write a 1 to the pin 1 0 output 1 TB1 TB2

59 D Q Clk Q Vcc Load(L1) Read latch Read pin Write to latch Internal CPU bus M1 P1.X pin P1.X 8051 IC 2. output pin is ground 1. write a 0 to the pin 0 1 output 0 TB1 TB2 Escrevendo 0 em Pino P1.X

60 D Q Clk Q Vcc Load(L1) Read latch Read pin Write to latch Internal CPU bus M1 P1.X pin P1.X 8051 IC 2. MOV A,P1 external pin=High 1.write a 1 to the pin MOV P1,#0FFH Read pin=1 Read latch=0 Write to latch=1 1 TB1 TB2 Lendo 1 em Pino P1.X

61 D Q Clk Q Vcc Load(L1) Read latch Read pin Write to latch Internal CPU bus M1 P1.X pin P1.X MOV A,P1 external pin=Low 1.write a 1 to the pin MOV P1,#0FFH Read pin=1 Read latch=0 Write to latch=1 0 TB1 TB2 Lendo 0 em Pino P1.X

62 Lendo do Latch de Porta Algumas instruções fazem a leitura do Pino (TB1) e outros da saída do Latch (TB2) Instruções que leêm do latch (lê-modifica-escreve). Exemplos: ANL AND lógico ex. ANL P1,A ORL OR lógico ex. ORL P2,A XRLXOR lógico ex. XRL P3,A CPL complementa bit ex. CPL P3.0 INC incremento ex. INC P2 DEC decrementaex. DEC P2 DJNZ decrementa e salta se não zero ex. DJNZ P3,LABEL MOV PX.Y,C move bit de carry para bit Y da Port X CLR PX.Y limpa bit Y da Port X SET PX.Yseta bit Y da Port X

63 Port 0


Carregar ppt "EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC."

Apresentações semelhantes


Anúncios Google