SHARE
TWEET

PIC - Reloj Start Stop de 10 minutos Regresivo

Electgpl Jun 19th, 2017 46 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <16F628A.h>
  2. #FUSES NOWDT
  3. #FUSES XT
  4. #FUSES MCLR
  5. #use delay(clock=4000000)
  6. #int_timer0
  7. void timer0_mux(int8 minU, int8 segD, int8 segU){
  8.    output_a(0b00000001);
  9.    output_b(minU);
  10.    delay_ms(5);
  11.    output_a(0b00000010);
  12.    output_b(segD);
  13.    delay_ms(5);
  14.    output_a(0b00000100);
  15.    output_b(segU);
  16.    delay_ms(5);
  17.    set_timer0(0);
  18. }
  19. int valorDisp[10]={0b00111111,0b00000110,
  20.                    0b01011011,0b01001111,
  21.                    0b01100110,0b01101101,
  22.                    0b01111101,0b00000111,
  23.                    0b01111111,0b01101111};
  24. int8 segU, segD, minU, i, j, k, cont;
  25. void main(){
  26.    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_64);
  27.    set_timer0(0);
  28.    enable_interrupts(INT_TIMER0);
  29.    enable_interrupts(GLOBAL);
  30.    while(TRUE){
  31.       for(k=0;k<10;k++){
  32.          for(j=0;j<6;j++){
  33.             for(i=0;i<10;i++){
  34.                while(cont<60){
  35.                   if(input(PIN_A3)==1){
  36.                      segU=valorDisp[i];
  37.                      segD=valorDisp[j];
  38.                      minU=valorDisp[k];
  39.                      timer0_mux(minU, segD, segU);
  40.                      delay_ms(1);
  41.                      cont++;
  42.                   }else{
  43.                      while(input(PIN_A3)==0){
  44.                         segU=valorDisp[i];
  45.                         segD=valorDisp[j];
  46.                         minU=valorDisp[k];
  47.                         timer0_mux(minU, segD, segU);
  48.                      }  
  49.                   }
  50.                }cont=0;  
  51.             }
  52.          }
  53.       }
  54.    }    
  55. }
RAW Paste Data
Top