Multisim and Ultiboard

cancel
Showing results for 
Search instead for 
Did you mean: 

can't open include file "reg51.h": No such file or directory Compiler results: 1 - Errors, 0 - Warnings

#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_input[4]={0,0,0,0};
int dig_input_recheck[4]={0,0,0,0};

int i,k;


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 data to string
{
int i=0;
while(str[i]!='\0')
{
lcd_data(str[i]);
i++;
//delay(10);
}
return;
}

void lcd(unsigned char str[10])
{
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(300);
while(1);
}
else
{
lcd_cmd(0x01);
lcd_cmd(0x82);
lcd_data_string(" WRONG PASSWORD");
lock_output=0;
delay(300);
}
}

void code_check() // Function to check password
{
if(i<=3 )
{
switch((i+1))
{
case 1: {
if(dig_input[0]==digit[0])
{
check=check+1;
}
break;
}
case 2: {
if(dig_input[1]==digit[1])
{
check=check+1;
}
break;
}
case 3: {
if(dig_input[2]==digit[2])
{
check=check+1;
}
break;
}
case 4: {
if(dig_input[3]==digit[3])
{
check=check+1;
}
break;
}
}
}
delay(10);
if(i==3)
{
ans();
}
}

void display(int a) //Display function
{
switch(a)
{
case 1:{
lcd_data('*');
delay(100);
digit[i]=1;
code_check();
break;
}
case 2:{
lcd_data('*');
delay(100);
digit[i]=2;
code_check();
break;
}
case 3:{
lcd_data('*');
delay(100);
digit[i]=3;
code_check();
break;
}
case 4:{
lcd_data('*');
delay(100);
digit[i]=4;
code_check();
break;
}
case 5:{
lcd_data('*');
delay(100);
digit[i]=5;
code_check();
break;
}
case 6:{
lcd_data('*');
delay(100);
digit[i]=6;
code_check();
break;
}
case 7:{
lcd_data('*');
delay(100);
digit[i]=7;
code_check();
break;
}
case 8:{
lcd_data('*');
delay(100);
digit[i]=8;
code_check();
break;
}
case 9:{
lcd_data('*');
delay(100);
digit[i]=9;
code_check();
break;
}
case 0:{
lcd_data('*');
delay(100);
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 check_password_col1()
{
row1=row2=row3=row4=1;
row1=0;
if(col1==0)
dig_input[k]=1;
row1=1;
row2=0;
if(col1==0)
dig_input[k]=4;
row2=1;
row3=0;
if(col1==0)
dig_input[k]=7;
row3=1;
row4=0;
if(col1==0)
{
row4=1;
}
}

void check_password_col2()
{
row1=row2=row3=row4=1;
row1=0;
if(col2==0)
dig_input[k]=2;
row1=1;
row2=0;
if(col2==0)
dig_input[k]=5;
row2=1;
row3=0;
if(col2==0)
dig_input[k]=8;
row3=1;
row4=0;
if(col2==0)
{
dig_input[k]=0;
row4=1;
}
}


void check_password_col3()
{
row1=row2=row3=row4=1;
row1=0;
if(col3==0)
dig_input[k]=3;
row1=1;
row2=0;
if(col3==0)
dig_input[k]=6;
row2=1;
row3=0;
if(col3==0)
dig_input[k]=9;
row3=1;
row4=0;
if(col3==0)
{
row4=1;
}
}

void pass_set()
{
row1=row2=row3=row4=0;
while(col1==1 && col2==1 && col3==1);
for(i=0;i<4;i++)
{
k=i;
delay(50);
lcd_cmd(0xc4+i);
delay(100);
row1=row2=row3=row4=0;
while(col1==1 && col2==1 && col3==1);
row1=row2=row3=row4=0;
if(col1==0)
check_password_col1();
else
if(col2==0)
check_password_col2();
else
if(col3==0)
check_password_col3();
lcd_data('*');
delay(50);
}
}

void main()
{
int e,j=0,count=1;
col1=col2=col3=1;
//FOR PASSWoRD INPUT
do
{
lcd_cmd(0x01); //Clear LCD screen
lcd_cmd(0x81);
lcd("ENTER PASSWORD:");
pass_set();
for(e=0;e<4;e++)
dig_input_recheck[e]=dig_input[e];
lcd_cmd(0x01);
lcd("CONFIRM PASSWORD:");
pass_set();
for(e=0;e<4;e++)
{
if(dig_input_recheck[e]==dig_input[e])
j++;
}
if(j<4)
{
lcd_cmd(0x01);
lcd_cmd(0x85);
lcd("PASSWORD");
lcd_cmd(0xC2);
lcd("NOT MATCH");
delay(300);
}
}
while(j<4);

while(count<4) //Code input and check
{
lcd_cmd(0x01);
lock_output=0;
lcd_cmd(0x82);
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();
}
count++;
delay(1);
}

if(count==4)
{
lcd_cmd(0x01);
lcd_cmd(0x86);
lcd("SORRY");
lcd_cmd(0xc1);
lcd("NO MORE TRIALS");
while(1);
}
}

0 Kudos
Message 1 of 3
(5,422 Views)

Did you ever solve this Error? 

 

I get the same when trying to code an 8051 in multisim.

0 Kudos
Message 2 of 3
(4,590 Views)

 

Hi alexandria and JGascoigne,

 


The code is irrelevant since the error is about an "include file" that the compiler can't find.

 

Search your system for "reg51.h" then make sure that the compiler configuration has the path that points to the directory where this file is located. If this file is missing, you have to find a way to recover it or you can reinstall the compiler.

 


Best regards,
G. Goodwin

 

0 Kudos
Message 3 of 3
(4,573 Views)