打印
[51单片机]

外部中断0测脉冲数目

[复制链接]
601|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fhyxihuan1314|  楼主 | 2017-5-29 18:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚写好一个程序,但是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++;
}

相关帖子

沙发
datouyuan| | 2017-5-31 10:40 | 只看该作者
你这个没有用到特别的外设,可以通过keil仿真来找出问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

7

帖子

0

粉丝