MICROPROCESSADORES E MICROCONTROLADORES Parte 2 Microcontrolador 8051

Tamanho: px
Começar a partir da página:

Download "MICROPROCESSADORES E MICROCONTROLADORES Parte 2 Microcontrolador 8051"

Transcrição

1 MICROPROCESSADORES E MICROCONTROLADORES Parte Microcontrolador 805 José Wilson Lima Nerys Página: s: [email protected] e [email protected] Prof. José Wilson Lima Nerys Microprocessadores

2 Leitura de Tabela no 8085 x 805 Mostra valores menores que 50H e valores maiores que 85H Início Início Fluxograma para o 8085 Configurações iniciais: SP ß 070H, HL ß 050H Configurações iniciais: SP ß FH, DPTR ß #Tabela R0 ß 00H, R7 ß 00H Fluxograma para o 805 A ß ((H,L)) A ß R7 A ß ((A + DPTR)) A < 50H? N A > 85H? S S A = FFH? N A < 50H? S S Fim N Display ß A N A > 85H? S HL ß HL + L ß A N N A = 60H? R7 ß R7 + P ß A S Fim Prof. José Wilson Lima Nerys Microprocessadores

3 3 Assembly do 8085 Endereço Mnemônico Endereço Dado Endereço Mnemônico 000H LXI SP, 070H 050H 0H 030H MVI C,50H 003H LXI H,050H 05H 50H 03H DCR C 006H MOV A,M 05H 5H 033H JNZ 03H 007H CPI 50H 053H 60H 036H RET 009H JC 04H 054H 65H 00CH CPI 85H 055H A0H 00EH JC 0CH 056H 70H 0H JZ 0CH 057H 90H 04H PUSH H 058H 85H 069H 05H CALL MOSTRA 059H 87H 06AH 08H CALL ATRASO 05AH 45H 06BH 0BH POP H 05BH 39H 06CH BH 0CH INX H 05CH C5H 06DH 0H 0DH MOV A,L 05DH H 06EH 55H 0EH CPI 60H 05EH 33H 06FH 0H Prof. José Wilson 00HLima JNZ Nerys 006H 05FH DH 070H 3 Microprocessadores 3

4 Assembly do 805 Universidade Federal de Goiás Rótulo Mnemônico Rótulo Mnemônico Rótulo Dado 0000H LJMP INICIO JC V TABELA: 0H JZ V 50H ORG 30H MOSTRA: MOV P,R0 5H INICIO: MOV SP,#FH LCALL ATRASO 60H MOV DPTR,#TABELA V: INC R7 65H MOV R7,#00H SJMP V0 A0H V0: MOV A,R7 70H MOVC A,@A+DPTR ATRASO: MOV R,#00 90H CJNE A,#0FFH,V DJNZ R,$ 85H SJMP FIM RET 87H V: CLR CY 45H MOV R0,A 39H SUBB A,#50H C5H JC MOSTRA H MOV A,R0 33H 4 SUBB A,#85H DH Prof. José Wilson Lima Nerys 4 Microprocessadores FFH

5 Prof. José Wilson 5 Lima Nerys 5 Microprocessadores 5

6 Prof. José Wilson 6 Lima Nerys 6 Microprocessadores 6

7 Memória RAM Prof. José Wilson 7 Lima Nerys 7 Microprocessadores 7

8 Memória RAM Prof. José Wilson 8 Lima Nerys 8 Microprocessadores 8

9 Memória RAM Prof. José Wilson 9 Lima Nerys 9 Microprocessadores 9

10 Memória RAM Prof. José Wilson 0Lima Nerys 0 Microprocessadores 0

11 MOV R0,#80H MOV 80H,A Conteúdo de A é armazenado na posição 80H da memória RAM Conteúdo de A é armazenado no registrador especial 80H, que corresponde à Porta P0 Prof. José Wilson Lima Nerys Microprocessadores

12 Registradores Especiais Prof. José Wilson Lima Nerys Microprocessadores

13 Registradores Especiais Prof. José Wilson 3Lima Nerys 3 Microprocessadores

14 Algumas Instruções do 805 Instrução MOV A,#Dado8 MOV Rn,#Dado8 MOV A,B MOV Rn,A MOV A,direto MOV dir,dir MOV DPTR,#dado6 MOVC Descrição Carrega acumulador com o Dado de 8 bits Carrega registrador Rn (n=0 a 7) com o Dado de 8 bits Copia no registrador A (acumulador) o conteúdo do registrador B Copia no registrador Rn (n = 0 a 7) o conteúdo do acumulador Copia em A o conteúdo do registrador identificado pelo endereço direto Copia no registrador identificado pelo endereço dir o conteúdo do registrador identificado pelo endereço dir Copia o conteúdo de A na posição apontada por R0 O registrador duplo DPTR recebe um dado de 6 bits Carrega acumulador com o conteúdo da posição apontada por A+DPTR Prof. José Wilson 4Lima Nerys 4 Microprocessadores

15 Instrução CJNE A,#dado,Ender CJNE Rn,#dado,Ender DJNZ Rn,desvio SJMP ender LJMP ender Descrição Algumas Instruções do 805 Compara conteúdo de A com o dado ; se não forem iguais, desvia para o endereço Ender Compara conteúdo do registrador Rn (n = 0 a 7) com o dado ; se não forem iguais, desvia para o endereço Ender Decrementa o registrador Rn (n = 0 a 7); se o resultado não for zero, desvia para desvio Desvia para o endereço ender. SJMP = Short Jump ( bytes de código) Desvia para o endereço ender. LJMP = Long Jump (3 bytes de código) JNZ ender Desvia para o endereço ender, se a flag Z = 0 JZ ender Desvia para ender, se a flag Z = JNC ender Desvia para ender, se a flag CY = 0 JC ender Desvia para ender, se a flag CY = Codificação: 80 XX, onde XX = número de bytes (em complemento de ) a ser adicionado ao endereço da próxima instrução, para desviar para o endereço ender Prof. José Wilson 5Lima Nerys 5 Microprocessadores

16 Algumas Instruções do 805 Instrução ADD A,Rn ADD A,#dado8 SUBB A,direto SUBB RL A RR A DA A INC Rn INC DPTR CPL A Descrição Adiciona o conteúdo de Rn (n = 0 a 7) ao conteúdo do acumulador Adiciona o dado8, de 8 bits ao conteúdo do acumulador Subtrai o conteúdo do registrador identificado pelo endereço direto, do conteúdo do acumulador Subtrai o conteúdo da posição apontada pelo registrador R0 do conteúdo do acumulador Rotaciona o conteúdo de A para a esquerda Rotaciona o conteúdo de A para a direita Faz o ajuste decimal do conteúdo de A Incrementa em uma unidade o conteúdo do registrador Rn Incrementa em uma unidade o conteúdo do registrador duplo DPTR Complementa o conteúdo do acumulador Prof. José Wilson 6Lima Nerys 6 Microprocessadores

17 Algumas Instruções do 805 Instrução MUL AB DIV AB ANL A,#dado ORL A,#dado SWAP A Descrição Multiplica o conteúdo de A pelo conteúdo de B. O resultado está em B A. O resultado da multiplicação é um número de 6 bits, por isso precisa de dois registradores para o resultado. Divide o conteúdo de A pelo conteúdo de B. A recebe o quociente e B o resto. Faz a operação AND, bit a bit, entre o acumulador e o dado de 8 bits Faz a operação OR, bit a bit, entre o acumulador e o dado de 8 bits Faz a troca dos nibbles do acumulador, ou seja, o nibble mais significativo passa a ocupar os quatro primeiros bits do acumulador e o nibble menos significativo passa a ocupar os quatro últimos bits. Por exemplo, se originalmente, A = 35 H, após a instrução, A = 53 H. Prof. José Wilson 7Lima Nerys 7 Microprocessadores

18 Algumas Instruções do 805 Operações com bits Instrução JB bit,desvio Descrição Desvia para a posição desvio, caso o bit esteja setado (se bit=). Exemplo: Se F0 =, então a instrução JB F0,V faz o processamento desviar para a posição V JNB bit,desvio Desvia para desvio, caso o bit seja zero (se bit = 0). SETB bit Faz bit = CLR bit Faz bit = 0 CPL bit MOV bit,c Complementa o bit. Se bit =, então bit torna-se bit=0. Copia no bit o conteúdo da Flag de Carry. Prof. José Wilson 8Lima Nerys 8 Microprocessadores

19 0x0_ 0x_ 0x_ 0x3_ 0x4_ 0x5_ 0x6_ 0x7_ 0x8_ 0x9_ 0xA_ 0xB_ 0xC_ 0xD_ 0xE_ 0xF_ Universidade Federal de Goiás seus Escola períodos de Engenharia de Elétrica, execução Mecânica e de Computação 0x_0 0x_ 0x_ 0x_3 0x_4 0x_5 0x_6 0x_7 NOP JBC bit,rel JB bit, rel JNB bit, rel JC rel JNC rel JZ rel JNZ rel SJMP rel MOV dptr,#data6 ORL C, /bit ANL C, /bit PUSH direct POP direct MOVX A,@DPTR Instruções do 805 com seus opcodes e AJMP add ACALL add AJMP add ACALL add AJMP add ACALL add AJMP add ACALL add AJMP add ACALL add AJMP add ACALL add AJMP add ACALL add AJMP add ACALL add LJMP add6 LCALL add6 RET RETI ORL dir,a ANL dir,a XRL dir,a ORL C,bit ANL C,bit MOV bit,c MOV C,bit CPL bit CLR bit SETB bit MOVX A,@R0 RR A RRC A RL A RLC A ORL dir,#dado ANL dir,#dado XRL dir,#dado MOVC A,@A+PC MOVC A,@A+DPTR INC DPTR CPL C CLR C SETB C MOVX A,@R INC A DEC A ADD A,#dado ADDC A,#dado ORL A,dado ANL A,#dado XRL A,#dado MOV A,#dado DIV AB 4 SUBB A,#dado MUL AB 4 CJNE A,#dado,rel SWAP A DA A CLR A CPL A INC dir DEC dir ADD A,#dir ADDC A,dir ORL A,dir ANL A,dir XRL A,dir MOV dir,#dado MOV dir,dir SUBB A,dir CJNE A,dir,rel XCH A,dir DJNZ dir,rel MOV A,dir MOV dir,a ADD A,@R0 ADDC A,@R0 ORL A,@R0 ANL A,@R0 XRL A,@R0 MOV dir,@r0 SUBB A,@R0 XCH A,@R0 XCHD A,@R0 MOV A,@R0 9 ADD A,@R ADDC A,@R ORL A,@R ANL A,@R XRL A,@R MOV dir,@r SUBB A,@R XCH A,@R XCHD A,@R MOV A,@R Prof. José Wilson 9Lima Nerys 9 Microprocessadores

20 0x0_ 0x_ 0x_ 0x3_ 0x4_ 0x5_ 0x6_ 0x7_ 0x8_ 0x9_ 0xA _ 0xB _ 0xC _ 0xD _ 0xE _ 0xF_ Universidade Federal de Goiás seus Escola períodos de Engenharia de Elétrica, execução Mecânica e de Computação 0x_8 0x_9 0x_A 0x_B 0x_C 0x_D 0x_E 0x_F INC R0 DEC R0 ADD A,R0 ADDC A,R0 ORL A,R0 ANL A,R0 XRL A,R0 MOV R0,#dado MOV dir,r0 SUBB A,R0 MOV R0,dir CJNE R0,#dado,rel XCH A,R0 DJNZ R0,rel MOV A,R0 0 MOV R0,A Instruções do 805 com seus opcodes e INC R DEC R ADD A,R ADDC A,R ORL A,R ANL A,R XRL A,R MOV R,#dado MOV dir,r SUBB A,R MOV R,dir CJNE R,#dado,rel XCH A,R DJNZ R,rel MOV A,R MOV R,A INC R DEC R ADD A,R ADDC A,R ORL A,R ANL A,R XRL A,R MOV R,#dado MOV dir,r SUBB A,R MOV R,dir CJNE R,#dado,rel XCH A,R DJNZ R,rel MOV A,R MOV R,A INC R3 DEC R3 ADD A,R3 ADDC A,R3 ORL A,R3 ANL A,R3 XRL A,R3 MOV R3,#dado MOV dir,r3 SUBB A,R3 MOV R3,dir CJNE R3,#dado,rel XCH A,R3 DJNZ R3,rel MOV A,R3 MOV R3,A INC R4 DEC R4 ADD A,R4 ADDC A,R4 ORL A,R4 ANL A,R4 XRL A,R4 MOV R4,#dado MOV dir,r4 SUBB A,R4 MOV R4,dir CJNE R4,#dado,rel XCH A,R4 DJNZ R4,rel MOV A,R4 MOV R4,A INC R5 DEC R5 ADD A,R5 ADDC A,R5 ORL A,R5 ANL A,R5 XRL A,R5 MOV R5,#dado MOV dir,r5 SUBB A,R5 MOV R5,dir CJNE R5,#dado,rel XCH A,R5 DJNZ R5,rel MOV A,R5 MOV R5,A Prof. José Wilson Lima Nerys 0 Microprocessadores 0 INC R6 DEC R6 ADD A,R6 ADDC A,R6 ORL A,R6 ANL A,R6 XRL A,R6 MOV R6,#dado MOV dir,r6 SUBB A,R6 MOV R6,dir CJNE R6,#dado,rel XCH A,R6 DJNZ R6,rel MOV A,R6 MOV R6,A INC R7 DEC R7 ADD A,R0 ADDC A,R7 ORL A,R7 ANL A,R7 XRL A,R7 MOV R7,#dado MOV dir,r7 SUBB A,R7 MOV R7,dir CJNE R7,#dado,rel XCH A,R7 DJNZ R7,rel MOV A,R7 MOV R7,A

21 Contagem crescente Rótulo Mnemônico Comentário sobre o Efeito da Operação Tempo ORG 00H LJMP INICIO A próxima instrução estará no endereço 00h Pula para o endereço indicado com o rótulo inicio ORG 30H INICIO: MOV A,#00H A próxima instrução estará no endereço 30h Carrega acumulador com valor 00h Endereço da próxima instrução V: MOV P,A Transfere para a porta P o conteúdo do acumulador µs Codificação: V corresponde ao endereço 003H = FB (considerando somente o byte menos significativo) INC A Incrementa em o conteúdo do acumulador. A ß A + µs SJMP V Pula para o endereço indicado pelo rótulo V µs END Instrução obrigatória no fim de todo programa 4 µs ORG 00H LJMP INICIO 3 4 ORG 30H INICIO: MOV A,#00H 003 F590 6 V: MOV P,A INC A FB 8 SJMP V 9 END Intervalo entre cada dois envios para a Porta P: 4 µs Período: 56 x 4 µs = 04 µs Prof. José Wilson Lima Nerys Microprocessadores

22 Universidade Federal de Goiás Contagem crescente Resultado visual (saída do Conversor Digital-Analógico): Onda Dente de Serra Rótulo Mnemônico Tempo ORG 00H LJMP INICIO ORG 30H INICIO: MOV A,#00H V: MOV P,A µs INC A µs SJMP V µs END 4 µs Período medido com o Proteus: 00 µs Intervalo entre cada dois envios para a Porta P: 4 µs Cristal oscilador: MHz Período calculado: 55 x 4 µs = 00 µs Prof. José Wilson Lima Nerys Microprocessadores

23 Contagem crescente e decrescente Rótulo Mnemônico Comentário sobre o Efeito da Operação Início ORG 00H A próxima instrução estará no endereço 00h A ß 00H LJMP INICIO Pula para o endereço indicado com o rótulo inicio P0 ß A ORG 30H A próxima instrução estará no endereço 30h Aß A + INICIO: MOV A,#00H Carrega acumulador com valor 00h N A = FFH? S P0 ß A V: MOV P0,A Transfere para a porta P0 o conteúdo do acumulador INC A CJNE A,#0FFH,V Incrementa o conteúdo do acumulador Compara conteúdo do acumulador com 30h. Caso não seja igual (Compare, Jump if Not Equal), desvia para V N Aß A - A = 00? S V: MOV P0,A Transfere para a porta P0 o conteúdo do acumulador DJNZ ACC,V Decrementa conteúdo do acumulador e vai para V se não for zero SJMP V Pula para V. Não precisa usar LJMP porque a distância é curta. END Instrução obrigatória no fim de todo programa Quando A = FFH, vai para a próxima linha. Acaba o ciclo crescente e começa o decrescente Prof. José Wilson 3Lima Nerys 3 Microprocessadores 3

24 Universidade Federal de Goiás Contagem crescente e decrescente Saída do Conversor Digital-Analógico: Onda Triangular Rótulo Mnemônico Tempo Período ORG 00H LJMP INICIO ORG 30H µs CJNE A,#0FFH,V µs V: MOV P0,A DJNZ ACC,V SJMP V END µs µs = 00 µs INC A µs=765 µs µs 55 x 3 V: MOV P0,A 55 x 4 µs INICIO: MOV A,#00H O primeiro semi-período (crescente: 00 µs, calculado e 00 µs medido) é maior que o segundo (decrescente: 765 µs calculado e 78 µs medido) porque o número de instruções executadas é diferente para o primeiro e para o segundo semi-período. 4 4 Prof. José Wilson Lima Nerys 4 Microprocessadores

25 Universidade Federal de Goiás Contagem crescente e decrescente Saída do Conversor Digital-Analógico: Onda Triangular Rótulo Mnemônico Tempo Período ORG 00H LJMP INICIO ORG 30H µs CJNE A,#0FFH,V µs V: MOV P0,A µs NOP µs DJNZ ACC,V SJMP V END 5 Prof. José Wilson Lima Nerys µs = 00 µs INC A 00 µs µs 55 x 4µs = V: MOV P0,A 55 x 4 µs INICIO: MOV A,#00H Com a inclusão da instrução NOP, os dois semiperíodos ficaram com tempos calculados iguais e tempos medidos muito próximos (00 µs e 030 µs) Instrução NOP (No Operation) usada apenas para gerar um atraso de µs. 5 5 Microprocessadores

26 Universidade Federal de Goiás A Onda triangular pode ser obtida, também com um código ligeiramente modificado Rótulo Mnemônico Tempo Período ORG 00H LJMP INICIO ORG 30H µs CJNE A,#0FFH,V µs V: MOV P0,A µs DEC A µs CJNE A,#00H,V µs = 00 µs INC A 00 µs µs 55 x 4µs = V: MOV P0,A 55 x 4 µs INICIO: MOV A,#00H Com uma estrutura no segundo semi-ciclo semelhante à estrutura no primeiro semiciclo, o tempo é equivalente nos dois intervalos. SJMP V END 6 Prof. José Wilson Lima Nerys Instruções DEC A, e CJNE A,#00H,V, produzem, juntas, um atraso de 3 µs, não havendo necessidade 6 da instrução NOP. 6 Microprocessadores

27 Universidade Federal de Goiás Onda quadrada no pino P.0 Endereço 0000H Código Rótulo Mnemônico Comentário sobre o Efeito da Operação Tempo ORG 00H A próxima instrução estará no endereço 00h LJMP INICIO Pula para o endereço indicado com o rótulo inicio ORG 30H A próxima instrução estará no endereço 30h Complementa o bit 0 da Porta P µs MOV R0,#50 Carrega registrador R0 com valor decimal 50 µs D8 FE DJNZ R0,$ Decrementa o conteúdo de R0, até R0 = 0 80 F8 SJMP INICIO Retorna para o início END Instrução obrigatória no fim de todo programa 0030H B H H 0036H INICIO: CPL P H 00 µs µs 04 µs Tempo calculado para meio período Tempo medido para meio período com o Proteus: 05,0 µs Cristal oscilador: MHz 7 Prof. José Wilson Lima Nerys 7 Microprocessadores

28 Leitura de Tabela adaptada para ler 56 valores que, enviados para o Conversor DA, resulta em uma curva senoidal Rótulo Mnemônico CONTADOR EQU 07H ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#FH MOV DPTR,#Tabela MOV CONTADOR,#00h Mnemônico Tempo V: MOV A,CONTADOR µs MOVC A,@A+DPTR µs MOV P0,A µs INC CONTADOR µs SJMP V µs Tempo entre leituras: 7 µs Período senoide: 7 µs x 56 = 79 µs Período medido:,80 ms 556 Hz Como a Tabela de seno tem 56 valores, não há necessidade fazer uma contagem desses valores, uma vez que o CONTADOR volta ao valor zero após atingir o valor máximo FFh. Assim, a leitura volta para o início da Tabela após CONTADOR = FFh. Prof. José Wilson 8Lima Nerys 8 Microprocessadores 8

29 Tabela: seno Universidade Federal de Goiás Parte Parte Parte 3 Parte 4 Parte 5 Parte 6 DB 7 DB 05 DB 50 DB 43 DB 86 DB 04 DB 30 DB 08 DB 5 DB 4 DB 83 DB 0 DB 33 DB 0 DB 5 DB 40 DB 80 DB 98 DB 36 DB 3 DB 5 DB 39 DB 77 DB 95 DB 39 DB 5 DB 53 DB 37 DB 74 DB 9 DB 43 DB 7 DB 53 DB 35 DB 7 DB 88 DB 46 DB 9 DB 53 DB 34 DB 68 DB 86 DB 49 DB DB 54 DB 3 DB 66 DB 83 DB 5 DB 3 DB 54 DB 30 DB 63 DB 80 DB 55 DB 5 DB 54 DB 8 DB 59 DB 77 DB 58 DB 7 DB 54 DB 6 DB 56 DB 74 DB 6 DB 9 DB 54 DB 4 DB 53 DB 7 DB 64 DB 3 DB 54 DB DB 50 DB 68 DB 67 DB 33 DB 54 DB 0 DB 47 DB 66 DB 70 DB 35 DB 53 DB 8 DB 44 DB 63 DB 73 DB 36 DB 53 DB 6 DB 4 DB 60 DB 76 DB 38 DB 5 DB 4 DB 38 DB 58 DB 79 DB 39 DB 5 DB DB 35 DB 55 DB 8 DB 4 DB 5 DB 09 DB 3 DB 5 DB 84 DB 4 DB 5 DB 07 DB 9 DB 50 DB 87 DB 43 DB 50 DB 04 DB 5 DB 47 DB 90 DB 45 DB 49 DB 0 DB DB 45 DB 93 DB 46 DB 48 DB 99 DB 9 DB 43 DB 95 DB 47 DB 47 DB 96 DB 6 DB 40 DB 98 DB 48 DB 46 DB 94 DB9 3 DB 38 DB 00 DB 49 DB 45 DB 9 DB 0 DB 36 Prof. José Wilson DB Lima 03Nerys DB 50 DB 44 DB 88 DB 07 9 Microprocessadores DB 34 9

30 Parte 7 Parte 8 Parte 9 Parte 0 Parte Parte DB 3 DB 7 DB 0 DB 3 DB 44 DB 87 DB 30 DB 6 DB DB 5 DB 46 DB 90 DB 8 DB 5 DB DB 6 DB 49 DB 93 DB 6 DB 4 DB DB 8 DB 5 DB 96 DB 4 DB 3 DB DB 9 DB 54 DB 99 DB DB 3 DB DB DB 56 DB 0 DB 0 DB DB 3 DB 3 DB 59 DB 05 DB 9 DB DB 4 DB 5 DB 6 DB 08 DB 7 DB DB 4 DB 7 DB 64 DB DB 5 DB DB 5 DB 9 DB 67 DB 5 DB 4 DB 0 DB 6 DB 3 DB 70 DB 8 DB 3 DB 0 DB 7 DB 33 DB 73 DB DB DB 0 DB 8 DB 35 DB 75 DB 4 DB 0 DB 0 DB 9 DB 37 DB 78 DB 7 DB 9 DB 0 DB DB 39 DB 8 DB 8 DB 0 DB DB 4 DB 84 Prof. José Wilson 30Lima Nerys 30 Microprocessadores

31 Gerador de Função com valores fixos de frequência para cada onda: Onda quadrada Onda dente de serra 3 Onda triangular 4 Onda senoidal CONTADOR EQU 07H QUAD EQU P.0 Chave de escolha Onda quadrada SERRA EQU P. Chave de escolha Dente de serra TRI EQU P. Chave de escolha Triangular SENO EQU P.3 Chave de escolha Senoide Primeira parte do programa: INICIO: ORG 00H LJMP INICIO ORG 30H MOV SP,#FH MOV DPTR,#Tabela MOV CONTADOR,#00h V: MOV A,#00H JNB QUAD, QUADRADA Se QUAD = 0 quadrada JNB SERRA, DENTE_SERRA JNB TRI, TRIANGULAR JNB SENO, SENOIDAL Se SENO = 0 Senoidal SJMP V Prof. José Wilson 3Lima Nerys 3 Microprocessadores 3

32 Leitura de Tabela com Quantidade de Dados menor que 56 Usando tabela para acionamento de motor de passo Prof. José Wilson 3Lima Nerys 3 Microprocessadores 3

33 Rótulo Universidade Federal de Goiás Acionamento de Motor de Passo com Passo Completo e Meio Passo Mnemônico ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#FH MOV DPTR,#Tabela V: MOV R7,#00h Rótulo Mnemônico V: MOV A,R7 A subrotina de atraso de tempo não foi incluída MOVC A,@A+DPTR MOV P,A LCALL ATRASO INC R7 CJNE R7,#04H,V SJMP V Rótulo Tabela Passo Completo Tabela: DB 03H DB 06H DB 0CH DB 09H Tabela Meio Passo DB 0H DB 03H DB 0H DB 06H DB 04H DB 0CH DB 08H DB 09H Essa tabela, com apenas 4 valores, pode ser usada para o acionamento de um motor de passo (PASSO COMPLETO). A tabela com 8 valores é para acionamento do motor de passo com MEIO PASSO. O motor deve estar conectado, através de um driver, ao nibble inferior da Porta P. 33 Prof. José Wilson 33Lima Nerys 33 Microprocessadores END END Offset R

34 Acionamento de Motor de Passo Driver ULN 803 Capacidade de corrente: 500 ma Tensão máxima no pino COM: 50 V Prof. José Wilson 34Lima Nerys 34 Microprocessadores

35 Rótulo Universidade Federal de Goiás Mnemônico CH0 EQU P.0 CH EQU P. CH EQU P. CH3 EQU P.3 ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#FH Rótulo ATRASO: V: MOV R7,#00h Mnemônico MOV R0,#80 V3: MOV R,#5 DJNZ R,$ DJNZ R0,V3 RET Tabela3: Tabela4: Usando Chaves externas para escolher a configuração do acionamento CH0 sentido horário com passo completo CH sentido anti-horário com passo completo CH sentido horário com meio passo CH3 sentido anti-horário com meio passo Tarefa:. Escolher uma das chaves para Ligar/Desligar. Escolher uma das chaves para definir o sentido horário ou anti-horário 3. Escolher uma das chaves para definir se o acionamento é com meio passo ou passo completo Tabela: DB 03H, 06H, 0CH, 09H, 0FFH Tabela: DB 09H, 0CH, 06H, 03H, 0FFH DB 0H, 03H, 0H, 06H, 04H, 0CH, 08H, 09H, 0FFH DB 09H, 08H, 0CH, 04H, 06H, 0H, 03H, 0H, 0FFH Rótulo Mnemônico V0: JB CH0,VCH MOV DPTR,#Tabela SJMP V VCH: JB CH,VCH MOV DPTR,#Tabela SJMP V Prof. José Wilson 35Lima Nerys 35 Microprocessadores VCH: JB CH,VCH3 MOV DPTR,#Tabela3 SJMP V VCH3: JB CH3,V0 MOV DPTR,#Tabela4 V: MOV A,R7 MOVC A,@A+DPTR CJNE A,#0FFH,V4 SJMP V V4: MOV P,A LCALL ATRASO INC R7 SJMP V

36 Mostra em P o Maior valor de uma Tabela R0 recebe o maior valor, antes de mostrar em P Início Configurações iniciais: SP ß FH, DPTR ß #Tabela R0 ß 00H, R7 ß 00H A ß R7 A ß ((A + DPTR)) A = FF? S S N A >= R0? P ß R0 R0 ß A N R7 ß R7 + Fim Prof. José Wilson 36Lima Nerys 36 Microprocessadores

37 Mostra em P o Maior valor de uma Tabela Rótulo Mnemônico Rótulo Mnemônico Rótulo Mnemônico Offset R7 ORG 00H V: MOV A,R7 Tabela: DB 0A3H 0 LJMP INICIO MOVC A,@A+DPTR DB 6H CJNE A,#0FFH,SEGUE DB 05H ORG 30H MOV P,R0 DB 09H 3 INICIO: MOV SP,#FH SJMP FIM DB 0AH 4 MOV DPTR,#Tabela DB 35H 5 MOV R0,#00h SEGUE: CLR CY DB 0C5H 6 MOV R7,#00H MOV B,A DB 7H 7 SUBB A,R0 JC V MOV R0,B DB 40H DB 0FFH 8 9 V: INC R7 FIM: END SJMP V Prof. José Wilson 37Lima Nerys 37 Microprocessadores

38 Contagem decimal crescente de 0 a 59 e decrescente de 59 a 0 Rótulo Mnemônico Rótulo Mnemônico ORG 00H ORG 00H LJMP INICIO LJMP INICIO ORG 30H INICIO: MOV SP,#FH MOV A,#00H V: MOV P,A ADD A,#0H DA A CJNE A,#60H,V SJMP INICIO END Enquanto A < 60H, continua contagem crescente ORG 30H INICIO: MOV SP,#FH MOV A,#60H V: ADD A,#99H Prof. José Wilson 38Lima Nerys 38 Microprocessadores DA A MOV P,A CJNE A,#00H,V SJMP INICIO END Enquanto A > 00H, continua contagem decrescente

39 Relógio HH:MM:SS Prof. José Wilson 39Lima Nerys 39 Microprocessadores

40 RÓTULO MNEMÔNICO SEG EQU 0H MIN EQU H HORA EQU H ORG 00H LJMP INICIO Relógio HH:MM:SS RÓTULO MNEMÔNICO MOV A,SEG ADD A,#0H DA A MOV SEG,A RÓTULO MNEMÔNICO ADD A,#0H DA A MOV HORA,A CJNE A,#4H,V CJNE A,#60H,V SJMP V INICIO: ORG 30H MOV SP,#FH V: MOV SEG,#00H MOV MIN,#00H MOV HORA,#00H V: MOV P,SEG MOV P,MIN MOV P0,HORA LCALL ATRASO MOV SEG,#00H MOV A,MIN ADD A,#0H DA A MOV MIN,A CJNE A,#60H,V MOV MIN,#00H MOV A,HORA ATRASO: MOV R0,#50 V3: MOV R,#50 DJNZ R,$ DJNZ R0,V3 Prof. José Wilson 40Lima Nerys 40 Microprocessadores RET END

41 Cronômetro: MM:SS Prof. José Wilson 4Lima Nerys 4 Microprocessadores

42 RÓTULO MIN SEG MNEMÔNICO EQU H EQU H BUZZER EQU P3.7 INICIO: ORG 00H LJMP INICIO ORG 30H MOV SP,#FH CLR BUZZER MOV MIN,#0H MOV SEG,#00H V: MOV P,MIN MOV P,SEG LCALL ATRASO Cronômetro Decrescente: MM:SS RÓTULO MNEMÔNICO MOV A,SEG ADD A,#99H DA A MOV SEG,A CJNE A,#99H,V MOV SEG,#59H MOV A,MIN ADD A,#99H DA A MOV MIN,A CJNE A,#99H,V MOV MIN,#00H MOV SEG,#00H RÓTULO ATRASO: MNEMÔNICO MOV P,MIN MOV P,SEG SETB BUZZER MOV R7,#0 V: LCALL ATRASO DJNZ R7,V CLR BUZZER SJMP $ MOV R0,#50 V3: MOV R,#50 DJNZ R,$ DJNZ R0,V3 Prof. José Wilson 4Lima Nerys 4 Microprocessadores RET END

43 Interrupções do 805 Endereços de Desvio das Interrupções: Interrupção Solicitada Reset INT0\ Timer/counter 0 INT\ Timer/counter Canal Serial Endereço de desvio 0000h 0003h 000Bh 003h 00Bh 003h Registradores associados à interrupção: Registrador de Habilitação: IE (Interrupt Enable) = Registrador A8h Registrador de Prioridades: IP (Interrupt Priority) = Registrador B8h Registrador de Controle: TCON (Timer Control) = Registrador 88h Prof. José Wilson 43Lima Nerys 43 Microprocessadores

44 Registrador de Habilitação: IE (Interrupt Enable) = Registrador A8h pino P3. são atendidas. Com EX0 = 0 elas são ignoradas. Prof. José Wilson Lima Nerys 44 Microprocessadores 44 Bit 7 Bit 4 Bit 3 Bit Bit Bit 0 EA x x ES ET EX ET0 EX0 EA Enable All. Com EA =, todas as interrupções podem ser habilitadas individualmente. Com EA = 0, ficam todas mascaradas. ES Enable Serial. Com ES =, a interrupção pelo canal serial fica habilitada. Com ES = 0 os pedidos de interrupção da serial são ignorados. ET Enable Timer. Com ET =, as interrupções pedidas pelo Timer são atendidas. Com ET = 0 elas são ignoradas. EX Enable External Interrupt. Com EX =, as interrupções pedidas através do pino P3.3 são atendidas. Com EX = 0 elas são ignoradas. ET0 Enable Timer 0. Com ET0 =, as interrupções pedidas pelo Timer 0 são atendidas. Com ET0 = 0 elas são ignoradas. EX0 Enable External Interrupt 0. Com EX0 =, as interrupções pedidas através

45 Registrador de Controle: TCON (Timer Control) = Registrador 88h TCON = TF TR TF0 TR0 IE IT IE0 IT0 IE Interrupt Edge Flag - É setado pelo hardware quando uma interrupção externa através de INT\ é detectada. É zerada quando da execução da instrução RETI (retorno da subrotina de atendimento). IT (Interrupt Type) - Quando IT = a interrupção externa será reconhecida pela transição de para 0 no pino P3.3. Quando IT = 0, a interrupção é reconhecida quando o sinal no pino P3.3 está em nível baixo (0 = interrupção por nível). IE0 (Interrupt 0 Edge Flag) - É setado pelo hardware quando uma interrupção externa através de INT0\ é detectada. É zerada quando da execução da instrução RETI. IT0 (Interrupt 0 Type) - Quando IT0 = a interrupção externa 0 será reconhecida pela transição de para 0 no pino INTO\. Quando IT0 = 0, a interrupção é reconhecida quando o sinal no pino INTO\ está em nível baixo (0). Prof. José Wilson 45Lima Nerys 45 Microprocessadores

46 Registrador de Prioridade: IP (Interrupt Priority) = Registrador B8h IP = X X X PS PT PX PT0 PX0 PS Priority of Serial Port Interrupt Sendo PS =, a interrupção serial tem prioridade alta. PT Priority of Timer Interrupt Sendo PT =, a interrupção do temporizador tem prioridade alta. PX Priority of External Interrupt Sendo PX =, a interrupção externa tem prioridade alta. PT0 Priority of Timer Interrupt 0 Sendo PT0 =, a interrupção do temporizador 0 tem prioridade alta. PX0 Priority of External Interrupt 0 Sendo PX0 =, a interrupção externa 0 tem prioridade alta. Prof. José Wilson 46Lima Nerys 46 Microprocessadores

47 Uma interrupção ter prioridade alta (Prioridade ) significa que ela será atendida sempre que solicitada, mesmo quando o programa está executando uma outra interrupção. No caso de todos os canais de interrupção terem prioridade 0 ou, a escala de prioridade é como segue: Interrupção Externa 0 Prioridade Maior Temporizador 0 Externa Temporizador Serial Menor Prof. José Wilson 47Lima Nerys 47 Microprocessadores

48 Usando Interrupções (antes de estudar interrupções) Para escolher o valor inicial do cronômetro e para iniciar a contagem RÓTULO MNEMÔNICO COMENTÁRIO ORG 00H LJMP INICIO ORG 03H Endereço da Interrupção externa 0 (EX0) MOV A,MIN A recebe o valor atual dos Minutos ADD A,#0H Acrescenta 0H ao conteúdo de A DA A Faz o ajuste decimal do conteúdo de A MOV MIN,A Transfere para MIN o conteúdo atualizado dos minutos RETI Retorna da Interrupção externa 0 ORG 3H Endereço da Interrupção externa 0 (EX) SETB F0 Faz F0 = para dar início à contagem RETI Retorna da interrupção externa Prof. José Wilson 48Lima Nerys 48 Microprocessadores

49 Usando Interrupções (antes de estudar interrupções) Para escolher o valor inicial do cronômetro e para iniciar a contagem RÓTULO MNEMÔNICO COMENTÁRIO ORG 30H INÍCIO: MOV SP,#FH MOV IE,#85H Habilita as interrupções externas 0 e MOV TCON,#05H As interrupções externas 0 e são por transição CLR F0 Limpa a flag F0, que é usada para iniciar a contagem MOV SEG,#00H Faz o registrador SEG = 0 CLR BUZZER Limpa a saída que aciona o alarme V: MOV P,SEG Mostra valor atual de MINuto e SEGundo MOV P,MIN JNB F0,V Aguarda enquanto F0 = 0 Prof. José Wilson 49Lima Nerys 49 Microprocessadores

50 Rotação de Leds à esquerda (CH0 = 0) e à direita (CH = 0) Rótulo Mnemônico CH0 EQU P3. CH EQU P3.3 ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#FH MOV A,#0H V: JB CH0,VCH Rótulo Mnemônico MOV P,A RL A LCALL ATRASO SJMP V VCH: JB CH,V MOV P,A RR A LCALL ATRASO SJMP V Rótulo Mnemônico ATRASO: MOV R0,#00 V: MOV R,#00 DJNZ R,$ DJNZ R0,V RET END Prof. José Wilson 50Lima Nerys 50 Microprocessadores

51 Leds piscando (CH0 = 0) e alternando (CH = 0) Rótulo Mnemônico CH0 EQU P3. CH EQU P3.3 ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#FH MOV R6,#00H MOV R7,#55H V: JB CH0,VCH Rótulo Mnemônico MOV P,R6 MOV A,R6 LCALL ATRASO CPL A MOV R6,A SJMP V VCH: JB CH,V MOV P,R7 MOV A,R7 LCALL ATRASO CPL A MOV R7,A SJMP V Rótulo Mnemônico ATRASO: MOV R0,#00 V: MOV R,#00 DJNZ R,$ DJNZ R0,V RET END Prof. José Wilson 5Lima Nerys 5 Microprocessadores

52 Multiplicação e Divisão de Números de 8 bits Rótulo Mnemônico Rótulo Mnemônico ORG 00H ORG 00H LJMP INICIO LJMP INICIO ORG 00H INICIO: MOV SP,#FH MOV A,#00 MOV B,#40 MUL AB JB P3.,$ MOV P,A MOV P,B END ORG 00H INICIO: MOV SP,#FH MOV A,#00 MOV B,#40 DIV AB JB P3.,$ MOV P,A MOV P,B END Prof. José Wilson 5Lima Nerys 5 Microprocessadores

53 Adição e Subtração de Números de 6 bits Prof. José Wilson 53Lima Nerys 53 Microprocessadores

54 ; ADIÇÃO DE NÚMEROS DE 6 BITS Z = X + Y XH EQU 0H ; Número X de 6 bits XL EQU H YH EQU H ; Número Y de 6 bits YL EQU 3H ZH EQU 4H ; Resultado da adição de 6 bits ZL EQU 5H ZOV BIT 00H ; Flag de carry do resultado de 6 bits ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#FH MOV XH,#40H MOV XL,#00H MOV YH,#35H MOV YL,#50H MOV A,XL ADD A,YL MOV ZL,A MOV A,XH ADDC A,YH MOV ZH,A MOV ZOV,C ; Adição do byte inferior, sem carry ; Adição do byte superior, com carry END Prof. José Wilson 54Lima Nerys 54 Microprocessadores

55 ; SUBTRAÇÃO DE NÚMEROS DE 6 BITS Z = X - Y XH EQU 0H ; Número X de 6 bits XL EQU H YH EQU H ; Número Y de 6 bits YL EQU 3H ZH EQU 4H ; Resultado da adição de 6 bits ZL EQU 5H ZOV BIT 00H ; Flag de carry do resultado de 6 bits ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#FH MOV XH,#40H MOV XL,#00H MOV YH,#35H MOV YL,#50H 55 MOV A,XL CLR CY SUBB A,YL MOV ZL,A MOV A,XH SUBB A,YH MOV ZH,A MOV ZOV,C END Prof. José Wilson Lima Nerys 55 Microprocessadores

56 Exemplos Universidade Federal de Goiás Programa que envia uma contagem crescente para a porta P a cada solicitação da interrupção INT0 (através do pino P3.). Contagem encerra quando A retorna para 00 RÓTULO MNEMÔNICO ORG 00H LJMP INICIO ORG 03H LJMP CONTAGEM RÓTULO MNEMÔNICO CONTAGEM: MOV P,A INC A LCALL ATRASO CJNE A,#00H,CONTAGEM RETI ORG 30H INICIO: MOV SP, #FH MOV IE, #8H MOV TCON, #0H MOV A, #00H SJMP $ ATRASO: MOV R0,#0 V: MOV R,#00 DJNZ R, $ DJNZ R0, V RET END Habilita interrupção externa 0 por transição Laço infinito aguardando interrupção Prof. José Wilson 56Lima Nerys 56 Microprocessadores

57 RÓTULO Universidade Federal de Goiás Programa que envia uma contagem crescente para a porta P a cada solicitação da interrupção INT0 e uma decrescente a cada solicitação da INT. MNEMÔNICO ORG 00H LJMP INICIO ORG 03H LJMP ATENDE0 ORG 3H LJMP ATENDE ORG 30H INICIO: MOV SP, #FH MOV IE, #85H MOV TCON, #05H RÓTULO ATENDE0: PUSH ACC MNEMÔNICO MOV A,#00H V: MOV P,A INC A LCALL ATRASO CJNE A,#00H,V POP ACC RETI Exemplos Habilita Interrupções INT0 e INT por transição RÓTULO MNEMÔNICO ATENDE: PUSH ACC MOV A,#0FFH V: MOV P,A LCALL ATRASO DEC A CJNE A,#0FFH,V POP ACC SJMP $ Laço infinito aguardando interrupção Prof. José Wilson 57Lima Nerys 57 Microprocessadores RETI ATRASO: MOV R0,#0 V3: MOV R,#00 DJNZ R, $ DJNZ R0, V3 RET END

58 Programa que envia uma contagem decimal crescente para a porta P a cada solicitação da interrupção INT0 e uma decimal decrescente a cada solicitação da INT. RÓTULO MNEMÔNICO ORG 00H LJMP INICIO ORG 03H LJMP ATENDE0 ORG 3H LJMP ATENDE ORG 30H INICIO: MOV SP, #FH MOV IE, #85H MOV TCON, #05H RÓTULO ATENDE0: PUSH ACC V: MOV P,A MNEMÔNICO ADD A,#0H DA A LCALL ATRASO CJNE A,#00H,V POP ACC RETI Adiciona e faz ajuste decimal Exemplos Subtrai e faz ajuste decimal Habilita Interrupções INT0 e INT por transição RÓTULO MNEMÔNICO ATENDE: PUSH ACC V: ADD A,#99H MOV A,#00H SJMP $ Laço infinito aguardando interrupção Prof. José Wilson 58Lima Nerys 58 Microprocessadores DA A MOV P,A LCALL ATRASO CJNE A,#00H,V POP ACC RETI ATRASO: MOV R0,#50 V3: MOV R,#50 DJNZ R, $ DJNZ R0, V3 RET END

59 RÓTULO Universidade Federal de Goiás Programa que envia uma contagem crescente para a porta P a cada solicitação da interrupção INT0 e uma decrescente a cada solicitação da INT (Prioridade alta). SJMP $ Prof. José Wilson Lima Nerys Laço infinito aguardando interrupção 59 Microprocessadores 59 MNEMÔNICO ORG 00H LJMP INICIO ORG 03H LJMP ATENDE0 ORG 3H LJMP ATENDE ORG 30H INICIO: MOV SP, #FH MOV IE, #85H MOV TCON, #05H MOV IP,#04H RÓTULO ATENDE0: PUSH ACC MNEMÔNICO MOV A,#00H V: MOV P,A INC A LCALL ATRASO CJNE A,#00H,V POP ACC RETI Exemplos Habilita Interrupções INT0 e INT por transição. INT tem prioridade alta RÓTULO MNEMÔNICO ATENDE: PUSH ACC MOV A,#0FFH V: MOV P,A LCALL ATRASO DEC A CJNE A,#0FFH,V POP ACC RETI ATRASO: MOV R0,#0 V3: MOV R,#00 DJNZ R, $ DJNZ R0, V3 RET END

60 RÓTULO Universidade Federal de Goiás MNEMÔNICO ORG 00H LJMP INICIO ORG 03H LJMP ATENDE0 ORG 3H LJMP ATENDE Programa rotaciona Leds conectados à porta P. INT0 rotaciona à esquerda; INT rotaciona à direita. RÓTULO ATENDE0: PUSH ACC MNEMÔNICO MOV A,#0H V: MOV P,A RL A LCALL ATRASO CJNE A,#0H,V POP ACC RETI Exemplos RÓTULO MNEMÔNICO ATENDE: PUSH ACC MOV A,#80H V: MOV P,A LCALL ATRASO ORG 30H V3: MOV R,#50 INICIO: MOV SP, #FH DJNZ R, $ DJNZ R0, V3 MOV IE, #85H Habilita Interrupções INT0 e INT por transição RET MOV TCON, #05H END SJMP $ Laço infinito aguardando interrupção Prof. José Wilson 60Lima Nerys 60 Microprocessadores RR A CJNE A,#80H,V POP ACC RETI ATRASO: MOV R0,#50

61 RÓTULO Universidade Federal de Goiás SJMP $ Prof. José Wilson Lima Nerys Laço infinito aguardando interrupção 6 Microprocessadores 6 MNEMÔNICO ORG 00H LJMP INICIO ORG 03H LJMP ATENDE0 ORG 3H LJMP ATENDE ORG 30H INICIO: MOV SP, #FH Programa rotaciona Leds conectados à porta P. INT0 rotaciona à esquerda; INT rotaciona à direita (com prioridade alta). MOV IE, #85H MOV TCON, #05H MOV IP,#04H RÓTULO ATENDE0: PUSH ACC MNEMÔNICO MOV A,#0H V: MOV P,A RL A LCALL ATRASO CJNE A,#0H,V POP ACC RETI Exemplos Habilita Interrupções INT0 e INT por transição. INT tem prioridade alta RÓTULO MNEMÔNICO ATENDE: PUSH ACC MOV A,#80H V: MOV P,A LCALL ATRASO RR A CJNE A,#80H,V POP ACC RETI ATRASO: MOV R0,#50 V3: MOV R,#50 DJNZ R, $ DJNZ R0, V3 RET END

62 RÓTULO Universidade Federal de Goiás SJMP $ Prof. José Wilson Lima Nerys Laço infinito aguardando interrupção 6 Microprocessadores 6 Programa rotaciona Motor de Passo conectado ao nibble inferior da porta P. INT0 rotaciona para a esquerda; INT rotaciona para a direita. MNEMÔNICO ORG 00H LJMP INICIO ORG 03H LJMP ATENDE0 ORG 3H LJMP ATENDE ORG 30H INICIO: MOV SP, #FH MOV IE, #85H MOV TCON, #05H MOV A,#H RÓTULO ATENDE0: PUSH ACC MNEMÔNICO MOV R7,#8 V: MOV P,A RL A LCALL ATRASO DJNZ R7,V POP ACC RETI São 8 passos de 5º Total: 90º Exemplos Habilita Interrupções INT0 e INT por transição RÓTULO MNEMÔNICO ATENDE: PUSH ACC MOR R7,#36 V: MOV P,A RR A LCALL ATRASO DJNZ R7,V POP ACC RETI ATRASO: MOV R0,#50 V3: MOV R,#50 DJNZ R, $ DJNZ R0, V3 RET END

63 INT0 mostra em P maior valor de uma Tabela. INT mostra o menor valor Rótulo Mnemônico ORG 00H LJMP INICIO ORG 03H LJMP MAIOR ORG 3H LJMP MENOR Rótulo Mnemônico ORG 30H INICIO: MOV SP,#FH MOV IE,#85H MOV TCON,#05H MOV DPTR,#TABELA V: MOV R7,#00H MOV R0,#00H MOV R,#0FFH SJMP V Prof. José Wilson 63Lima Nerys 63 Microprocessadores 63

64 Rótulo Universidade Federal de Goiás INT0 mostra em P maior valor de uma Tabela. INT mostra o menor valor MAIOR: Mnemônico MOV A,R7 MOVC A,@A+DPTR CJNE A,#0FFH,V MOV P,R0 RETI V: CLR CY MOV B,A SUBB A,R0 JC V3 MOV R0,B V3: INC R7 SJMP MAIOR Rótulo MENOR: Mnemônico MOV A,R7 MOVC A,@A+DPTR CJNE A,#0FFH,V4 MOV P,R Prof. José Wilson 64Lima Nerys 64 Microprocessadores RETI V4: CLR CY MOV B,A SUBB A,R JNC V5 MOV R,B V5: INC R7 SJMP MENOR 64 Rótulo TABELA: Dado DB 05H DB 35H DB H DB 98H DB 0AH DB 0B5H DB 5AH DB 09H DB 7H DB 40H DB 0FFH END

65 Breve Introdução aos Conversores AD e DA Como os dados de um microprocessador estão na forma digital e os dados do mundo exterior estão na forma analógica (contínua), é necessário fazer a conversão entre esses dados. Assim, tem-se o Conversor Analógico-Digital (ADC), que faz a conversão de sinal analógico para sinal digital e o Conversor Digital-Analógico (DAC), que faz a conversão de sinal digital para sinal analógico. Velocidade Temperatura Tensão Corrente Sinal Analógico ADC Sinal Digital Microcontrolador Sinal Digital DAC Sinal Analógico Pressão Prof. José Wilson 65Lima Nerys 65 Microprocessadores 65

66 Conversor DA Básico de 4 bits I I I I 3 I0 VREF 0 3 I ( D3 D D D0 ) R VREF I ( D3 0,5 D 0,5 D 0,5 D0 ) R Prof. José Wilson 66Lima Nerys 66 Microprocessadores V saída R saída I 66 I I I I 3 V R V 0 REF REF R V REF 4R V REF 8R

67 Conversor DA Básico De 4 bits D 3 D D D 0 Corrente saída (V ref = 5 V e R = 5 kω) Prof. José Wilson 67Lima Nerys 67 Microprocessadores 67 Fração do máximo / / / / / / / / / / / / / / /5

68 Conversor DA Básico de 4 bits máx LSB 0 Prof. José Wilson 68Lima Nerys 68 Microprocessadores 68

69 Resolução de um DA (a) Cada degrau (menor incremento possível) corresponde a LSB (bit menos significativo) (b) Número de degraus de um conversor: n, onde n é o número de bits. Para n = 4 5 degraus. Resolução: É a relação entre o menor incremento possível, LSB e a saída máxima. Resolução = n, onde n é número de bits. No caso de n = 4 Resolução = /5 Resolução Percentual = Resolução 00% No caso de 4 bits Resolução Percentual = 6.67% Prof. José Wilson 69Lima Nerys 69 Microprocessadores 69

70 Resolução do DA versus Número de bits Número de bits Resolução Resolução Percentual (%) 4 /5 6,67 8 /55 0,39 0 /03 0,09775 /4095 0,044 6 / ,00038 Prof. José Wilson 70Lima Nerys 70 Microprocessadores 70

71 Conversor DA com resistores em escada Prof. José Wilson 7Lima Nerys 7 Microprocessadores 7

72 Conversor DAC 0808 Prof. José Wilson 7Lima Nerys 7 Microprocessadores 7

73 Conversor ADC Básico Prof. José Wilson 73Lima Nerys 73 Microprocessadores 73

74 Conversor ADC com Aproximação Sucessiva Prof. José Wilson 74Lima Nerys 74 Microprocessadores 74

75 Conversor ADC 0804 Saída Sinais de Controle CS\ habilita o CI RD\ habilita a saída dos dados RW\ trigger Prof. José Wilson 75Lima Nerys 75 Microprocessadores 75

76 Diagrama de Temporização do Conversor ADC0804 Tempo de conversão aproximado: 00 µs Prof. José Wilson 76Lima Nerys 76 Microprocessadores 76

77 Programa para leitura do Conversor AD Rótulo Instrução Rótulo Instrução Rótulo Instrução CS EQU P3.4 LE_AD: CLR CS ATRASO: MOV R0,#50 RS EQU P3.5 LCALL ATRASO DJNZ R0,$ RW EQU P3.6 SETB RW RET INICIO: ORG 00H LJMP INICIO ORG 30H MOV SP,#FH V: LCALL LE_AD MOV P,A SJMP V Loop infinito: Chama subrotina de Leitura do AD e mostra resultado em A LCALL ATRASO CLR RW LCALL ATRASO SETB RW SETB CS JB P3.3,$ CLR CS CLR RS LCALL ATRASO MOV A,P SETB RS SETB CS RET ; Começa a conversão ; Aguarda fim de conversão ; Liberada dados na saída ; Transfere resultado para A Prof. José Wilson 77Lima Nerys 77 Microprocessadores 77 END Loop infinito: Aguarda sinal de fim de conversão. Pino INTR do AD conectado ao pino P3.3 do 805

78 Temporização no problema anterior CS\ RS\ INTR Leitura habilitada (libera dados na saída) Fim da conversão WR\ Início da conversão Prof. José Wilson 78Lima Nerys 78 Microprocessadores

79 Rótulo Instrução ORG 00H LJMP INICIO Programa : Conversor AD usando interrupção O conversor AD está operando de forma independente e ininterrupta. O sinal de final de conversão é usado para dar início à próxima conversão. INICIO: ORG 03H MOV A,P RETI ORG 30H MOV SP,#FH MOV IE,#8H MOV TCON,#0H A cada fim de conversão do conversor AD, um sinal de pedido de interrupção é enviado ao 805, através do pino P3. (interrupção zero). Assim, o processamento desvia para o endereço 03H, onde o resultado da conversão (disponibilizado na porta P) é transferido para A Interrupção externa zero é habilitada por transição. V: MOV P,A SJMP V END Loop infinito: O conteúdo de A é copiado na porta P (Leds). A atualização de A ocorre a cada final de conversão, através da interrupção externa zero. Prof. José Wilson 79Lima Nerys 79 Microprocessadores 79

80 Uso do Teclado com Interrupção (Decodificador de teclado: 74C9) A saída (AD3, AD, AD, AD0) do decodificador 74C9 é conectado ao nibble inferior da Porta P Sinal alto (saída) quando a conversão acaba Pedido de interrupção para o 805 (na transição de alto para baixo) Sinal baixo (entrada) para liberar o resultado na saída A B C D Prof. José Wilson 80Lima Nerys 80 Microprocessadores 80

81 Rótulo Instrução ORG 00H LJMP INICIO ORG 3H MOV A,P ANL A,#0FH RETI Uso do Teclado com Interrupção (Decodificador de teclado: 74C9) Endereço da interrupção externa O conteúdo da porta P é copiado no acumulador. A instrução ANL A,#0FH (AND) elimina o nibble superior da leitura de P. ORG 30H INICIO: MOV SP,#FH MOV IE,#84H MOV TCON,#04H V: MOV P,A interrupção externa por transição Loop infinito: Mostra o conteúdo de A, que é atualizado, através da interrupção externa, a cada vez que o teclado é pressionado SJMP V END Prof. José Wilson 8Lima Nerys 8 Microprocessadores 8

82 Uso do Teclado com Interrupção (Decodificador de teclado: 74C9) Nesse programa o Teclado é usado para entrar com um número de dois dígitos. Rótulo INICIO: Instrução ORG 00H LJMP INICIO ORG 3H LJMP LE_TECLADO ORG 30H MOV SP,#FH MOV IE,#84H MOV TCON,#04H CLR F0 V: MOV P,A SJMP V Rótulo LE_TECLADO: NIBBLE: Instrução JB F0,NIBBLE MOV A,P ANL A,#0FH SWAP A MOV B,A SETB F0 RETI MOV A,P ANL A,#0FH ORL A,B CLR F0 RETI END Leitura do dígito superior do número de dois dígitos. O dado lido de P passa por uma operação AND para eliminar o nibble superior (lixo). A instrução SWAP A transfere o dado lido (nibble inferior) para o nibble superior. O resultado é guardado em B. A flag F0 é setada para direcionar a próxima interrupção para NIBBLE. Leitura do dígito inferior do número de dois dígitos. O dado lido de P passa por uma operação AND para eliminar o nibble superior (lixo). A instrução OR entre junta conteúdo de A (dígito inferior) com o conteúdo de B (dígito superior). A flag F0 é zerada para direcionar a próxima interrupção para a primeira parte dessa subrotina. Loop infinito: Mostra o conteúdo de A, que é atualizado, através 8 da interrupção externa, a cada vez que o teclado é pressionado Prof. José Wilson 8Lima Nerys 8 Microprocessadores

83 Temporizadores O 805 tem temporizadores/contadores de 6 bits que podem operar de 4 modos distintos: Modo 0 Contador/Temporizador de 3 bits com divisor de frequência de até 3 vezes. Pode contar até 89 (3 55). Modo Contador/Temporizador de 6 bits. Pode contar até Modo contadores/temporizadores de 8 bits com recarga automática. Modo 3 contadores/temporizadores independentes de 8 bits. O microcontrolador AT89S85 possui 3 temporizadores. Prof. José Wilson 83Lima Nerys 83 Microprocessadores

84 Temporizadores Os registradores que comandam o Contador-Temporizador são: Registrador do Temporizador: TMOD (Timer Mode) = Registrador 89h TMOD = G C/T M M0 G0 C/T0 M0 M Modo 0 0 Modo 0 Modo Modo Modo 0 0 Modo 0 Modo Modo 3 Registrador de Controle: TCON (Timer Control) = Registrador 88h TCON = TF TR TF0 TR0 IE IT IE0 IT0 Temporizador Temporizador zero Prof. José Wilson 84Lima Nerys 84 Microprocessadores

85 Temporizadores Registrador do Temporizador: TMOD (Timer Mode) = Registrador 89h TMOD = G C/T M M0 G0 C/T0 M0 M00 G Gate Sendo 0, o disparo do temporizador/contador é interno, através de TR. Sendo, o disparo pode ser através de TR ou através do pino externo P3. (INT0\) ou P3.3 (INT\). C/T\ Sendo 0, a operação é como temporizador, onde a freqüência de operação é / da frequência do cristal oscilador. Sendo, a frequência é determinada por um componente externo, através do pino P3.4 (T0) ou P3.5 (T). Prof. José Wilson 85Lima Nerys 85 Microprocessadores 85

86 Temporizadores Registrador de Controle: TCON (Timer Control) = Registrador 88h TCON = TF TR TF0 TR0 IE IT IE0 IT0 TR Quando G = 0, fazendo-se TR =, o temporizador inicia a contagem a partir do valor armazenado em TH e TL. TR = 0 para o temporizador. TF A cada fim de contagem TF é setado (TF = ) pelo hardware. Se a interrupção do temporizador estiver habilitada, ocorre o desvio para o endereço correspondente, 0Bh para o temporizador 0 e Bh para o temporizador. Prof. José Wilson 86Lima Nerys 86 Microprocessadores 86

87 Temporizadores Lógica para habilitar contagem Prof. José Wilson 87Lima Nerys 87 Microprocessadores 87

88 Temporizadores O bit C/T\ do registrador TMOD define se o funcionamento é como contador (C/T\ = ), ou como temporizador (C/T\ = 0). Como temporizador, o clock é interno, vindo do oscilador. A frequência é / da frequência do cristal oscilador. Como contador, o clock é externo, vindo através de T0 (P3.4). O pino Gate\ define se o sinal de disparo do contador/temporizador vem através de software (bit TR0), ou de um sinal externo, através do pino INT0\ (P3.). Se Gate\ = 0, o comando SETB TR0 dispara o contador/temporizador e CLR TR0 interrompe. Prof. José Wilson 88Lima Nerys 88 Microprocessadores 88

89 Exemplos com temporizadores e contadores Cristal de MHz ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#FH MOV TMOD,#0H MOV TH0,#HIGH(55535) MOV TL0,#LOW(55535) SETB TR0 SJMP $ END TH0 = D8H TL0 = EFH Nesse exemplo o temporizador zero foi configurado para o modo (TMOD = ) e a primeira contagem começa do valor Toda contagem vai até , e, então, o valor de TH0-TL0 torna-se zero e a contagem continua. A contagem não para, enquanto TR0 permanecer em nível lógico alto (TR0 = ). Assim, a primeira contagem, nesse exemplo, conta pulsos. A partir da segunda contagem, no entanto, TH0-TL0 contam, continuamente, de 0 a Prof. José Wilson 89Lima Nerys 89 Microprocessadores 89

90 Exemplos com temporizadores e contadores Cristal de MHz ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#FH MOV TMOD,#0H V: MOV TH0,#HIGH(5535) MOV TL0,#LOW(5535) SETB TR0 CPL P.0 JNB TF0,$ CLR TF0 SJMP V END Nesse exemplo o temporizador zero foi configurado para o modo (TMOD = ). Ao contrário do exemplo anterior, todas as contagens começam do valor porque, a cada final de contagem (quando TF0 = ), o processamento retorna para V, onde os valores de TH0 e TL0 são recarregados. Assim, a contagem é de pulsos. Sendo o cristal de MHz, o contador conta 50 ms. O exemplo também apresenta uma forma de verificar o tempo de contagem do temporizador, gerando uma onda quadrada no pino P.0 com período de 00 ms. Loop de espera do fim da contagem A Flag TF0 (fim de contagem) deve ser zerada antes de recarregar TH0 e TL0 Prof. José Wilson 90Lima Nerys 90 Microprocessadores

91 Exemplos com temporizadores e contadores ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#FH MOV TMOD,#0H V: MOV TH0,#4BH MOV TL0,#0FFH SETB TR0 CPL P.0 JNB TF0,$ CLR TF0 SJMP V END Cristal de.059 MHz Esse exemplo é idêntico ao anterior, com a diferença de usar um cristal oscilador de.059 MHz. Dessa forma, cada período do temporizador corresponde a,085 µs, ao invés de µs. Assim, para gerar uma contagem de 50 ms, são necessários pulsos (pois, x,085 µs = 50 ms). Ou seja, a contagem deve começar de TH0-TL0 = 4BFFH, que corresponde ao número decimal No programa poderia ter sido usado: MOV TH0, #HIGH(9455) MOV TL0,#LOW(9455) Prof. José Wilson 9Lima Nerys 9 Microprocessadores

92 Exemplos com temporizadores e contadores Cristal de.059 MHz ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#FH MOV TMOD,#09H SETB TR0 V: MOV TH0,#HIGH(9455) MOV TL0,#LOW(9455) CPL P.0 JNB TF0,$ CLR TF0 SJMP V END Nesse exemplo, o temporizador zero, no modo, gera uma onda quadrada com período de 00 ms (contagem de 9455 a 65535, com cristal de.059 MHz). No entanto, o disparo do temporizador é EXTERNO, através do pino P3. (uma chave tipo push-button deve ser conectada entre o pino P3. e o Terra). Com P3. = 0, o temporizador fica parado; com P3. =, o temporizador prossegue a contagem. TMOD = 09H = Pino G\ = (disparo externo) e M-M0 = 0 (temporizador zero no modo ) A Flag TR0 é setada para habilitar esse disparo externo. Prof. José Wilson 9Lima Nerys 9 Microprocessadores

93 Exemplos com temporizadores e contadores Cristal de.059 MHz ORG 00H LJMP INICIO Nesse exemplo tem-se um CONTADOR no modo (6 bits). ORG 30H INICIO: MOV SP,#FH MOV TMOD,#05H SETB TR0 V: MOV P,TH0 MOV P,TL0 SJMP V END O valor de TH0 é mostrado na porta P O valor de TL0 é mostrado na porta P O Sinal de clock é aplicado ao pino P3.4. Duas situações podem ser criadas, no Proteus:. Conectar uma chave entre os pinos P3.4 e o Terra. A cada pulso dessa chave, a contagem em TH0-TL0 é incrementada em.. Conectar um gerador de função, com pulso quadrado, ao pino P3.4. A contagem em TH0-TL0 seguirá esse clock., TMOD = 05H = Pino C/T\ = (contador) e M-M0 = 0 (contador zero no modo ) O bit TR0 é setado para o início da contagem Prof. José Wilson 93Lima Nerys 93 Microprocessadores

94 Exemplos com temporizadores e contadores ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#FH MOV TMOD,#04H SETB TR0 V: MOV P,TH0 MOV P,TL0 SJMP V END O valor de TH0 é mostrado na porta P O valor de TL0 é mostrado na porta P Cristal de.059 MHz Nesse exemplo tem-se um CONTADOR no modo 0 (3 bits). O Sinal de clock é aplicado ao pino P3.4. As mesmas situações do exemplo anterior podem ser utilizadas. A diferença é que os valores mostrados em P e P são diferentes: P (valor de TL0) mostra uma contagem de 00h até Fh, continuamente. Ao final de cada contagem, o valor mostrado em P (valor de TH0) é incrementado em TMOD = 04H = Pino C/T\ = (contador) e M-M0 = 00 (contador zero no modo 0) O bit TR0 é setado para o início da contagem Prof. José Wilson 94Lima Nerys 94 Microprocessadores

95 Exemplos com temporizadores e contadores ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#FH MOV TMOD,#06H SETB TR0 MOV TH0,#40H V: MOV P,TH0 MOV P0,TL0 SJMP V END Cristal de.059 MHz Nesse exemplo tem-se um CONTADOR no modo (8 bits com recarga automática). No modo (recarga automática), cada nova contagem começa do valor de TH0. Assim, no programa mostrado, cada nova contagem começa de TH0 = 40H. O sinal de clock deve ser conectado ao pino P3.4. TMOD = 06H = Pino C/T\ = (contador) e M-M0 = 0 (contador zero no modo 0) O valor de TH0 é mostrado na porta P O valor de TL0 é mostrado na prota P Valor da recarga Prof. José Wilson 95Lima Nerys 95 Microprocessadores

96 Exemplos com temporizadores e contadores ORG 00H LJMP INICIO ORG 03H MOV A,TH0 ADD A,#5 MOV TH0,A RETI ORG 30H INICIO: MOV SP,#FH MOV IE,#8H MOV TCON,#0H MOV TMOD,#06H SETB TR0 MOV TH0,#40H V: MOV P,TH0 MOV P0,TL0 SJMP V END Cristal de.059 MHz Nesse exemplo tem-se um CONTADOR no modo (8 bits com recarga automática). É idêntico ao exemplo anterior, com uma exceção: A interrupção externa zero (por transição) é usada para incrementar em 5 o valor da recarga, TH0. Assim, cada nova contagem começa do valor anterior de TH Subrotina de atendimento da interrupção externa zero IE = 8h = Interrupção externa zero habilitada TCON = 0H = Interrupção externa zero por transição Prof. José Wilson 96Lima Nerys 96 Microprocessadores

97 Exemplos com temporizadores e contadores COM INTERRUPÇAO ORG 00H LJMP INICIO ORG 0BH MOV TH0,#HIGH(9455) MOV TL0,#LOW(9455) CPL P.0 RETI ORG 30H INICIO: MOV SP,#FH MOV IE,#8H MOV TMOD,#0H MOV TH0,#HIGH(9455) MOV TL0,#LOW(9455) SETB TR0 SJMP $ END 97 Cristal de.059 MHz Nesse exemplo tem-se um TEMPORIZADOR no modo (6 bits), com interrupção ao final de cada contagem. A cada final de contagem (de 9455 a 65535) o processamento desvia para o endereço 0BH. Nesse endereço, recarrega-se TH0 e TL0 e complementa-se o pino P.0 (gera onda quadrada). Com uma contagem de e um cristal de.059 MHz, tem 50 ms para cada meio período (onda quadrada com 00 ms de período) Subrotina de atendimento da interrupção do temporizador zero. IE = Interrupção do temporizador zero habilitada. Loop infinito esperando interrupção Prof. José Wilson Lima Nerys 97 Microprocessadores

98 Cristal de.059 MHz Universidade Federal de Goiás Exemplos com temporizadores e contadores COM INTERRUPÇAO ORG 00H LJMP INICIO ORG 0BH MOV TH0,#HIGH(9455) MOV TL0,#LOW(9455) DJNZ R0,V CPL P.0 MOV R0,#0 V: NOP RETI ORG 30H INICIO: MOV SP,#FH MOV IE,#8H MOV TMOD,#0H MOV TH0,#HIGH(9455) MOV TL0,#LOW(9455) MOV R0,#0 SETB TR0 SJMP $ Nesse exemplo tem-se um TEMPORIZADOR no modo (6 bits), com interrupção ao final de cada contagem. A cada final de contagem (de 9455 a 65535) o processamento desvia para o endereço 0BH. Nesse endereço, recarrega-se TH0 e TL0. No entanto, o pino P.0 somente é complementado a 0 passagens pela subrotina (R0 = 0). Com uma contagem de e um cristal de.059 MHz, tem 50 ms para cada meio período, mas o pino P. 0 é complementado a cada 0 x 50 ms = 0,5 s (resulta em onda quadrada com,0 s de período) Subrotina de atendimento da interrupção do temporizador zero. P.0 somente é complementado a cada 0 atendimentos dessa subrotina. IE = Interrupção do temporizador zero habilitada. R0 = 0 contador para contar 0 vezes 50 ms END Loop infinito esperando interrupção Prof. José Wilson 98Lima Nerys 98 Microprocessadores

99 Cristal de.059 MHz Universidade Federal de Goiás Exemplos com temporizadores e contadores COM INTERRUPÇAO ORG 00H LJMP INICIO Nesse exemplo tem-se o TEMPORIZADOR zero no modo 0 (3 bits) e o TEMPORIZADOR no modo (6 bits) ORG 0BH ORG BH ORG 30H INICIO: CPL P.0 RETI CPL P. RETI MOV SP,#FH MOV IE,#8AH MOV TMOD,#0H SETB TR0 SETB TR SJMP $ END Ambos começam a contagem de 0 e ambos utilizam suas interrupções. Ao final de cada contagem de 3 bits (0 a 8.9) o processamento desvia para o endereço 0Bh, onde o pino P.0 é complementado (gerando uma onda quadrada no pino P.0). Ao final de cada contagem de 6 bits (0 a ) o processamento desvia para o endereço Bh, onde o pino P. é complementado (gerando uma onda quadrada no pino P.). IE = Interrupções dos temporizadores zero e habilitadas. TMOD = 0h = Temporizador zero no modo 0 (3 bits); Temporizador modo (6 bits) Prof. José Wilson 99Lima Nerys 99 Microprocessadores

100 Exemplos com temporizadores e contadores COM INTERRUPÇAO Período da onda quadrada no modo zero: 7,77 ms Período da onda quadrada no modo : 4,9 ms período no modo 6 bits corresponde a 8 períodos do modo 3 bits. Prof. José Wilson 00Lima Nerys 00 Microprocessadores 00

101 Programa com uma subrotina de atraso de tempo com temporizador ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#FH MOV TMOD,#0H MOV A,#0H V: MOV P0,A CPL P.0 LCALL ATRASO RL A SJMP V ATRASO: MOV R0,#0 V: MOV TH0,#HIGH(9455) MOV TL0,#LOW(9455) SETB TR0 JNB TF0,$ CLR TF0 DJNZ R0,V CLR TR0 RET END Para o temporizador São 0 contagens de 50 ms (tempo total: s) Contador conta de até ( pulsos) Dispara o temporizador Espera o final de cada contagem do temporizador Limpa a flag que indica fim de contagem Decrementa R0; se não der zero, volta para nova contagem de 50 ms Onda quadrada em P.0 (período de s) e rotação de Leds na porta P0, com atraso de s Cristal oscilador:.059 MHz Prof. José Wilson 0Lima Nerys 0 Microprocessadores 0

102 Relógio HH:MM:SS Prof. José Wilson 0Lima Nerys 0 Microprocessadores

103 Relógio com subrotina comum de atraso de tempo SEG MIN HORA ORG 00H LJMP INICIO EQU 0H EQU H EQU H ORG 30H INICIO: MOV SP,#FH MOV TMOD,#0H CLR P3.7 V: MOV SEG,#00H MOV MIN,#00H MOV HORA,#00H V: MOV P,SEG MOV P,MIN MOV P0,HORA LCALL ATRASO MOV A,SEG ADD A,#0H DA A MOV SEG,A CJNE A,#60H,V MOV SEG,#00H MOV A,MIN ADD A,#0H DA A MOV MIN,A CJNE A,#60H,V MOV MIN,#00H MOV A,HORA ADD A,#0H DA A MOV HORA,A CJNE A,#4H,V SJMP V ATRASO: MOV R0,#0 V3: MOV TH0,#HIGH(9455) MOV TL0,#LOW(9455) SETB TR0 JNB TF0,$ CLR TF0 DJNZ R0,V3 CLR TR0 RET END Subrotina de atraso de s Relógio HH:MM:SS Cristal de.059 MHz Prof. José Wilson 03Lima Nerys 03 Microprocessadores

104 HH MM SS Prof. José Wilson 04Lima Nerys 04 Microprocessadores

105 SEG MIN HORA Universidade Federal de Goiás Relógio com tempo de s marcado com temporizador, com interrupção ORG 00H LJMP INICIO EQU 0H EQU H EQU H ORG 0BH LJMP ATRASO ORG 30H INICIO: MOV SP,#FH MOV IE,#8H MOV TMOD,#0H MOV TH0,#HIGH(9455) MOV TL0,#LOW(9455) SETB TR0 CLR P3.7 MOV R0,#0 Relógio HH:MM:SS V: MOV SEG,#00H MOV MIN,#00H MOV HORA,#00H V: MOV P,SEG MOV P,MIN MOV P0,HORA JNB F0,$ CLR F0 MOV A,SEG ADD A,#0H DA A MOV SEG,A CJNE A,#60H,V MOV SEG,#00H MOV A,MIN ADD A,#0H DA A MOV MIN,A CJNE A,#60H,V MOV MIN,#00H MOV A,HORA ADD A,#0H DA A MOV HORA,A CJNE A,#4H,V SJMP V ATRASO: MOV TH0,#HIGH(9455) MOV TL0,#LOW(9455) DJNZ R0,V3 MOV R0,#0 SETB F0 V3: NOP RETI Prof. José Wilson 05Lima Nerys 05 Microprocessadores END Cristal de.059 MHz

106 Escola Relógio de Engenharia HH:MM:SS Elétrica, Mecânica e de Computação CLR RS Relógio no LCD RS EQU P3.5 RW EQU P3.6 EN EQU P3.7 LCD EQU P0 HORA EQU 0H MIN EQU H SEG EQU H ORG 00H LJMP INICIO ORG 0BH LJMP ATRASO REPETE: INICIA: LCALL HORARIO LCALL DISPLAY JNB F0,$ CLR F0 SJMP REPETE MOV A,#38H LCALL INSTR_WR MOV A,#38H LCALL INSTR_WR MOV A,#0EH LCALL INSTR_WR MOV A,#06H LCALL INSTR_WR MOV A,#0H LCALL INSTR_WR RET INSTR_WR:SETB EN CLR RW MOV LCD, A CLR EN LCALL ATRASO_LCD RET TEXTO_WR:SETB EN CLR RW SETB RS MOV LCD, A CLR EN LCALL ATRASO_LCD RET HORARIO:MOV A,SEG ADD A,#0H DA A MOV SEG,A CJNE A,#60H,V4 MOV SEG,#00 MOV A,MIN ADD A,#0H DA A MOV MIN,A CJNE A,#60H,V4 MOV MIN,#00H MOV A,HORA ADD A,#0H DA A MOV HORA,A CJNE A,#4H,V4 MOV SEG,#00H MOV MIN,#00H MOV HORA,#00H V4: NOP ORG 30H INICIO: MOV SP,#FH MOV IE,#8H MOV TMOD,#0H MOV TH0,#HIGH(9455) LINHA: INC R7 MOV TL0,#LOW(9455) MOV A,R7 MOV SEG,#00 MOV DPTR,#MSG MOV MIN,#00 MOVC A,@A+DPTR MOV HORA,#00 CJNE A,#0FFH,V MOV R0,#0 RET MOV R7,#0FFH V: LCALL TEXTO_WR LCALL INICIA SJMP LINHA LCALL LINHA Prof. José Wilson 06 SETB Lima TR0 Nerys Cristal de.059 MHz 06RET Microprocessadores

107 Cronômetro: MM:SS Prof. José Wilson 07Lima Nerys 07 Microprocessadores

108 SEG EQU 0H MIN EQU H BUZZER EQU P3.7 ORG 00H LJMP INICIO ORG 03H MOV A,MIN ADD A,#0H DA A MOV MIN,A RETI ORG 3H SETB F0 RETI ;======Configurações iniciais ORG 30H INICIO: MOV SP,#FH MOV TMOD,#0H MOV IE,#85H MOV TCON,#05H MOV R0,#0 CLR F0 CLR BUZZER MOV SEG,#00H 08 V4: MOV P,MIN MOV P,SEG JNB F0,V4 ; V: MOV P,MIN MOV P,SEG LCALL ATRASO MOV A,SEG ADD A,#99H DA A MOV SEG,A CJNE A,#99H,V MOV SEG,#59H MOV A,MIN ADD A,#99H DA A MOV MIN,A CJNE A,#99H,V MOV MIN,#00H MOV SEG,#00H MOV P,MIN MOV P,SEG SETB BUZZER MOV R7,#3 V: LCALL ATRASO DJNZ R7,V CLR BUZZER CLR F0 SJMP INICIO ATRASO: SETB TR0 V3: MOV TH0,#4BH MOV TL0,#0FFH JNB TF0,$ CLR TF0 DJNZ R0,V3 MOV R0,#0 RET Prof. José Wilson Lima Nerys 08 Microprocessadores END s Cristal de.059 MHz

109 MM SS Prof. José Wilson 09Lima Nerys 09 Microprocessadores

110 Acionamento temporizado de Motor de Corrente Contínua:. Motor gira no sentido horário por 0 s e para por 5 s. Motor gira no sentido anti-horário por 0 s e para. IN EQU P.3 IN EQU P. LIGA EQU P3. ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#FH MOV TMOD,#0H MOV R0,#0 CLR IN CLR IN MOV R7,#5 V: LCALL ATRASO DJNZ R7,V CLR IN SETB IN MOV R7,#0 V4: LCALL ATRASO DJNZ R7,V4 ATRASO: SETB TR0 V3: MOV TH0,#3CH MOV TL0,#0AFH JNB TF0,$ CLR TF0 DJNZ R0,V3 MOV R0,#0 CLR TR0 RET END V0: JB LIGA,$ SETB IN CLR IN MOV R7,#0 V: LCALL ATRASO DJNZ R7,V CLR IN CLR IN SJMP V0 Cristal de MHz Prof. José Wilson 0Lima Nerys 0 Microprocessadores 0

111 Acionamento temporizado de Motor de Passo:. Motor gira no sentido horário por 0 s e para por 5 s. Motor gira no sentido anti-horário por 0 s e para. ORG 00H LJMP INICIO ORG 0BH LJMP TEMPO_R7s ;===== Configurações ===== ORG 30H INICIO: MOV SP,#FH MOV IE,#8H MOV TMOD,#0H MOV TH0,#4BH MOV TL0,#0FFH MOV R0,#0 LIGA: JB P3.,$ SAI: MOV TH0,#4Bh CLR TR0 MOV TL0,#0FFH CLR F0 RETI MOV R7,#0 SETB TR0 END MOV A,#0H Cristal de.059 MHz Prof. José Wilson Lima Nerys Microprocessadores DIRETO: VF0: MOV P,A LCALL ATRASO RL A CJNE A,#0H,VF0 MOV A,#0H JNB F0,DIRETO CLR TR0 CLR F0 MOV R7,#5 SETB TR0 JNB F0,$ CLR TR0 CLR F0 MOV R7,#0 SETB TR0 MOV A,#08H REVERSO:MOV P,A LCALL ATRASO RR A CJNE A,#80H,VF MOV A,#08H VF: JNB F0,REVERSO SJMP LIGA ;== Atraso para o motor de passo ATRASO: MOV R6,#50 V: MOV R5,#50 DJNZ R5,$ DJNZ R6,V RET ; TEMPO_R7s: DJNZ R0,SAI MOV R0,#0 DJNZ R7,SAI SETB F0

112 Temporizador no modo recarga automática (Temp_9_6A) Modo com interrupção complementa TH Modo com interrupção complementa TH e P.0 PWM fixo para acionamento de motor CC Incrementa TH e complementa P.0 Aciona motor CC com velocidade variável Aciona motor CC com velocidade variável e mudança de sentido de rotação Prof. José Wilson Lima Nerys Microprocessadores

113 Comunicação Serial do 805 Prof. José Wilson 3Lima Nerys 3 Microprocessadores 3

114 Comunicação Serial A comunicação serial consiste em enviar ou receber pacotes de informação bit a bit. No caso do 805 o canal de comunicação serial é do tipo full duplex, o que significa que ele pode, ao mesmo tempo, receber e transmitir dados. Uma grande questão da transmissão serial é como informar o receptor do início e do final do pacote de informação, ou seja, qual o primeiro bit da informação e qual é o último. Assim, existem dois tipos de comunicação: síncrona e assíncrona. Prof. José Wilson 4Lima Nerys 4 Microprocessadores 4

115 Na comunicação serial síncrona, são utilizados dois canais: um para transmitir/receber os dados e outro para transmitir/receber o sinal de sincronismo. No caso do 805 a transmissão e também a recepção síncrona de dados são feitas através do pino RxD (pino P3.0). O pino TxD (pino P3.) é usado para o sinal de sincronismo. Prof. José Wilson 5Lima Nerys 5 Microprocessadores 5

116 Na comunicação assíncrona não há a sinal de sincronismo e, portanto, alguns cuidados especiais devem ser tomados: As taxas de recepção e de transmissão devem ser iguais. Um bit de início e outro de fim de transmissão devem ser enviados, além dos dados. O bit de início de transmissão é zero, isto porque o canal normalmente fica em repouso no nível lógico alto. Assim, a primeira passagem para zero, após a habilitação da transmissão, é interpretada como o sinal de início. O sinal de parada é de nível lógico alto, após ser recebida a quantidade de bits previstos. Além do bit de início (Start bit) e do bit de fim (Stop bit), também pode existir um terceiro bit extra, que é o bit de paridade, usado para verificar a consistência dos dados. Prof. José Wilson 6Lima Nerys 6 Microprocessadores 6

117 Formato da Comunicação Serial Assíncrona Prof. José Wilson 7Lima Nerys 7 Microprocessadores 7

118 Registrador SCON Configuração da Comunicação Serial Prof. José Wilson 8Lima Nerys 8 Microprocessadores 8

119 Serial Modo 0 (síncrono registrador de deslocamento) Taxa de comunicação (baud rate): igual à frequência de clock dividida por. Recepção: Fica habilitada fazendo REN = e RI = 0. Ao final da recepção o bit RI é setado por hardware, e deve ser ressetado por software (CLR RI) antes da recepção seguinte. O conteúdo recebido é transferido para o registrador SBUF. Transmissão: É iniciada automaticamente quando o conteúdo de um registrador é transferido para o registrador SBUF. Ao final da transmissão o bit TI é setado por hardware, e deve ser ressetado por software (CLR TI) antes da transmissão seguinte. Obs.: Há um registrador SBUF para transmissão e outro para recepção Prof. José Wilson 9Lima Nerys 9 Microprocessadores 9

120 Rótulo Instruções MOV SCON,#00H MOV A,#00H V: MOV SBUF,A JNB TI,$ CLR TI INC A SJMP V END Instrução que dá início à transmissão Aguarda a transmissão de todos os bits. Quando o processo acaba, o micro faz TI =. Sinais de RxD e TxD durante uma transmissão síncrona Prof. José Wilson 0Lima Nerys 0 Microprocessadores 0

121 Serial Modo (assíncrono de 8 bits) Taxa de comunicação (baud rate): Bit 7 do registrador especial PCON O pacote de comunicação inclui 8 bits de dados, bit de start e um bit de stop. Recepção: Fica habilitada fazendo REN = e RI = 0. Tem início quando há uma transição de nível alto para baixo no pino P3.0 (RxD) Ao final da recepção o bit RI é setado por hardware, e deve ser ressetado por software (CLR RI) antes da recepção seguinte. O conteúdo recebido é transferido para o registrador SBUF. Transmissão: É iniciada automaticamente quando o conteúdo de um registrador é transferido para o registrador SBUF. Ao final da transmissão o bit TI é setado por hardware, e deve ser ressetado por software (CLR TI) antes da transmissão seguinte. Recarga do Temporizador no modo Prof. José Wilson Lima Nerys Microprocessadores

122 Rótulo Instruções MOV SCON,#40H MOV TMOD,#0H MOV TH,#0FDH MOV TL,#0FDH SETB TR MOV A,#00H Configura serial modo (assíncrono modo ) Timer no modo. Baud rate de 9600 bps, para cristal de,059 MHz. Sinal de TxD (P3.) durante uma transmissão assíncrona no modo V: MOV SBUF,A JNB TI,$ CLR TI INC A SJMP V Instrução que dá início à transmissão END Aguarda a transmissão de todos os bits. Quando o processo acaba, o micro faz TI =. Prof. José Wilson Lima Nerys Microprocessadores

123 ORG 00H LJMP INICIO Transmissão Serial no Modo ORG 30H INICIO: MOV SP,#FH MOV SCON,#40H MOV TMOD,#0H MOV TH,#0FDH MOV TL,#0FDH SETB TR MOV DPTR,#MSG Baud-rate de 9600 bps, no modo Cristal oscilador:,059 MHz V: MOV R7,#00 V: MOV A,R7 MOVC CJNE A,#0FFH,ENVIA SJMP V ENVIA: MOV SBUF,A JNB TI,$ CLR TI INC R7 SJMP V MSG: DB 'HELLO WORLD!!!', 0DH, 0FFH MSG: DB 'MICRO 07 ', 0Dh, 0FFH end Código ASCII para mudança de linha Prof. José Wilson 3Lima Nerys 3 Microprocessadores 3

124 ; Transmissão de mensagem via serial. Cristal:.059 MHz. Taxa de transmissão: 4800 bps ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#FH ; Posição inicial da Pilha: FH MOV SCON,#40H ; Serial no modo : assíncrona de 8 bits MOV TMOD,#0H ; Timer no modo (recarga automática) MOV TH,#0FAH ; Valor da recarga: FAH baud rate: 4800 bps SETB TR ; Dispara Timer MOV DPTR,#MSG ; DPTR assume o valor do endereço inicial da tabela MSG V: MOV R7,#00H ; Offset para leitura da MSG assume valor inicial 00H V3: MOV A,R7 ; Acumulador recebe o valor atual do Offset MOVC A,@A+DPTR ; Acumulador recebe o conteúdo da posição A+DPTR da MSG CJNE A,#0FFH,V ; Verifica se A = FFH (fim da MSG). Se não for, desvia para V SJMP V ; Retorna para V após cada fim de MSG V: MOV SBUF,A ; Transfere de A para SBUF o valor ser transmitido via serial JNB TI,$ ; Aguarda final da transmissão do conteúdo de SBUF CLR TI ; Limpa a flag TI, de transmissão serial INC R7 ; Incrementa o valor do Offset SJMP V3 ; Retorna para V3, para ler o próximo caractere de MSG MSG: MSG: END DB ' MICRO 07 ', 0DH, 0FFH DB 4DH, 49H, 43H, 5H, 4FH, 0H, 3H, 30H, 3H, 37H, 0DH, 0FFH As mensagens MSG e MSG são equivalentes Prof. José Wilson 4Lima Nerys 4 Microprocessadores 4

125 LAMP EQU P.7 ORG 00H LJMP INICIO ORG 30H INICIO: Universidade Federal de Goiás MOV SP,#FH MOV SCON,#40H MOV TMOD,#0H MOV TH,#0FDH MOV TL,#0FDH SETB TR CLR RI SETB REN MOV A,#0H V0: JNB RI,$ MOV R0,SBUF CLR RI CJNE R0,#'D',V SJMP LED_DIREITA V: CJNE R0,#'E',V3 SJMP LED_ESQUERDA V3: CJNE R0,#'L',V4 CPL LAMP SJMP V0 Se R0 = 4CH (ASCII de L), aciona 5 a lâmpada (apaga/liga) Prof. José Wilson Lima Nerys 5 Microprocessadores 5 Recepção Serial no Modo Se R0 = 4DH (ASCII de M), aciona o motor CC (liga/desliga) Aguarda receber dados via serial e transfere os dados para R0 Se R0 = 43H (ASCII de D), rotaciona Leds para a direita. Enquanto RI = 0, continua rotacionando para a direita Se R0 = 44H (ASCII de E), rotaciona Leds para a esquerda. São 64 passos para a esquerda, que corresponde a 8 giros completos para a esquerda. V4: CJNE R0,#'M',V0 MOTOR: CLR P.3 CPL P. SJMP V0 LED_DIREITA: V5: MOV P,A RR A LCALL ATRASO JNB RI,V5 SJMP V0 LED_ESQUERDA: MOV R3,#64 V6: MOV P,A RL A LCALL ATRASO DJNZ R3,V6 SJMP V0 ATRASO: MOV R,#00 V: MOV R,#00 DJNZ R,$ DJNZ R,V RET END

126 LAMP EQU P.7 ORG 00H LJMP INICIO ORG 3H ORG 30H INICIO: Universidade Federal de Goiás MOV R0,SBUF CLR RI RETI MOV SP,#FH MOV IE,#90H MOV SCON,#40H MOV TMOD,#0H MOV TH,#0FDH MOV TL,#0FDH SETB TR CLR RI SETB REN MOV A,#0H V0: CJNE R0,#'D',V SJMP LED_DIREITA V: CJNE R0,#'E',V3 SJMP LED_ESQUERDA V3: CJNE R0,#'L',V4 SETB LAMP SJMP V0 V4: CJNE R0,#'F',V5 CLR LAMP 6 Recepção Serial no Modo Com interrupção Se R0 = 4DH (ASCII de M), aciona o motor CC (liga/desliga) R0 recebe os dados recebidos via serial, através de interrupção Se R0 = 43H (ASCII de D), rotaciona Leds para a direita. Continua rotação, até R0 receber outro caractere. Se R0 = 44H (ASCII de E), rotaciona Leds para a esquerda. Enquanto R0 = 44H, continua rotacionando para a esquerda Se R0 = 4CH (ASCII de L), liga a lâmpada. Se R0 = 45H (ASCII de F), desliga a lâmpada. V5: CJNE R0,#'M',V6 MOTOR: CLR P.3 SETB P. SJMP V0 V6: CJNE R0,#'N',V0 CLR P.3 CLR P. SJMP V0 LED_DIREITA: MOV P,A RR A LCALL ATRASO SJMP V0 LED_ESQUERDA: MOV P,A RL A LCALL ATRASO SJMP V0 ATRASO: MOV R,#00 V: MOV R,#00 DJNZ R,$ DJNZ R,V 6 RET SJMP V0 Prof. José Wilson Lima Nerys END 6 Microprocessadores

127 Serial Modo (assíncrono de 9 bits) Taxa de comunicação (baud rate): Bit 7 do registrador especial PCON O pacote de comunicação inclui 8 bits de dados, bit extra (RB8 ou TB8), bit de start e um bit de stop. O bit extra pode ser a paridade. Recepção: Fica habilitada fazendo REN = e RI = 0. Tem início quando há uma transição de nível alto para baixo no pino P3.0 (RxD) Ao final da recepção o bit RI é setado por hardware, e deve ser ressetado por software (CLR RI) antes da recepção seguinte. O nono bit chega através do bit RB8. Transmissão: É iniciada automaticamente quando o conteúdo de um registrador é transferido para o registrador SBUF. Ao final da transmissão o bit TI é setado por hardware, e deve 7 ser ressetado por software (CLR TI) antes da transmissão seguinte. O nono bit é transmitido através de TB8. 7 Prof. José Wilson Lima Nerys 7 Microprocessadores

128 Serial Modo 3 (assíncrono de 9 bits) Taxa de comunicação (baud rate): Bit 7 do registrador especial PCON O pacote de comunicação inclui 8 bits de dados, bit extra, bit de start e um bit de stop. Recepção: Fica habilitada fazendo REN = e RI = 0. Tem início quando há uma transição de nível alto para baixo no pino P3.0 (RxD) Ao final da recepção o bit RI é setado por hardware, e deve ser ressetado por software (CLR RI) antes da recepção seguinte. O conteúdo recebido é transferido para o registrador SBUF. Transmissão: É iniciada automaticamente quando o conteúdo de um registrador é transferido para o registrador SBUF. Ao final da transmissão o bit TI é setado por hardware, e deve 8 ser ressetado por software (CLR TI) antes da transmissão seguinte. 8 Recarga do Temporizador no modo Prof. José Wilson Lima Nerys 8 Microprocessadores

129 Prof. José Wilson 9Lima Nerys 9 Microprocessadores 9

130 Prof. José Wilson 30Lima Nerys 30 Microprocessadores 30

131 INICIO: Universidade Federal de Goiás RS EQU P3.5 RW EQU P3.6 EN EQU P3.7 DADOS EQU P0 ORG 00H LJMP INICIO ORG 3H CLR RI MOV A,SBUF MOV P,A LCALL TEXTO_WR RETI ORG 30H MOV SP,#FH MOV SCON,#40H MOV IE,#90H MOV TMOD,#0H MOV TL,#0FDH MOV TH,#0FDH MOV R7,#0FFH SETB TR SETB REN LCALL INICIA SJMP $ 3 Mensagens: Computador Micro LCD INICIA: MOV A,#38H LCALL INSTR_WR MOV A,#38H LCALL INSTR_WR MOV A,#0EH LCALL INSTR_WR MOV A,#06H LCALL INSTR_WR MOV A,#0H LCALL INSTR_WR RET INSTR_WR: SETB EN CLR RW CLR RS MOV DADOS,A CLR EN LCALL ATRASO_LCD RET A recebe valor via serial e envia para P e para o LCD Serial_LCD 6.asm Subrotina para escrever instrução no LCD TEXTO_WR:SETB EN CLR RW SETB RS MOV DADOS,A CLR EN LCALL ATRASO_LCD RET ATRASO_LCD: MOV R4,#0 V6: MOV R5,#80 DJNZ R5,$ DJNZ R4,V6 RET Prof. José Wilson Lima Nerys 3 Microprocessadores END Subrotina de inicialização do LCD Subrotina para escrever dados no LCD

132 Motor de Passo via serial Rótulo 3 Mnemônico ORG 00H LJMP INICIO ORG 3H CLR RI MOV R0,SBUF RETI ORG 30H INICIO: MOV SP,#FH MOV SCON,#40H MOV IE,#90H MOV TMOD,#0H MOV TL,#0FDH MOV TH,#0FDH MOV R0,#00H MOV A,#H SETB TR SETB REN Rótulo Serial_Passo 6.asm Mnemônico V: CJNE R0,#44H,V LJMP DIREITA V: CJNE R0,#45H,V LJMP ESQUERDA DIREITA: MOV P,A RR A LCALL ATRASO SJMP V ESQUERDA: MOV P,A RL A LCALL ATRASO SJMP V ATRASO: MOV R7,#00 V3: MOV R6,#50 DJNZ R6,$ DJNZ R7,V3 RET END Prof. José Wilson Lima Nerys 3 Microprocessadores 3

133 CHAVE EQU P3.3 ; CHAVE (P3.3) MOTOR LIGA (P3.3 = 0) OU DESLIGA (P3.3 = ) STATUS EQU H ; registrador que guarda o estado das chaves M0 EQU P. ; IN0 do driver para acionamento do motor CC M EQU P.3 ; IN do driver para acionamento do motor CC ORG 00H LJMP INICIO Serial_estado 6.asm ORG 30H INICIO: MOV SP,#FH ; Pilha no endereço inicial Fh MOV TMOD,#0H ; Temporizador no modo (recarga automática) para o gerar o baud rate MOV SCON,#40H ; SCON = Serial no modo MOV TH,#0FAH ; Recarga para baud rate de 4800 bps MOV TL,#0FAH ; Valor inicial de contagem, desde a primeira contagem SETB TR ; Dispara temporizador MOV R7,#00H ; Contador (offset) para leitura das mensagens a serem enviadas via serial MOV STATUS,#00H ; Zera o registrador de STATUS para eliminar a possibilidade de lixo CLR M0 CLR M ; Motor CC parado Transfere conteúdo de P3 para A, isola o pino P3.3 e verifica se houve mudança de estado V: MOV A,P3 ; Leitura da porta P3 (onde está a chave que liga e desliga o motor) ANL A,# B ; Faz uma operação AND entre A e 08H, para isolar o pino P3.3 XRL A,STATUS ; Verifica se houve alteração no STATUS JZ V ; Se A XOR STATUS for zero, não houve mudança, então volta para V (A=0 e Z=) ; Se houve mudança na posição da CHAVE, atualiza a situação e o STATUS JNB CHAVE,LIGA_M ; Se CHAVE = 0, liga o motor MOV DPTR,#M_OFF ; DPTR aponta para o início da mensagem de motor desligado LCALL SERIAL ; Chama subrotina para mostrar a mensagem de motor desligado CLR M0 CLR M ; Motor desligado SETB STATUS.3 ; Atualiza registrador de STATUS com valor na posição STATUS.3 33 SJMP V Prof. José Wilson 33Lima Nerys 33 Microprocessadores

134 Continuação do programa Serial_estado 6.asm LIGA_M: MOV DPTR,#M_ON ; DPTR aponta para o início da mensagem de motor ligado LCALL SERIAL ; Chama subrotina para mostrar a mensagem de motor ligado SETB M0 CLR M ; Motor ligado CLR STATUS.3 ; Atualiza registrador de STATUS com valor 0 na posição STATUS.3 SJMP V SERIAL: MOV A,R7 ; Transfere para A o valor do offset MOVC A,@A+DPTR ; A recebe o conteúdo da tabela CJNE A,#0FFH,ENVIA ; Verifica se já chegou ao final da tabela MOV R7,#00H ; Se a tabela já acabou, faz R7 = 0 RET ; Retorna da subrotina SERIAL ENVIA: MOV SBUF,A ; Envia conteúdo da tabela/mensagem para o computador JNB TI,$ ; Aguarda terminar a transmissão CLR TI ; limpa flag de transmissão INC R7 ; incrementa R7 (offset para leitura da tabela / mensagem) SJMP SERIAL ; retorna para SERIAL M_ON: M_OFF: DB 'MOTOR DE CORRENTE CONTINUA LIGADO', 0DH, 0DH, 0FFH DB 'MOTOR DE CORRENTE CONTINUA DESLIGADO', 0DH, 0DH, 0FFH END Prof. José Wilson 34Lima Nerys 34 Microprocessadores 34

135 Serial_Leds_8_6.asm Universidade Federal de Goiás Rotação de Leds via serial Rótulo Mnemônico ORG 00H LJMP INICIO ORG 3H CLR RI MOV R0,SBUF RETI Rótulo Mnemônico V: CJNE R0,#44H,V MOV B,#44H SJMP DIREITA V: CJNE R0,#45H,V4 MOV B,#45H SJMP ESQUERDA V4: CJNE R0,#50H,V5 SJMP V ORG 30H INICIO: MOV SP,#FH MOV SCON,#40H MOV IE,#90H MOV TMOD,#0H MOV TL,#0FDH MOV TH,#0FDH MOV R0,#00H MOV A,#0H SETB TR SETB REN V5: MOV R0,B SJMP V DIREITA: MOV P,A RR A LCALL ATRASO SJMP V ESQUERDA: MOV P,A RL A LCALL ATRASO SJMP V END Prof. José Wilson 35Lima Nerys 35 Microprocessadores 35

136 Acionamentos diversos com informação de status para o computador Prof. José Wilson 36Lima Nerys 36 Microprocessadores

137 INICIO: Universidade Federal de Goiás CH_STEP EQU P.0 CH_MCC EQU P. CH_LAMP EQU P. M0 EQU P0.0 M EQU P0. LAMP EQU P0.7 STATUS ORG 00H LJMP INICIO 37 JZ V EQU H ORG 30H MOV SP,#FH MOV TMOD,#0H MOV SCON,#40H MOV TH,#0FAH MOV TL,#0FAH SETB TR MOV R7,#00H MOV P,#00H MOV STATUS,#00H CLR M0 CLR M CLR LAMP V: MOV A,P ANL A,#00000B XRL A,STATUS STATUS indica o estado atual dos dispositivos. STATUS.0 = 0 motor de passo ligado STATUS. = 0 motor CC ligado STATUS. = 0 lâmpada ligada Compara o estado atual das chaves (leitura de P) com o conteúdo de STATUS (XRL A,STATUS). Enquanto eles forem iguais (Z=), aguarda no loop. Quando houver mudança da posição de qualquer das chaves, sai desse loop e atualiza tudo. ;== Acionamento da Lâmpada =========== V5: JNB CH_LAMP,LIGA_Lamp MOV DPTR,#Lamp_OFF LCALL SERIAL CLR LAMP SETB STATUS. SJMP V LIGA_Lamp: MOV DPTR,#Lamp_ON LCALL SERIAL SETB LAMP CLR STATUS. ; ;== Acionamento do Motor CC ============ V: JNB CH_MCC,LIGA_M MOV DPTR,#M_OFF LCALL SERIAL CLR M0 CLR M SETB STATUS. SJMP V3 LIGA_M: MOV DPTR,#M_ON LCALL SERIAL SETB M0 CLR M CLR STATUS. Prof. José Wilson Lima Nerys Envia a atualização via serial 37 Microprocessadores 37

138 ;== Acionamento do Motor de Passo ======= V3: JNB CH_STEP,LIGA_P MOV DPTR,#PASSO_OFF LCALL SERIAL MOV P,#00H SETB STATUS.0 SJMP V LIGA_P:MOV DPTR,#PASSO_ON LCALL SERIAL CLR STATUS.0 MOV R6,#H V6: MOV P,R6 LCALL ATRASO MOV A,P ANL A,#00000B XRL A,STATUS JNZ V5 MOV A,R6 RL A MOV R6,A SJMP V6 Para manter o motor de passo ligado, é necessário rotacionar os bits da porta P. Assim, é necessário manterse nesse loop de V6, verificando se há mudança em alguma chave. ;== Envia Mensagem via Serial ======= SERIAL: MOV A,R7 MOVC A,@A+DPTR CJNE A,#0FFH,ENVIA MOV R7,#00H RET ENVIA: MOV SBUF,A JNB TI,$ CLR TI INC R7 SJMP SERIAL ATRASO: MOV R0,#00 V4: MOV R,#50 DJNZ R,$ DJNZ R0,V4 RET Lamp_ON: DB 'Lampada Ligada', 0DH, 0FFH Lamp_OFF: DB 'Lampada Desligada', 0DH, 0FFH M_ON: DB 'Motor de Corrente Continua Ligado', 0DH, 0FFH M_OFF: DB 'Motor de Corrente Continua Desligado', 0DH, 0FFH PASSO_ON: DB 'Motor de Passo Ligado', 0DH, 0DH, 0FFH PASSO_OFF: DB 'Motor de Passo Desligado', 0DH, 0DH, 0FFH END Prof. José Wilson 38Lima Nerys 38 Microprocessadores

139 Comunicação entre Microcontroladores (Mestre Escravos) Serial Modo 3 (assíncrono de 9 bits) Micro Mestre Micro Escravo Micro Escravo Micro Escravo 3 RX TX TX RX TX RX TX RX A comunicação entre microcontrolador Mestre e ou mais Microcontroladores Escravos pode ser feita no Modo ou 3 da serial Procedimento:. Todos os Micros Escravos tem SM=; assim, quando Mestre transmite a mensagem (endereço do escravo a ser ativado) com TB8 =, todos recebem o nono bit, RB8 =, e desviam para a interrupção da serial;. Todos eles fazem uma verificação do endereço recebido na primeira mensagem (primeiro byte recebido deve indicar qual dos escravos está sendo solicitado); 3. Aquele Micro Escravo que tem o endereço correto faz SM = 0; 4. O Micro Mestre, então, envia as informações desejadas para aquele Micro Escravo que tem SM = 0. A informação é enviada com TB8 = 0. Assim, todos os micros escravos recebem RB8 = 0, mas somente aquele com SM = 0 é interrompido para receber as informações; 5. No final da transmissão dos dados, o micro escravo ativo faz SM =, voltando à condição Prof. José Wilson Lima Nerys 39 Microprocessadores inicial. 39

140 Exemplo demonstrativo: Comunicação entre Microcontroladores (Mestre Escravos) Serial Modo 3 (assíncrono de 9 bits) Micro Escravo aciona um motor de passo, quando ele recebe a mensagem A, do mestre. Ao receber a mensagem A, a flag F0 é setada. Essa flag é usada na rotina principal para entrar no loop de acionamento do motor de passo. Ao final faz-se SM=. Micro Escravo aciona (liga/desliga) uma lâmpada quando recebe a mesma mensagem A. Ao receber a mensagem A, o Micro Escravo liga ou desliga a lâmpada, dependendo do estado anterior. Ao final, faz-se SM =. Micro Escravo 3 Escreve no LCD a mensagem recebido do Micro Mestre. Uma vez identificado que o endereço recebido é do Escravo 3, esse micro passa a a verificar o conteúdo dos próximos caracteres, para identificar se a mensagem já chegou ao final. Foi escolhido o código F (que corresponde a / ) como fim da mensagem. Todos os caracteres recebidos são enviados para o LCD, exceto FH. Ao receber FH, SM é setado e é enviado o código de endereço 80H para o LCD. Assim, o curso volta para a posição inicial. Mestre: As chaves CH0 (em P.0), CH(em P.) e CH (em P.) são utilizadas para enviar uma mensagem a cada um dos micros escravos. Prof. José Wilson 40Lima Nerys 40 Microprocessadores

141 Comunicação entre Microcontroladores (Mestre Escravos) Serial Modo 3 (assíncrono de 9 bits) Prof. José Wilson 4Lima Nerys 4 Microprocessadores

142 Comunicação entre Microcontroladores (Mestre Escravos) Serial Modo 3 (assíncrono de 9 bits) Programa do Micro Mestre ; PRIMEIRO MICRO ESCRAVO: ENDEREÇO: "" ; SEGUNDO MICRO ESCRAVO: ENDEREÇO: "" ; TERCEIRO MICRO ESCRAVO: ENDEREÇO: "3" CH0 BIT P.0 CH BIT P. CH BIT P. ORG 00H LJMP INICIO Chave CH0 estabelece a comunicação Mestre < --- > Escravo ORG 30H INICIO: MOV SP,#FH MOV SCON,#0C0H ; B --> Serial no modo 3 com SM = 0 MOV TMOD,#0H MOV TH,#0FDH ; Baud rate = 9600 bps MOV TL,#0FDH V0: JB CH0,V ; Verifica estado de CH0 (P.0). Se CH0 =, desvia para V ; Se CH0 = 0, envia endereço do Escravo SETB TB8 ; Seta bit TB8 de SCON, para envio do endereço SETB TR ; Dispara o Timer, que gera o baud rate MOV A,#3H ; Faz A = 3H (número ) MOV SBUF,A ; Envia valor para os micros escravos JNB TI,$ ; Aguarda flag TI setar (fim da transmissão) CLR TI ; Limpa a Flag TI 4 Endereço do Escravo (3H = ). Enviado junto com TB8 Prof. José Wilson Lima Nerys 4 = Microprocessadores

143 Programa do Micro Mestre - CONTINUAÇÃO LCALL ATRASO ; Aguarda um tempo antes de enviar a msg principal CLR TB8 ; Limpa TB8, para envio da msg principal MOV A,#4H ; Faz A = 4H (Letra A) = mensagem principal MOV SBUF,A ; Envia valor para o Escravo JNB TI,$ ; Aguarda flag TI setar (fim da transmissão) CLR TI ; Limpa a Flag TI JNB CH0,$ ; Aguarda a chave CH0 ser liberada CLR TR ; Para Timer SJMP V0 ; Retorna para o loop principal V: JB CH,V ; Verifica estado de CH (P.). Se CH =, desvia para V ; Se CH = 0, envia endereço do Escravo SETB TB8 ; Seta bit TB8 de SCON, para envio do endereço SETB TR ; Dispara o Timer, que gera o baud rate MOV A,#'' ; Faz A = 3H (número ) MOV SBUF,A ; Envia valor para os micros escravos JNB TI,$ ; Aguarda flag TI setar (fim da transmissão) CLR TI ; Limpa a Flag TI LCALL ATRASO CLR TB8 MOV A,#4H ; Faz A = 4H (Letra A) = mensagem principal MOV SBUF,A JNB TI,$ CLR TI JNB CH,$ CLR TR SJMP V0 ; Limpa TB8, para envio da msg principal ; Aguarda flag TI setar (fim da transmissão) ; Limpa a Flag TI ; Aguarda a chave CH ser liberada ; Para Timer Envia mensagem principal com TB8 = 0 Endereço do Escravo ( = 3H). Enviado junto com TB8 = Envia mensagem principal com TB8 = 0 Prof. José Wilson 43Lima Nerys 43 Microprocessadores

144 ENVIA: MOV SBUF,A JNB TI,$ CLR TI INC R7 LCALL ATRASO SJMP V4 Universidade Federal de Goiás Programa do Micro Mestre - CONTINUAÇÃO V: JB CH,V0 ; Verifica estado de CH (P.). Se CH =, volta para V0 SETB TB8 ; Limpa TB8, para envio da msg principal SETB TR ; Dispara Timer MOV A,#'3' ; Faz A = 33H (número 3) MOV SBUF,A ; Envia valor para os micros escravos JNB TI,$ ; Aguarda flag TI setar (fim da transmissão) CLR TI ; Limpa a Flag TI LCALL ATRASO ; Chama atraso de tempo CLR TB8 ; Limpa TB8, antes de enviar a msg principal MOV DPTR,#MSG ; DPTR assume o endereço inicial da MSG MOV R7,#00 ; Offset para leitura da MSG é zerado V4: MOV A,R7 MOVC A,@A+DPTR ; Acumulador recebe caractere da Mensagem (MSG) CJNE A,#FH,ENVIA ; Verifica se já chegou ao final da mensagem MOV SBUF,A ; Envia código de final de msg para o escravo 3 JNB TI,$ ; Aguarda flag TI setar (fim da transmissão) CLR TI ; Limpa a Flag TI CLR TR ; Para Timer JNB CH,$ ; Aguarda CH ser liberada ATRASO: SJMP V0 ; Envia valor para os micros escravos ; Aguarda flag TI setar (fim da transmissão) ; Limpa a Flag TI ; Incrementa Offset para leiura da Mensagem ; Chama atraso de tempo Endereço do Escravo 3 ( 3 = 33H). Enviado junto com TB8 = Envio de mensagem para o Escravo 3. Será mostrada em um LCD conectado ao escravo 3. Com TB8 = 0 MOV R,#00 V3: MOV R,#50 DJNZ R,$ DJNZ R,V3 RET Prof. José Wilson 44Lima Nerys 44 Microprocessadores MSG: DB 'MASTER-->SLAVE3', FH END

145 ; PRIMEIRO MICRO ESCRAVO: ENDEREÇO: "" ORG 00H LJMP INICIO Programa do Micro Escravo ORG 3H LJMP SERIAL ORG 30H INICIO: MOV SP,#FH MOV IE,#90H MOV SCON,#0E0H ; SCON = 00000B --> Serial no modo 3 com SM = MOV TMOD,#0H MOV TH,#0FDH ; Baud rate = 9600 bps MOV TL,#0FDH CLR P3.7 SETB TR SETB REN V0: JNB F0,$ ; Fica nesse loop aguardando F0 = Habilita recepção serial e fica aguardando a flag F0 ser setada CJNE A,#4H,V0 ; Se F0 =, verifica se a msg recebida foi 4H = A MOV A,#H ; Se a msg foi 4H, faz A = H, para acionamento do motor de passo MOV R0,#00 ; R0 = 00, para contagem dos passos a serem dados pelo motor V: MOV P,A ; Transfere conteúdo de A para o motor de passo LCALL ATRASO RL A ; Rotaciona conteúdo de A à esquerda DJNZ R0,V ; Verifica o número de passo CLR F0 ; Quando R0 = 0, faz F0 = 0 CLR P3.7 ; Desliga Led indicador de conexão SJMP V0 Se a mensagem recebida for A, rotacional o motor de passo 00 passos no sentido anti-horário Prof. José Wilson 45Lima Nerys 45 Microprocessadores

146 Programa do Micro Escravo CONTINUAÇÃO SERIAL: MOV A,SBUF ; Transfere o conteúdo do SBUF para o acumulador CLR RI ; Limpa a flag RI, de recepção (ITEM FUNDAMENTAL) JNB RB8,EXECUTA ; Verifica se o valor recebido em RB8 é CJNE A,#3H,SAI ; Se RB8 =, verifica se o endereço é do Escravo CLR SM ; Se a mensagem for para o Escravo, limpa SM SETB P3.7 ; e Seta o pino P3.7 (para verificação visual da conexão) SJMP SAI EXECUTA: SETB SM ; Seta SM, voltando ao estado inicial SETB F0 ; Seta F0, que é usado para entrar no loop do motor SAI: NOP RETI ; volta para o loop JNB F0,$, de onde sai para acionar o motor, pois F0 = ATRASO: MOV R,#00 V: MOV R,#50 DJNZ R,$ DJNZ R,V RET END Se RB8 =, verifica se o endereço recebido na primeira mensagem é 3H =. Se for, faz SM = 0 e retorna para o loop de espera da serial. Se RB8 = 0, significa que já foi definido na mensagem anterior que a mensagem atual é para o Escravo. Assim, a flag F0 é setada para acionamento do motor de passo e faz-se SM=, para voltar ao estágio inicial. Prof. José Wilson 46Lima Nerys 46 Microprocessadores

147 ; SEGUNDO MICRO ESCRAVO: ENDEREÇO: "" ORG 00H LJMP INICIO ORG 3H ORG 30H INICIO: LJMP SERIAL Programa do Micro Escravo MOV SP,#FH MOV IE,#90H MOV SCON,#0E0H ; SCON = 00000B --> Serial no modo 3 com SM = MOV TMOD,#0H MOV TH,#0FDH MOV TL,#0FDH SETB TR SETB REN CLR P3.7 CLR P.7 SJMP $ ; Baud rate = 9600 bps ; Desliga a Lâmpada EXECUTA: CJNE A,#'A',SAI CPL P.7 ; Complementa estado da Lâmpada SAI: CLR P3.7 ; Desliga o Led em P3.7 SETB SM ; Seta SM, voltando ao estado inicial RETI SERIAL: MOV A,SBUF ; Transfere o conteúdo do SBUF para o acumulador CLR RI ; Limpa a flag RI, de recepção (ITEM FUNDAMENTAL) JNB RB8,EXECUTA ; Verifica se o valor recebido em RB8 é CJNE A,#'',SAI ; Se RB8 =, verifica se o endereço é do Escravo CLR SM ; Se a mensagem for para o Escravo, limpa SM SETB P3.7 ; e Seta o pino P3.7 (para verificação visual) SAI: NOP RETI Prof. José Wilson 47Lima Nerys 47 Microprocessadores END Se RB8 = 0, significa que já foi definido na mensagem anterior que a mensagem atual é para o Escravo. Assim, o pino P.7 é complementado, para ligar/desligar a lâmpada. Faz-se SM=, para voltar ao estágio inicial. Habilita recepção serial e fica aguardando em um loop infinito Se RB8 =, verifica se o endereço recebido na primeira mensagem é 3H =. Se for, faz SM = 0 e retorna para o loop de espera da serial.

148 ; Rede de Microcontroladores ; TERCEIRO MICRO ESCRAVO: ENDEREÇO: "3" ORG 00H LJMP INICIO RS EQU P3.3 RW EQU P3.4 EN EQU P3.5 DADOS EQU P Programa do Micro Escravo 3 ORG 3H ORG 30H INICIO: SJMP SERIAL MOV SP,#FH MOV IE,#90H MOV SCON,#0E0H ; SCON = 00000B --> Serial no modo 3 com SM = MOV TMOD,#0H MOV TH,#0FDH ; Baud rate = 9600 bps MOV TL,#0FDH SETB TR SETB REN CLR P3.7 LCALL INICIA Habilita recepção serial, inicializa o LCD e fica aguardando em um loop infinito SJMP $ Prof. José Wilson 48Lima Nerys 48 Microprocessadores

149 49 Programa do Micro Escravo 3 SERIAL: MOV A,SBUF ; Transfere o conteúdo do SBUF para o acumulador CLR RI ; Limpa a flag RI, de recepção (ITEM FUNDAMENTAL) JNB RB8,EXECUTA ; Verifica se o valor recebido em RB8 é CJNE A,#'3',SAI ; Se RB8 =, verifica se o endereço é do Escravo 3 CLR SM ; Se a mensagem for para o Escravo 3, limpa SM SETB P3.7 ; e Seta o pino P3.7 (para verificação visual) SAI: NOP RETI EXECUTA: CJNE A,#FH,OK ; Se RB8 = 0, verifica se já chegou ao fim dos dados para o Escravo 3 SETB SM ; Seta SM, voltando ao estado inicial CLR P3.7 ; Limpa o pino P3.7, após encerrada a comunicação Mestre --> Escravo 3 MOV A,#80H ; código para retornar o cursor para a posição 80H do LCD LCALL INSTR_WR ; Escreve a instrução de posição 80H no LCD RETI OK: LCALL TEXTO_WR ; Mostra no LCD os dados recebidos RETI ; SUBROTINA DE INICIALIZAÇÃO DO DISPLAY LCD INICIA: MOV A,#38H ; Código para habilitação da primeira linha do LCD LCALL INSTR_WR ; Escreve o código no LCD MOV A,#38H ; Código para habilitação da segunda linha do LCD LCALL INSTR_WR ; Escreve o código no LCD MOV A,#0EH LCALL INSTR_WR MOV A,#06H LCALL INSTR_WR MOV A,#0H LCALL INSTR_WR RET Se RB8 =, verifica se o endereço recebido na primeira mensagem é 33H = 3. Se for, faz SM = 0 e retorna para o loop infinito. Se RB8 = 0, significa que já foi definido na mensagem anterior que a mensagem atual é para o Escravo 3, que receberá uma mensagem a ser enviada ao LCD. Assim, ele passa a verificar se cada caractere recebido é FH, que indica fim da mensagem para o LCD. Enquanto não for, envia caractere para o LCD; quando for FH, faz SM= e retorna para o loop infinito. Prof. José Wilson Lima Nerys 49 Microprocessadores

150 Programa do Micro Escravo 3 INSTR_WR:SETB EN CLR RW CLR RS MOV DADOS,A LCALL ATRASO_LCD CLR EN RET TEXTO_WR:SETB EN CLR RW SETB RS MOV DADOS,A LCALL ATRASO_LCD CLR EN RET ; Habilita o display LCD ; Operação de escrita no LCD ; Operação de escrita de instrução ; Transfere o conteúdo de A para o LCD ; Chama subrotina de atraso de tempo ; Desabilita o LCD ; Habilita o display LCD ; Operação de escrita no LCD ; Operação de escrita de Dados ; Transfere o conteúdo de A para o LCD ; Chama subrotina de atraso de tempo ; Desabilita o LCD ATRASO_LCD: MOV R4,#0 V6: MOV R5,#00 DJNZ R5,$ DJNZ R4,V6 RET END Prof. José Wilson 50Lima Nerys 50 Microprocessadores

151 Bibliografia [] Salvador P. Gimenez, Microcontroladores 805: Teoria do hardware e do software/aplicações em controle digital/laboratório e simulação, Pearson Education do Brasil, São Paulo, 00. ISBN: [] Vidal Pereira da Silva Jr., Aplicações Práticas do Microcontrolador 805, Editora Érica, São Paulo, 994. ISBN: [3] Sencer Yeralan, Ashutosh Ahluwalia, Programming and Interfacing the 805 Microcontroller, Addison-Wesley Publishing Company, 995. ISBN: Prof. José Wilson 5Lima Nerys 5 Microprocessadores

MICROPROCESSADORES E MICROCONTROLADORES Parte 2 Microcontrolador 8051

MICROPROCESSADORES E MICROCONTROLADORES Parte 2 Microcontrolador 8051 MICROPROCESSADORES E MICROCONTROLADORES Parte 2 Microcontrolador 8051 José Wilson Lima Nerys Página: www.emc.ufg/~jwilson Emails: [email protected] e [email protected] Prof. José Wilson 1 Lima

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 3: Temporizadores e Display LCD Alunos: Matrícula:

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 3: Temporizadores e Display LCD Alunos: Matrícula:

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 2: Interrupções Externas e Relés Alunos: Matrícula:

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 2: Interrupções Externas e Relés Alunos: Matrícula:

Leia mais

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - RESPOSTA ESPERADA

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - RESPOSTA ESPERADA MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - RESPOSTA ESPERADA 1. Escreva as instruções para as configurações pedidas. Valor: 2,0 a) Habilita as interrupções externas zero e um e a interrupção do

Leia mais

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 Resposta Esperada

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 Resposta Esperada MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 Aluno: Matrícula: 1. Na figura a seguir 8 Leds são conectados à porta P1 e 8 à porta P2. Valor: 2,5 Faça um programa em assembly do 8051 em que as interrupções

Leia mais

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - Uma Solução Possível

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - Uma Solução Possível Parte 3 Parte 1 Parte 2 Goiânia, 5 de junho de 2014. MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - Uma Solução Possível 1. Suponha um sistema com um conjunto de 8 LEDs conectados à porta P1 e duas

Leia mais

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUÇÃO POSSÍVEL. Obs.: Todas as questões têm valor 2,0. Boa prova e Feliz Natal e Ano Novo!!!!

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUÇÃO POSSÍVEL. Obs.: Todas as questões têm valor 2,0. Boa prova e Feliz Natal e Ano Novo!!!! MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 Aluno: Matrícula: UMA SOLUÇÃO POSSÍVEL Obs.: Todas as questões têm valor 2,0. Boa prova e Feliz Natal e Ano Novo!!!! 1. Escreva um pequeno, em assembly do

Leia mais

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051) Resposta Esperada

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051) Resposta Esperada MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051) Resposta Esperada 1. Tema: programação geral do microcontrolador 8051. Valor: 2,5 A Tabela 1 mostra um programa, em linguagem

Leia mais

CONJUNTO DE INSTRUÇÕES

CONJUNTO DE INSTRUÇÕES CONJUNTO DE INSTRUÇÕES Rn - Registrador R0 R7 do banco de registradores selecionado. direto - 8-bits de endereço da posição da RAM de dados Podem ser referentes tanto à RAM interna (0 7F) como ao espaço

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 4: Motor de Passo e Display LCD Alunos: Matrícula:

Leia mais

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUCAO POSSÍVEL

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUCAO POSSÍVEL MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUCAO POSSÍVEL Aluno: Matrícula: 1. Escreva as instruções necessárias para atender a cada uma das configurações solicitadas. Valor: 2,0 (a) Interrupção

Leia mais

Microprocessadores e Microcontroladores. Prova Substitutiva Uma Solução

Microprocessadores e Microcontroladores. Prova Substitutiva Uma Solução Prova Substitutiva Uma Solução Aluno: Matrícula: Uso de Interrupções e do Temporizador 1. Faça um programa (usando o assembly do 8051) para acionamento de um motor de corrente contínua, com as seguintes

Leia mais

7. PROGRAMANDO O MICROCONTROLADOR. Microcontroladores - Prof: Demantova

7. PROGRAMANDO O MICROCONTROLADOR. Microcontroladores - Prof: Demantova 7. PROGRAMANDO O MICROCONTROLADOR 1 7. PROGRAMANDO O MICROCONTROLADOR: Hardware parte física do circuito eletrônico CPU onde está localizado o microcontrolador. Dentro do microcontrolador existe um conjunto

Leia mais

MICROPROCESSADORES E MICROCONTROLADORES. Prova 1 Resposta Esperada

MICROPROCESSADORES E MICROCONTROLADORES. Prova 1 Resposta Esperada MICROPROCESSADORES E MICROCONTROLADORES Prova 1 Resposta Esperada 1. Tema: Conceitos Gerais Valor: 1,0 Os microcontroladores da família 8051 possuem arquitetura CISC, e os microcontroladores da família

Leia mais

Programação de Microprocessadores. Programação de Microprocessadores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

Programação de Microprocessadores. Programação de Microprocessadores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Programação de Microprocessadores Microprocessadores são Máquinas de Estado Seqüenciais Síncronas que operam mediante a execução de uma seqüência de códigos binários

Leia mais

UTFPR Departamento Acadêmico de Eletrônica Curso Técnico em Eletrônica Microcontroladores 1 - Prof. Cion nov/2010 (atualizado em jul 2015)

UTFPR Departamento Acadêmico de Eletrônica Curso Técnico em Eletrônica Microcontroladores 1 - Prof. Cion nov/2010 (atualizado em jul 2015) UTFPR Departamento Acadêmico de Eletrônica Curso Técnico em Eletrônica Microcontroladores 1 - Prof. Cion nov/2010 (atualizado em jul 2015) Interrupção e Contadores/Temporizadores Este texto apresenta uma

Leia mais

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051)

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051) MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051) 1. Tema: programação geral do microcontrolador 8051. Valor: 2,0 A Figura a seguir mostra um sistema no qual um motor de passo

Leia mais

Sistemas Microprocessados. sato<at>utfpr<dot>edu<dot>br

Sistemas Microprocessados. sato<at>utfpr<dot>edu<dot>br Sistemas Microprocessados satoutfpredubr http://pessoal.utfpr.edu.br/sato/ Assembly do 805 satoutfpredubr Sobre o material Essas transparências foram baseadas em materiais elaborados

Leia mais

As 5 partes fundamentais. Linguagem de Programação Pinagem Características Elétricas Ambiente de Desenvolvimento Integrado - IDE

As 5 partes fundamentais. Linguagem de Programação Pinagem Características Elétricas Ambiente de Desenvolvimento Integrado - IDE SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Como conhecer/estudar um Microprocessador/Microcontrolador As 5 partes fundamentais Programação de Microprocessadores Prof: Evandro L. L. Rodrigues Arquitetura

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 2: Teclado e Rotação de LEDs Alunos: Matrícula:

Leia mais

Laboratório de Microprocessadores e Microcontroladores. Experimento 7:

Laboratório de Microprocessadores e Microcontroladores. Experimento 7: Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 7: Conversor Analógico/Digital e Conversor Digital/Analógico

Leia mais

Laboratório de Microprocessadores e Microcontroladores. Experimento 6: Conversor Analógico/Digital e Conversor Digital/Analógico

Laboratório de Microprocessadores e Microcontroladores. Experimento 6: Conversor Analógico/Digital e Conversor Digital/Analógico Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 6: Conversor Analógico/Digital e Conversor Digital/Analógico

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 5: Comunicação Serial Alunos: Matrícula: Prof. Dr.

Leia mais

Aula 10 Microcontrolador Intel 8051 Parte 2

Aula 10 Microcontrolador Intel 8051 Parte 2 SEL 0415 Aula 10 Microcontrolador Intel 8051 Parte 2 SEL 0415 INTROD À ORGANIZAÇÃO DE COMPUTADORES Prof Dr Marcelo A C Vieira SEL 415 Mapeamento das memórias internas Memória de dados interna (RAM) n 8051

Leia mais

Prof. Adilson Gonzaga

Prof. Adilson Gonzaga Microprocessadores são Máquinas de Estado Seqüenciais Síncronas que operam mediante a execução de uma seqüência de códigos binários armazenados em memória. Prof. Adilson Gonzaga 1 As ordens ou comandos

Leia mais

Laboratório de Microprocessadores e Microcontroladores. Experimento 7:

Laboratório de Microprocessadores e Microcontroladores. Experimento 7: Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 7: Sensores e Transdutores Alunos: Matrícula: Prof.

Leia mais

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga SEL-614 MICROPROCESSADORES E APLICAÇÕES Prof: Adilson Gonzaga HISTÓRICO Microprocessador Circuito integrado ( chip ) capaz de executar instruções. 1971 Intel Corporation lançou no mercado o microprocessador

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 1 Introdução ao Microcontrolador 8051 Alunos: Matrícula:

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 6: Comunicação Serial Alunos: Matrícula: Prof. Dr.

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 1 Introdução ao Microcontrolador 8051 Alunos: Matrícula:

Leia mais

Conjunto de Instruções do 8051

Conjunto de Instruções do 8051 Apêndice B Conjunto de Instruções do 8051 A.G. e E.T.M. / 2001 (revisão) O 8051 apresenta 111 tipos de instruções, sendo 49 de um byte, 45 de dois bytes e 17 de três bytes. Levando-se em contas as variações

Leia mais

Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina. Temporização Interrupções Rotinas de Atraso

Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina. Temporização Interrupções Rotinas de Atraso SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Temporização da CPU Todos os Microcontroladores da família MCS-51 têm um oscilador interno. Para uso deste oscilador deve-se conectar um cristal entre os pinos

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 4: Motor de Passo e Motor de Corrente Contínua Alunos:

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 4: Temporizadores e Motor de Passo Alunos: Matrícula:

Leia mais

Temporização Interrupções. Prof: Evandro L. L. Rodrigues. Rotinas de Atraso

Temporização Interrupções. Prof: Evandro L. L. Rodrigues. Rotinas de Atraso Temporização Interrupções Prof: Evandro L. L. Rodrigues Rotinas de Atraso Temporização da CPU Todos os Microcontroladores da família MCS-51 têm um oscilador interno. Para uso deste oscilador deve-se conectar

Leia mais

Prof. Adilson Gonzaga

Prof. Adilson Gonzaga Prof. Adilson Gonzaga Temporização da CPU Todos os Microcontroladores da família MCS-51 têm um oscilador interno. Para uso deste oscilador deve-se conectar um cristal entre os pinos Xtal1 e Xtal2 da CPU.

Leia mais

mov R1,10H ; Carrega o dado do endereço 10H em R1 mov R1,#10H ; Carrega 10H em R1

mov R1,10H ; Carrega o dado do endereço 10H em R1 mov R1,#10H ; Carrega 10H em R1 --------------------------------------------------------------- Programa: primeiro.asm Move dado da acumulador para o registro B e vice-versa. Autor: Vargas Data:16:52 16/02/01 ---------------------------------------------------------------

Leia mais

Interrupção. Prof. Adilson Gonzaga

Interrupção. Prof. Adilson Gonzaga Interrupção Prof. Adilson Gonzaga Estrutura de Programação Assembly Programa Principal Chamada de Sub-rotina1 Programa Principal Chamada de Sub-rotina2 Sub-rotina1 Subrotina2 Programa Principal Chamada

Leia mais

EXERCÍCIOS RESOLVIDOS

EXERCÍCIOS RESOLVIDOS EXERCÍCIOS RESOLVIDOS Modos de endereçamento direto ; inclui no programa assembly o arquivo (REG51.inc) ORG 0000H ; o programa inicia na linha 0000H da EPROM MOV A,#01010101B ; carrego no ACC por binário

Leia mais

DIAGRAMA DE BLOCOS DE UM MICROCONTROLADOR

DIAGRAMA DE BLOCOS DE UM MICROCONTROLADOR DIAGRAMA DE BLOCOS DE UM MICROCONTROLADOR BARRAMENTO [BUS] DE ENDEREÇOS UNIDAD CENTRAL DE PROCESO C.P.U INTERFACE SERIE UNIDADE DE CONTROLE U.L.A REGITRADORES TIMERS ROM RAM PORTAS E/S [I/O] BUS DE DADOS

Leia mais

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051)

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051) MICROPROCEADORE E MICROCOTROLADORE PROVA 2 (Tema: Microcontrolador 8051) 1. Tema: programação geral do microcontrolador 8051. Valor: 2,5 A Figura a seguir mostra um carro com quatro sensores de obstáculos

Leia mais

ORGANIZAÇÃO DE MEMÓRIA NO 8051: Microcontroladores - Prof: Demantova 1

ORGANIZAÇÃO DE MEMÓRIA NO 8051: Microcontroladores - Prof: Demantova 1 ORGANIZAÇÃO DE MEMÓRIA NO 8051: 1 8. ORGANIZAÇÃO DE MEMÓRIA NO 8051: 00H 0000H BANCOS DE REGISTROS 00H 7FH 80H RAM INTERNA REGISTROS ESPECIAIS REGISTROS ENDEREÇÁVEIS POR BIT RAM DE USO GERAL 1FH 20H 2FH

Leia mais

Oprojeto apresenta três níveis de dificuldade: fácil, médio e difícil. No modo fácil tem-se uma

Oprojeto apresenta três níveis de dificuldade: fácil, médio e difícil. No modo fácil tem-se uma Jogo de Memória (Memorex v. 3.0) José Wilson Lima Nerys Universidade Federal de Goiás [email protected] Abstract No presente projeto uma sequência de Leds é criada pelo microcontrolador, e deve ser repetida

Leia mais

Organização de Memórias

Organização de Memórias Intel 8051 O Intel 8051 é um microcontrolador de 8 bits que pertence a família MCS-51 da Intel e foi lançado em 1977. É tido como o microcontrolador mais popular do mundo, pois é muito versátil e possui

Leia mais

1. Instruções de Desvio

1. Instruções de Desvio 1. Instruções de Desvio Def.: Estas instruções permitem que, de forma condicional ou não, seja feito um desvio na seqüência de uma programa. O desvio é efetuado fazendo com que o valor carregado no PC

Leia mais

CAPÍTULO 4 CONJUNTO DE INSTRUÇÕES

CAPÍTULO 4 CONJUNTO DE INSTRUÇÕES CAPÍTULO 4 CONJUNTO DE INSTRUÇÕES 4.1. INTRODUÇÃO Todos os membros da família MCS-51 executam o mesmo conjunto de instruções. As instruções são otimizadas para aplicações de controle de 8 bits. Elas permitem

Leia mais

Temporizadores e Contadores (Timer/Counter)

Temporizadores e Contadores (Timer/Counter) SEL-433 APLICAÇÕES DE MICROPROCESSADORES I O 8051 possui 2 (ou 3) T/C internos de 16 Bits programáveis e com capacidade de operação independente da CPU. Contadores crescentes (up-counter) que geram sinal

Leia mais

Temporizadores e Contadores

Temporizadores e Contadores Temporizadores e Contadores Temporizadores e Contadores (Timer/Counter) O 8051 possui 2 T/C internos de 16 Bits programáveis e com capacidade de operação independente da CPU. Contadores crescentes (up-counter)

Leia mais

PRÁTICAS. Microcontroladores: (LT36D) Prof: DaLuz. Práticas - 2º sem Microcontroladores LT36D - 26/04/ :56 1/16

PRÁTICAS. Microcontroladores: (LT36D) Prof: DaLuz. Práticas - 2º sem Microcontroladores LT36D -  26/04/ :56 1/16 PRÁTICAS Microcontroladores: (LT36D) Prof: DaLuz 1/16 Laboratório 01: - Laboratórios Instrução / diretiva (ORG e END), exemplos: ORG 0000h posiciona o código na linha 0000h da EPROM ORG 0100h posiciona

Leia mais

Microcontroladores 8051

Microcontroladores 8051 Microcontroladores 8051 1. Microcontroladores Microcontrolador é o nome dado ao componente que incorpora em um só "chip" todos os elementos necessários a um microcomputador. Deve ter : CPU, Memória e Interfaces

Leia mais

PROJETOS COM MICROCONTROLADORES

PROJETOS COM MICROCONTROLADORES Escola de Engenharia Elétrica e de Computação Universidade Federal de Goiás PROJETOS COM MICROCONTROLADORES Versão em Processo de Atualização Prof. Dr. José Wilson Lima Nerys Goiânia, 2009 Projetos com

Leia mais

MICROCONTROLADOR 8051

MICROCONTROLADOR 8051 MICROCONTROLADOR 8051 Notas de Aula (v.2014) Prof. André R. Hirakawa Prof. Paulo S. Cugnasca Prof. Carlos E. Cugnasca ARQUITETURA 8051 APLICAÇÕES MAIS FREQUENTES SISTEMAS COMPACTOS: MEMÓRIAS ROM / RAM

Leia mais

Memória de Dados Interna. Memória de Dados Interna

Memória de Dados Interna. Memória de Dados Interna Memória de Dados Interna Memória de Dados Interna - faixa de endereço endereçável diretamente: 00 a 7F hexadecimal. - faixa de endereço endereçável indiretamente: 00 a FF hexadecimal. - espaço endereçável

Leia mais

MICROPROCESSADORES E MICROCONTROLADORES PROVA 1

MICROPROCESSADORES E MICROCONTROLADORES PROVA 1 MICROPROCESSADORES E MICROCONTROLADORES PROVA 1 1. A expressão a seguir pode ser usada para avaliar o desempenho de um microprocessador. Comente cada um dos termos dessa expressão. Valor: 2,5 Tempo de

Leia mais

Lista de Exercícios 2

Lista de Exercícios 2 Conceitos envolvidos: a) Contadores e Temporizadores b) Interface serial RS232 c) Interrupções Lista de Exercícios 2 1. Fazer um contador hexadecimal que coloque o valor de contagem na porta P1 em intervalos

Leia mais

Microcontroladores. Conjunto de Instruções do Prof. Guilherme Peron Prof. Heitor Lopes Prof. Ronnier Rohrich Prof. Rubão

Microcontroladores. Conjunto de Instruções do Prof. Guilherme Peron Prof. Heitor Lopes Prof. Ronnier Rohrich Prof. Rubão Microcontroladores do 805 Prof. Guilherme Peron Prof. Heitor Lopes Prof. Ronnier Rohrich Prof. Rubão Introdução Os microcontroladores: Têm instruções limitadas Precisam tratar os dados da forma correta

Leia mais

208 = D0 h TMOD. MOV TMOD,#20h ;TMOD = Timer 1 no ;Modo 2, controle por software SCON. ;Canal Serial

208 = D0 h TMOD. MOV TMOD,#20h ;TMOD = Timer 1 no ;Modo 2, controle por software SCON. ;Canal Serial Exercício 1 Fazer um programa em Assembly do 8051 que informe a temperatura de um forno. O programa deve enviar inicialmente um String em ASCII armazenado na área de memória de programa a partir do endereço

Leia mais

Prof. Adilson Gonzaga

Prof. Adilson Gonzaga Prof. Adilson Gonzaga Memória de Dados Interna (RAM Interna) O endereçamento é feito com 8 bits Chips com 128 bytes de RAM não possuem a área I (Apenas Endereçamento Indireto) Memória de Dados Interna

Leia mais

Família 8051 (introdução) 2011/1

Família 8051 (introdução) 2011/1 Família 8051 (introdução) 2011/1 Refresh Microprocessador vs. microcontrolador. Periféricos built-in. Single-chip computer 2 Objetivos Histórico Modelos da família original Principais características Diagrama

Leia mais

Microprocessadores. Organização de Memória

Microprocessadores. Organização de Memória Microprocessadores Organização de Memória Prof. Clayrton Henrique rev. 01 fev. 2016 Roteiro Introdução; RAM Interna; Parte de Dados; Parte de SFR; Registradores; Assembly; Referências... 2 Introdução RAM

Leia mais

O microcontrolador Quatro partes importantes

O microcontrolador Quatro partes importantes SEL-433 APLICAÇÕES DE MICROPROCESSADORES I A escolha do microprocessador mais adequado depende basicamente da aplicação, e deve se levar em conta os seguintes critérios: Técnicos: Velocidade, capacidade

Leia mais

Aula 8 Microcontrolador 8051

Aula 8 Microcontrolador 8051 SEL 0415 Departamento de Engenharia Elétrica e de Computação EESC-USP SEL 0415 Introdução à Organização de Computadores Aula 8 Microcontrolador 8051 Profa. Luiza Maria Romeiro Codá Autores: Prof. Dr. Marcelo

Leia mais

Tópicos: 1 - Modos de endereçamento do Pilha e instruções de Pilha. 3 - Instruções que usam pilha: - instrução CALL - instrução RET

Tópicos: 1 - Modos de endereçamento do Pilha e instruções de Pilha. 3 - Instruções que usam pilha: - instrução CALL - instrução RET Tópicos: 1 - Modos de endereçamento do 8051 2 - Pilha e instruções de Pilha 3 - Instruções que usam pilha: - instrução CALL - instrução RET 4 - Interrupção 1 - Modos de Endereçamento do 8051 Os modos de

Leia mais

Aula 8 Microcontrolador 8051

Aula 8 Microcontrolador 8051 SEL 0415 Departamento de Engenharia Elétrica e de Computação EESC-USP SEL 0415 Introdução à Organização de Computadores Aula 8 Microcontrolador 8051 Profa Luiza Maria Romeiro Codá Autores: Prof Dr Marcelo

Leia mais

Lista de Exercícios 1

Lista de Exercícios 1 Conceitos envolvidos: a) Contadores e Temporizadores b) Interface serial RS2322 c) Interrupções Lista de Exercícios 1 1. Fazer um contador hexadecimal que coloque o valor de contagem na porta P1 em intervalos

Leia mais

UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III

UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III Orientações: Esta lista de Exercícios deve ser entregue juntamente com a

Leia mais

EXERCÍCIOS 2 Prof. Adilson Gonzaga

EXERCÍCIOS 2 Prof. Adilson Gonzaga LISTA DE EXERCÍCIOS 2 Prof. Adilson Gonzaga 1) Um robô como mostrado na figura é acionado por dois motores de corrente contínua, um para cada roda, conforme o esquema, e possui um sensor localizado na

Leia mais

Microcontrolador 8051

Microcontrolador 8051 Microcontrolador 8051 Inicialmente fabricado pela INTEL, atualmente fabricado por várias empresas; Possui uma grande variedade de dispositivos, com diversas características, porém compatíveis em software;

Leia mais

Prof. Adilson Gonzaga

Prof. Adilson Gonzaga Exemplo de Projeto com Microcontrolador MCS-51 Prof. Adilson Gonzaga Definições Iniciais: Microcontrolador Tamanho da Memória de Programa Interna define o tamanho da Memória de Programa Externa a ser utilizada.

Leia mais

NOTAS DE AULA 06 MICROCONTROLADOR 8051

NOTAS DE AULA 06 MICROCONTROLADOR 8051 NOTAS DE AULA 06 MICROCONTROLADOR 8051 SUMÁRIO DO VOLUME NOTAS DE AULA 06 1 INTRODUÇÃO AOS MICROCONTROLADORES 2 PROGRAMANDO EM LINGUAGEM ASSEMBLY - 8051 3 INSTRUÇÕES: JUMPS, LOOPS E CALL 4 DESCRIÇÃO DOS

Leia mais

Microcontroladores (µcs) e microprocessadores (µps) A família 80C51. 80C51: Arquitectura do núcleo de base. Os µcs da família 80C51

Microcontroladores (µcs) e microprocessadores (µps) A família 80C51. 80C51: Arquitectura do núcleo de base. Os µcs da família 80C51 A família 80C51 Organização: Microcontroladores versus microprocessadores Os microcontroladores da família 80C51 Interface com o exterior Modelo de programação Processamento dos pedidos de interrupção

Leia mais

Lista de Exercícios 1

Lista de Exercícios 1 Conceitos envolvidos: a) Memória de Dados (interna e externa) b) Memória de Programa (interna e externa) c) Operações aritméticas e lógicas d) Portas e) Endereçamento a Bit f) Contadores e Temporizadores

Leia mais

SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES

SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES SEL 0415 Aula 11 Microcontrolador 8051 Parte 3 SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Marcelo A. C. Vieira SEL 415 INTERRUPÇÃO Estrutura de Interrupção do 8051 n 5 Fontes [ 2 Externas

Leia mais

Aplicações de Microprocessadores I. Prof. Adilson Gonzaga

Aplicações de Microprocessadores I. Prof. Adilson Gonzaga Aplicações de Microprocessadores I Prof. Adilson Gonzaga Exercício -1 Fazer um programa em Assembly do 8051 que informe a temperatura de um forno. O programa deve enviar inicialmente um String em ASCII

Leia mais

SEMINÁRIO ASSEMBLY: Arquitetura 8051

SEMINÁRIO ASSEMBLY: Arquitetura 8051 UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO TECNOLÓGICO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA Curso de Ciências da Computação SEMINÁRIO ASSEMBLY: Arquitetura 8051 Fernando Takeshi Sato Diego Schmitt

Leia mais

Microcontrolador 8051:

Microcontrolador 8051: Microcontrolador 8051: Fonte: CORRADI 2009 O Microcontrolador 8051: Começou a ser produzido no início da década de 80, pela Intel; Hoje é fabricado por várias empresas e com muitas variações; Atualmente,

Leia mais

Apontamentos sobre o 8051 Prof. Eng Luiz Antonio Vargas Pinto Versão revista e ampliada em 01/07/2009 Revisada em 28/02/2006 Revisada em 18/11/2007

Apontamentos sobre o 8051 Prof. Eng Luiz Antonio Vargas Pinto Versão revista e ampliada em 01/07/2009 Revisada em 28/02/2006 Revisada em 18/11/2007 1 Apontamentos sobre o 8051 Prof. Eng Luiz Antonio Vargas Pinto Versão revista e ampliada em 01/07/2009 Revisada em 28/02/2006 Revisada em 18/11/2007 Revisada em 17/03/2011 Revisada em 13/01/2013 1. Introdução:...

Leia mais