You are on page 1of 7

Taimoor Nasir

Sap 38807
Question No 1:

#include <REG51.H>

#define LCD_dat P2
sbit rs =P0^0;

sbit en =P0^1;

void dely(unsigned int dly);

void lcd_cmd(unsigned char ch);

void lcd_data(unsigned char ch);

void lcd_str(unsigned char *str);

void main(void)

lcd_cmd(0x38);

lcd_cmd(0x0C);

while(1)

lcd_cmd(0x80);

lcd_str("I am Student");

lcd_cmd(0xc0);

lcd_str("BSCS");

lcd_cmd(0x01);

lcd_cmd(0x80);

lcd_str("I love assembly");

lcd_cmd(0xc0);

void lcd_str(unsigned char *str)

unsigned int loop =0;

for(loop =0; str[loop]!= '\0'; loop++)

lcd_data(str[loop]);
}

void lcd_data(unsigned char ch)

LCD_dat = ch;

rs = 1;

en = 1;

dely(10);

en = 0;

void lcd_cmd(unsigned char ch)

LCD_dat = ch;

rs = 0;

en = 1;

dely(100);

en = 0;

void dely(unsigned int dly)

unsigned int loop =0;

unsigned int delay_gen =0;

for(loop =0; loop < dly; loop++)

for(delay_gen =0; delay_gen < 1275; delay_gen++);

}
TASK 2

#include <reg51.h>

#include <stdio.h>

#define LCD_DATA P2

sbit lcd_RS = P1^0;

sbit lcd_RW = P1^1;

sbit lcd_EN = P1^2;

void delay(unsigned int count)

unsigned int i, j;

for (i = 0; i < count; i++)

for (j = 0; j < 1000; j++);


}

void lcd_command(unsigned char command)

lcd_RS = 0;

lcd_RW = 0;

LCD_DATA = command;

lcd_EN = 1;

delay(1);

lcd_EN = 0;

delay(1);

void lcd_data(unsigned char val)

lcd_RS = 1;

lcd_RW = 0;

LCD_DATA = val;

lcd_EN = 1;

delay(1);

lcd_EN = 0;

delay(1);

void lcd_init()

lcd_command(0x38);

lcd_command(0x0C);

lcd_command(0x01);

lcd_command(0x80);

}
void lcd_display_temperature(float temperature)

unsigned int i;

char buffer[16];

lcd_command(0x01);

lcd_command(0x80);

sprintf(buffer, "Temperature: %.2fC", temperature);

for (i = 0; buffer[i] != '\0'; i++)

lcd_data(buffer[i]);

float read_temperature()

return 25.5;

void main()

float temperature;

lcd_init();

while (1)

temperature = read_temperature();

lcd_display_temperature(temperature);

delay(500);
}

You might also like