Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Código de exemplo de ligação dois displays de 7 segmentos com PIC16F877A *
- * multiplexados. Para ser compilada com o PICC-CCS *
- * Autor: Nelson Camilo de Almeida *
- * www.pictronics.com.br *
- * Data 04/03/2011 */
- #include <16F877A.h>
- #device adc=10
- #FUSES NOWDT //No Watch Dog Timer
- #FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
- #FUSES NOPUT //No Power Up Timer
- #FUSES NOPROTECT //Code not protected from reading
- #FUSES NODEBUG //No Debug mode for ICD
- #FUSES NOBROWNOUT //No brownout reset
- #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
- #FUSES NOCPD //No EE protection
- #FUSES NOWRT //Program memory not write protected
- #use delay(clock=20000000)
- #define Display1 pin_c6 // Display 1 ligado ao pino pin_c6
- #define Display2 pin_c7 // Display 2 ligado ao pino pin_c7
- byte const digito[] = { 0b10111111, // 0 Define cada segmento
- 0b10000110, // 1 dos valores mostrados
- 0b11011011, // 2 no display de LEDs
- 0b11001111, // 3 em binário para ficar
- 0b11100110, // 4 mais fácil de codificar
- 0b11101101, // 5 cada dígito dos valores
- 0b11111101, // 6 mostrados no display.
- 0b10000111, // 7
- 0b11111111, // 8
- 0b11100111};// 9
- void main() // Função principal
- {
- int contador; // variável de contagem
- int unidade, dezena; // unidades da variável contador
- setup_adc_ports(NO_ANALOGS); // Configura analógicos
- setup_adc(ADC_OFF); // ADC desligado
- setup_psp(PSP_DISABLED); // PSP desligado
- setup_spi(SPI_SS_DISABLED); // SPI delsigado
- setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); // Configura Timer 0
- setup_timer_1(T1_DISABLED); // Configura Timer 1
- setup_timer_2(T2_DISABLED,0,1); // Configura Timer 2
- while (true) // Loop infinito
- {
- for (contador = 0; contador != 100; contador++) // Contagem de 00 até 99
- {
- unidade = contador / 10; // Calcula a unidade
- dezena = contador - (unidade * 10); // Calcula a dezena
- output_b (digito[unidade]); // Apresenta Digito[unidade_do_contador]
- output_high (Display1); // Habilita display 1
- delay_ms (50); // Aguarda 50ms para dar uma pausa no PIC
- output_low (Display1); // Desabilita display 1
- output_b (digito[dezena]); // Apresenta Digito[dezena_do_contador]
- output_high (Display2); // Habilita display 2
- delay_ms (50); // Aguarda 50ms para dar uma pausa no PIC
- output_low (Display2); // Desabilita display 2
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement