I was writing code in c language for 8051 micro controller. In my application, a switch ( when pressed)connects P3^0 (which is initialized as an input port by writing a 1 to it in the start of the code) to ground. Then my code continuously checks for the switch status and whenever pressed it will make P2^0 high for 1 second time. To P2^0, an LED is connected. in the start of the code i have made P2^0 =0 to avoid the LED blinking before the switch is pressed. I have checked my code and found working fine except for a minor problem. Whenever power is made ON (or controller is reset), the P2^0 becomes high for a moment AND LED also blinks for a moment. This is something i don't want to happen in my application.I am not getting any idea to tackle this problem. kindly help me..
thanking you satish kumar mumbai, india.
HI SATISH KUMAR PILLAI Ur intention is when ever u press the switch then only the led will glow...? can you place Ur code here.
Regards Vikram
thank you vikram for responding. yes my intention is that only.my code is as follows.
#include <reg51.h> sbit in_bit = P3^0; sbit out_bit = P2^0; void delay_1s(); void main (void) { out_bit =0; in_bit = 1; TMOD = 0x01; while (1) { while (in_bit==1); out_bit = 1; delay_1s(); out_bit = 0; while (in_bit==0); } } void delay_1s () { unsigned char count; for (count = 14; count > 0; --count) { TL0 = 0x00; TH0 = 0x00; TR0 = 1; while (TF0 ==0); TR0 = 0; TF0 = 0; } return; }
thanks n regards
satish kumar pillai.
Better to Check the switch condition by using if. Late you try this method
if(our condition) { LED_ON delay function } else { LED_OFF delay function }
ok.