访问手机版页面
你的位置:老古开发网 > Pic单片机 > PIC16系列单片机 > 正文  
基于PIC16F877的红外测距系统
内容导读:
  

  摘 要:介绍基于PIC单片机的越障机器人红外测距系统,给出了系统的硬件结构,电路设计和软件设计。试验结果表明,设计方案可行,系统工作稳定可靠。
  关键词:红外传感器;PIC16F877;A/D转换

Rangemeasurement Infrared System Based on PIC16F877
SONG Yiqun, DU Huasheng, DONG Erbao
(University of Science and Technology of China, Hefei 230027, China)

  Abstract: This article introduces a kind of rangemeasurement system in mobile robot based on PIC microcontroller and infrared sensor. It presents the hardware configuration, the electric circuit design and the software design. It is proved by experiment that the system works stably and reliably.
  Key words: infrared sensor; PIC16F877; A/D converter

  越障机器人在行进过程中需要不断地获取关于前方障碍的信息,从而对机器人进行有效地控制。由于机器人体积小,对传感器要求精度高,因此采用单片机进行控制。PIC16F877内有8通道、具有10位精度的A/D转换模块,我们利用这种单片机设计了一个红外测距系统。
1红外传感器的原理
  传感器的红外发光管发出红外光,光敏接收管接收前方物体反射光;接收管接收的光强随反射物体的距离变化,据此判断前方是否有障碍物并根据接收信号强弱判断物体的距离。
2PIC16F877简介
  PIC16F877单片机是由美国Microchip公司生产的8位单片微机,具有独特的RISC(精简指令集)结构,数据总线和指令总线分离的哈佛总线结构,使指令只有单字长的特性,且允许指令码的位数可多于8位的数据位数,这与传统的采用CISC结构的8位单片机相比,可以达到2∶1的代码压缩,速度提高4倍。
  P1C16F877芯片上集成有8K的Flash可重复编程存储器,368byte的数据存储器,256byte的EEPROM数据存储器,3个定时/计数器,2个集捕捉、比较、脉宽调制3项功能于一身的CCP模块,同步串行通信端口,10位多通道A/D转换器,以及时钟、上电复位、看门狗等。芯片引脚共40条。
3基于PIC16F877的红外测距系统
3.1硬件电路设计
  首先利用红外发光管TLN205发射红外光,红外光在遇到前面的障碍物反射,由红外接收管TPS708接收,此时TPS708会产生一个与光强相对应的电流。电流经由LM358两级放大后,在输出端可以得到一个0~3V的模拟电压,作为PIC16F877单片机RA0端口的模拟输入量。单片机在完成初始化和端口选择后,即开始进行A/D转换,重复等待与检查转换完成标志值是否已为零,最后将转换结果通过译码器74LS138在LED上显示出来。
  红外光发射及接收电路如图1所示,Vin为控制输入信号(采用高低电平输入),以控制发光管的开关。单片机硬件连接图电路如图2所示。


3.2软件设计
  主程序和A/D转换子程序流程图如图3和图4所示。

3.2.1设定输入/输出引脚
  PIC16F877单片机D口的8个端口作为数据输出使用,同时将A口的RA0引脚设定为模拟电压输入。控制D口输入/输出功能的TRISD寄存器(地址为88h)全设为0;A口输入输出功能的TRISA寄存器(地址为85h)〈0〉位为1。PIC指令如下所示:
 bankel TRISD;选择寄存器所在的数据存储体
 clrf TRISD;设定D口为数据输出口
 bsf TRISA,0;设定RA0位输入口
3.2.2A/D转换
  PIC16F877单片机A/D转换的初始设定存放在A/DCON1寄存器(地址为9fH)与A/DCON0寄存器(地址为1fH)中。A/D转换初始设定与选择模拟输入端的程序如下:
 
  A/D转换启动的控制信号是A/DCON0寄存器的〈2〉位,设为1表示启动转换,设为0表示不要转换。A/D转换的结果放在A/DRESH及A/DRESL寄存器,程序如下:
 
4试验结论
  按上述设计,我们制作了实际的红外测距系统,并进行了测量实验。图5为实验曲线,其中虚线代表拟合后的二次曲线,曲线拟合采用matlab提供的拟合函数polyfit。从图中可以看出,所设计的红外传感器能够实现0~25cm之间的距离测量,且具有较高的精度,完全能够满足控制要求。

参考文献

[1]何信龙,李雪银.PIC16F87X快速上手[M].清华大学出版社,2002.
标签:
来源:宋轶群,杜华生,董二宝 作者: 时间:2007/5/24 0:00:00
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐