Académique Documents
Professionnel Documents
Culture Documents
Descrio do funcionamento O bloco ADC consiste em um conversor analgico para digital. Usualmente este conversor de 8 ou 10 bits do tipo por aproximaes sucessivas. ADC_CH corresponde a um SFR utilizado para configurar qual canal de entrada (AD0-AD7) estar conectado ao conversor ADC e o ADC_CLK corresponde a um SFR utilizado para definir a razo de diviso do sinal de clock que alimentar o conversor. Considera-se o clock do microcontrolador como o sinal de referncia para o conversor ADC. Assim, se ADC_CLK contiver o valor 2, o clock que alimentar o conversor ter a freqncia do clock que alimentar o microcontrolador dividida por 2. ADC_DATA um SFR de somente leitura que contm o ltimo valor convertido. ADC_START um flag para escrita utilizado para disparar o incio de uma converso e ADC_EOF um flag de leitura que informa que o conversor terminou de efetuar uma converso. ADC_EN um flag utilizado para habilitar o funcionamento do mdulo conversor. Estando o mdulo conversor habilitado (ADC_EN=1) a porta A no mais poder ser utilizada como entrada/sada digital. Considera-se a existncia de um flag ADC_IE, utilizado para habilitar a gerao de interrupo no sistema por fim de converso. Considera-se ainda, que o incio da converso marcada ao se setar o flag ADC_START e que, ao final da converso, quando ADC_EOF for setado, o flag ADC_START ser automaticamente resetado pelo sistema.
Digitais V - Firmware: Interfaceamento Analogico
Conversor A/D
Conjunto de Registradores
void Init_AD(void) { ADSCR_AIEN=0; // Desabilita interrupo do Conversor AD ADSCR_ADCO=0; // Configura o conversor AD para converso nica ADICLK_ADIV=0x03; // CLOCK AD => BUSCLOCK div 8 } unsigned char LeAD(unsigned char canal) { ADSCR_CH=canal; // Configura o mux de entrada while(!ADSCR_COCO); // Espera o fim da converso return(ADR); }
#include <MC68HC908QT4.h> // #define VREF 127 // void Init_AD(void); void interrupt LeAD(void); unsigned char Vad; void main(void) { CONFIG1_COPD=1; // DDRA=0x02; // Init_AD(); // __asm CLI; // for(;;) { if (Vad > VREF) PTA_PTA1=1; else PTA_PTA1=0; } }
Desabilita o mdulo COP Configura o pino PTA1 como sada Configura o conversor AD Limpa bit de mscara de interrupo no CCR
void Init_AD(void) { ADSCR_AIEN=1; // Habilita interrupo do Conversor AD ADSCR_ADCO=1; // Configura o conversor AD para converso cclica ADICLK_ADIV=0x03; // CLOCK AD => BUSCLOCK div 8 ADSCR_CH=0; //Configura mux para canal zero e dispara converso } Void interrupt LeAD(void) { Vad=ADR; }
Descrio do funcionamento
O bloco DAC consiste no conversor digital para analgico. DAC_DATA um registrador de entrada de dados. DAC_EOC um sinal que informa que a converso est terminada. Vo um sinal eltrico de tenso, correspondente ao valor convertido. Vref corresponde a uma tenso de referncia para o valor de tenso de sada.
Digitais V - Firmware: Interfaceamento Analogico
Desenvolvimento: Firmware 6
Implemente um firmware para um sistema indicador de nvel. A figura abaixo descreve o sistema composto por um tanque, um sensor de presso, um microcontrolador com conversor ADC interno de 8bits e um bargraf (conjunto de leds). Considere que o sensor foi calibrado para fornecer 0v quando o tanque estiver vazio e fornecer a tenso de fundo de escala do conversor ADC do microcontrolador quando o tanque estiver completamente cheio. O acionamento do leds do bargraf conectado na porta PTB dever ser proporcional ao nvel de tanque. Assim, o led_0 dever estar aceso quando o tanque estiver vazio, o led_7 quando o tanque estiver completamente cheio e os demais leds devero estar acesos para os nveis intermedirios.