虽然不知道你的u2是什么集成电路,但根据你的电路图也能猜到其功能
看着就是一个利用单片机外部中断来检测按键的电路

在按键被按下的时候,同时触发外部中断,无论是哪个按键被按下,都会触发外部中断
所以根据这个特性,就可以写出相应的程序了
思路是:编写一个外部中断的函数,在函数内检测哪个按键被按下即可
如果没有按键被按下,则不执行
void
main(void)//主函数
{
ea=1;
ex0=1;//开总中断和外部中断
0
while(1)
{
if(int0==0&&p1==0xf1){
p2=0x00;
}//如果中断进来且按键1被按下
}
}
这属于查询方式,int0
是外部中断的关键字
也可以用中断方式写,只有中断进来的时候才检测按键状态
void
int()
interrupt
0
//外部中断
0
{
if(p1==0xf1){
p2=0x00;
}//如果按键1被按下
}
#include<reg52.h>
#include<intrins.h>
sbit CLK=P1^1;
sbit DATA=P1^0;
sbit ConTROL=P1^2;
unsigned char count;
void IniTimer()

{
TMOD=0x01;
TH0=0X3C;
TL0=0xB0;
EA=1;
ET0=1;
TR0=1;
}
void Timer0(void)interrupt 1 using 1
{
TH0=0x3C;
TL0=0xB0;
if(count<20)
{
count++;
}
else
{
count=0;
ConTROL=!CONTROL;
}
}
void WriteData(unsigned int Isdata)
{
unsigned char i;
for(i=0;i<8;i++)
{
CLK=1;
Isdata=Isdata<<1;
DATA=CY;
CLK=0;
}
CLK=1;
}
void InitData()
{
count=0;
WriteData(0x00);
}
int main(void)
{

InitData();
InitTimer();
while(1);
return 0;
}


