#include <reg52.h>
#include <stdio.h>
#define uint unsigned int
#define uchar unsigned char
uchar bar[60], space[50];
uchar flag_i_0=0;
uchar P3_4, P1_5;
uchar I=0, J=0;
void start (void)
{
TMOD=0X62; /* T/C1为C、方式2,ENABLE TIME;
T/C0为T、方式2,“1”持*/
IT1=1; /* /INT1脚上下降沿触发*/
TH1=TL1=-140; /*假设记时5S,5/36=139次,取140次*/
ET1=1; /*T/C1溢出中断允许位*/
EA=1;
P3_4=0;
P1_5=0;
TH0=TL0=0;
ET0=1; /*用于当“1”的持续时间过长而产生溢出中断,记数值无效*/
T2C0N=0X00; /*T/C2为定时方式,用于记录“0”的持续时间*/
TH2=TL2=0;
}
void int_0(void) interrupt 0 using 1 /*按键中断*/
{
flag_i_0=1;
}
void int_1(void) interrupt 2 using 3 /*数据脉冲来,中断*/
{
TR2=1;
TR0=0;
space[I++]=TL0; /*第一次执行时,TL0=0*/
while(P3^3==0) ; /*查询高电平的到来*/
{
TR0=1;
TR2=0;
bar[J++]=TL2;
}
}
void main (void){
uchar i=0 , j=0;
start();
while (flag_i_0==0) ; /*等待按键触发*/
{
flag_i_0=0;
TR1=1;
P3_4=1;
}
while (bar[i]==0) ;
{
for(;i<I;i++)
{
printf("%c\n",bar[i]);
for(; j<J; j++)
{
printf ("%c\n",space[j]);
}
}
}
}
编译时,错误提示:
1, T2CON undefined identifier;
2, space [I++]=TL0; 和bar[J++]=TL2; 两行均提示: left side of asn-op not an
lvalue;