0
回答
51单片机怎么进不了中断啊
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

程序如下:

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit TRIG=P1^0;
sbit FCHO=P1^1;

uint cnt;
const uint V=330;
        
void delay_ms(uchar at)
{
 int i=250;
 for(;i>0;i--)
  for(;at>0;at--);
}

void chaosheng()
{
  uint d1;
  uint at=0;
  cnt=0;
  TRIG=0;
  delay_ms(100);  
  EA=1;
  ET1=ET0=1;
  TMOD=0x11;
  TR0=1;
  TR1=0;
  TH1=255;
  TL1=155;
  TRIG=1;
  at=4;
  while(at--);
  TRIG=0;
  while((!FCHO)&&(--at));  //第一次从主函数的while(1)进来,还可以进入中断函数,之后cnt就一直

//是253,不在进入中断了。跳出chaosheng()函数之后,再进来,cnt就一直是0;也不再进入主函数了,

//这是怎么回事啊
  TL0=0;
  TR1=1;
  TH0=0;
  at=0;
  while(FCHO&&(--at));
  at=4;
  while(at--);
  while(FCHO&&(--at));
  d1=((int)TH0*255+TL0)/1000*V; 
  }
void aha2() interrupt 3
{
   cnt++;
   TH1=255;
   TL1=158;
}

void main()
{
 while(1)
 {
  chaosheng();
  delay_ms(1000);
 }
}

症状出现的地方已经在函数中标注出来了,希望大虾门多多指点

<无标签>
举报
wanxj
发帖于5年前 0回/274阅
顶部