Sunteți pe pagina 1din 6

NAME: BRIELY JAY A.

BRIZ BSECE-IV
CODE: (08206)- ECE 542/L

Laboratory Experiment 4

*Temperature Sensor Reading

sbit LCD_RS at RB4_bit;


sbit LCD_EN at RB5_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D7_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB0_bit;
unsigned int temperature = 0;
float mV;
unsigned char txt[15];
void main() {
ADCON1 = 0x0E;
PORTA = 0;
TRISA = 0;
ADC_Init();

Lcd_Init();
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,1, "Digital");
Lcd_Out(2,1, "Thermometer");
Delay_ms(1000);
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,1, "Temperature :");
Lcd_Chr(2,8,223);
Lcd_Chr(2,9,'C');
temperature = 0;
do
{
temperature = ADC_Read(0);
mV = temperature * 5000.0/1024.0;
mV = mV/10.0;
FloatToStr(mV, txt);
Delay_ms(500);
}
while(1);
}
LABORATORY DESIGN 4

*Temperature Monitoring Device

sbit LCD_RS at RC2_bit;

sbit LCD_EN at RC3_bit;

sbit LCD_D4 at RC4_bit;

sbit LCD_D5 at RC5_bit;

sbit LCD_D6 at RC6_bit;

sbit LCD_D7 at RC7_bit;

sbit LCD_RS_Direction at TRISC2_bit;

sbit LCD_EN_Direction at TRISC3_bit;

sbit LCD_D4_Direction at TRISC4_bit;

sbit LCD_D5_Direction at TRISC5_bit;

sbit LCD_D6_Direction at TRISC6_bit;

sbit LCD_D7_Direction at TRISC7_bit;

float mV;

float v1, v2, v3, v4, v5, v6;

unsigned char txt[15];

unsigned char txt1[15];

int x = 0;

unsigned int temperature = 0;

void main()

{
ADCON1 = 0x0E;

PORTA = 0;

TRISA = 0x01;

PORTB = 0;

TRISB = 0;

ADC_Init();

Lcd_init();

Lcd_Cmd(_LCD_CLEAR);

Lcd_Cmd(_LCD_CURSOR_OFF);

Lcd_Out(1, 1,Ltrim("Digital"));

Lcd_Out(2, 1, Ltrim("Thermometer"));

Delay_ms(100);

Lcd_Cmd(_LCD_CLEAR);

Lcd_Out(1,1, Ltrim("Temp:"));

Lcd_Chr(1,12,Ltrim(223));

Lcd_Chr(1,13,Ltrim('C'));

temperature = 0;

do

temperature = ADC_Read(0);

mV = (temperature * (5000.00 / 1024.0))/10;

FloatToStr(mV, Ltrim(txt));
txt[4] = 0;

Lcd_Out(1, 7, Ltrim(txt));

if(x == 1)

PORTB = 0x02;

v1 = mV;

if(x == 2)

PORTB = 0b00000110;

v2 = mV;

if(x == 3)

PORTB = 0b000001110;

v3 = mV;

if(x == 4 )

PORTB = 0b000111110;

v4 = mV; }

if(x == 5)

PORTB = 0b00111110;

v5 = mV;

}
if(x == 6)

Lcd_Cmd(_LCD_CLEAR);

Lcd_Out(1, 1, "Average Temp ");

v6 = (v1 + v2 + v3 + v4 + v5)/5;

FloatToStr(v6,txt1);

txt1[4] = 0;

Lcd_out(2,3,txt1);

Lcd_Chr(2,8,Ltrim(223));

Lcd_Chr(2,9,Ltrim('C'));

delay_ms(500);

x++;

while(1);

S-ar putea să vă placă și