/************************************************************************/ /* */ /* capacitive sensor test program */ /* */ /* Peter Dannegger */ /* */ /************************************************************************/ #pragma pl(30000) cd noco #include #include #define XTAL 11.0592e6 #define BAUD 1200L #define CRLF "\n" sfr CKCON = 0x8F; sbit KEY0 = P0^0; void wait(void) // wait 512 cycle { unsigned char i; for( i = 0; --i; ); } void main (void) { CKCON = 0x01; // XTAL / 6 mode PCON |= 0x80; // SMOD = 1; SCON = 0x52; // TI = 1, UART mode 1 TMOD = 0x21; // T1: mode 2, 8bit, T0: mode 1, 16bit TH1 = (unsigned char) -(0.5 + XTAL / 6.0 / 16 / BAUD); TR1 = 1; // start T1 for baud rate printf( "Hallo Peter" CRLF ); for(;;){ // main loop KEY0 = 0; // discharge wait(); TR0 = 0; // stop T0 TL0 = 0; // reset T0 TH0 = 0; TR0 = 1; // start T0 KEY0 = 1; // key = tristate, charge while( KEY0 == 0 ); // wait until charged TR0 = 0; // stop T0 printf("Time: %d" CRLF, ((unsigned short)TH0<<8) | TL0 ); if( TL0 > 25 ) P1 = 0x00; else P1 = 0xFF; } }