- This topic has 3 replies, 2 voices, and was last updated 11 years, 2 months ago by .
Viewing 4 posts - 1 through 4 (of 4 total)
Viewing 4 posts - 1 through 4 (of 4 total)
- You must be logged in to reply to this topic.
|
Microcontroller › 8051 › Enabling or Disabling a pin in c language for 8051
I am currently making a very simple vending machine project which uses the 8051 microcontoller.
the pins im using is
sbit C=P3^3; ////// “C” is for coffee///////
sbit T=P3^4; ////// “T” is for tea///////
sbit H=P3^5; ////// “H” is for hot///////
sbit D=P3^6; ////// “D” is for cold///////
sbit S=P3^7; ////// “S” is for purchasing/////
i have done the coding for lcd initialization and selection.. the problem now is that i need the program to run in sequence for example
sequence one:
customer should be able to choose only “C” or “T”..
(during this sequence all the other pins should be disabled.. any input will be ignored)
sequence two:
customer should be able to choose only “H” or “D”..
sequence three:
once the above sequence is completed only then customer can press the purchasing push button..
The question is how can i disable the other pins at respective sequences.. my code for the selection part is below.
void main ()
{
TMOD=0x02;
TH0=0xA4;
IE=0x00;
L1= L2= 0;
a = 0;
lcd_ini();
delay(20);
lcd_command(0x01);
lcd_string("Select Drink");
delay(200);
lcd_command(0x01);
lcd_string("1.Coffee 2.Tea");
delay(20);
flagset=0;
TR1 = 0;
while (1)
{
if (C==0)
{
delay(30);
lcd_command(0x01);
lcd_string("Coffee: Hot/Cold");
}
if (T==0)
{
delay(30);
lcd_command(0x01);
lcd_string("Tea: Hot/Cold");
}
if (H==0)
{
delay(30);
lcd_command(0x01);
lcd_string("Hot Selected");
}
if (=0)
{
delay(30);
lcd_command(0x01);
lcd_string("Cold Selected");
}
if (S==0)
{
lcd_command(0x01);
lcd_command(0x80);
lcd_string("Processing");
delay(100);
lcd_command(0x01);
lcd_command(0x80);
lcd_string("Please wait");
L1 = 1;
delay(100);
L1 = 0; ///////L1 and L2 is for lights///////
L2 = 1;
lcd_command(0x01);
lcd_command(0x80);
lcd_string("Remove drink");
delay(100);
L2 = 0;
lcd_command(0x01);
lcd_command(0x85);
lcd_string("Thankyou");
delay (500);
}
}
}
Thank you in advance :-)
Hi,
Is there any statements in the code in which you are reading the input pins?
can i email to u my code??
Please post it here. The idea is, others who have the same doubt may find our discussion helpful.