刚写好一个程序,但是P3.2口接脉冲输入时,用串口助手测的数目一直是0000啊。求解答#include<reg52.h>
//stdio.h,string.h用于printf函数原型
#include<stdio.h>
void delay(unsigned int z);
void uart_init(void);//串行口初始化
int i;
int main(void)
{ IP=0X10;
uart_init();
IT0=1;//跳变沿出发方式(下降沿)
EX0=1;//打开INT0的中断允许。
while(1)
{
printf("%d\n",i);
delay(1000);
}
return 0;
}
void uart_init(void)
{
TMOD=0x20;//即0010 0000,定时器/计数器1,工作方式2
TH1=0XF3;//设置波特率为4800
TL1=0XF3;
TR1=1;//启动定时器/计数器1
SCON=0x50; //允许串行控制
PCON=0x80;//
IE=0x90; //CPU允许中断,串行允许中断
TI=1;//直接使用printf必须加入此句才能实现发送
}
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void Int0() interrupt 0 //外部中断0的中断函数
{
i++;
}
|