|
報錯warning C318: can't open file 'AT24C02.h'
這是源程序:
#include<reg51.h>
#include<at24c02.h>
#define uchar unsigned char
#define uint unsigned int
uchar buffer[6]={0};
sbit sda=P3^5;
sbit sc1=P3^4;
sbit beep=P3^7;
bit flag=0, aa, keyflag=1;
uchar DSY_BUFFER[16]=" ";
uchar Userpassword[6]={0};
sbit rs=P0^0;
sbit rd=P0^1;
sbit lcden=P0^2;
sbit led=P3^6;
uchar code table[]="Your Password...";
void delayms(uint z)
{unit x, y;
for(x=z;x>0; x--)
for(y=120;y>0; y--);
}
uchar Keys_Scan()
{
uchar temp,keynum;
P1=0x0F;
delayms(3);
temp=P1^0x0f;
switch(temp)
{case 1:keynum=0;break;
case 2:keynum=1;break;
case 4:keynum=2;break;
case 8:keynum=3;break;
break;}
P1=0xf0;
delayms(3) ;
temp=(P1>>4)^0x0f;
switch(temp)
{case 1:keynum=keynum+0;break;
case 4:keynum=keynum+8;break;
case 8:keynum=keynum+12;break;
break;}
return keynum;}
#include "reg51.h"
unsigned charuint8;
unsigned shortuintl6;
#define AT24C02_WriteDeviceAddress 0xa0
#define AT24C02_ReadDeviceAddress 0xa1
sbit SCL=P3^6;
sbit SDA=P3^7;
#define TRUE 1
#define FALSE 0
#define I2C_DelayTime 60
uint8 co[6];
uint8 cp[6];
void I2C_Delay(uint16 count)
{while(count!=0)count--;
}
void init()
{
SDA=1;
I2C_De1ay I2C_DelayTime);SCL=1;
I2C_De1ay (I2C_DelayTime);
}
void I2C_Start(void)
{
SDA=1;
SCL=l;
I2C_Delay(I2C_DelayTime) ;
SDA=O;
I2C_De1ay(I2C_DelayTime);
SCL=O;
I2C_Delay(I2C_DelayTime) ;
}
void I2C_Stop(void)
{
SDA=0;
SCL=1;
I2C_Delay(I2C_DelayTime) ;
SDA=1;
I2C_Delay (I2C_DelayTime);
SCL=O;
I2C_De1ay (I2C_DelayTime);
}
bit I2C_Check_Ack(void)
{
SDA=1;
SCL=1;
I2C_De1ay(I2C_DelayTime/2) ;
F0=SDA;
I2C_De1ay(I2C_DelayTime/2) ;
SCL=O;
I2C_Delay(I2C_DelayTime) ;
if(F0==1) return0;
return1;}
uint8 I2C_Read8Bit(void)reentrant
{
uint8 I2C_data=0,i;
for(i=0;i<8;i++);
{SDA=1;
SCL=l;
I2C_Delay(10);
F0=SDA;
I2C_Delay(10);
SCL=0;
if(F0==1)
{I2C_data=I2C_dataK<<1;
I2C_data=I2C_data/0x01; }
Else I2C_data=I2C_data<<1; }
return I2C_data;}
void AT24C02_WritelByte(uint8 AT24C02_Address,uint8 AT24C02_1Byte)
{
bit AckTemp=1;
I2C_Start( );
I2C_Write8Bit(AT24C02_WriteDeviceAddress) ;
AckTemp=I2C_Check_Ack( );
I2C_Write8Bit (AT24C02_Address) ;
AckTemp=I2C_Check_Ack();
I2C_Write8Bit (AT24C02_1Byte) ;
AckTemp=I2C_Check_Ack() ;
I2C_Stop0);}
uint8 AT24C02_Read1Byte (uint8 AT24C02_Address)
{bitckTemp=l;
uint8 AT24C02_1Byte;
I2C_Start();
I2C_Write8Bit(AT24C02_WriteDeviceAddress) ;
AckTemp=I2C_Check_Ack();
I2C_Write8Bit(AT24C02_Address) ;
AckTemp=I2C_Check_Ack() ;
I2C_Start();
I2C_Write8Bit(AT24C02_ReadDeviceAddress) ;
AckTemp=I2C_Check_Ack();
AT24C02_1Byte=I2C_Read8Bit() ;
AckTemp=I2C_Check_Ack() ;
I2C_Stop() ;
return AT24C02_1Byte;}
有報錯圖,但是網(wǎng)上的解決方法我都有點看不懂,希望大神們教教小子。謝謝謝謝,講得通俗一點
|
-
5.PNG
(11.19 KB, 下載次數(shù): 84)
下載附件
2020-6-19 12:21 上傳
這是運行報錯圖
|