code for dtmf and bluetooth based digital switch board

9
APPENDIX 1 /* * bluetooth/Lcd/rkg.c * Created: 4/6/2015 4:30:08 PM * Author: Shashi Verma */ #include<avr/io.h> #include<util/delay.h> #define lcd PORTB #define rs PB0 #define rw PB1 #define en PB2 void lcd_cmd(unsigned char com); void lcd_data(unsigned char data); void lcd_string(unsigned char *str); //--------------------------------------------------------------- --------- void USARTInit(uint16_t ubrr_value) { UBRRL = ubrr_value; UBRRH = (ubrr_value>>8); UCSRC|=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); UCSRB|=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE); }

Upload: shashi-verma

Post on 14-Aug-2015

63 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: code for DTMF and bluetooth based digital switch board

APPENDIX 1

/*

* bluetooth/Lcd/rkg.c

* Created: 4/6/2015 4:30:08 PM

* Author: Shashi Verma

*/

#include<avr/io.h>

#include<util/delay.h>

#define lcd PORTB

#define rs PB0

#define rw PB1

#define en PB2

void lcd_cmd(unsigned char com);

void lcd_data(unsigned char data);

void lcd_string(unsigned char *str);

//------------------------------------------------------------------------

void USARTInit(uint16_t ubrr_value)

{

UBRRL = ubrr_value;

UBRRH = (ubrr_value>>8);

UCSRC|=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);

UCSRB|=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE);

}

unsigned char USARTReadChar()

{

while(!(UCSRA & (1<<RXC)));

return UDR;

Page 2: code for DTMF and bluetooth based digital switch board

}

void USARTWriteChar(char data)

{

while(!(UCSRA & (1<<UDRE)));

UDR=data;

}

void USART_StringTransmit(unsigned char s[])

{

int i=0;

while(s[i]!='\0')

{

USARTWriteChar(s[i]);

i++;

}

}

void main()

{

int x;

DDRB=0xFF;

DDRC=0xFF;

char Recieved_command;

_delay_ms(50);

USARTInit(51);

lcd_cmd(0x02);//home location

lcd_cmd(0x28);//2x16 lcd 4bit mode

lcd_cmd(0x0C);//dispy on cursor blink

lcd_cmd(0x06);//increament

Page 3: code for DTMF and bluetooth based digital switch board

while(1)

{

Recieved_command=USARTReadChar();

if(Recieved_command=='1')

{

USART_StringTransmit("\n Light On 1 ");

PORTC=0b00000001;

lcd_cmd(0xc0);

lcd_string(" Light On 1 ");

}

else if(Recieved_command=='2')

{

USART_StringTransmit("\n Light On 2 ");

PORTC=0b00000010;

lcd_cmd(0xc0);

lcd_string(" Light On 2 ");

}

else if(Recieved_command=='3')

{

USART_StringTransmit("\n Fan On ");

PORTC=0b00000100;

lcd_cmd(0xc0);

lcd_string(" Fan On ");

}

else if(Recieved_command=='4')

{

USART_StringTransmit("\n Both Light On");

Page 4: code for DTMF and bluetooth based digital switch board

PORTC=0b00000011;

lcd_cmd(0xc0);

lcd_string(" Both Light On ");

}

else if(Recieved_command=='5')

{

USART_StringTransmit("\n Light 1 & Fan On");

PORTC=0b00000101;

lcd_cmd(0xc0);

lcd_string("Light 1 & Fan On ");

}

if(Recieved_command=='6')

{

USART_StringTransmit("\n Light 2 & Fan On ");

PORTC=0b00000110;

lcd_cmd(0xc0);

lcd_string("Light 2 & Fan On ");

}

else if(Recieved_command=='7')

{

USART_StringTransmit("\n All Device On!!");

PORTC=0b00000111;

lcd_cmd(0xc0);

lcd_string(" All Device On !!

}

else if(Recieved_command=='8')

{

Page 5: code for DTMF and bluetooth based digital switch board

USART_StringTransmit("\n Shut Down !! ");

PORTC=0b00000000;

lcd_cmd(0xc0);

lcd_string(" Shut Down !! ")

}

}

}

void lcd_cmd(unsigned char com)

{

//for command rs=0,rw=0,en=1,en=0

char cmd1;

cmd1=(com&(0xF0));//upper 4 bit data

lcd=cmd1;

lcd&=~(1<<rs);//rs=0

lcd&=~(1<<rw);//rw=0

lcd|=(1<<en);//en=1

_delay_ms(5);

lcd&=~(1<<en);

cmd1=((com<<4)&(0xF0));// Lower 4 bit data

lcd=cmd1;

lcd&=~(1<<rs);//rs=0

lcd&=~(1<<rw);//rw=0

lcd|=(1<<en);//en=1

_delay_ms(5);

lcd&=~(1<<en);

}

void lcd_data(unsigned char data)

{

Page 6: code for DTMF and bluetooth based digital switch board

unsigned char data1;

data1=(data&(0xF0));// upper 4 bit

lcd=data1;

lcd|=(1<<rs); //rs=1

lcd&=~(1<<rw);//rw=0

lcd|=(1<<en);//en=1

_delay_ms(1);

lcd&=~(1<<en);//en=0

data1=((data<<4)&(0xF0));//lower 4 bit data

lcd=data1;

lcd|=(1<<rs);//rs=1

lcd&=~(1<<rw);//rw=0

lcd|=(1<<en);//en=1

_delay_ms(1);

lcd&=~(1<<en);

}

//--------------------------------------------------------------

void lcd_string(unsigned char *str)

{

int i=0;

while(str[i]!='\0')

{

lcd_data(str[i]);

i++;

}

}

Page 7: code for DTMF and bluetooth based digital switch board

APPENDIX

/*

* home_automatio_RKGEC.c

* Created: 3/21/2015 7:49:00 AM

* Author: Shashi

*/

#include <avr/io.h>

#include<util/delay.h>

int main(void)

{

// DDRA=0XFF

DDRB=0x00;

DDRC=0xFF;

while(1)

{

if(PINB==0b00000001)

{

PORTC=0b00000001;

}

if(PINB==0b00000010)

{

PORTC=0b00000010;

}

if(PINB==0b00000011)

{

PORTC=0b00000100;

}

if(PINB==0b00000100)

Page 8: code for DTMF and bluetooth based digital switch board

{

PORTC=0b00000011;

}

if(PINB==0b000000101)

{

PORTC=0b00000101;

}

if(PINB==0b00000110)

{

PORTC=0b00000110;

}

if(PINB==0b00000111)

{

PORTC=0b00000111;

}

if(PINB==0b00001000)

{

PORTC=0b00000000;

}

{

PORTA=0b00000100;

_delay_ms(3600000);

PORTA=0b00000000;

_delay_ms(39600000);

}

}

}