,我把它接到外部中断应(程序功能是想实现用传感器测得障碍物的长度),然后我在外部中断里打开定时器开始计时,等到红外线出障碍物后即输出高电平我停止计数,取出TH0,TL0,化成时间(速度已知),最后求出长度。 本人菜鸟一只,希望得到高手指点,感激不尽啊。。。 以下是部分程序
void main()
{ LcdInitiate(); //调用LCD初始化函数
TMOD|=0x01;
EA=1;
ET0=1;
EX0=1; //启动外部中断
IT0=0;
display_s(); //显示长度提示符
display(0000); //显示器工作正常标志
display_unit(); //显示长度单位
while(1)
{
reden1=1; //开启红外
redcheck(s);
display(s);
}
}
void outside() interrupt 0
{
TR0=1;
TH0=0;
TL0=0; //定时器启动计时
flag=0;
num++;
while(flag==0)
{
if(redout1==1)
{
flag=1;
TR0=0;
EX0=0;
} //说明已经经过障碍物,关掉定时器
} //标志位为零,则等待计时
time=((num<<16)|(TH0<<8)|TL0)/1000; // 单位为ms
s=time*v;
}
我把红外模块的输出接到IT0上以此触发外部中断。这个模块式装在智能小车侧边,路边放路标,我用红外传感器测路标的长度。这是本程序的目的。 新手调不出来~ 求助。。。
TH0,TL0从0开始计时 到65.3ms又重新赋值 这样算时间的不对吧? 有可能循环了好几次呀
追答那这样
void outside() interrupt 0 //一旦进入中断函数,说明红外模块检测到有障碍物进入
{
TH0=TL0=0;//初值装入0
TR0=1;//启动定时器0
while(!exter0);//等待障碍物消失
TR0=0;
time=65536*num+TH0*256+TL0;//得出障碍物经过的时间,单位为us
}
void timer0 interrupt 1
{
TH0=TL0=0;
num++;
}
//注意num的范围,应该定义为unsigned long类型了
关于单片机与红外传感器模块连接问题
调节一下控制灵敏度的电阻试试。另外需要注意的是屋子里最好不要开空调,开空调时屋子里的冷热空气扰动比较剧烈,会让红外模块一直处于触发状态。也不要让阳光直射到某个窗户或者某面墙。这些都会对红外模块造成干扰。
单片机开发版可以用来做避障用的主板吗
这个是完全可以的,无非是浪费一些功能模块而已 其一、无论是单片机最小系统板还是开发板,核心都是单片机,并且IO端口都有引出端 其二、单片机开发板只是板子大了一些,因为自带的模块很多,用不到的模块闲置不用即可,并不影响程序开发 其三、单片机的端口很多,89C51有32个IO端口,STM32的更多,而避障小...
tcrt5000红外光电传感器的工作原理是什么,怎样用它来循迹和避障?_百度...
光学接收器 它接收目标的部分红外辐射并传输给红外传感器。相当于雷达天线,常用是物镜。辐射调制器 对来自待测目标的辐射调制成交变的辐射光,提供目标方位信息,并可滤除大面积的干扰信号。又称调制盘和斩波器,它具有多种结构。红外探测器 这是红外系统的核心。它是利用红外辐射与物质相互作用所呈现出来...
怎么把红外传感器信号用单片机实时输入到电脑屏幕
另外后面还要加一个灰度传感器,输出是模拟信号,在0.6v~1.6v,暂时不会自己做模数转换,怎么能把这个信号输进单片机?c52没有模拟量输入接口,要加模拟量转换芯片,最好是串行通信的模块如i2c总线的,模块很多,不过编程比较复杂,初学者最好在找芯片的同时找一段成熟的读写子程序,网上示例很多。
C51单片机应用与C语言程序设计目录
第9章探讨多传感器在智能机器人中的应用,实现更精确的环境感知和决策能力。附录A提供C语言基础概述,帮助读者更好地理解和应用。附录B梳理微控制器的工作原理,为深入理解单片机提供理论支持。附录C介绍无焊锡面包板的使用方法,简化硬件搭建过程。附录D详细展示LCD模块电路设计,便于实际操作。最后,附录E...
红外传感器传回来的电压只有1.6v,接到单片机I\/O口不能使该口逻辑为1...
用光耦就能很好的解决这个问题!如图,吧你的信号接在输入端的1,2接地,输出端改进下就能实现了,软件没法解决这个问题的! (楼上的脑子进水了)
红外传感器得到的信息如何传给电脑
简单的思路是这样的,因为你传感器出来的是模拟信号,而计算机只能处理数字信号,所以先把模拟转换成数字信号,这叫模数转换(A\/D)。然后利用单片机的各种接口,把数据传送到电脑上面去。例如串口,单片机和电脑都带串口(如果电脑不带串口的可以利用USB转串口模块)。然后再是电脑的应用程序对数据进行处理。
关于单片机学习,学了51,又学什么???【请高手和前辈指点】
我是自动化专业本科二年级的学生,我们专业学校没有开设单片机方面的课程。我半年前自学学会了80C51单片机,现在 在自学 VC++可视化编程,又想继续学单片机,但是不知道现在该学哪种单片机,以后又该学哪种?请单片机高手和前辈给予指点,请详细说说:学哪种单片机最有用(既可军用又可民用)?以后我要是学 自动控制方向 或者...
毕业设计的硬件必须自己设计,还是可以用模块组装?
只有外围可以使用模块,重要的必须自己设计,而且使用模块时给的分数不会很高,能自己做就自己做,反正只是几个外围电路,很容易
MC68HC908JB8 MC68HC08jJB8 MC68HC08JT8是什么芯片,用在什么上面的,谢...
MC68HC908JB8是采用HCMOS工艺技术生产的高性能单片机芯片,具有片内256BRAM和8KB的Flash ROM结构,16位双通道TIM模块(每一通道配有输入捕捉、输出比较和PWM工作模式),以及兼容USB1.1协议低速通信功能。 JB8 的性能 68HC908JB8是一种高性能M68HC08结构,它和M6805、M146805及M68HC05族代码兼容...