Sei sulla pagina 1di 2

Ligando um display de 7 segmentos a um PIC16F877A

Como ligar um display de LED de 7 segmantos ao PIC16F877A? Uma boa opo executar essas ligaes como mostra o circuito abaixo:

Faa esta montagem e programe o PIC para rodar a 4 MHz e carregue o arquivo .hex compilado do cdigo-fonte abaixo, verifique como feita a movimentao dos dgitos no cdigo-fonte para a porta de sada.

1 /* Cdigo de exemplo de ligao de display de 7 segmentos com PIC16F877A* 2 * Para ser compilada com o PICC-CCS * 3 * Autor: Nelson Camilo de Almeida * 4 * www.pictronics.com.br * 5 * Data 04/03/2011 */ 6 7 #include "main_7seg.h" 8 9 byte const digito[] = { 0b10111111, // 0 Define cada segmento 0b10000110, // 1 dos valores mostrados 10 0b11011011, // 2 no display de LEDs 11 0b11001111, // 3 em binrio para ficar 12

0b11100110, // 4 mais fcil de codificar 13 0b11101101, // 5 cada dgito dos valores 14 0b11111101, // 6 mostrados no display. 15 0b10000111, // 7 16 0b11111111, // 8 17 0b11100111};// 9 18 19 20 void main() // Funo principal 21 { int contador; // varivel de contagem 22 23 setup_adc_ports(NO_ANALOGS); // Configura analgicos 24 setup_adc(ADC_OFF); 25 // ADC desligado setup_psp(PSP_DISABLED); 26 // PSP desligado setup_spi(SPI_SS_DISABLED); 27 // SPI delsigado setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); // Configura Timer 0 28 setup_timer_1(T1_DISABLED); 29 // Configura Timer 1 setup_timer_2(T2_DISABLED,0,1); 30 // Configura Timer 2 31 32 while (true) 33 // Loop infinito 34 { for (contador = 0; contador != 10; contador++) // Contagem de 0 at 9 35 36 { output_b (digito[contador]); // Apresenta Digito[valor_do_contador] 37 delay_ms (200); 38 // Aguarda 200ms para dar uma pausa no PIC 39 } 40 } 41 }