This tutorial is for beginners in the field of microcontroller. In this case the microcontroller is AT89C51, a reprogrammable derivative of 8051. This purpose of this tutorial is to familiarize with the use of push button switch with the microcontroller. It will be useful whenever a decision is to be made according to the press of a switch. If you are not yet started with 8051 with Keil C please refer this tutorial Blinking Led using 8051 and Keil C.
Circuit Diagram
Push button switch is connected to the first bit of PORT 0 (P0.0) which is configured as an input pin. Which is connected to a pull up resistor as there is NO INTERNAL PULL UP RESISTORS FOR PORT P0. Thus P0.0 pin is at Vcc potential when the switch is not pressed. When the switch is pressed this pin P0.0 will be grounded. The LED is connected to the first bit of PORT 2 (P2.2) and a resistor is connected in series with it to limit the current.
KEIL C Program
#include<reg52.h> /* special function register declarations */ /* for the intended 8051 derivative */ sbit LED_pin = P2^0; //Defining LED PIN sbit switch_pin = P0^0; //Defining Switch PIN void Delay(int); //Function prototype declaration void main (void) { switch_pin = 1; // Making Switch PIN input LED_pin=1; //LED off initially while(1) //infinite loop { if(switch_pin == 0 ) //If switch pressed { LED_pin = 0; //LED ON Delay(2000); //Delay LED_pin = 1; //LED OFF } } } void Delay(int k) { int j; int i; for(i=0;i<k;i++) { for(j=0;j<100;j++) { } } }
The program is self explanatory. So if you have any doubts please comment below.
Tip : You can do above project without 10KΩ PULL UP resistor by connecting switch to any other port.
Download Here
You can download entire keil c project here.