Microcontroller › 8051 › Humidity Display on LCD
- This topic has 7 replies, 2 voices, and was last updated 11 years, 10 months ago by
proteek basu.
-
AuthorPosts
-
April 19, 2013 at 4:35 pm #2277
proteek basu
ParticipantI have compiled the code for humidity display posted in engineers garage site using KEIL 4, I got zero errors and zero warnings, but when I run the controller I get garbage characters on the LCD first line the second line displats two single digit numbers with some gap in between, has anybody done this project? please help.
Proteek
April 20, 2013 at 4:51 pm #9546AJISH ALFRED
ParticipantHi Proteek,
Please share the location from where you’ve find the code.
April 23, 2013 at 5:23 pm #9548proteek basu
ParticipantThe code has been taken from Engineers Garage only under 8051 projects titled:
How to interface Humidity Sensor with 8051 Microcontroller (AT89C51)
// Program to Interface Humidity sensor with 8051 Microcontroller
#include<reg51.h>sfr lcd_data_pin=0x80;//p0 portsbit rs=P3^0;sbit rw=P3^1;sbit en=P3^2;sbit wr= P3^3;sbit rd= P3^4;sbit intr= P3^5;sfr input_port=0x90; //p1 portunsigned int number=0;unsigned char humidity,lcd,key=0;void delay(unsigned char count){unsigned char i;unsigned int j;for(i=0;i<count;i++)for(j=0;j<1275;j++);}void lcd_command(unsigned char comm){lcd_data_pin=comm;en=1;rs=0;rw=0;delay(1);en=0;}void lcd_data(unsigned char disp){lcd_data_pin=disp;en=1;rs=1;rw=0;delay(1);en=0;}lcd_dataa(unsigned char *disp){unsigned char x;for(x=0;disp[x]!=0;x++){lcd_data(disp[x]);}}void lcd_ini(){lcd_command(0x38); // for using 8-bit 2 row LCDdelay(50);lcd_command(0x0F); // for display on cursor blinkingdelay(50);lcd_command(0x0C);delay(50);lcd_command(0x80);delay(50);}void lcd_display(unsigned int val){unsigned char flg=0;lcd_command(0xC7);if(val==0)lcd_data(‘0’);while(val>0){lcd=val%10;val=val/10;lcd_command(0xC7-flg);lcd_data(lcd+’0′);flg++;}}void display(){key++;number=number+input_port;if(key==11){number=number/key;number=number*10;number=number/25;humidity=number-3;lcd_display(humidity);key=0;number=0;}}void adc(){rd=1;wr=0;delay(2);wr=1;while(intr==1);rd=0;display();delay(2);intr=1;}void main(){lcd_ini();lcd_dataa(“%Rel.Humidity:”);while(1){adc();}}April 29, 2013 at 1:37 pm #9595proteek basu
ParticipantThe characters displayed on the LCD are as follows:
$Pd1,Hthdht*8 -1st line
4 3 – 2nd line
May 12, 2013 at 4:56 pm #9720proteek basu
ParticipantI have checked the code using Proteus 8 simulator the display goes blank with the backlight only comming on
May 12, 2013 at 7:39 pm #9728AJISH ALFRED
ParticipantHi Proteek,
Have you made exactly the same circuit as you find along with the code? The LCD should be connected in 8 bit mode. Please check your connections, especially the data lines.
May 14, 2013 at 6:14 pm #9751proteek basu
ParticipantAlfred Sir,
I have wired up the whole thing as per the circuit and rechecked everything several times, in fact there is a minor mistake in the circuit pin 34 is printed for a second time instead of 35 of the microcontroller, still then I am getting the same error.
May 14, 2013 at 6:18 pm #9752proteek basu
ParticipantAlfred Sir,
I have rechecked everything several times and things are just according to the circuit, LCD is in 8 bit mode only, still I am getting errors.
-
AuthorPosts
- You must be logged in to reply to this topic.