Development of Wireless Security System Using Handphone as an Input Password
Total Pageviews
Tuesday, 23 April 2013
Monday, 22 April 2013
Saturday, 20 April 2013
Friday, 19 April 2013
TOUCH UP PART FOR PRESENTATION (Hardware)
The project started with a solder jumper wires from the LCD to the circuit. Then, some soldering recipients. Receiver mounted on the circuit. In addition, the LCD mounted on a clear acrylic sheet so everyone can read the output.
Wednesday, 17 April 2013
Keypad Detector Layout
Thursday, 14 March 2013
Programming
#include <pic.h>
#include <htc.h> //required to
interface with delay routines
__CONFIG(0x3F32);
#define BCD PORTA
#define LCD_RS
RD4 // Set Port RD4
sebagai sambungan ke RS (Register Select) di LCD
#define LCD_EN RD5 // Set Port RD5 sebagai sambungan ke EN
(Enable) di LCD
#define LCD_DATA PORTD // Set PortD sebagai data ( tapi dalam
kes ini hanya 4 bit DATA
// digunakan ( Pin
RD0-RD3 disambung kpd pin D4-D7 di LCD)
#define LCD_PULSE() (LCD_EN = 1, LCD_EN = 0)
#define _XTAL_FREQ 20000000 //this
definition is required to calibrate __delay_us() and __delay_ms()
void pic_init(void);
void lcd_init(void);
void lcd_write(unsigned char c);
void lcd_clear(void);
void lcd_goto(unsigned char pos); //,
unsigned char row)
void lcd_string(const char *s);
int read_keypad(void);
void lcd_number(int no, char base, char
digit);
main(void)
{
char
count=0,data,pass[5],password[5]={"84214"}; //(sila tukar password
anda disini)
int i;
int j=0;
pic_init(); //initialize
PIC
lcd_init(); //initialize
LCD
__delay_ms(1000);
//__delay_ms(1000);
for(;;){
lcd_goto(0x0);
lcd_string("
Enter Password");
while(RE0!=1)
RE0=0;
if (BCD == 0b1010)
break;
data=read_data();
if((data>=1)&(data
<=10)){
pass[count]=data%10+0x30;
lcd_goto(0x44+count);
lcd_string("*");
count++;}
if(count==5){
count=0;
for(i=0;i<=4;i++){
if(pass[i]==password[i])
count++;}
lcd_goto(0x40);
if(count==5){
lcd_string(" Welcome");
RE1=1;
__delay_ms(5000);
RE1=0;
}
else
lcd_string(" Wrong password");
count=0;
__delay_ms(500);
lcd_goto(0x40);
lcd_string(" ");}
}
}
void pic_init(void)
{
TRISA=0b00001111;
TRISB=0b00000000;
TRISC=0b00000000;
TRISD=0b00000000;
TRISE=0b00000001;
ADCON1=0b00000110; //configures the functions of the
port pins
PORTA=0b00000000;
PORTB=0b00000000;
PORTC=0b00000000;
PORTD=0b00000000;
PORTE=0b00000000;
}
int read_data(void)
{int i=0;
if (BCD == 0b0001) i=i+1; // 1
if (BCD == 0b0010) i=i+2; // 2
if (BCD == 0b0011) i=i+3; // 3
if (BCD == 0b0100) i=i+4; // 4
if (BCD == 0b0101) i=i+5; // 5
if (BCD == 0b0110) i=i+6; // 6
if (BCD == 0b0111) i=i+7; // 7
if (BCD == 0b1000) i=i+8; // 8
if (BCD == 0b1001) i=i+9; // 9
if (BCD == 0b1010) i=i+11; // *
if (BCD == 0b1010) i=i+10; // 0
if (BCD == 0b1100) i=i+12; // #
if(i>0) __delay_ms(300);
return i;}
char RS, EN, Temp;
/* write a byte to the LCD in 4 bit mode */
void lcd_write(unsigned char c)
{
RS
= LCD_RS << 4; //
LCD_RS = RD4
EN
= LCD_EN << 5; // LCD_EN
= RD5
Temp
= RS | EN;
LCD_DATA
= ( ( c >> 4 ) | Temp );
LCD_PULSE();
LCD_DATA
= (( c & 0x0F ) | Temp );
LCD_PULSE();
__delay_us(40);
}
/* Clear
and home the LCD */
void lcd_clear(void)
{
LCD_RS
= 0;
lcd_write(0x1);
__delay_ms(2);
}
/* write a string of chars to the LCD */
void lcd_string(const char *s)
{
LCD_RS
= 1; // write characters
while(*s)
lcd_write(*s++);
}
/* write one character to the LCD */
void lcd_putch(char c)
{
LCD_RS
= 1; // write characters
lcd_write(
c );
}
/* Go to the specified position */
void lcd_goto(unsigned char pos)
{
LCD_RS
= 0;
lcd_write(0x80+pos);
}
/* go to the specified position
void lcd_goto(unsigned char pos, unsigned
char row)
{
LCD_RS=0;
switch(row){
case 0:{lcd_write(0x80+pos);break;}
case 1:{lcd_write(0xC0+pos);break;}
case 2:{lcd_write(0x94+pos);break;}
case 3:{lcd_write(0xD4+pos);break;}}
LCD_RS=1;
} */
/*
initialise the LCD - put into 4 bit mode */
void
lcd_init()
{
char
init_value;
init_value
= 0x3;
TRISD=0;
LCD_RS
= 0;
LCD_EN
= 0;
__delay_ms(15); // wait 15mSec after power applied,
LCD_DATA = init_value;
LCD_PULSE();
__delay_ms(5);
LCD_PULSE();
__delay_us(200);
LCD_PULSE();
__delay_us(200);
LCD_DATA
= 2; // Four bit mode
LCD_PULSE();
lcd_write(0x28); // Set interface length
lcd_write(0xC); // Display On
lcd_clear(); // Clear screen
lcd_write(0x6);
// Set entry Mode
}
/* write a number */
void lcd_number(int no, char base, char
digit)
{char i,j,di[10];
for(i=0;i<=9;i++) di[i]=0;
i=0;
do{
di[i]=no%base;
no=no/base;
i=i+1;}
while(no!=0);
for(j=digit;j>0;j--){
if(di[j-1]<=9)
lcd_write(di[j-1]+'0');
else
lcd_write(di[j-1]-10+'A');}
}
Subscribe to:
Posts (Atom)