C and C++

Moderators: None (Apply to moderate this forum)
Number of threads: 28629
Number of posts: 94611

This Forum Only
Post New Thread
Single Post View       Linear View       Threaded View      f

Report
Need help with c program Posted by Ebi_90 on 3 Apr 2012 at 9:03 AM
I want to make a project digital code lock usin AT89c51.while compiling in Keil Compiler it shows error anybody please help me.I m new to programming.Here is the code





#include<reg51.h>
#define port P1
#define dataport P2
#define key P0
#define sec 100
sbit rs = port^0;
sbit rw = port^1;
sbit en = port^2;

sbit col1=key^4;
sbit col2=key^5;
sbit col3=key^6;
sbit row1=key^0;
sbit row2=key^1;
sbit row3=key^2;
sbit row4=key^3;
sbit lock_output=P0^7;

int check=0;
int digit[4]={0,0,0,0};
int dig_one=3;
int dig_two=9;
int dig_three=0;
int dig_four=7;
int i,count=0;

void delay(unsigned int msec) //Time delay function
{
int i,j ;
for(i=0;i<msec;i++)
for(j=0;j<1275;j++);
}

void lcd_cmd(unsigned char item) //Function to send command to LCD
{
dataport = item;
rs= 0;
rw=0;
en=1;
delay(1);
en=0;
return;
}

void lcd_data(unsigned char item) // Function to send data to LCD
{
dataport = item;
rs= 1;
rw=0;
en=1;
delay(1);
en=0;
return;
}

void lcd_data_string(unsigned char *str) // Function to send string to LCD
{
int i=0;
while(str[i]!='\0')
{
lcd_data(str[i]);
i++;
//delay(10);
}
return;
}

void lcd(unsigned char str[10]) // Function to send string to LCD
{
lcd_cmd(0x38);
lcd_cmd(0x0e);
lcd_data_string(str);
}

void ans()
{
if(check>3)
{
lcd_cmd(0x01);
lcd_cmd(0x82);
lcd_data_string(" LOCK OPEN");
lock_output=1;
delay(500);
}
else
{
lcd_cmd(0x01);
lcd_cmd(0x82);
lcd_data_string(" WRONG PASSWORD");
lock_output=0;
count++;
delay(500);
}
}

void code_check() // Function to check password
{
if(i<=3 )
{
switch((i+1))
{
case 1: {
if(dig_one==digit[0])
{
check=check+1;
}
break;
}

case 2: {
if(dig_two==digit[1])
{
check=check+1;
}
break;
}

case 3: {
if(dig_three==digit[2])
{
check=check+1;
}
break;
}

case 4: {
if(dig_four==digit[3])
{
check=check+1;
}
break;
}
}
}
if(i==3)
{
ans();
}
}


void display(int a) //Display function
{
switch(a)
{
case 1:{
lcd_data('1');
delay(30);
digit[i]=1;
code_check();
break;
}
case 2:{
lcd_data('2');
delay(30);
digit[i]=2;
code_check();
break;
}
case 3:{
lcd_data('3');
delay(30);
digit[i]=3;
code_check();
break;
}
case 4:{
lcd_data('4');
delay(30);
digit[i]=4;
code_check();
break;
}
case 5:{
lcd_data('5');
delay(30);
digit[i]=5;
code_check();
break;
}
case 6:{
lcd_data('6');
delay(30);
digit[i]=6;
code_check();
break;
}
case 7:{
lcd_data('7');
delay(30);
digit[i]=7;
code_check();
break;
}
case 8:{
lcd_data('8');
delay(30);
digit[i]=8;
code_check();
break;
}
case 9:{
lcd_data('9');
delay(30);
digit[i]=9;
code_check();
break;
}
case 0:{
lcd_data('0');
delay(30);
digit[i]=0;
code_check();
break;
}
}
}

void check_col1()
{
row1=row2=row3=row4=1;
row1=0;
if(col1==0)
display(1);
row1=1;
row2=0;
if(col1==0)
display(4);
row2=1;
row3=0;
if(col1==0)
display(7);
row3=1;
row4=0;
if(col1==0)
{
row4=1;
}
}

void check_col2()
{
row1=row2=row3=row4=1;
row1=0;
if(col2==0)
display(2);
row1=1;
row2=0;
if(col2==0)
display(5);
row2=1;
row3=0;
if(col2==0)
display(8);
row3=1;
row4=0;
if(col2==0)
display(0);
row4=1;
}

void check_col3()
{
row1=row2=row3=row4=1;
row1=0;
if(col3==0)
display(3);
row1=1;
row2=0;
if(col3==0)
display(6);
row2=1;
row3=0;
if(col3==0)
display(9);
row3=1;
row4=0;
if(col3==0)
{
row4=1;
}
}

void main()
{
col1=col2=col3=1;
while(1)
{
lcd_cmd(0x01); //Clear LCD screen
lock_output=0;
lcd_cmd(0x82); // Set cursor on position first of first line
lcd("ENTER PASSWORD");
check=0;
row1=row2=row3=row4=0;
while(col1==1 && col2==1 && col3==1);
for(i=0;i<4;i++)
{
delay(100);
lcd_cmd(0xc4+i);
row1=row2=row3=row4=0;
while(col1==1 && col2==1 && col3==1);
row1=row2=row3=row4=0;
if(col1==0)
check_col1();
else
if(col2==0)
check_col2();
else
if(col3==0)
check_col3();
if(count==4)
{
lcd_cmd(0x01);
lcd_cmd(0x86);
lcd("SORRY");
lcd_cmd(0xc1);
lcd("NO MORE TRIALS");
while(1);
}
}
}
}



 

Recent Jobs

Official Programmer's Heaven Blogs
Web Hosting | Browser and Social Games | Gadgets

Popular resources on Programmersheaven.com
Assembly | Basic | C | C# | C++ | Delphi | Flash | Java | JavaScript | Pascal | Perl | PHP | Python | Ruby | Visual Basic
© Copyright 2011 Programmersheaven.com - All rights reserved.
Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
Operated by CommunityHeaven, a BootstrapLabs company.