51单片机控制的超声波测距程序问题,为什么num一直为0
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/10 18:50:13
51单片机控制的超声波测距程序问题,为什么num一直为0
#include
#define uint unsigned int
sbit RST= P1^1;
sbit start=P1^2;
sbit Pled1= P2^0;
sbit Pled2= P2^1;
uint num;\x05\x05\x05\x05 //num一个数值代表0.05ms
void DetectScanf();
void main()
{
num=0;\x05\x05\x05
TMOD=0x11;
EA=1;
RST=0;
while(1)
{
DetectScanf();
}
}
void DetectScanf()
{
while(start) {;}
if(start==0)
{
while(!start){;}
TH0=(65535-46)/255;
TL0=(65535-46)%255;
RST=1;
TR0=1;
ET0=1;
EX0=1;
IT0=1;
while(1){;}
}
}
void time1() interrupt 1 //定时器0的中断服务程序
{
TH0=(65535-46)/255;
TL0=(65535-46)%255;
num++; //定时到,加0.05ms
}
void receive() interrupt 0
{
ET0=0;
TR0=0;
RST=0;
if(num==0) Pled1=0;
if(num!=0) Pled2=0;
}
现象时按了START按键后,一直是Pled1亮,即num=0 即使没有放物体也是如此,为什么呢?
#include
#define uint unsigned int
sbit RST= P1^1;
sbit start=P1^2;
sbit Pled1= P2^0;
sbit Pled2= P2^1;
uint num;\x05\x05\x05\x05 //num一个数值代表0.05ms
void DetectScanf();
void main()
{
num=0;\x05\x05\x05
TMOD=0x11;
EA=1;
RST=0;
while(1)
{
DetectScanf();
}
}
void DetectScanf()
{
while(start) {;}
if(start==0)
{
while(!start){;}
TH0=(65535-46)/255;
TL0=(65535-46)%255;
RST=1;
TR0=1;
ET0=1;
EX0=1;
IT0=1;
while(1){;}
}
}
void time1() interrupt 1 //定时器0的中断服务程序
{
TH0=(65535-46)/255;
TL0=(65535-46)%255;
num++; //定时到,加0.05ms
}
void receive() interrupt 0
{
ET0=0;
TR0=0;
RST=0;
if(num==0) Pled1=0;
if(num!=0) Pled2=0;
}
现象时按了START按键后,一直是Pled1亮,即num=0 即使没有放物体也是如此,为什么呢?
嗯!这个问题是!你的外部中断使用的是外部中断0,而定时器使用的也是0.在51内,外部中断0的优先级是要大于定时器0的.所以在程序的最后是要先执行外部中断0的!
然后你的程序就会先进入外部中断服务,然后你在外部中断中又把定时器中断给关闭了!这样你就不会走到定时器中断的服务项中.
所以你的num一直是0
然后你的程序就会先进入外部中断服务,然后你在外部中断中又把定时器中断给关闭了!这样你就不会走到定时器中断的服务项中.
所以你的num一直是0
51单片机控制的超声波测距程序问题,为什么num一直为0
用51单片机写超声波测距程序,用数码管显示距离,但是为什么数码管显示的数字很乱呢?一点不像测出的距离
超声波 测距准备在小车上安装一个超声波测距离.是基于51单片机.看网上的一些资料,电路图,没有什么问题.但是超声波发射的
51单片机简单程序问题,关于开关控制
怎么用单片机控制两个超声波模块测距 可以测一个但是两个要怎么办 感激
英语翻译超声波测距法迅速,方便,易于做到实时控制,提过基于单片机的超声测距系统的设计能更加深入地了解单片机的实际应用.本
超声波测距电路图和程序
超声波测距模块使用?请大神写一个最简单的使用超声波控制LED亮灭的程序……#include #include sbit
51单片机控制继电器电的电路图和程序
智能小车超声波测距模块的程序是什么?
英语翻译本文介绍一种基于AT89C51 单片机的超声波测距系统,该系统根据超声波在空气中传播的反射原理,以超声波传感器为
求大神看超声波HC-SR04的程序,我想用超声波测一定的距离通过单片机检测来控制一个p0.0口的LED灯的关灭,