Microcontroller › 8051 › please check my program and correct the mistake …its urgent
- This topic has 0 replies, 1 voice, and was last updated 11 years, 11 months ago by
akhil.
Viewing 1 post (of 1 total)
-
AuthorPosts
-
May 11, 2013 at 9:56 pm #2397
akhil
Participantheya
i m working on a project to control the plant temperature … in this programing first i have measured the temperature stored in “adc_value” variable and then i showed the measured tep.on the lcd .. nw let the desired plant temp. is 25 .. if the measured temp is 30 then switch on the dc motor .. if it is less than 20 then start the buzzer … i have made lots of mistek please help me out
in c coding can we use cotrol ststements like
if (x>=20)
{ do something }
BTW here is my programing
#include<reg51.h> #include<reg51.h>sbit fan= P1^4;sbit rs= P2^1; //lcd rssbit rw= P2^2 ; //lcd rwsbit en= P2^3 ; //lcd ensbit rd= P2^4; //Read signalsbit wr= P2^5 ; //Write signalsbit intr= P2^6; //INTR signalsbit buzz=P2^7; //buzzer#define data P3 // adc data pins#define databus P1 //lcd data pinsvoid conv(); //Start of conversion functionvoid read(); //Read ADC functionvoid delay(unsigned int count) // stepper motor delay{int i;for(i=0;i<count;i++);}void ms_delay(int n) // do nothing n * 1ms{int i;for ( ; n>0 ; n–)for (i=0; i< 100 ; i++);}void lcd_puts(unsigned char var) //write data on lcd{databus=var;rs=1;rw=1;en=1;ms_delay(5);en=0;ms_delay(10);}void lcd_cmd1(unsigned char var) //lcd command{databus=var;rs=0;rw=0;en=1;ms_delay(5);en=0;ms_delay(10);}void lcd_initialize() //lcd initilization{lcd_cmd1(0x38); // 2 line and 5*7 matrixms_delay(1);lcd_cmd1(0x0f); // cursor on and offms_delay(1);lcd_cmd1(0x01); //clear display screenms_delay(1);lcd_cmd1(0x06); //shift display rightms_delay(1);}void lcd_data(unsigned char *disp) // function to send string to LCD_puts{int x;for(x=0;disp[x]!=0;x++){lcd_puts(disp[x]);}}void main() //main programme{unsigned int adc_value,temp_value;P1=0;lcd_initialize();lcd_cmd1(0x80);lcd_data(” TEMPERATURE “);lcd_cmd1(0xc0);lcd_data(” cONTROLLER “);ms_delay(5);lcd_cmd1(0x01);lcd_cmd1(0x80);lcd_data(“submitted by:-“);ms_delay(5);lcd_cmd1(0x01);lcd_cmd1(0x80);lcd_data(“aanchal,Aarzoo”);lcd_cmd1(0xc0);lcd_data(“akansha,Akhil”);ms_delay(5);lcd_cmd1(0x01);{while(1) //Forever loop{conv(); //Start conversionread(); //Read ADClcd_puts(adc_value);temp_value=adc_value;}if(temp_value >= 28) // motor on{fan=1;ms_delay(70);fan=0;ms_delay(30);}elseif(temp_value <= 20) // buzzer on{buzz=1;ms_delay(2);buzz=0;}}}void conv(){wr = 0; //Make WR lowwr = 1; //Make WR highwhile(intr); //Wait for INTR to go low}void read(){unsigned int adc_value;rd= 0; //Make RD lowadc_value = data; //Read ADC portrd = 1; //Make RD high}void lcd_cmd1(unsigned char var) //lcd command{databus=var;rs=0;rw=0;en=1;ms_delay(5);en=0;ms_delay(10);}void lcd_initialize(){lcd_cmd1(0x38); // 2 line and 5*7 matrixms_delay(1);lcd_cmd1(0x0f); // cursor on and offms_delay(1);lcd_cmd1(0x01); //clear display screenms_delay(1);lcd_cmd1(0x06); //shift display rightms_delay(1);}lcd_data(unsigned char *disp) // function to send string to LCD_puts{int x;for(x=0;disp[x]!=0;x++){lcd_puts(disp[x]);}}void main(){unsigned int adc_value;lcd_initialize();lcd_cmd1(0x80);lcd_data(” TEMPERATURE “);lcd_cmd1(0xc1);lcd_data(” cONTROLLER “);ms_delay(50);lcd_cmd1(0x01);lcd_cmd1(0x80);lcd_data(“submitted by:-“);ms_delay(50);lcd_cmd1(0x01);lcd_cmd1(0x80);lcd_data(“aanchal,Aarzoo”);lcd_cmd1(0xc0);lcd_data(“akansha,Akhil”);ms_delay(50);lcd_cmd1(0x01);{while(1){ //Forever loopconv(); //Start conversionread(); //Read ADClcd_puts(adc_value);}}}void conv(){wr = 0; //Make WR lowwr = 1; //Make WR highwhile(intr); //Wait for INTR to go low}void read(){unsigned int adc_value;rd= 0; //Make RD lowadc_value = data; //Read ADC portrd = 1; //Make RD high} -
AuthorPosts
Viewing 1 post (of 1 total)
- You must be logged in to reply to this topic.