elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Temas
Páginas: [1]
1  Informática / Electrónica / Necesito delay.... en: 6 Enero 2006, 15:57 pm
Hola les eskribo para pedir ayuda ...necesito hacer un retardo (delay) para el pic 16f874....uso un cristal de 20MHz ....necesito un delay de 10 ms.....porfa ... :shocked:
2  Informática / Electrónica / Teklado matricial konektado a pic 16f874 en: 10 Diciembre 2005, 00:02 am
Hola aki va mi konsulta....estoy empezando kon el teklado matricial........si alguien me puede ayudar plis....el teklado va konektado al puerto B....y tengo que enviar esos datos por rs232....si algiuen me puede ayudar a modifikar este porfa....

Código:

//programa de lectura de un teclado matricial conectado al puerto B.
//se realiza una lectura cada 10ms.

char ADCON0@0x1F; // Registro ADCON0
char ADCON1@0x9F; // Direccion del registro ADCON1
char ADRESL@0x9E;
char ADRESH@0x1E;
char TXSTA@0x98;
char RCSTA@0x18;
char SPBRG@0x99;
char TXREG@0x19;
char RCREG@0x1A;
char Tecla, Temp,Temp1,Temp2, Pulsada;


main()
{
  while (1)
  {

   Lee_Tecla();
   delay_ms(10);
  }
}


void Lee_Tecla(void)
{
 set_tris_b(11110000b);
 clear_bit(OPTION_REG,NOT_RBPU); // habilita pull-ups
 output_port_b(0);
 asm comf PORTB,W;   // Lee y complementa
 asm movwf _Temp1;   // Lee y complementa (Columna)
 asm swapf _Temp1,f; // Cambia alta por baja
 Temp=0;
 
   while (!(Temp1 & 0x01))  // cuenta hasta que llegue a un bit set
   {
    Temp1>>=1;
    Temp++;
   }

 if (Temp<4)  // se ha pulsado
   
   {
     Temp2=Temp;                        // Guardo columna
     set_tris_b(00001111b);             // ahora la fila
     clear_bit(OPTION_REG,NOT_RBPU);    // habilita pull-ups

     output_port_b(0);
     asm comf PORTB,W;            // Lee y complementa
     asm movwf _Temp1;            // Lee y complementa (Fila)

    Temp=0;
   
    while (!(Temp1 & 0x01))      // cuenta hasta que llegue a un bit set

    { Temp1>>=1;
      Temp++;
    }


    if (Temp<4)    // Fila correcta
       
       { Temp1=Temp;
       Tecla=(Temp2<<2)+Temp1;
       }
   
     else Tecla=0xFF;
     }
     
     else Tecla=0xFF;
     }



so nomas...
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines