Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

multiple task in main function

Status
Not open for further replies.

Parth86

Member
Hello everyone
I have completed below tasks individually.
task1 LED blinking ,
task 2 motor_on_off_forword_backword
task 3 display message.
Now I want to combine all three task in one program.
task : first blink LED, If LED is blinking than do task for motor start, forward , backword , stop and if motor is working , display message '' motor working " on LCD

multifunction.jpg


so I have write program. its incomplete program. I am confused on how to all in main function
C:
#include <REG51.h>           // Header file of AT89c51
#define display_port P2      //Data pins connected to port 2 on microcontroller
#define LED          P1      // LED is connected to port P1
#define LED_ON       0xff    // LED ON
#define LED_OFF      0x00    // LED OFF

//motor connection
sbit L293D_pin_1 = P3^0;     // pin_1 connected to P3^0
sbit L293D_pin_2 = P3^1;     // pin_2 connected to P3^0
sbit L293D_E     = P3^2;     // pin_E connected to P3^0

// LCD pin connection
sbit rs = P2^0;              //RS pin connected to pin 2 of port 3
sbit rw = P2^1;              // RW pin connected to pin 3 of port 3
sbit e =  P2^2;              //E pin connected to pin 4 of port 3


// delay function for LED
void LED_delay (unsigned int i)
{
    unsigned int j;
    for (i = 0; i < 40000; i++);
    {
     
    }
}
// Delay function for LCD
void LCD_delay(unsigned int time)  // Function for creating delay in milliseconds.
{
    unsigned j,l ;
    for(j=0;j<time;j++)   
    for(l=0;l<1275;l++);
}
// Delay function for Motor
void Motor_delay()
{
unsigned int m,n,k;
for(m=0;m<0x20;m++)
for(n=0;n<255;n++)
for(k=0;k<255;k++);
}


void rotate_f()
{
L293D_pin_1 = 1; //Make positive of motor 1
L293D_pin_2 = 0; //Make negative of motor 0
L293D_E = 1; //Enable L293D
}

void rotate_b()
{
L293D_pin_1 = 0; //Make positive of motor 0
L293D_pin_2 = 1; //Make negative of motor 1
L293D_E = 1; //Enable L293D
}
void breaks()
{
L293D_pin_1 = 0; //Make positive of motor 0
L293D_pin_2 = 0; //Make negative of motor 0
L293D_E = 0; //Disable L293D
}

void lcd_cmd(unsigned char command)  //Function to send command instruction to LCD
{
    display_port = command;
    rs= 0;
    rw=0;
    e=1;
    msdelay(1);
    e=0;
}

void lcd_data(unsigned char disp_data)  //Function to send display data to LCD
{
    display_port = disp_data;
    rs= 1;
    rw=0;
    e=1;
    msdelay(1);
    e=0;
}

 void lcd_init()    //Function to prepare the LCD  and get it ready
{
    lcd_cmd(0x38);  // for using  2 lines and 5X7 matrix of LCD
    msdelay(10);
    lcd_cmd(0x0c);  // turn display ON, cursor blinking
    msdelay(10);
    lcd_cmd(0x01);  //clear screen
    msdelay(10);
    lcd_cmd(0x81);  // bring cursor to position 1 of line 1
    msdelay(10);
}
void main()
{
 // first blink LED
   // If LED is blinking than do task for motor start, forward , backword , stop
   // if motor is working , display message '' motor working " on LCD
   
}
main function for led blinking
Main function for LED
C:
void main()

{

    while (1)

    {
        LED = LED_ON;
        LED_delay(500);
        LED = LED_OFF;
        LED_delay(5000);
        LED = LED_OFF;
    }
}
main function for motor
C:
void main()

{

while (1) { //Infinite loop
rotate_f(); //Run forward
motor_delay(); //Some delay
breaks(); //Stop
motor_delay(); //Some delay
rotate_b(); //Run Backwards
motor_delay(); //Some delay
breaks(); //Stop
motor_delay(); //Some delay
} //Do this infinitely

}

main function for motor
C:
void main()
{
    unsigned char a[15]="motor working";    //string of 14 characters with a null terminator.
    int p=0;
    lcd_init();
    while(a[p] != '\0') // searching the null terminator in the sentence
    {
        lcd_data(a[p]);
        p++;
        LCD_delay(50);
    }
}
how to do all task in one main function?
 
Status
Not open for further replies.

Latest threads

Back
Top