请哪位高手将下列汇编语言转换成C语言(红外线报警器 89C51)谢谢

2025-06-23 03:22:26
推荐回答(1个)
回答1:

#include
#define uchar unsigned char
sbit p30=P3^0;
sbit p31=P3^1;
sbit p12=P1^2;
sbit p10=P1^0;
uchar times;
void delay()
{
uchar i,j;
for(i=0;i<65;i++)
for(j=0;j<120;j++);
}
void pint0() interrupt 0
{
EX0=0;
if(p32==0)
{
delay();
if(p32==0)
{
p30=1;
p31=0;
p12=0;
}
}
EX0=1;
}

main()
{
IE=0x81;
IT0=1;
SP=0x30;
p30=1;
p31=0;
P1=0xff;
P2=0x00;
p12=0;
while(1)
{
if(p10==0)
{
delay();
if(p10==0)
{
p30=~p30;
p31=~p31;
times=20;
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
TR0=1;
while(times--)
{
while(TF0==0);
TF0=0;
TH0=0x3c;
TL0=0xb0;
}
p31=0;
p30=1;
p12=0;
}
}
}
}
//原程序有些问题。