level 6
小良子GOGO
楼主
下面这个程序怎么不行。实验的结果是两个按键K2,K3不管按下那个,都只是显示的最后写的那个数据(P=0X55),为什么,求大师解答
#include<reg52.h>
#include<e2.h>
#define uchar unsigned char
#define uint unsigned int
//sbit k1=P1^0;//编辑键
sbit k2=P1^1;//读取键
sbit k3=P1^2;//读取键
//sbit k4=P1^3;//读取键
void main()
{
uchar y;
uchar j=0;
uchar i=0x55;
uchar o=0x77;
uchar p=0x55;
Sector_erase(0x2000+512*1);//擦出扇区
Byte_program(0x2000+512*1+1, o);//写数据
Sector_erase(0x2000+512*2);//擦出扇区
Byte_program(0x2000+512*2+1, p);//写数据
while(1)
{
if(k2==0)
{
Byte_read(0x2000+512*2+1);//读数据
y=ISP_DATA;
}
if(k3==0)
{
Byte_read(0x2000+512*1+1);//读数据
y=ISP_DATA;
}
P0=y;
}
}
2014年09月09日 12点09分
1
#include<reg52.h>
#include<e2.h>
#define uchar unsigned char
#define uint unsigned int
//sbit k1=P1^0;//编辑键
sbit k2=P1^1;//读取键
sbit k3=P1^2;//读取键
//sbit k4=P1^3;//读取键
void main()
{
uchar y;
uchar j=0;
uchar i=0x55;
uchar o=0x77;
uchar p=0x55;
Sector_erase(0x2000+512*1);//擦出扇区
Byte_program(0x2000+512*1+1, o);//写数据
Sector_erase(0x2000+512*2);//擦出扇区
Byte_program(0x2000+512*2+1, p);//写数据
while(1)
{
if(k2==0)
{
Byte_read(0x2000+512*2+1);//读数据
y=ISP_DATA;
}
if(k3==0)
{
Byte_read(0x2000+512*1+1);//读数据
y=ISP_DATA;
}
P0=y;
}
}