jueves, 24 de junio de 2010

CONTADOR CON BCD


#include <18f2550.h> //DECLARO MI PIC#fuses HS,XT,NOWDT,PUT,NOPROTECT //FUSIBLES DE FUNCIONES ESPECIALES#use delay(clock=4000000) //FRECUENCIA-OSCILACIONES DEL MC
//Declaracion Variablesint un=0,dec=0,cen=0,vpes,vpes1,vpes2,cambio=0; //INICIO DEL CONTADOR Y SALTO SUB_RUTINA int A,B,A1,B1,A2,B2,A3,B3; //ME CONTROLAN LAS UNIDADESint AA,BB,AA1,BB1,AA2,BB2,AA3,BB3; //ME CONTROLAN LAS DECENAS
void rutina(int num,int num2);
void main(){ //INICIO
//Configuracion de Puertosset_tris_c(0b11111111); //PUERTO B COMO INPUT TODO!!set_tris_b(0b00000000); //PUERTO C COMO OUTPUT PARA UNIDADES-DECENAS
while(true){while(cambio==0){//Baloncesto rutina(un,dec);//convierte de decimal a binario,muestra valor por puerto C,unidades y decenas output_high(pin_a0); output_low(pin_a1); output_low(pin_a2);
if(input(pin_c0)==1){// UNIDADES delay_ms(300);//antirrebote!! vpes=un;//valores anteriores a guardar vpes1=dec; vpes2=cen; un++;//suma 1 punto if(un>9){ dec++; un=0; if(dec>9){//funcion para que cuando el valor sea dec=dec-10;//mayor a 9 pase cen++; }}}
if(input(pin_c1)==1){// RESET delay_ms(300); un=0; dec=0; cen=0; } }}
}//cierra while general//cierra main
//***************Sub_Funcion***************************//CONTROL PARA DISPLAY DE LAS CENTENAS POR PUERTO Dvoid rutina(int num,int num2){A=num/2;B=num%2;A1=A/2;B1=A%2;A2=A1/2;B2=A1%2;A3=A2/2;B3=A2%2;if(B==1){output_high(pin_b0);}else if(B==0){output_low(pin_b0);}if(B1==1){output_high(pin_b1);}else if(B1==0){output_low(pin_b1);}if(B2==1){output_high(pin_b2);}else if(B2==0){output_low(pin_b2);}if(B3==1){output_high(pin_b3);}else if(B3==0){output_low(pin_b3);}AA=num2/2;BB=num2%2;AA1=AA/2;BB1=AA%2;AA2=AA1/2;BB2=AA1%2;AA3=AA2/2;BB3=AA2%2;if(BB==1){output_high(pin_b4);}else if(BB==0){output_low(pin_b4);}if(BB1==1){output_high(pin_b5);}else if(BB1==0){output_low(pin_b5);}if(BB2==1){output_high(pin_b6);}else if(BB2==0){output_low(pin_b6);}if(BB3==1){output_high(pin_b7);}else if(BB3==0){output_low(pin_b7);}}//FIN SUB_RUTINA

No hay comentarios:

Publicar un comentario