[51单片机] 外部中断0测脉冲数目

[复制链接]
757|1
 楼主| fhyxihuan1314 发表于 2017-5-29 18:53 | 显示全部楼层 |阅读模式
刚写好一个程序,但是P3.2口接脉冲输入时,用串口助手测的数目一直是0000啊。求解答
  1. #include<reg52.h>  
  2. //stdio.h,string.h用于printf函数原型  
  3. #include<stdio.h>   
  4. void delay(unsigned int z);  
  5. void uart_init(void);//串行口初始化
  6. int i;
  7. int main(void)  
  8. {    IP=0X10;
  9.     uart_init();
  10.          IT0=1;//跳变沿出发方式(下降沿)
  11.         EX0=1;//打开INT0的中断允许。
  12.         while(1)
  13.         {                                 
  14.         printf("%d\n",i);  
  15.         delay(1000);  
  16.                                       }
  17. return 0;
  18. }   
  19. void uart_init(void)  
  20. {  
  21.     TMOD=0x20;//即0010 0000,定时器/计数器1,工作方式2  
  22.     TH1=0XF3;//设置波特率为4800  
  23.     TL1=0XF3;  
  24.     TR1=1;//启动定时器/计数器1        
  25.     SCON=0x50; //允许串行控制  
  26.     PCON=0x80;//
  27.     IE=0x90; //CPU允许中断,串行允许中断      
  28.     TI=1;//直接使用printf必须加入此句才能实现发送  
  29. }  
  30. void delay(unsigned int z)  
  31. {  
  32.     unsigned int x,y;  
  33.     for(x=z;x>0;x--)  
  34.         for(y=110;y>0;y--);  
  35. }
  36. void Int0()        interrupt 0                //外部中断0的中断函数
  37. {
  38.         i++;
  39. }
datouyuan 发表于 2017-5-31 10:40 | 显示全部楼层
你这个没有用到特别的外设,可以通过keil仿真来找出问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

7

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部
0