Baixe o app para aproveitar ainda mais
Prévia do material em texto
Exercícios De Sistemas digitais Microcontrolados Semana 01 Analise o trecho abaixo: "O ______________________ é o “guarda de trânsito” do computador SAP 1, é ele que prepara os blocos e sincroniza a operação d memória." Assinale a alternativa que contenha a palavra que complete a sentença acima. Somador-Subtrador Acumulador Registrador de endereços na memória Controlador-Sequenciador Registrador de instruções Assinale a alternativa que descreve o que é o Kernel (núcleo) de um computador ou de um microcomputador: Toda parte física (hardware) contida em um microcomputador. É uma lista de instruções, necessária para ordenar o tratamento dos dados pelo microcomputador. Componente gerenciador e integrador de hardware e software. É toda informação utilizada na execução de um problema. É a unidade de processamento de um microprocessador. Semana 02 Os microcontroladores são dispositivos encapsulados com recursos computacionais.Sabendo-se disso, analise as afirmativas abaixo: I - A Microchip Technology adotou a arquitetura de Harvad com seu produto principal, os microcontroladores PIC. II - A tensão de alimentação aceita nos microcontroladores PIC da família 16 é na faixa de 3,0 à 6,5 volts em corrente contínua. III - A corrente que os microcontroladores PIC consomem está diretamente ligada à velocidade de processamento (clock). IV - A família 16 dos microcontroladores PIC possuem duas opções para armazenamento do programa, a memória EEPROM e a memória EPRO adquirido. Após a leitura atenta das sentenças acima, assinale a alternativa correta: Todas as sentenças são verdadeiras As sentenças II e IV são verdadeiras As sentenças I, III e IV são verdadeiras As sentenças I e IV são verdadeiras As sentenças I e III são verdadeiras Assinale a alternativa que contem a principal característica do microcontrolador PIC-16F628A da Microchip: Master Clear ativo com +5 Vcc. Arquitetura pronta para comunicação USB. Possuir até 8 canais de conversão Analógico / Digital. Possuir até 3 pinos de interrupção. Tem a possibilidade do clock interno, evitando o uso de cristal oscilador externo. Semana 03 O oscilador eletrônico dita o ritmo do sistema, produzindo um sinal repetitivo. Esse sinal é elétrico e pode ser dito pulsante, seus níveis de tensão variam em alto e baixo (sinal digital). Essa troca constante de sinal é conhecida como clock, resultando em uma onda quadrada. Dentre os osciladores abaixo, assinale a alternativa que contém o oscilador que produz uma senoide de amplitude e frequência constante, cuja frequência é ajustada variando os valores da indutância ou da capacitância, seguindo a fórmula: Oscilador Colpitts Oscilador de cristal de quartzo Oscilador Clapp Oscilador Hartley Oscilador Pierce De acordo com a Microchip, fabricante dos microcontroladores PIC, um dos recursos existentes nos microcontroladores PIC possibilita o reset quando a tensão de alimentação diminui a níveis abaixo do limiar de tensão. Esse recurso é chamado: Wacth Dog Timer (WDT). Power On Reset (POR). Power Up Time (PWRT). Master Clear Pin Reset (MCLR). Brown Out Reset (BOR). Semana 04 Observe o circuito e o código-fonte abaixo: //==================== Arquivo crono.h //=================== #include #device adc=8 #FUSES NOWDT #FUSES XT #FUSES PUT #FUSES NOPROTECT #FUSES BROWNOUT #FUSES NOLVP #FUSES NOCPD #FUSES NOWRT #FUSES NODEBUG #use delay(clock=4000000) #define BOTAO1 PIN_A0 #define BOTAO2 PIN_A1 #define BOTAO3 PIN_A2 //================== Fim Arquivo crono.h //================= //==================== Arquivo crono.c //=================== #include "crono.h" short contando, contar; int numeros[6] = {0,0,0,0,0,0}; int n = 0; int c, t; int passo = 10; BYTE CONST CODIGO [10]= {0x3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F}; #int_RTCC void RTCC_isr(void) { set_timer0(get_timer0() + 6); if (contando) { passo--; if (passo == 0) { passo = 10; t = 0; contar = 1; while (contar) { if (numeros[t] < 9) { numeros[t]++; contar = 0; } else { numeros[t] = 0; t++; } } } } output_b(0b11111111); if (n == 2) output_c(CODIGO[numeros[n]] | 128); else output_c(CODIGO[numeros[n]]); output_b(0b11111111 ^ (128 >> n)); n++; if (n > 5) n = 0; } void main() { setup_adc_ports(NO_ANALOGS); setup_adc(ADC_CLOCK_DIV_2); setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); setup_ccp1(CCP_OFF); enable_interrupts(INT_RTCC); enable_interrupts(GLOBAL); contando = 0; while(1) { if (contando) { if (!input(BOTAO2)) { contando = 0; } } else { if (!input(BOTAO1)) contando = 1; if (!input(BOTAO3)) { for (c = 0; c < 6; c++) numeros[c] = 0; passo = 10; } } } } //================== Fim Arquivo crono.c //================= Assinale a alternativa CORRETA em função do funcionamento e operação do cronômetro: Ao ligar o cronômetro o display inicia-se apagado, os dígitos só são mostrados quando iniciar a contagem e o botão “ON” é usado para esta finalidade. é o botão “OFF”, que para a contagem. Ao parar a contagem com o botão “OFF” não é possível iniciá-la novamente. O botão “RESET” é usado para zerar os valores e só é reconhecido quando a contagem estiver parada. Ao ligar o cronômetro o display inicia-se apagado, os dígitos só são mostrados quando iniciar a contagem e o botão “ON” é usado para esta finalidade. Uma vez contan é o botão “OFF”, que para a contagem. Ao parar a contagem com o botão “OFF” é possível iniciá-la novamente através do botão “ON”. O botão “RESET” é usado para zerar os valores e só é reconhecido quando a contagem estiver parada. Ao ligar o cronômetro o display é preenchido com zeros, aguardando o acionamento o botão “ON” para iniciar a contagem. Uma vez contando, o único bo contagem. Ao parar a contagem com o botão “OFF” é possível iniciá-la novamente através do botão “ON”. O botão “RESET” é usado para zerar os valores e só é reconhecido quando a contagem estiver parada. Ao ligar o cronômetro o display é preenchido com zeros, aguardando o acionamento o botão “ON” para iniciar a contagem. Uma vez contando, o único botão ativo é o botão “OFF”, que para a contagem. Ao parar a contagem com o botão “OFF” não é possível iniciá-la novamente. O botão “RESET” é usado para zerar os valores e é reconhecido em qualquer momento da operação. Ao iniciar o cronômetro o display é preenchido com zeros, aguardando o acionamento o botão “ON” para iniciar a contagem. Uma lidos sequencialmente e cada um deles tem uma função específica. O botão “ON” congela o display mais a contagem continua, o botão “OFF” para a contagem e o botã contador. Observe o circuito abaixo e o código fonte que faz a rotina desse microcontrolador. Assuma que todos os parâmetrosdo PIC estejam configurados corretamente e que o circuito abaixo é funcional: A mensagem da forma como aparece no DISPLAY LCD só pode ser obtida após duas teclas serem pressionadas uma após a outra em sequência. São as teclas: C e A. A e B. C e E. F e E. D e F. Semana 06 Analise o programa e a figura com o diagrama esquemático abaixo. O programa é basicamente um pisca-pisca, acionado por botões (B1 a B4). Cada saída (P1 a P4) tem uma frequência quando o botão correspondente é acionado. O outro conjunto de saídas (L1 a L8) é acionada pelo potenciômetro, que está conectado na entrada analógica AN0. Arquivo: Questao.h ========================================================================== == #include #device ADC=8 #use delay(crystal=4MHz) #use FIXED_IO( B_outputs=PIN_B7,PIN_B6,PIN_B5,PIN_B4 ) #use FIXED_IO( C_outputs=PIN_C7,PIN_C6,PIN_C5,PIN_C4,PIN_C3,PIN_C2,PIN_C1,PIN_C0 ) #define EA1 PIN_A0 #define B1 PIN_B0 #define B2 PIN_B1 #define B3 PIN_B2 #define B4 PIN_B3 #define P1 PIN_B4 #define P2 PIN_B5 #define P3 PIN_B6 #define P4 PIN_B7 #define L1 PIN_C0 #define L2 PIN_C1 #define L3 PIN_C2 #define L4 PIN_C3 #define L5 PIN_C4 #define L6 PIN_C5 #define L7 PIN_C6 #define L8 PIN_C7 ========================================================================== == Arquivo: Questao.c ========================================================================== == #include short pisca_1, pisca_2, pisca_3, pisca_4; int ciclo_1, ciclo_2, ciclo_3, ciclo_4; short le_adc; long aux_valor, valor_adc, saida; #define valor_1 25 #define valor_2 75 #define valor_3 125 #define valor_4 225 #define ajuste 131 #INT_RTCC void RTCC_isr(void) { set_timer0(get_timer0() + ajuste); if (pisca_1) { ciclo_1--; if (ciclo_1 == 0) { output_toggle(P1); ciclo_1 = valor_1; } } if (pisca_2) { ciclo_2--; if (ciclo_2 == 0) { output_toggle(P2); ciclo_2 = valor_2; } } if (pisca_3) { ciclo_3--; if (ciclo_3 == 0) { output_toggle(P3); ciclo_3 = valor_3; } } if (pisca_4) { ciclo_4--; if (ciclo_4 == 0) { output_toggle(P4); ciclo_4 = valor_4; } } le_adc = 1; } void main() { port_B_pullups(0xFF); setup_adc_ports(AN0); setup_adc(ADC_CLOCK_INTERNAL); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_8|RTCC_8_bit); output_low(P1); output_low(P2); output_low(P3); output_low(P4); output_c(0); ciclo_1 = valor_1; ciclo_2 = valor_2; ciclo_3 = valor_3; ciclo_4 = valor_4; enable_interrupts(INT_RTCC); enable_interrupts(GLOBAL); while(TRUE) { if (input(B1) == 0) { pisca_1 = 1; } else { pisca_1 = 0; } if (input(B2) == 0) { pisca_2 = 1; } else { pisca_2 = 0; } if (input(B3) == 0) { pisca_3 = 1; } else { pisca_3 = 0; } if (input(B4) == 0) { pisca_4 = 1; } else { pisca_4 = 0; } if (le_adc) { le_adc = 0; valor_adc = read_adc() / 29; aux_valor = valor_adc; saida = 1; while (aux_valor > 0) { saida = saida * 2; aux_valor--; } if (valor_adc > 0) { saida = saida - 1; } else { saida = 0; } output_c(saida); } } } ========================================================================== == Pede-se: a) A frequência de acionamento dos LED P1 e P2. b) O intervalo de interrupção do TIMER0. c) Indicar os LEDS que estarão acesos se o potenciômetro estiver fornecendo 3,5 V na entrada analógica, cuja faixa vai de 0 a 5 V. d) O menor degrau de tensão detectado pelo conversor analógico do PIC. RESPOSTA DO ALUNO: a)R: Led P1 pisca em uma frequência de 20 Hz, enquanto que o led P2 pisca em uma frequência aproximada de 6,667 Hz. b) R: TIMER0 de 8 bits, configurado com prescaler 1:8, com registrador carregado em 131. Cálculo: Ciclo de Máquina = Fosc / 4 Ciclo de Máquina = 4.000.000 / 4 Ciclo de Máquina = 1 MHz Tempo = (1 / Ciclo de Máquina) * Prescaler * (Registrador - Carga Inicial) Tempo = (1 / 1.000.000) * 8 * (256 - 131) Tempo = 0,000001 * 8 * 125 Tempo = 1ms .c) R: Leds L1, L2, L3, L4, L5 e L6 ficarão acesos. d) R:Como a tensão VDD é de 5 V, com o conversor AD configurado para 8 bits de resolução, o menor degrau de tensão detectado pelo conversor será de 19,531 mV. 5 / (2^8) 19,531 mV. Semana 07 Leia atentamente as sentenças abaixo, referente ao protocolo de comunicação SPI (Serial Peripherical Interface): I - O protocolo SPI utiliza comunicação assíncrona, assim como o protocolo I2C. II - No caso de existir apenas um escravo na comunicação, a utilização do pino de seleção do escravo não é necessária. III - No caso em se utilizar vários escravos, no modelo SPI, as linhas de SCK, SDO e SDI são individuais para cada escravo. IV - O padrão SPI possui as mesmas vantagens de transmissão que o RS-232, porém pode ser utilizado para longas distâncias. É CORRETO apenas o que se afirma em: Apenas a sentença II é falsa. Apenas a sentença II é verdadeira. Apenas as sentenças I e IV são verdadeiras. Apenas a sentença III é verdadeira. Apenas as sentenças II e IV são verdadeiras. Valor da questão: 1,00 sua pontuação é 1,00 Essa questão foi cancelada e os pontos serão atribuídos para você. Sobre a parte de comunicação, leia atentamente as sentenças abaixo: I - Para comunicações efetivas entre sistemas microprocessados, algumas regras devem ser obedecidas para a transmissão de dados, tais como a taxa, a forma e o protocolo de envio. II - Utilizando microcontroladores da família PIC, podemos usar qualquer porta de I/O do mesmo para realizar uma comunicação do tipo RS-232. III - A comunicação do tipo USB (Universal Serial Bus) utiliza 2 pinos básicos do PIC, sendo eles o TX e o RX. IV - Na comunicação serial síncrona sempre existe pelo menos um MESTRE e um ou mais ESCRAVOS (SLAVES). É CORRETO apenas o que se afirma em: Apenas as sentenças I e III são verdadeiras. Apenas as sentenças III e IV são verdadeiras. Apenas a sentença III é falsa. Apenas a sentença I é verdadeira. Apenas a sentença II é falsa. Semana 08 A família STM32F10xxx possui três opções de boot. Assinale a alternativa que contenha essas opções: pela memória flash interna, pela memória operacional e pela memória PROM interna. pela memória flash externa, pelo DMA e pela memória ROM interna. pela memória flash externa, pela memória do sistema e pela memória ROM interna. pela memória flash interna, pela memória do sistema e pela memória SRAM interna. pela memória flash externa, pelo DMA e pela memória EPROM interna. Os microcontroladores da família STM32 possuem circuitos de supervisor de tensão interna. Esses circuitos estão sempre ativos e garantem a operação correta dos circuitos a partir ou abaixo de 2V. Esses circuitos são denominados: Low Power Reset. Power On Reset e Power Down Reset. Brown On Reset e Brown Out Reset. High Power Reset. Power Down Reset. Semana 09 O conversor analógico digital do microcontrolador PIC16F87X trabalha com resoluçãode 8 ou 10 bits, para uma faixa padrão de tensão de entrada analógica de X a Y, onde X é a tensão VSS, a alimentação negativa e Y é a tensão VDD, alimentação positiva. Porém, é possível alterar os valores de X e Y através de duas entradas de referência, -VREF (tensão de referência negativa) e +VREF (tensão de referência positiva). Num circuito, usando o PIC16F87X, tem-se o valor 174 ao ler uma entrada analógica. Assinale abaixo a alternativa que indica a tensão aproximada de entrada sabendo que X = +1 V e Y = + 4 V, e a resolução do conversor é de 10 bits. 0.51 V 1.61 V 1.51 V 1.66 V 0.61 V O conversor analógico digital do microcontrolador PIC16F87x trabalha com resolução de 8 ou 10 bits, para uma faixa padrão de tensão de entrada analógica de X a Y, onde X é a tensão VSS, a alimentação negativa e Y é a tensão VDD, alimentação positiva. Porém, é possível alterar os valores de X e Y através de duas entradas de referência, -VREF (tensão de referência negativa) e +VREF (tensão de referência positiva). Num circuito, usando o PIC16F87x, tem-se o valor numérico 235 ao ler a entrada analógica. Assinale abaixo a alternativa que indica a tensão de entrada sabendo que X = +1V e Y = +4V, e a resolução do conversor é de 10 bits. 3,311V 1,688V 0,688V 2,754V 3,754V ÚltimoSSssss:
Compartilhar