//----------------------------------------------------------------------------------- // Autor: Marcelo Gonçalves Damasceno // Data: Abril/2008 // Compilador: CCS-C (PCW) ver. 3.150 //----------------------------------------------------------------------------------- // *** Inclusão das bibliotecas *** #include <16F628.h> //----------------------------------------------------------------------------------- // *** Configurações do Projeto *** #use delay(clock=4000000) //informa ao sistema o frequência //de clock, para temporização #fuses NOWDT,NOPUT,NOPROTECT,NOBROWNOUT,NOMCLR,NOLVP,INTRC_IO //palavras de config. //----------------------------------------------------------------------------------- // *** Variáveis globais *** int saida; //por ser global a variável pode ser acessada dentro de qualquer função //----------------------------------------------------------------------------------- // *** Funções *** void up(void){ while (!input(PIN_a0)) ; //debounce da chave if(saida != 0) { // se saida é zero já está no maior passo e pula rotina saida--; //diminui saída, aumentando o passo output_b(saida); //saida de bit de controle do pot } } void down(void){ while(!input(PIN_a1)) ; //debounce da chave if(saida != 0xff) { //se saída = 255 ( ff ) já está no menor passo e pula rotina saida++; //aumenta saída, diminuindo o passo output_b(saida); //saida de bit de controle do pot } } //----------------------------------------------------------------------------------- // *** Função principal *** void main(void){ saida=0xff; //pot tem seu valor inicial mínimo output_b(saida); //saida de bit de controle do pot while(1){ //faz infinitamente if(!input(PIN_a0)) up(); //chama a função para subir valor se acionada sw1 if(!input(PIN_a1)) down(); //chama a função para descer valor se acionada sw2 delay_ms(50); } } //----------------------------------------------------------------------------------- // *** Fim do código ***