EXERCÍCIOS DE PROGRAMAÇÃO

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

Download "EXERCÍCIOS DE PROGRAMAÇÃO"

Transcrição

1 EXERCÍCIOS DE PROGRAMAÇÃO A seguir são apresentados exercícios de programação que podem ser testados nas placas de laboratório de processadores que utilizam o MSC1211. São propostos vários exercícios. Em alguns, a solução (em assembly e C ) está impressa junto com esta documentação. Nos demais, você poderá encontrar os respectivos programas, no site desta disciplina. Junto aos circuitos você também vai encontrar a proposta de novos exercícios. Exemplo I Semáforo Este exercício utiliza a porta P1 para controlar as lâmpadas de um conjunto de três semáforos. O semáforo S3 é do pedestre e só utiliza as lâmpadas vermelha e verde. Veja a descrição do funcionamento dos semáforos que encontra-se impressa junto ao esquemático do circuito. Por simplicidade o circuito foi simplificado ao máximo. As lâmpadas do semáforo são consideradas ideiais, e portanto não consomem corrente da porta lógia. Portanto não há necessidade de resistores para limitação de corrente. Além disto, os semáforos possuem os circuitos necessários para acionar uma lâmpada conectada a rede elétrica, através de um sinal lógico do tipo TTL. Na prática, o projeto deveria contemplar tanto os resistores de limitação de corrente quanto os circuitos de disparo das lâmpadas. Para quem tiver curiosidade, procure a documentação do circuito MOC3020. Ele é um circuito de disparo para tiristores que pode ser utilizado nesta tarefa. Solução em Assembly Obs.: Este programa foi elaborado sem a adição das bibliotecas disponíveis e portanto, a listagem do programa ficou consideravelmente maior.

2 **** SEMAF_I.ASM ********************************************************* ** ** ********************************************************* by [JCLima ] *** $MOD51 *** Exemplo de Declaração de Pinos de I/ O ******************************* ** ** ************************************************************************** VM3 EQU P1.0 VM3 equ 90h AM3 EQU P1.1 AM3 equ 91h VD3 EQU P1.2 VD3 equ 92h *** Exemplo de Declarações de Constantes e Variáveis ********************* ** ** ************************************************************************** contador EQU 7FH unsigned char contador estado1 EQU 85h S1 Verde estado2 EQU 45h S1 Amarelo estado3 EQU 32h S2 Verde estado4 EQU 29h S2 Amarelo e S3 Vermelho On estado5 EQU 28h S2 Amarelo e S3 Vermelho Off *** Vetor de Reset ******************************************************* ** ** ****************************************************** Endereco: 0000H *** ORG 0000H LJMP START *** Vetor da INT0 ******************************************************** ** ** ****************************************************** Endereco: 0003H *** ORG 0003H *** Vetor do Timer 0 ***************************************************** ** ** ****************************************************** Endereco: 000BH *** ORG 000BH *** Vetor da INT1 ******************************************************** ** ** ****************************************************** Endereco: 0013H *** ORG 0013H *** Vetor do Timer 1 ***************************************************** ** ** ****************************************************** Endereco: 001BH *** ORG 001BH *** Vetor da Porta Serial ************************************************ ** ** ****************************************************** Endereco: 0023H *** ORG 0023H

3 *** PROGRAMA PRINCIPAL *************************************************** ** ** ************************************************************************** START: MOV SP,#80h Move a pilha para a RAM indireta!!! *** LOOP Programa Principal... REPETE: MOV P1,#estado1 MOV A,#22 delay 22s LCALL DELAYx1000ms MOV P1,#estado2 MOV A,#3 delay 3s LCALL DELAYx1000ms MOV P1,#estado3 MOV A,#15 delay 15s LCALL DELAYx1000ms MOV contador,#3 LOOP_REPETE: MOV P1,#estado4 LCALL DELAY500ms delay 0.5s MOV P1,#estado5 LCALL DELAY500ms delay 0.5s DJNZ contador,loop_repete LJMP REPETE Obs.: No MSC1211 um ciclo de Máquina = 4 pulsos de clock... Obs.: No 8051 um ciclo de Máquina = 12 pulsos de clock... *** DELAY 1ms ************************************************************ ** ** ******************************** [ MHz = 2757 CICLOS] *** DELAY1ms: PUSH 07H MOV R7,#83 < para um MSC1211 (4 pulsos/ciclo!!!) _LOOP1ms: NOP NOP NOP NOP NOP NOP NOP NOP NOP DJNZ POP RET R7,_LOOP1ms 07H *** DELAY 500ms ********************************************************** ** Baseada na rotina de 1ms! ** ********************************************* [ MHz ] *** DELAY500ms: PUSH 07H MOV R7,#100 _LOOP500ms: LCALL DELAY1ms Aguarda 1ms!!! LCALL DELAY1ms Aguarda 1ms!!! LCALL DELAY1ms Aguarda 1ms!!! LCALL DELAY1ms Aguarda 1ms!!! LCALL DELAY1ms Aguarda 1ms!!! DJNZ R7,_LOOP500ms Repete 100x POP 07H

4 RET *** DELAYx1000ms(A) ****************************************************** ** Baseada na rotina de 1ms! ** ********************************************* [ MHz ] *** DELAYx1000ms: PUSH 07H PUSH 06H MOV _LOOPxx1000ms: MOV R7,A R6,#200 _LOOPx1000ms: LCALL DELAY1ms Aguarda 1ms!!! LCALL DELAY1ms Aguarda 1ms!!! LCALL DELAY1ms Aguarda 1ms!!! LCALL DELAY1ms Aguarda 1ms!!! LCALL DELAY1ms Aguarda 1ms!!! DJNZ R6,_LOOPX1000ms Repete 200x = 1segundo DJNZ POP POP RET R7,_LOOPxx1000ms Repete A vezes 06H 07H END Solução em Linguagem C (utilizando o SDCC - compilado no modelo small) #include <8052.h> #include <stdio.h> **************************************************************** ** Pinos do MICROCONTROLADOR ** **************************************************************** sfr at 0x90 semaforo S1,S2,S3 --> P1 **************************************************************** ** V A R I Á V E I S E C O N S T A N T E S ** **************************************************************** const unsigned char estado[5] = 0x85, 0x45, 0x32, 0x29, 0x28 **************************************************************** ** P R O T O T Y P E S ** **************************************************************** void delay1ms(void) _naked void delay(unsigned int tempo) **************************************************************** ** M A I N ** **************************************************************** void main(void) unsigned char i while(1) semaforo = estado[0] delay(22000) semaforo = estado[1] delay(3000) semaforo = estado[2] aguarda 22s aguarda 3s

5 delay(15000) aguarda 15s for(i=0 i<3i++) Vermelho piscante por 3s semaforo = estado[3] delay(500) semaforo = estado[4] delay(500) **************************************************************** ** D E L A Y D E 1 m ** **************************************************************** mov r7,#212 <-- para um MSC1211 (4 pulsos/ciclo!!!) mov r7,#70 <-- para um AT89C52 (12 pulsos/ciclo!!!) void delay1ms(void) _naked _asm push ar7 mov r7,#70 DELAY_1ms: djnz r7,delay_1ms pop ar7 ret _endasm **************************************************************** ** D E L A Y P A R A M E T R I Z Á V E ** **************************************************************** void delay(unsigned int tempo) while (tempo > 0) tempo-- delay1ms() Exercício I Modifique o código acima, de modo que o sinal de vermelho piscante do semáforo S3 fique neste estado por 5 segundos, mas o estado de atenção do semáforo S2 permaneça em 3 segundos. Exercício II Escreva o código para fazer o acionamento de um novo conjunto de semáforos que estão representados no circuito dado a seguir. Veja a descrição do funcionamento das lâmpadas que se encontra impresso junto ao circuito elétrico.

6 Exemplo II Circuito de Display de 7 segmentos Neste exemplo utiliza-se a porta P1 para controlar um display de 7 segmentos, implementando um contador de 0 à 9 que é atualizado de segundo em segundo. No circuito, há um transistor PNP para fazer o acionamento do anodo do display. Em um circuito com apenas um display este transistor é totalmente dispensável. Ele está neste circuito apenas como exemplo de um circuito de drive de potência, para situações em que o usuário queira, por exemplo, alterar o brilho do display (através de um sinal de pwm) ou queira fazer a multiplexação de diversos dispositivos para a formação de um display de vários dígitos. Os resistores foram acrescentados para limitar a corrente de base do transistor e a corrente de cada segmento do display. Note que o circuito foi simplificado ao máximo, não estando representado no esquema elétrico o cristal oscilador e o circuito de reset. Em uma implementação real, tanto o cristal oscilador quanto o circuito de reset deveriam estar presentes.

7 Solução em Assembly **** UMDIGITO.ASM ******************************************************** ** ** ********************************************************* by [JCLima ] *** $MOD51 *** Declaração de Pinos de I/O ******************************************* ** ** ************************************************************************** display EQU P1 anodo EQU P3.2 *** Vetor de Reset ******************************************************* ** ** ****************************************************** Endereco: 0000H *** ORG 0000H LJMP START *** Vetor da INT0 ******************************************************** ** ** ****************************************************** Endereco: 0003H *** ORG 0003H *** Vetor do Timer 0 ***************************************************** ** ** ****************************************************** Endereco: 000BH ***

8 ORG 000BH *** Vetor da INT1 ******************************************************** ** ** ****************************************************** Endereco: 0013H *** ORG 0013H *** Vetor do Timer 1 ***************************************************** ** ** ****************************************************** Endereco: 001BH *** ORG 001BH *** Vetor da Porta Serial ************************************************ ** ** ****************************************************** Endereco: 0023H *** ORG 0023H *** PROGRAMA PRINCIPAL *************************************************** ** ** ************************************************************************** START: MOV DPTR,#TABELA DPTR aponta para a tabela de 7seg MOV R7,#0 R7 é o contador de 0 à 9... CLR anodo Liga o anodo para sempre... *** LOOP Programa Principal... REPETE: MOV A,R7 A = contador MOVC A,@A+DPTR Converte para 7 segmentos MOV P1,A Escreve no display... LCALL DELAY1000ms INC R7 Incrementa o contador CJNE R7,#10,REPETE Testa se contador = 10 MOV R7,#0 LJMP REPETE *** ARQUIVOS DE INCLUSAO ************************************************* ** ** ************************************************************************** Exemplos de declaração de Arquivos de Inclusão!!! OBS.: Descomente as linhas de comando, caso queira utilizar as bibliotecas listadas abaixo. $INCLUDE(DELAY_PR.INC) <--- Só esta biblioteca foi incluída!!! $INCLUDE(LCD_PROT.INC) $INCLUDE(I2C_PROT.INC) *** TABELAS, CONSTANTES, STRINGS ***************************************** ** ** ************************************************************************** TABELA: DB 0C0h, 0F9h, 0A4h, 0B0h, 99h, 92h, 82h, 0D8h, 80h, 90h END Solução em Linguagem C #include <8052.h> #include <stdio.h>

9 **************************************************************** ** Pinos do MICROCONTROLADOR ** **************************************************************** sfr at 0x90 display Display na porta P1 (A - P1.0, B - P1.1...) sbit at 0xb2 anodo Controle do anodo (P3.2) **************************************************************** ** V A R I Á V E I S E C O N S T A N T E S ** **************************************************************** const unsigned char Tabela[10] = 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xd8, 0x80, 0x90 **************************************************************** ** P R O T O T Y P E S ** **************************************************************** void delay1ms(void) _naked void delay(unsigned int tempo) **************************************************************** ** M A I N ** **************************************************************** void main(void) unsigned char i = 0 anodo = 0 Liga o anodo... while(1) display = Tabela[i] i++ if(i == 10) i = 0 delay(1000) **************************************************************** ** D E L A Y D E 1 m ** **************************************************************** void delay1ms(void) _naked _asm push ar7 mov r7,#70 DELAY_1ms: djnz pop ret _endasm r7,delay_1ms ar7

10 **************************************************************** ** D E L A Y P A R A M E T R I Z Á V E ** **************************************************************** void delay(unsigned int tempo) while (tempo > 0) tempo-- delay1ms() Exercício III Modifique os programas em C e assembly do exemplo descrito acima (exemplo II), de modo a que o mesmo possa realizar a contagem em hexadecimal. Exemplo III Circuito de Display de 7 Segmentos Neste exemplo mapeia-se o mesmo display de 7 segmentos na memória RAM externa. A aplicação é a mesma, ou seja, implementar um contador de 0 à 9 que é atualizado de segundo em segundo. A diferença entre o exemplo II e este, está na forma de acessar o display. No exemplo II, o display estava conectado diretamente a porta P1 e bastava apenas um comando de MOV para acioná-lo. Para este exemplo, é necessário fazer uso da instrução para acessar o display, pois agora o mesmo está mapeado na RAM. Para simplificar, foram retirados os resistores de limitação da corrente de cada segmento. Em um circuito real isto não pode ser feito, sob pena de danificar o display e o latch conectado ao mesmo!

11 Obs.: Para que se possa acessar o display é necessário saber em que posição da memória o mesmo foi colocado. O endereço é obtido pela análise do circuito elétrico. Solução em Assembly **** UM_MEM.ASM ********************************************************** ** ** ********************************************************* by [JCLima ] *** $MOD51 *** Definições *********************************************************** ** ** ************************************************************************** display EQU 0EE00h Endereço do display na RAM externa *** Vetor de Reset ******************************************************* ** ** ****************************************************** Endereco: 0000H *** ORG 0000H LJMP START *** Vetor da INT0 ******************************************************** ** ** ****************************************************** Endereco: 0003H *** ORG 0003H *** Vetor do Timer 0 ***************************************************** ** ** ****************************************************** Endereco: 000BH *** ORG 000BH *** Vetor da INT1 ******************************************************** ** ** ****************************************************** Endereco: 0013H *** ORG 0013H *** Vetor do Timer 1 ***************************************************** ** ** ****************************************************** Endereco: 001BH *** ORG 001BH *** Vetor da Porta Serial ************************************************ ** ** ****************************************************** Endereco: 0023H *** ORG 0023H *** PROGRAMA PRINCIPAL *************************************************** ** ** ************************************************************************** START: MOV R7,#0 R7 é o contador de 0 à 9...

12 *** LOOP Programa Principal... REPETE: MOV DPTR,#TABELA DPTR aponta para a tabela de 7seg MOV A,R7 A = contador... MOVC A,@A+DPTR Converte para 7 segmentos... MOV DPTR,#display DPTR aponta para a RAM externa... Escreve na RAM externa... LCALL DELAY1000ms Delay de 1 segundo... INC R7 contador = contador + 1 CJNE R7,#10,REPETE contador = 10? MOV R7,#0 LJMP REPETE *** ARQUIVOS DE INCLUSAO ************************************************* ** ** ************************************************************************** OBS.: Descomente as linhas de comando, caso queira utilizar as bibliotecas listadas abaixo. $INCLUDE(DELAY_PR.INC) Só esta biblioteca foi incluída!!! $INCLUDE(LCD_PROT.INC) $INCLUDE(I2C_PROT.INC) *** TABELAS, CONSTANTES, STRINGS ***************************************** ** ** ************************************************************************** TABELA: DB 0C0h, 0F9h, 0A4h, 0B0h, 99h, 92h, 82h, 0D8h, 80h, 90h END Solução em Linguagem C #include <8052.h> #include <stdio.h> **************************************************************** ** Pinos do MICROCONTROLADOR ** **************************************************************** xdata at 0xee00 unsigned char display Endereço da RAM ext. **************************************************************** ** V A R I Á V E I S E C O N S T A N T E S ** **************************************************************** const unsigned char Tabela[10] = 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xd8, 0x80, 0x90 **************************************************************** ** P R O T O T Y P E S ** **************************************************************** void delay1ms(void) _naked void delay(unsigned int tempo) **************************************************************** ** M A I N ** **************************************************************** void main(void)

13 unsigned char i = 0 while(1) display = Tabela[i] if(++i == 10) i = 0 delay(1000) **************************************************************** ** D E L A Y D E 1 m ** **************************************************************** void delay1ms(void) _naked _asm push ar7 mov r7,#70 DELAY_1ms: djnz pop ret _endasm r7,delay_1ms ar7 **************************************************************** ** D E L A Y P A R A M E T R I Z Á V E ** **************************************************************** void delay(unsigned int tempo) while (tempo > 0) tempo-- delay1ms() Exercício IV Modifique os programas em C e assembly do exemplo descrito acima (exemplo III), de modo a que o mesmo possa realizar uma contagem em octal. Exemplo IV Circuito de Display de 7 Segmentos Multiplexado Neste exemplo, dois displays de 7 segmentos estão conectados a porta P1. Para que seja feita a seleção de qual dígito será acionado, foram utilizadas duas linhas de controle: P3.3 para acionar o dígito da dezena e P3.2 para acionar o dígito da unidade. De modo que o usuário não perceba que os dígitos estão piscando, sugere-se que cada dígito seja acionado pelo menos 50 vezes por segundo (varredura de 100Hz). O display é do tipo anodo comum. Os segmentos

14 são acionados com nível lógico 0 e os anodos são acionados com nível lógico 1. O circuito foi simplificado ao máximo, tanto com relação ao microcontrolador quanto com relação ao circuito de multiplexação do display. Desta forma não aparecem as chaves (transistores) responsáveis pelo chaveamento dos displays. Admita que estes circuitos estão embutidos nos próprios displays. Em um circuito real não é possível conectar o display ao microcontrolador da forma como está representado no diagrama elétrico. Seria necessário acrescentar os resistores para limitação de corrente e os transistores para o chaveamento dos displays. Para o circuito proposto deseja-se implementar um contador de 0 à 99 que será atualizado a cada segundo. A contagem será feita empregando apenas um contador, ou seja, o programa deve tratar de separar a unidade da dezena, utilizando as operações de divisão inteira e resto da divisão. Solução em Assembly **** DOIS_DGT.ASM ******************************************************** ** ** ** Ultima Modificacao em: 05/10/2008 ** ** ** ********************************************************* by [JCLima ] *** $MOD51 *** Exemplos de Declaração de Pinos de I/O ******************************* ** ** ************************************************************************** display EQU P1

15 anodo_u EQU P3.2 anodo_d EQU P3.3 *** Vetor de Reset ******************************************************* ** ** ****************************************************** Endereco: 0000H *** ORG 0000H LJMP START *** Vetor da INT0 ******************************************************** ** ** ****************************************************** Endereco: 0003H *** ORG 0003H *** Vetor do Timer 0 ***************************************************** ** ** ****************************************************** Endereco: 000BH *** ORG 000BH *** Vetor da INT1 ******************************************************** ** ** ****************************************************** Endereco: 0013H *** ORG 0013H *** Vetor do Timer 1 ***************************************************** ** ** ****************************************************** Endereco: 001BH *** ORG 001BH *** Vetor da Porta Serial ************************************************ ** ** ****************************************************** Endereco: 0023H *** ORG 0023H *** PROGRAMA PRINCIPAL *************************************************** ** ** ************************************************************************** START: MOV DPTR,#TABELA DPTR aponta para a tabela de 7seg MOV R7,#0 R7 é o contador de 0 à CLR anodo_d Desliga o anodo da dezena... CLR anodo_u Desliga o anodo da unidade... *** LOOP Programa Principal... REPETE: MOV R6,#50 Contador da varredura LOOP_VAR: MOV A,R7 Carrega Contador... MOV B,#10 DIV AB Separa A = Dezena, B = Unidade MOVC A,@A+DPTR Liga dígito da dezena por 10ms MOV P1,A SETB ANODO_D LCALL DELAY10ms CLR ANODO_D MOV A,B Liga dígito da unidade por 10ms

16 MOVC MOV P1,A SETB ANODO_U LCALL DELAY10ms CLR ANODO_U DJNZ R6,LOOP_VAR Repete por 50x 50x(10ms+10ms) = 1s --> Delay da varredura INC R7 Incrementa contador... CJNE R7,#100,REPETE Contador = 100? MOV R7,#0 LJMP REPETE *** ARQUIVOS DE INCLUSAO ************************************************* ** ** ************************************************************************** $INCLUDE(DELAY_PR.INC) *** TABELAS, CONSTANTES, STRINGS ***************************************** ** ** ************************************************************************** TABELA: DB 0C0h, 0F9h, 0A4h, 0B0h, 99h, 92h, 82h, 0D8h, 80h, 90h END Solução em Linguagem C #include <8052.h> #include <stdio.h> #include <delay.h> **************************************************************** ** Pinos do MICROCONTROLADOR ** **************************************************************** sfr at 0x90 display Display na porta P1 (A - P1.0, B - P1.1...) sbit at 0xb2 anodou Controle da dezena (P3.2) sbit at 0xb3 anodod Controle da unidade (P3.3) **************************************************************** ** V A R I Á V E I S E C O N S T A N T E S ** **************************************************************** const unsigned char Tabela[10] = 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xd8, 0x80, 0x90 **************************************************************** ** P R O T O T Y P E S ** **************************************************************** void delay1ms(void) _naked void delay(unsigned int tempo) **************************************************************** ** M A I N ** **************************************************************** Obs:. As rotinas de delay foram incluídas em uma biblioteca denominada de delay.lib void main(void)

17 unsigned char i, contador = 0 anodod = 0 Desliga Dezena e... anodou = 0 desliga unidade while(1) for(i=0 i<50 i++) display = Tabela[contador/10] anodod = 1 delay(10) anodod = 0 Separa a dezena... e liga display dezena display = Tabela[contador%10] anodou = 1 delay(10) anodou = 0 if(++contador == 100) contador = 0 Seapara a Unidade e liga display unidade Exercício V Modifique os programas em C e assembly do exemplo anterior (exemplo IV) de modo que o mesmo implemente um contador de 0 à 59, o qual será atualizado a cada segundo, mas com numeração em octal e em hexadecimal. A contagem será feita empregando apenas um contador, ou seja, o programa deve tratar de separar a unidade da dezena, utilizando as operações de divisão inteira e resto da divisão. Exemplo V Neste exemplo, quatro displays de 7 segmentos estão conectados a porta P1. Para que seja feita a seleção de qual dígito será acionado, foram utilizadas quatro linhas de controle: P3.2 à P3.5, para o acionamento do dígito da unidade (P3.5) até o dígito do milhar (P3.2). De modo que o usuário não perceba que os dígitos estão piscando, sugere-se que cada dígito seja acionado pelo menos 50 vezes por segundo (varredura de 200Hz). O display é do tipo anodo comum. Os segmentos são acionados com nível lógico 0 e os anodos são acionados com nível lógico 1. O circuito foi simplificado ao máximo, tanto com relação ao microcontrolador quanto com relação ao circuito de multiplexação do display. Desta forma não aparecem as chaves (transistores) responsáveis pelo chaveamento dos displays. Admita que estes circuitos estão embutidos nos próprios displays. Em um circuito real não é possível conectar o display ao microcontrolador da forma como está representado no diagrama elétrico. Seria necessário acrescentar os resistores para limitação de corrente e os transistores para o chaveamento dos displays. Para o circuito proposto deseja-se implementar um contador de 0 à 9999 que será atualizado a cada décimo de segundo. A contagem será feita empregando vários contadores, cada um responsável pelo valor do dígito correspondente, ou seja, serão utilizados quatro contadores.

18 Solução em Assembly **** DOIS_DGT.ASM ******************************************************** ** ** ** Ultima Modificacao em: 05/10/2008 ** ** ** ********************************************************* by [JCLima ] *** $MOD51 *** Declarações de Variáveis ********************************************* ** ** ************************************************************************** MILHAR EQU 7FH CENTENA EQU 7EH DEZENA EQU 7DH UNIDADE EQU 7CH *** Declaração de Pinos de I/O ******************************************* ** ** ************************************************************************** display EQU P1 anodo_m EQU P3.2 anodo_c EQU P3.3 anodo_d EQU P3.4 anodo_u EQU P3.5 *** Vetor de Reset *******************************************************

19 ** ** ****************************************************** Endereco: 0000H *** ORG 0000H LJMP START *** Vetor da INT0 ******************************************************** ** ** ****************************************************** Endereco: 0003H *** ORG 0003H *** Vetor do Timer 0 ***************************************************** ** ** ****************************************************** Endereco: 000BH *** ORG 000BH *** Vetor da INT1 ******************************************************** ** ** ****************************************************** Endereco: 0013H *** ORG 0013H *** Vetor do Timer 1 ***************************************************** ** ** ****************************************************** Endereco: 001BH *** ORG 001BH *** Vetor da Porta Serial ************************************************ ** ** ****************************************************** Endereco: 0023H *** ORG 0023H *** PROGRAMA PRINCIPAL *************************************************** ** ** ************************************************************************** START: MOV DPTR,#TABELA DPTR aponta para a tabela de 7seg MOV MOV MOV MOV MILHAR,#0 CENTENA,#0 DEZENA,#0 UNIDADE,#0 CLR ANODO_M Desliga o anodo do milhar... CLR ANODO_C Desliga o anodo da centena... CLR ANODO_D Desliga o anodo da dezena... CLR ANODO_U Desliga o anodo da unidade... *** LOOP Programa Principal... REPETE: MOV R6,#5 Contador da varredura LOOP_VAR: MOV A,MILHAR Carrega Contador do milhar... MOVC A,@A+DPTR Liga dígito do milhar por 5ms MOV P1,A SETB ANODO_M LCALL DELAY5ms CLR ANODO_M MOV A,CENTENA Carrega Contador da centena...

20 MOVC Liga dígito da centena por 5ms MOV P1,A SETB ANODO_C LCALL DELAY5ms CLR ANODO_C MOV A,DEZENA Carrega Contador da dezena... MOVC Liga dígito da dezena por 5ms MOV P1,A SETB ANODO_D LCALL DELAY5ms CLR ANODO_D MOV A,UNIDADE Carrega Contador da unidade... MOVC Liga dígito da unidade por 5ms MOV P1,A SETB ANODO_U LCALL DELAY5ms CLR ANODO_U DJNZ R6,LOOP_VAR Repete por 5x 50x(5ms+5ms+5ms+5ms)=100ms-->Delay da varredura MOV A,#10 INC UNIDADE Incrementa unidade... CJNE A,UNIDADE,REPETE unidade = 10? MOV UNIDADE,#0 INC DEZENA Incrementa dezena... CJNE A,DEZENA,REPETE dezena = 10? MOV DEZENA,#0 INC CENTENA Incrementa centena... CJNE A,CENTENA,REPETE centena = 10? MOV CENTENA,#0 INC MILHAR Incrementa milhar... CJNE A,MILHAR,REPETE milhar = 10? MOV MILHAR,#0 LJMP REPETE *** ARQUIVOS DE INCLUSAO ************************************************* ** ** ************************************************************************** $INCLUDE(DELAY_PR.INC) *** TABELAS, CONSTANTES, STRINGS ***************************************** ** ** ************************************************************************** TABELA: DB 0C0h, 0F9h, 0A4h, 0B0h, 99h, 92h, 82h, 0D8h, 80h, 90h END Solução em Linguagem C #include <8052.h> #include <stdio.h> #include <delay.h> **************************************************************** ** Pinos do MICROCONTROLADOR ** **************************************************************** sfr at 0x90 display Display na porta P1 (A - P1.0, B - P1.1...)

21 sbit at 0xb2 dig1 sbit at 0xb3 dig2 sbit at 0xb4 dig3 sbit at 0xb5 dig4 Controle do digito 1 (P3.2) Controle do digito 1 (P3.3) Controle do digito 1 (P3.4) Controle do digito 1 (P3.5) **************************************************************** ** V A R I Á V E I S E C O N S T A N T E S ** **************************************************************** const unsigned char Tabela[10] = 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xd8, 0x80, 0x90 **************************************************************** ** P R O T O T Y P E S ** **************************************************************** void delay1ms(void) _naked void delay(unsigned int tempo) **************************************************************** ** M A I N ** **************************************************************** Obs:. As rotinas de delay foram incluídas em uma biblioteca denominada de delay.lib void main(void) unsigned char i, unidade, dezena, centena, milhar dig1 = 0 dig2 = 0 dig3 = 0 dig4 = 0 unidade = 0 dezena = 0 centena = 0 milhar = 0 while(1) for(i=0 i<50 i++) display = Tabela[milhar] dig1 = 1 delay(5) dig1 = 0 display = Tabela[centena] dig2 = 1 delay(5) dig2 = 0 display = Tabela[dezena] dig3 = 1 delay(5) dig3 = 0 display = Tabela[unidade] dig4 = 1 delay(5) dig4 = 0 if(++unidade == 10)

22 unidade = 0 if(++dezena == 10) dezena = 0 if(++centena == 10) centena = 0 if(++milhar == 10) milhar = 0 Outra Solução em Linguagem C Outra forma de implementar o programa seria utilizando um único contador (inteiro de 16bits) e separando através de divisões inteiras os dígitos do milhar até a unidade. Esta abordagem é fácil de ser feita em C mas não é tão simples de se implementar em assembly pois divisões de números de 16 bits não são nativas do processador e portanto o programador deve implementar os algoritmos de divisão com base na divisão de 8 bits. #include <8052.h> #include <stdio.h> #include <delay.h> **************************************************************** ** Pinos do MICROCONTROLADOR ** **************************************************************** sfr at 0x90 display Display na porta P1 (A - P1.0, B - P1.1...) sbit at 0xb2 dig1 Controle do digito 1 (P3.2) sbit at 0xb3 dig2 Controle do digito 1 (P3.3) sbit at 0xb4 dig3 Controle do digito 1 (P3.4) sbit at 0xb5 dig4 Controle do digito 1 (P3.5) **************************************************************** ** V A R I Á V E I S E C O N S T A N T E S ** **************************************************************** const unsigned char Tabela[10] = 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xd8, 0x80, 0x90 **************************************************************** ** P R O T O T Y P E S ** **************************************************************** void delay1ms(void) _naked void delay(unsigned int tempo) **************************************************************** ** M A I N ** **************************************************************** Obs:. As rotinas de delay foram incluídas em uma biblioteca denominada de delay.lib void main(void) unsigned char i, unidade, dezena, milhar unsigned int centena, contador dig1 = 0

23 dig2 = 0 dig3 = 0 dig4 = 0 contador = 0 unidade = 0 dezena = 0 centena = 0 milhar = 0 while(1) for(i=0 i<5 i++) display = Tabela[milhar] dig1 = 1 delay(5) dig1 = 0 display = Tabela[centena] dig2 = 1 delay(5) dig2 = 0 display = Tabela[dezena] dig3 = 1 delay(5) dig3 = 0 display = Tabela[unidade] dig4 = 1 delay(5) dig4 = 0 if(++contador == 10000) contador = 0 milhar = contador/1000 centena = contador%1000 dezena = centena%100 centena = centena/100 unidade = dezena%10 dezena = dezena/10 Exercício VI Modifique os programas em C e assembly do exemplo anterior (exemplo V) de modo que o mesmo implemente um cronômetro centesimal de à 59.99, o qual será atualizado a cada centésimo de segundo. Exercício VII No exemplo de hardware apresentado a seguir, são utilizados seis displays de 7 segmentos, os quais estão conectados a porta P1, e duas chaves do tipo Push Button nas portas P3.0 e P3.1. Para que seja feita a seleção de qual dígito será acionado, foram utilizadas seis linhas de controle: P3.2 à P3.7. De modo que o usuário não perceba que os dígitos estão piscando, sugere-se que cada dígito seja acionado pelo menos 50 vezes por segundo (varredura de 300Hz). O display é do tipo anodo comum. Os segmentos são acionados com nível lógico 0 e os anodos são acionados com nível lógico 1. O circuito foi simplificado ao máximo, tanto com relação ao microcontrolador quanto com relação ao circuito de multiplexação do display. Desta forma não aparecem as chaves (transistores) responsáveis pelo chaveamento dos displays. Admita que estes circuitos estão embutidos nos próprios displays. Em um circuito real não é possível conectar o display ao microcontrolador da forma como está representado no

24 diagrama elétrico. Seria necessário acrescentar os resistores para limitação de corrente e os transistores para o chaveamento dos displays. Para o circuito proposto escreva um programa para implementar um relógio com indicação de hora, minuto e segundo. O ajuste da hora inicial deverá ser feito por meio das duas chaves disponibilizadas no circuito. Suponha que o ajuste da hora só pode ser feito ao iniciar o programa, ou seja, após o reset. Depois de ajustada a hora, o relógio só poderá ter sua hora novamente ajustada ao se dar um reset no microcontrolador. Exercício VIII No circuito apresentado a seguir, quatro displays de 7 segmentos multiplexados estão conectados a memória RAM externa, através de dois latchs. Um dos latchs (U4), controla o valor dos dígitos, enquanto que o outro latch (U5) controla qual dígito será acionado naquele momento. De modo a que o usuário não perceba que os dígitos estão piscando, sugere-se que cada dígito seja acionado pelo menos 50 vezes por segundo (varredura de 200Hz). O display é do tipo anodo comum. Os segmentos são acionados com nível lógico 0 e os anodos são acionados com nível lógico 1. O circuito foi simplificado ao máximo, tanto com relação ao microcontrolador quanto com relação ao circuito de multiplexação do display. Desta forma não aparecem as chaves (transistores) responsáveis pelo chaveamento dos displays. Admita que estes circuitos estão embutidos nos próprios displays. Em um circuito real não é possível conectar o display ao microcontrolador da forma como está representado no diagrama elétrico. Seria necessário acrescentar os resistores para limitação de corrente e os transistores para o chaveamento dos displays. Para o circuito proposto implemente, um contador de 0 à 9999 que indique o valor da contagem em décimos de segundo. Implemente também com este circuito, um cronômetro

25 centesimal, de à 59.99, com indicação em centésimos de segundo. Neste exemplo, faça uso do ponto decimal para separa os segundos dos centésimos de segundo. Exercício IX No circuito apresentado a seguir, quatro displays de 7 segmentos multiplexados estão conectados a memória RAM externa, através de dois latchs. Um dos latchs (U4), controla o valor dos dígitos, enquanto que o outro latch (U5) controla qual dígito será acionado naquele momento. Ao circuito foi foi acrescentado um conversor A/D do tipo ADC0831 (protocolo serial) e um potenciômetro, de modo a variar o sinal na entrada do A/D de 0 à 1Volts. Para o circuito proposto, implemente um termômetro digital com a utilização do conversor A/D e do potenciômetro, o qual vai simular um sensor de temperatura, que varia de 0 a 100ºC gerando um sinal de 10mV/ ºC (LM35). A indicação no display será feita da seguinte forma

26 Exercício X No circuito apresentado a seguir, um display LCD 20x4 está conectado diretamente as portas P1 (dados do LCD) e P3 (controle do LCD sinais RS e E do LCD). Ao circuito foi foi acrescentado um conversor A/D do tipo ADC0831 (protocolo serial) e um potenciômetro, de modo a variar o sinal na entrada do A/D de 0 à 1Volts. O conversor A/D é controlado pela porta P3. Para o circuito proposto, implemente um termômetro digital com a utilização do conversor A/D e do potenciômetro, o qual vai simular um sensor de temperatura, que varia de 0 a 100ºC gerando um sinal de 10mV/ ºC (LM35).

27 Exercício XI No circuito apresentado a seguir, um display LCD 20x4 está conectado a memória RAM externa, através de dois latchs. Um dos latchs (U4), controla o valor do barramento de dados, enquanto que o outro latch (U5) controla os sinais de controle RS e E. Ao circuito foi foi acrescentado um conversor A/D do tipo ADC0831 (protocolo serial) e um potenciômetro, de modo a variar o sinal na entrada do A/D de 0 à 1Volts. O Conversor A/D é controlado por meio da porta P1. Para o circuito proposto, implemente um termômetro digital com a utilização do conversor A/D e do potenciômetro, o qual vai simular um sensor de temperatura, que varia de 0 a 100ºC gerando um sinal de 10mV/ ºC (LM35).

28

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 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 4: Motor de Passo e Display LCD Alunos: Matrícula:

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

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

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

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

29/03/2017. Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina

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

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

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

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

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

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

Portas de entrada e saída; Interrupções; Interrupções externas; Temporizadores Contadores; Interface Serial

Portas de entrada e saída; Interrupções; Interrupções externas; Temporizadores Contadores; Interface Serial Periféricos Integrados do 8051 Portas de entrada e saída; Interrupções; Interrupções externas; Temporizadores Contadores; Interface Serial Periféricos Integrados do 8051 Portas de entrada e saída O 8051

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

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

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ ENGENHARIA DE COMPUTAÇÃO. Vinicius Zanetti Tiago Dambros Rodrigo Yoshida Takeda

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ ENGENHARIA DE COMPUTAÇÃO. Vinicius Zanetti Tiago Dambros Rodrigo Yoshida Takeda PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ ENGENHARIA DE COMPUTAÇÃO Vinicius Zanetti Tiago Dambros Rodrigo Yoshida Takeda Projeto apresentado às disciplinas do Curso de Engenharia de Computação do Centro

Leia mais

Contador crescente e decrescente...

Contador crescente e decrescente... Contador crescente e decrescente... Hardware Quatro LEDS (P1.7 a P1.4) Um interruptor (P1.0) LEDS e interruptor activos a zero f x = 12MHz P1 VCC Problema Visualizar nos LEDs uma contagem cíclica entre

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

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

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

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

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

SEL PROGRAMAÇÃO EM C

SEL PROGRAMAÇÃO EM C SEL0337 1 8051 PROGRAMAÇÃO EM C LINGUAGEM C Linguagem que pode ser utilizada atualmente na programação de quase todos os microcontroladores; Há microcontroladores com instruções otimizadas para programação

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

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

Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás. Experimento 7: Sensores e Transdutores

Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás. Experimento 7: Sensores e Transdutores 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

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

8051 PROGRAMAÇÃO EM C

8051 PROGRAMAÇÃO EM C 1 8051 PROGRAMAÇÃO EM C C E ASSEMBLY for-loop em C int z; for (z=255; z>0; z--) P1=z; loop em Assembly MOV R1,#255 ABC: MOV P1,R1 DJNZ R1,ABC 2 TIPOS DE DADOS (DATA TYPES) E ATRASOS (TIME DELAY) EM C DO

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:

Laboratório de Microprocessadores e Microcontroladores. Experimento 6: 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

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 jwlnerys@gmail.com Abstract No presente projeto uma sequência de Leds é criada pelo microcontrolador, e deve ser repetida

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

Suporta os microcontroladores: R. Leonardo da Vinci, Campinas/SP CEP F.: (19) Kit de Desenvolvimento ACEPIC 28

Suporta os microcontroladores: R. Leonardo da Vinci, Campinas/SP CEP F.: (19) Kit de Desenvolvimento ACEPIC 28 Suporta os microcontroladores: PIC16F870, PIC16F872, PIC16F873A, PIC16F876A, PIC16F886, PIC18F2420, PIC18F2520, PIC18F2525, PIC18F2620, PIC18F2455, PIC 18F2550 e outros com 28 pinos O Kit de desenvolvimento

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

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

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

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

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

PLATAFORMA PARA ESTUDO EM PROGRAMAÇÃO DE MICROCONTROLADORES FAMÍLIA 8051

PLATAFORMA PARA ESTUDO EM PROGRAMAÇÃO DE MICROCONTROLADORES FAMÍLIA 8051 PLATAFORMA PARA ESTUDO EM PROGRAMAÇÃO DE MICROCONTROLADORES FAMÍLIA 8051 MODELO: EE0216 DESCRIÇÃO Plataforma de treinamento em microcontroladores família 8051 base em aço carbono e pés de borracha, pintura

Leia mais

LINGUAGEM C PARA O 8051

LINGUAGEM C PARA O 8051 LINGUAGEM C PARA O 8051 Disciplina de Microcontroladores Prof. Rubão VARIÁVEIS E TIPOS DE DADOS SIMPLES Char 8 bits Short e int 16 bits Long 32 bits Float 32 bits Unsigned int 16 bits Unsigned long 32

Leia mais

O Pino P2.7 não está sendo usado e cada Display mostrará valores de 0 a 9.

O Pino P2.7 não está sendo usado e cada Display mostrará valores de 0 a 9. Lista de Exercícios 2 Conceitos envolvidos: a) Interface serial RS232 b) Interface com Teclado Matricial c) Interface com Displays de 7 segmentos d) Interface com LCD e) Interface com Conversores A/D e

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

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

LINGUAGEM C PARA O 8051

LINGUAGEM C PARA O 8051 LINGUAGEM C PARA O 8051 Disciplina de Microcontroladores Prof. Ronnier e Rubão VARIÁVEIS E TIPOS DE DADOS SIMPLES Char 8 bits Short e int 16 bits Long 32 bits Float 32 bits Unsigned int 16 bits Unsigned

Leia mais

Estudar os passos que devem ser feitos (ponto de partida até o objetivo)

Estudar os passos que devem ser feitos (ponto de partida até o objetivo) Erros básicos Falta de conhecimento sobre o microcontrolador e assembly Falta de planejamento na hora de desenvolver o programa Estudar os passos que devem ser feitos (ponto de partida até o objetivo)

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

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

Guia da Placa de desenvolvimento PD Mega16 N1

Guia da Placa de desenvolvimento PD Mega16 N1 Guia da Placa de desenvolvimento PD Mega16 N1 Este tutorial consiste mostrar detalhes de hardware da placa de desenvolvimento PD Mega16 N1, necessário para iniciar a programação e testes. Boa aprendizagem...

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

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

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

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

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

Ex.: Rotinas de tempo

Ex.: Rotinas de tempo Ex.: Rotinas de tempo ORG 0000h PADRAO EQU 11111110b PORTA EQU P1 VBASE EQU 0800h mov r0,# PADRAO inicio: mov PORTA,r0 ;***********TEMPO DE 1S ************ mov dptr,#vbase ; Tt= 2T espera1: mov r1,#0f2h

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

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

Notas de Aula Prof. André R. Hirakawa Prof. Paulo S. Cugnasca Prof. Carlos E. Cugnasca

Notas de Aula Prof. André R. Hirakawa Prof. Paulo S. Cugnasca Prof. Carlos E. Cugnasca Notas de Aula Prof. André R. Hirakawa Prof. Paulo S. Cugnasca Prof. Carlos E. Cugnasca SISTEMAS COMPACTOS: MEMÓRIAS ROM/RAM INTERNAS E/S INTERNOS: 1 CANAL SERIAL (CONSOME P3.0 E P3.1) 2 TIMERS/CONTADORES

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

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

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

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

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

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

EXPERIÊNCIA 17 USO DO TEMPORIZADOR INTERNO

EXPERIÊNCIA 17 USO DO TEMPORIZADOR INTERNO EXPERIÊNCIA 17 USO DO TEMPORIZADOR INTERNO Parte I Fundamentos Teóricos O que diferencia um microcontrolador (como o 8051) de um microprocessador é o fato de que o primeiro pode apresentar, integrados

Leia mais

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues SEL0433 Aplicação de Microprocessadores I Revisão da Linguagem C Prof. Evandro L. L. Rodrigues Estrutura de um programa C Diretivas de pré processamento Declaração de variáveis globais Declaração de protótipos

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

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

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 Motor de Corrente Contínua Alunos:

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

Usando Display Gráfico com C18 e C30

Usando Display Gráfico com C18 e C30 Usando Display Gráfico com C18 e C30 Elaborado por: Revisado por: Tiago Coelho Magalhães Marcelo M. M. do Couto José Domingos Adriano Todos os documentos aqui referidos neste material encontram-se na pasta

Leia mais

9/3/2009. Aula 4. Engenharia de Sistemas Embarcados. Cenário: Sistema de Controle de LEDs

9/3/2009. Aula 4. Engenharia de Sistemas Embarcados. Cenário: Sistema de Controle de LEDs Cenário: Sistema de Controle de LEDs Sistema Embarcado Aula 4 Sistema Engenharia de Sistemas Embarcados Prof. Abel Guilhermino Tópico: Arquitetura de um microcontrolador 851 Engenharia de Sistemas Embarcados

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

Aula 4. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Arquitetura de um microcontrolador 8051

Aula 4. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Arquitetura de um microcontrolador 8051 Aula 4 Engenharia de Sistemas Embarcados Prof. Abel Guilhermino Tópico: Arquitetura de um microcontrolador 8051 Cenário: Sistema de Controle de LEDs Sistema Embarcado Sistema Engenharia de Sistemas Embarcados

Leia mais

Apêndice A Placa Experimental do 8051

Apêndice A Placa Experimental do 8051 Apêndice A Placa Experimental do 8051 L.M.S. e P.S.C. / 2001 (revisão) E.T.M./2005 (revisão) Para viabilizar uma rápida familiarização e uso do 8051, foi desenvolvida no PCS/EPUSP, uma Placa Experimental,

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

Microprocessadores e Microcontroladores Parte 3. Expansão de Memória Mapeamento de Memória

Microprocessadores e Microcontroladores Parte 3. Expansão de Memória Mapeamento de Memória Microprocessadores e Microcontroladores Parte 3 Expansão de Memória José Wilson Lima Nerys www.eee.ufg.br/ jwilson 2013 Um microcontrolador padrão da família 8051 possui normalmente uma memória de programa

Leia mais

Sistemas Operacionais de Tempo Real Displays de 7 segmentos

Sistemas Operacionais de Tempo Real Displays de 7 segmentos 1 / 31 Sistemas Operacionais de Tempo Real Displays de 7 segmentos por Henrique Frank W. Puhlmann Introdução Este artigo faz parte da série de artigos que apresenta Bibliotecas de funções e rotinas padronizadas

Leia mais

KIT DIDÁTICO PIC-2377

KIT DIDÁTICO PIC-2377 KIT DIDÁTICO PIC-77... Módulo PIC-77 Recursos internos da MCU Encapsulamento DIP40. 5 instruções (RISC). pinos de I/O configuráveis. 56 bytes de EEPROM para dados de 8 bits. 8k de memória flash para o

Leia mais

Arduino. Introdução aos Componentes Básicos. Leonardo Mauro P. Moraes. Universidade Federal de Mato Grosso do Sul - UFMS.

Arduino. Introdução aos Componentes Básicos. Leonardo Mauro P. Moraes. Universidade Federal de Mato Grosso do Sul - UFMS. Arduino Introdução aos Básicos Leonardo Mauro P. Moraes Universidade Federal de Mato Grosso do Sul - UFMS Ponta Porã - MS 2016 1 Introdução 2 Arduino 3 4 Encerramento Introdução Arduino 1 Introdução Arduino

Leia mais

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: jwlnerys@gmail.com e jose_wilson_nerys@ufg.br Prof. José Wilson 1 Lima

Leia mais

Assembly Sintaxe do Assembly. Instruções que afectam Flags. Aplicações de Microprocessadores 2006/2007

Assembly Sintaxe do Assembly. Instruções que afectam Flags. Aplicações de Microprocessadores 2006/2007 Assembly 8051 Aplicações de Microprocessadores 2006/2007 Sintaxe do Assembly [Label] Op-code [Operando] [Comentário] tabela: movc a,@a+dptr ; vai à tabela buscar o seu correspondente ASCII 2 2 Instruções

Leia mais

Pequenos Projetos com Arduino

Pequenos Projetos com Arduino Governo do Estado de Pernambuco Secretaria de Educação Secretaria Executiva de Educação Profissional Escola Técnica Estadual Professor Agamemnon Magalhães ETEPAM Pequenos Projetos com Arduino Jener Toscano

Leia mais

MICROPROCESSADORES E MICROCONTROLADORES Parte 2 Microcontrolador 8051

MICROPROCESSADORES E MICROCONTROLADORES Parte 2 Microcontrolador 8051 MICROPROCESSADORES E MICROCONTROLADORES Parte Microcontrolador 805 José Wilson Lima Nerys Página: www.emc.ufg/~jwilson Emails: jwlnerys@gmail.com e jose_wilson_nerys@ufg.br Prof. José Wilson Lima Nerys

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

GOVERNO DO ESTADO DE SÃO PAULO

GOVERNO DO ESTADO DE SÃO PAULO Centro Estadual de Educação Tecnológica Paula Souza GOVERNO DO ESTADO DE SÃO PAULO Etec JORGE STREET TRABALHO DE CONCLUSÃO DO CURSO TÉCNICO EM AUTOMAÇÃO INDUSTRIAL Esteira Seletora Caique de Siqueira Flavio

Leia mais

MICROPROCESSADORES E MICROCONTROLADORES Parte 3 Microcontrolador 8051

MICROPROCESSADORES E MICROCONTROLADORES Parte 3 Microcontrolador 8051 MICROPROCESSADORES E MICROCONTROLADORES Parte 3 Microcontrolador 8051 José Wilson Lima Nerys Página: www.emc.ufg/~jwilson Emails: jwlnerys@gmail.com e jose_wilson_nerys@ufg.br 1 Prof. José Wilson Lima

Leia mais

Manual do usuário - Kit DLS v4.0. Kit DLS v4.0 Display LCD serial Manual do usuário. Copyright VW Soluções

Manual do usuário - Kit DLS v4.0. Kit DLS v4.0 Display LCD serial Manual do usuário.  Copyright VW Soluções Kit DLS v4.0 Display LCD serial Manual do usuário 1 Apresentação Sem dúvida, o display Lcd é um dos recursos mais interessantes quando utilizamos microcontroladores. Isto porque podemos desenvolver IHM

Leia mais

Microcontroladores PIC16 - XM 116 -

Microcontroladores PIC16 - XM 116 - T e c n o l o g i a Microcontroladores PIC16 - XM 116 - Os melhores e mais modernos MÓDULOS DIDÁTICOS para um ensino tecnológico de qualidade. Microcontroladores PIC16 - XM 116 - INTRODUÇÃO O mundo da

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

Microcontrolador Assembly UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

Microcontrolador Assembly UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk Assembly 8051 Num sistema microprocessado, geralmente, não existe um sistema operacional; O programa desenvolvido pelo programador deve cuidar tanto da lógica do programa, bem como da configuração e acesso

Leia mais

Interface com Teclas, Leds e Teclados Matriciais. Prof. Adilson Gonzaga

Interface com Teclas, Leds e Teclados Matriciais. Prof. Adilson Gonzaga Interface com Teclas, Leds e Teclados Matriciais Prof. Adilson Gonzaga Técnicas de Interface com Microcontroladores (8051) Estrutura das Portas do 8051: Todas as quatro Portas (P0,P1,P2,P3) da família

Leia mais

Funções dos Microcontroladores Microcontroladores e Microprocessadores Especialização em Automação Industrial

Funções dos Microcontroladores Microcontroladores e Microprocessadores Especialização em Automação Industrial Funções dos Microcontroladores Microcontroladores e Microprocessadores Especialização em Automação Industrial 1 LCD - PIC Configure um projeto normalmente e na aba LCD (External) marque as opções Use LCD

Leia mais