You are on page 1of 17

PROGRAM – VOLTAGE MEASUREMENT

#include<16f877.h>
#use delay(clock=20000000)
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7)
#use I2C(master, sda=PIN_C4, scl=PIN_C3)
long int value;
int i=0;
unsigned char arr[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};
Void write_seg (int x1,int x2)
{
unsigned char x=0;
x=(arr[x1]|0x80);
i2c_start ();
i2c_write (0x40);
i2c_write (arr[x1]|0x80);

i2c_stop ();
i2c_start ();
i2c_write (0x42);
i2c_write (arr[x2]);
i2c_stop ();
}
void main()
{
setup_adc_ports (RA0_ANALOG);
setup_adc (ADC_CLOCK_INTERNAL);
while(1)
{
set_adc_channel ( 0 );
value = read_adc();
i=((value*50)/255);
write_seg (i/10,i%10);
//printf(" %d.%d \n\r",i/10,i%10);
}
}
PROGRAM – WATER LEVEL CONTROLLER

#include<16f877a.h>
#include<stdio.h>
#use delay(clock=20000000)
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)
volatile int a=0,b=0;
void main()
{
while(1)
{
a=input(PIN_D0);
b=input(PIN_D1);
printf("\n\r %d %d ",a,b);
b=a&b;
printf("%d",b);
if(b == 0)
{
output_high (PIN_D4); // MOT
output_high (PIN_D6); // LED:RED
output_low (PIN_D7); // LED:GREEN
}
else
{
output_low (PIN_D4); // MOT
output_low (PIN_D6); // LED:GREEN
output_high(PIN_D7); // LED:RED
}
if(a==0)
{
Output_ low (PIN_D6); // LED: GREEN
}
}
}
PROGRAM – DIGITAL CLOCK

#include <16F877A.H>
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#use I2C(master, sda=PIN_C4, scl=PIN_C3)
void set_rtc_time();
void get_rtc_time();
void lcd_init();
void delay(unsigned long del);
void lcd_cmd(unsigned char cmd);
void lcd_dat(unsigned char dat);
unsigned char time[]={0X56,0X38,0X10,0X01,0X01,0X11};
unsigned char readtime[0X06];
unsigned long int hour,second,minute,date,month,year;
unsigned int i;
unsigned char rtc[13];
unsigned char initi[5]={0x38,0x01,0x06,0x0C,0x80};
char x[]="REALTIME:";
void data_display(char x[])
{
output_high(pin_E0);
output_low(pin_E1);
output_low(pin_E2);
for(i=0;x[i]!='\0';i++)
{
output_D(x[i]);
output_high(pin_E2);
delay_us(500);
output_low(pin_E2);
}
}
void data_display1(unsigned char rtc[])
{
output_high(pin_E0);
output_low(pin_E1);
output_low(pin_E2);
for(i=0;x[i]!='\0';i++)
{
output_D(rtc[i]);
output_high(pin_E2);
delay_us(500);
output_low(pin_E2);
}
}
void main()
{
lcd_init();
data_display(x);
set_rtc_time();
while(1)
{
get_rtc_time();
printf("T: %x : %x : %x \t",hour,minute,second);
sprintf(rtc,"%02x:%02x:%02x ",hour,minute,second);
lcd_cmd(0xc0);
data_display1(rtc);
}
}
void set_rtc_time()
{
i2c_start();
i2c_write(0xa0);
i2c_write(0x02);
i2c_write(0x55);
i2c_write(0x15);
i2c_write(0x05);
i2c_stop();
}
void get_rtc_time()
{
i2c_start();
i2c_write(0xa0);
i2c_write(0x02);
i2c_stop();
i2c_start();
i2c_write(0xa1);
second = i2c_read(0);
i2c_stop();
i2c_start();
i2c_write(0xa0);
i2c_write(0x03);
i2c_stop();
i2c_start();
i2c_write(0xa1);
minute = i2c_read(0);
i2c_stop();
i2c_start();
i2c_write(0xa0);
i2c_write(0x04);
i2c_stop();
i2c_start();
i2c_write(0xa1);
hour = i2c_read(0);
i2c_stop();
}
void delay(unsigned long del)
{
while(del=del-1);
}
void lcd_cmd(unsigned char cmd)
{
output_low(pin_E0);
output_low(pin_E1);
delay(500);
output_d(cmd);
delay(500);
output_high(pin_E2);
delay(500);
output_low(pin_E2);
}
void lcd_init()
{
unsigned int k=0;
for(k=0;k<5;k++)
{
lcd_cmd(initi[k]);
}
}
PROGRAM – TEMPERATURE MEASUREMENT

#include<16f877.h>
#use delay(clock=20000000)
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7)
#use I2C(master, sda=PIN_C4, scl=PIN_C3)
float value;
unsigned int i=0;
unsigned char arr[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};
void delay(unsigned long int del)
{
while(del--);
}
void write_seg(int x1,int x2)
{
i2c_start();
i2c_write(0x40);
i2c_write(arr[x1]);
i2c_stop();
i2c_start();
i2c_write(0x42);
i2c_write(arr[x2]);
i2c_stop();
}
void main()
{
setup_adc_ports( ALL_ANALOG );
setup_adc(ADC_CLOCK_INTERNAL );
while(1)
{
set_adc_channel( 2 );
value = read_adc();
value = value;
i=((int)(value));
i=(i*2);
printf(" Temperature in Cel %d \n\r",i);
if(i>=99){i=99;}
write_seg(i/10,i%10);
delay(48000);
}
}
PROGRAM – PC COMMUNICATION

#include<16f877a.h>
#include<stdio.h>
#use delay(clock=20000000)
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)
void main()
{
while(1)
{
printf(" Vi Microsystems Pvt Ltd Chennai-95 \n");
}
}
PROGRAM – REMOTE CONTROL THROUGH FM LINK

#include<16f877.h>
#use delay(clock=20000000)
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7)
#use I2C(master, sda=PIN_C4, scl=PIN_C3)
float value;
unsigned int i=0;
unsigned char arr[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};
void delay(unsigned long int del)
{
while(del--);
}
void write_seg(int x1,int x2)
{
i2c_start();
i2c_write(0x40);
i2c_write(arr[x1]);
i2c_stop();
i2c_start();
i2c_write(0x42);
i2c_write(arr[x2]);
i2c_stop();
}
void main()
{
setup_adc_ports( ALL_ANALOG );
setup_adc(ADC_CLOCK_INTERNAL );
while(1)
{
set_adc_channel( 2 );
value = read_adc();
value = value;
i=((int)(value));
i=(i*2);
printf(" Temperature in Cel %d \n\r",i);
if(i>=99){i=99;}
write_seg(i/10,i%10);
delay(48000);
}
}
PROGRAM – HOT CHAMBER CONTROLLER

#include<16f877.h>
#use delay(clock=20000000)
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7)
float value;
unsigned int i=0;
void main()
{
while(1)
{
setup_adc_ports( ALL_ANALOG );
setup_adc(ADC_CLOCK_INTERNAL );
set_adc_channel( 1 );
value = read_adc();
i=(int)(value*0.3);
printf(" %d \n\r",i);
if(i>40)
{
output_low(PIN_D0);
printf(" Above ");
}
else if(i<35)
{
output_high(PIN_D0);
printf(" Below ");
}
}
}
PROGRAM – OBSTACLE DETECTOR USING ULTRASONIC

#include<16f877a.h>
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
#use delay(clock=20000000)
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7,stream=GPS)
int i=0;int a1;char a[];
void delay(unsigned long del)
{
while(del--);
}
void lcd_cmd(unsigned char cmd)
{
output_low(pin_E0);
output_low(pin_E1);
delay(500);
output_D(cmd);
delay(500);
output_high(pin_E2);
delay(500);
output_low(pin_E2);
}
void lcd_dat(unsigned char dat)
{
output_high(pin_E0);
output_low(pin_E1);
delay(500);
output_D(dat);
delay(500);
output_high(pin_E2);
delay(500);
output_low(pin_E2);
}
void lcd_init(void)
{
lcd_cmd(0X38);
delay(500);
lcd_cmd(0X06);
delay(500);
lcd_cmd(0X0C);
delay(500);
lcd_cmd(0X01);
delay(500);
lcd_cmd(0X80);
delay(500);
}
void lcd_disp(unsigned char w[],unsigned char add)
{
unsigned char i=0;
for(i=0;w[i]!='\0';i++)
{
lcd_cmd(add+i);
lcd_dat(w[i]);
delay(500);
}
}
void lcd_con(unsigned int con)
{
lcd_dat(((con%1000)/100)+0x30);
lcd_dat(((con%100)/10)+0x30);
lcd_dat((con%10)+0x30);
}
void print()
{
unsigned char arr[]={"DISTANCE IN CMS"};
lcd_disp(arr,0x80);
}
void get()
{
do{;}while(getc()!='R');
a1=( (getc()-48)*100)+( (getc()-48)*10)+ (getc()-48);
}
void main()
{
lcd_init();
print();
while(1)
{
while(1)
{
get();
lcd_cmd(0xC0);
lcd_con(a1);
}
}
}
PROGRAM – SPRINKLER CONTROLLER

#include<16f877.h>
#use delay(clock=20000000)
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7)
long int value;
int i=0;
void main()
{
while(1)
{
setup_adc_ports( ALL_ANALOG );
setup_adc(ADC_CLOCK_INTERNAL );
set_adc_channel( 1 );
value = read_adc();
i=(int)(value/2);
printf("MOISTURE SENSOR: %3d \n",i);
if(i>50)
{
output_low(PIN_D0);
}
else
{
output_high(PIN_D0);
}
}
}
PROGRAM – LAMP CONTROLLER

#include<16f877.h>
#use delay(clock=20000000)
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7)
long int value;
int i=0;
void main()
{
while(1)
{
setup_adc_ports( ALL_ANALOG );
setup_adc(ADC_CLOCK_INTERNAL );
set_adc_channel( 1 );
value = read_adc();
i=(int)(value/2);
printf("LDR SENSOR: %3d \n",i);
if(i>80)
{
output_low(PIN_D0);
}
Else
{
output_high(PIN_D0);
}
}
}

You might also like