A counter display using 8051 micro-controller. Counter counts and displays negative going edge on P3.3. Counter is reset by a low level on P3.2
Toolkit:SDCC 8051 Development System
Location:/bipom/devtools/SDCC/examples/counter/
main()
{
unsigned counter;
/* Set all ports as inputs */
P1 = 0xFF;
P3 = 0xFF;
/* Set the serial port to 19200 Baud */
serinit(CBR_19200);
printf( "\r8051 Counter - (C) 1999 BiPOM Electronics" );
/* Initialize the counter */
counter = 0;
for( ;; )
{
/* If RESET is generated, reset the counter */
if( !(P3 & 0x04) )
{
counter = 0;
printf( "\rCounter is reset!" );
}
/* If the input goes low, increment the counter */
if( !(P3 & 0x08) )
{
++counter;
printf( "\rCounter=%u", counter );
/* A small delay to debounce the input */
delay(10);
/* Wait until the input goes high again */
while( !(P3 & 0x08) );
}
}
}