燕山大学试卷 密 封 线 共 页 第 页 科班 目 红外检测 级 姓 名 学 号 时间 2015.4 (一)设计内容: 越障机器人在行进过程中需要不断地获取关于前方障碍的信息,从而对机器人进行有效地控制。由于机器人体积小,对传感器要求精度高,因此采用单片机进行控制。PIC16F877 内有8 通道、具有10 位精度的A/ D 转换模块,我们利用这种单片机设计了一个红外测距系统。 (二)基本原理: 1红外传感器的原理 传感器的红外发光管发出红外光,光敏接收管接收前方物体反射光;接收管接 收的光强随反射物体的距离变化,据此判断前方是否有障碍物并根据接收信号强弱判断物体的距离 。 (三)系统组成及功能介绍: 1. 硬件电路设计 首先利用红外发光管TLN205 发射红外光,红外光在遇到前面的障碍物反射,由红外接收管TPS708 接收,此时TPS708 会产生一个与光强相对应的电流。电流经由LM358 两级放大后,在输出端可以得到一个0~3V 的模拟电压,作为PIC16F877 单片机RA0 端口的模拟输入量。单片机在完成初始化和端口选择后,即开始进行A/ D 转换,重复等待与检查转换完成标志值是否已为零,最后将转换结果通过译码器74LS138 在LED 上显示出来。
燕山大学试卷 密 封 线 共 页 第 页 红外光发射及接收电路如图1 所示,Vin为控制输入信号(采用高低电平输入) ,以控制发光管的开关。单片机硬件连接图电路如图2 所示。 2.软件电路设计 主程序和A/ D 转换子程序流程图如图3 和图4所示。 图3 主程序流程图 图4 A/ D 转换流程图
燕山大学试卷 密 封 线 共 页 第 页
燕山大学试卷 密 封 线 共 页 第 页 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 位输入口 2.A/ D 转换 PIC16F877 单片机A/ D 转换的初始设定存放在A/ DCON1 寄存器(地址为9fH) 与A/ DCON0 寄存器(地址为1fH) 中。A/ D 转换初始设定与选择模拟输入端 的程序如下: banksel ADCON1 ;初始化A/ DCON1 movlw B’00001110’ ; movwf ADCON1 ;设RA0 为模拟输入 banksel ADCON0 ;初始化A/ DCON0 movlw B’10000001’ ;设定时钟 movwf ADCON0 ;选择转换口 A/D 转换启动的控制信号是A/ DCON0 寄存器的〈2〉位,设为1 表示启动转换,设为0 表示不要转换。A/D 转换的结果放在A/ DRESH 及A/ DRESL 寄存器, 程序如下: AD Transfer banksel ADCON0 bsf ADCON0 ,GO ;开始转换 AD Wait btfsc ADCON0 ,GO ;检查转换是否完成 goto AD wait ;若否,继续等待 movf ADRESH ,W ;若完成读取结果至W Return 四.结论 试验结论 按上述设计,我们制作了实际的红外测距系统,并进行了测量实验。图5 为实验曲线,其中虚线代表拟合后的二次曲线,曲线拟合采用matlab 提供的拟合函数polyfit 。从图中可以看出,所设计的红外传感器能够实现0~25cm 之间的距离测量,且具有较高的精度,完全能够满足控制要求。
燕山大学试卷 密 封 线 共 页 第 页
五 参考文献
[1 ] 何信龙,李雪银. PIC16F87X 快速上手[M] . 清华大学出版
社,2002. (郁红编发)