收藏 分享(赏)

基于单片机的全智能小车(遥控,避障,循迹,液晶).doc

上传人:buyk185 文档编号:6206977 上传时间:2019-04-02 格式:DOC 页数:39 大小:5.61MB
下载 相关 举报
基于单片机的全智能小车(遥控,避障,循迹,液晶).doc_第1页
第1页 / 共39页
基于单片机的全智能小车(遥控,避障,循迹,液晶).doc_第2页
第2页 / 共39页
基于单片机的全智能小车(遥控,避障,循迹,液晶).doc_第3页
第3页 / 共39页
基于单片机的全智能小车(遥控,避障,循迹,液晶).doc_第4页
第4页 / 共39页
基于单片机的全智能小车(遥控,避障,循迹,液晶).doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、嵌入式课程设计设计报告题 目:基于 P89V51RB2 单片机智能寻迹小车学 院: 电气工程与自动化学院专 业: 自动化班 级: 112学 生: 刘长发学 号: 39指导教师: 王祖麟 时 间:2012/08/01目 录第 1 章 绪论 11.1 引言 11.2 课题的来源及现状 11.2.1 课题的来源 11.2.2 智能汽车国外发展情况 11.2.3 智能汽车国内发展情况 11.3 本论文研究的内容 2第 2 章 系统总体设计 32.1 小车的总体构造 32.2 智能小车寻迹基本原理 32.3 智能小车测速基本原理 32.4 智能小车舵机控制原理 32.4.1 舵机构造32.4.2 舵机工

2、作原理32.4.3 舵机控制时序32.5 智能小车壁障基本原理 32.5.1 超声波测距模快介绍32.5.2 超声波引脚功能 .32.5.3 超声波工作原理32.5.4 超声测距时序. .32.6 智能小车遥控基本原理 32.7 智能小车液晶显示原理 3第 3 章 系统硬件设计 53.1 控制器的选择 53.1.1 概述 53.1.2 P89V51RB2 开发工具特性 .53.2 硬件电路设计 63.2.1 系统电源电路 63.2.2 电机驱动模块 73.2.3 光电编码器 93.2.4 红外线检测电路 103.2.5 键盘显示设计 103.2.6 避障模块设计103.2.7 液晶显示设计10

3、第 4 章 系统软件设计 124.1 编译环境 124.2 模块的驱动 124.2.1 红外线传感器模块 124.2.2 电机模块的驱动 134.2.3 转速捕获 154.2.4 键盘显示模块 16i4.2.5 按键模块 174.2.6 遥控模块 174.2.7 壁障模块 174.2.8 液晶模块 17第 5 章 系统调试分析 195.1 系统设计中的注意事项 195.1.1 外部因素 195.1.2 内部因素 195.2 硬软件总体调试 19第 6 章 结束语 21致谢 22参考文献 23附录 240第 1 章 绪论1.1 引言我们所处的这个时代是信息革命的时代,各种新技术、新思想层出不穷,

4、纵观世界范围内智能汽车技术的发展,每一次新的进步无不是受新技术新思想的推动。随着汽车工业的迅速发展,传统的汽车的发展逐渐趋于饱和。伴随着电子技术和嵌入式技术的迅猛发展,这使得汽车日渐走向智能化。智能汽车由原先的驾驶更加简单更加安全更加舒适,逐渐的向智能驾驶系统方向发展。智能驾驶系统相当于智能机器人,能代替人驾驶汽车。它主要是通过安装在前后保险杠及两侧的红外线摄像机,对汽车前后左右一定区 域进行不停地扫描和监视。计算机、电子地图和光化学传感器等对红外线摄像 机传来的信号进行分析计算,并根据道路交通信息管理系统传来的交通信息,代替人的大脑发出指令,指挥执行系统操作汽车。1.2 课题的来源及现状1.

5、2.1 课题的来源汽车的智能化是 21 世纪汽车产业的核心竞争力之一。汽车的智能化是以迅猛发展的汽车电子为背景,涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科交叉的科技。1.2.2 智能汽车国外发展情况从 20 世纪 70 年代开始,美国、英国、德国等发达国家开始进行无人驾驶汽车的研究,目前在可行性和实用化方面都取得了突破性的进展。在无人驾驶技术研究方面位于世界前列的德国汉堡 Ibeo 公司研制的无人驾驶汽车,2007 年 4 月 11 日在英国伦敦科学博物馆与公众见面。这辆无人驾驶智能汽车经德国大众汽车公司生产的帕萨特 2.0 改装而成,外表看来与普通家庭汽车并无差别,但

6、却可以在错综复杂的城市公路系统中无人驾驶。1.2.3 智能汽车国内发展情况目前日本、欧美已有企业取得实用化成果。与国外相比,国内在智能车辆方面的研究起步较晚,规模较小,开展这方面研究工作的单位主要是一些大学1和研究所,如国防科技大学、清华大学、吉林大学、北京理工大学、长安大学、沈阳自动化所等。 我国从 20 世纪 80 年代开始进行无人驾驶汽车的研究,国防科技大学在1992 年成功研制出我国第一辆真正意义上的无人驾驶汽车。先后研制出四代无人驾驶汽车。第四代全自主无人驾驶汽车于 2000 年 6 月在长沙市绕城高速公路上进行了全自主无人驾驶试验,试验最高时速达到 75.6Km/h。 在 2004

7、 年 10 月 12 日的第六届高交会上,红旗无人驾驶汽车就引起了极大的轰动。它在高速公路上最高稳定无人驾驶速度为 130 公里/小时;峰值无人驾驶速度为 170 公里/小时。并同时具备安全超车和系统小型化两个主要指标。为如此,他们把它称为“中国汽车界的神舟五号” 。2005 年,首辆城市无人驾驶汽车在上海交通大学研制成功,该车有望于两年之内率先在上海世纪公园进行示范运营,并在 2010 年世博会上一展身手。到时游 客只需在公园的入口处按下一个按钮,一辆没有司机的四座敞篷汽车就会从远处开过来缓缓停下,然后搭载着乘客前往他们想去的景点。1.3 本论文研究的内容本论文是基于 P89V51RB2 单

8、片机开发,主要是研究 3 轮小车的路径识别及其控制算法以及遥控运动。2第 2 章 系统总体设计2.0 小车的总体构造图 2.0 小车总体构造2.1 智能小车寻迹基本原理探测路面黑线的基本原理:光线照射到路面并反射,由于黑线和白纸对光的反射系数不同,可以根据接收到的反射光强弱来判断是否是黑线。利用这个原理,可以控制小车行走的路迹。这里的循迹是指小车在白色地板上循黑线行走,通常采取的方法是红外探测法。红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光

9、被吸收,小车上的接收管接收不到红外光。处理器就根据是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。红外探测器探测距离有限,一般最大不应超过 3cm。智能小车系统以处理器为核心, 为了使智能小车能够快速行驶,处理器必3须把路径的迅速判断、相应的转向电机控制以及直流驱动电机的控制精密地结合在一起。如果传感器部分的数据没有正确地采集和识别,转向电机控制的失当,都会造成模型车严重抖动甚至偏离赛道;如果直流电机的驱动控制效果不好,也会造成直线路段速度上不去,弯曲路段入弯速度过快等问题。本次红外探测采用的是反射式探测。2.3 智能小车测速原理智能小车测速原理同上,此处采用的是对射式探测,探

10、测方法:在电机的转轴上安装一个光栅,通过单位时间红外对管检测到的光栅的数目来确定小车车轮转过的圈数,进而计算出路程,从而得到单位时间内小车走过的路程,即小车速度。2.4 智能小车舵机控制原理利用舵机灵活控制超声波探头 360旋转,可以实现小车的全方位避障。2.4.1 什么是舵机在机器人机电控制系统中,舵机控制效果是性能的重要影响因素。舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口。舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前在高档遥控玩具,如航模,包括飞机模型,潜艇模型;遥控机器人中已经使用得比较

11、普其实是一种伺服马达。4图 2.1 舵机实物2.4.2 舵机工作原理控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为 20ms,宽度为 1.5ms 的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为 0,电机停止转动。2.4.3 舵机的控制舵机的控制一般需要一个 20ms 左右的时基脉冲,该脉冲的高电平部分一般为 0.5ms2.5ms 范围内的角度控制脉冲部分。以 180 度角度伺服为例,那么对应的控制关系是这样的:0.

12、5ms-0 度;1.0ms-45 度;1.5ms-90 度;2.0ms-135 度;2.5ms-180 度;5图 2.2 舵机控制时序图2.5 智能小车避障基本原理小车避障是利用超声波测距,并根据测出离障碍物不同距离而做出不同反应。2.5.1 超声波测距模块简介检测距离:5CM-5M分辨率:5MM数字电平信号,可直接接单片机,无需任何辅助电路,也无需单片机产生任何信号辅助,距离和模块输出信号脉冲长度成正比。尺寸:43.5*20.5 毫米高度:13.8 毫米2.5.2 超声波测距模块的引脚功能 图 2.3 超声波实物2.5.3 超声波测距原理你只需要提供一个短期的 10uS 脉冲触发信号。该模块

13、内部将发出 8 个 40kHz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号是一个脉冲的宽度成正比的距离对象。可通过发射信号到收到的回响信号时间间隔可以计算得到距式:uS/58=厘米或者 uS/148=英寸。建议测量周期为 60ms 以上,以防止发射信号对回响信号的影响 62.5.4 超声波测距时序图图 2.4 超声波测距时序图2.6 智能小车遥控原理利用无线电波对被控对象进行远距离控制。由于无线电波可以进行远距离传输,故而检测接收端相应管脚,并做出相应的工作。无线芯片有 4 个信号输出,分别对应遥控上的四个按键,实现灵活控制。从而达到遥控目的7图 2.5 遥控芯片实物图遥控

14、与小车连接实物图2.7 智能小车液晶显示原理加入液晶显示一方面是为了弥补数码管显示的局限性,其次是为了显示小车的运动状态,显示小车电机转速,离前方障碍物距离,循迹状态,是否遇到黑线,后退,前进还是转向,作为一个控制平台,实现小车的灵活控制。图 2.6 液晶显示实物图82.7.1 液晶工作原理在数字电路中,所有的数据都是以0和1保存的,对 LCD 控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要8位(一字节)即可。而对于中文,常用却有6000以上,于是我们的DOS 前辈想了一个办法,就是将 ASCII 表的高128个很少用到的数值以两个为一组来表示汉字

15、,即汉字的内码。而剩下的低128位则留给英文字符使用,即英文的内码。那么,得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状,从而通过扫描,显示在液晶屏幕上2.7.1 液晶显示原理液晶显示其实就是对屏幕的每个点的扫描,带字库的液晶内部自带控制芯片,直接对它操作就可以显示出汉子字符,需要读写命令和数据,才能达到对液晶控制器的操作,具体的如何显示,有兴趣者可以自己查阅资料,进一步理解并学会使用。9第 3 章 系统硬件设计3.1 控制器的选择本次设计采用的是 P8

16、9V51RB2 单片机。3.1.1 概述P89V51RB2 是一款由美国 NXP 半导体公司提供的增强型 80C51 微控制器,包括 16KB Flash 程序存储器和 1KB 数据 RAM,且功能上完全覆盖标准80C51 单片机系列3.1.2 P89V51RB2 开发工具特性1.80C51 内核,5V 工作电压,操作频率 040MHZ;2.16KB 片内 Flash 存储器,1KB 片内 SRAM;3.SPI 串行通信接口和增强型 UART;4.PCA(可编程计数器列阵) ,具有 PWM 和捕获、比较功能;5.4 个 8 位 I/O 口,含有三个高电流 P1 口(每个 I/O 口的电流为 1

17、6mA) ;6.8 个中断源,4 个中断优先级,3 个 16 位定时器/计数器和可编程看门狗定时器(WDT) ;7.2 个 DPTR 寄存器;3.2 硬件电路设计本次项目采用的电路板从画电路原理图开始,到 PCB 板的布线以及电路板的焊接与检测一系列工作都是自己在大一下学期课程实践期间制作的。3.2.1 系统电源电路交流电经过全波电路在经过电容滤波,在经过稳压电源芯片做成稳压电路,输出电压 5V、7.2V 的直流电源。其电源电路原理图如图 3.2 所示。125TRANS()D7C.uVinotGUXLE块-10图 3.1 系统电源电路原理图小车的驱动电机的供电电压为 7.2V,经过电容滤波后接

18、 7805 进行稳压,稳压输出 5V 的电压。提供单片机所需图 3.2 电源板实物3.2.2 电机驱动模块1. 驱动实现与原理本项目驱动两路直流电机,实现电机的正反转与测速和遥控。输入输出逻辑表真值表 3.2。表 3.1 L298N 输入输出逻辑真值表通道 1 通道 2输入 输出控制电机 1 输入 输出控制电机 2EnA In1 In2 OUT1 OUT2 转向 EnB In3 In4 OUT3 OUT4 转向0 0 0 0 停止 0 0 0 0 停止0 1 0 1 反传 0 1 0 1 反传1 0 1 0 正转 1 0 1 0 正转11 1 0 0 停止11 1 1 1 停止110 X X

19、0 0 停止 0 X X 0 0 停止其中“0”为低电平;“1” 为高电平;“X” 为任何状态。图 3.3 电机驱动板实物3.2.3 光电编码器/测速1. 光电编码器原理光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。这是目前应用最多的传感器,光电编码器是由光栅盘和光电检测装置组成。光栅盘是在一定直径的圆板上等分地开通若干个长方形孔。由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转,经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号,通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。2. 光电编码器的实现光电编码器的发光装置一

20、般由发光二极管来实现。光敏元件则由光敏三极管接上拉电阻来完成。光电式旋转编码器是转速或转角的检测元件,旋转的编码器与电动机相连,当电机转动时,带动码盘旋转,便发出转速或转角信号。其示意图如 图 3.55 所示。12图 3.5 光电编码器的实现示意图当电机旋转时,码盘随之一起转动。通过光栅的作用,使得光敏三极管随着光栅透出的光而导通。接收的频率和转速成正比。在接收端可以输出一系列的方波,80C51 内核可以通过采集方波的频率从而可以计算出电机的速度。图 3.4 光栅测试实物 3.2.4 红外线检测电路红外线检测电路原理其实很简单,就是利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车

21、行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收,Cortex-M0 内核采集到的电压就是高电平;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光,然后 80C51 内核采集到的电压就是低电平。其基本原理图如图 3.6 所示。1330RVD._OUT1K4块A2CEptoislarP?MHX图 3.6 红外线检测电路原理图鉴于本项目设计需实现的功能比较简单,故只要两路红外线检测电路即可,分别位于小车中心轴的两测即可。图 3.5 红外探测实物 3.2.5 键盘显示设计图 3.7 为项目驱动实践一制作的键盘显示板原理图,主要部件为两个7

22、4LS164 芯片级联,通过这两个移位芯片进行送到数码管上显示。其中 8 个按键分别和 8 个数码显示管进行连接,检测按键时通过 KEY 引脚对其进行扫描;14CLK 为 164 芯片移位的时钟,每来一次时钟,就进行移位处理;数码显示的数据是 DATA 引脚输送的数据。 Q1234567GND89MR0SH-CPTOEVU(LI)abfcgdehomAkX.KY图 3.7 键盘显示板原理图其基本原理为:首先通过 DATA 引脚发送要显示数据的断码,然后再通过 DATA 引脚发送显示数据在哪一位(即位码) 。两个 74HC595 芯片是分开工作的,其中右边 595 芯片是负责传送断码的,左边 5

23、95 芯片是负责传送位码的。这也是为什么要先传送断码,后传送位码的原因所在。检测按键是通过 KEY 引脚来检测,其中 8 个按键分别跟 8 个数码显示管连在一起。在按键的过程中,通过扫描哪一位为低电平就可以确定是哪个按键按下,然后再通过是哪个按键按下做出相应的功能操作。3.2.6 避障模块电路设计小车避障模块由超声波和舵机两部分组成,超声波测量距离障碍物的距离,舵机来控制超声波探头的 360旋转,从而达到全方位的避障控制。15图 3.6 舵机和超声波硬件连接实物图3.2.7 液晶显示块电路设计 液晶显示代替数码管显示是为了更好的显示小车的控制状态,显示一个人机界面,作为一个操作者更方便的操作小

24、车,作为传达更丰富的信息。其硬件与小车实物的结合如下图:图 3.7 液晶屏与小车硬件连接实物图16第 4 章 系统软件设计4.1 编译环境TKStudio 集成开发环境(又称 TKStudio IDE)是广州致远电子有限公司开发的一个微处理器软件开发平台,是一款具有强大内置编辑器的多内核编译调试环境,支持 8051、ARM、AVR 等多种微控制器,可以完成从工程建立和管理,编译,链接,目标代码的生成,到软件仿真,硬件仿真(挂接 TKS 系列仿真器等硬件)等完整的开发流程。TKStudio 集成开发环境包括工程管理器、代码编辑器、编译工具链、源码级调试器和外部工具等。4.2 模块的驱动4.2.1

25、 红外线传感器模块红外线模块只要 M0 处理器向其供 5V 电压就能工作,然后通过引脚采集其电平高低就可以根据不同情况做出相应的处理。其具体程序控制见程序清单 4.1.while (1)if (CG1=0 /未寻到黑线 直走if (CG1=0 /右轮压线右转if (CG1=1delay_1ms(100);/右轮压线右转if (CG1=0/ 左轮压线左转delay_1ms(100);if (CG1=0/若两端压线直走/若两端压线直走if (CG1=0/若两端压线直走程序清单 4.1 读取红外传感器的高低电平4.2.2 电机模块的驱动首先,通过设置 L298N 芯片的输入方向RIGHT_FANZH

26、UAN,RIGHT_ZHENGZHUAN,RIGHT_STOP,LEFT_ZHENGZHUAN,LEFT_FANZHUAN,LEFT_STOP,电机驱动板有四出信号输出端,PWM1,PWM2,DIR1,DIR2,分别控制从而控制两个电机的停止与正反转。详见程序清单 4.2./* 电机驱动函数*/void motor_run() /电机起动PWM1=1;PWM2=1;DIR2=0;DIR1=0;void motor_left() /小车左转PWM2=0;PWM1=1;DIR2=0;DIR1=0;18void motor_right() /小车右转 PWM1=0;PWM2=1;DIR1=0;DIR

27、2=0;void motor_round() /小车自转 PWM1=1;PWM2=1;DIR1=1;DIR2=0; void motor_stop() /电机停止PWM1=0;PWM2=0;DIR1=0;DIR2=0;void motor_trap() /电机后退PWM1=1;PWM2=1;DIR1=1;19DIR2=1;程序清单 4.2 直流电机驱动与路径识别前轮为方向轮,只有在需要转弯的时候才需要后边电机驱动其左右转动,在常态下则由后轮的推力使前轮向前转动。具体实现是通过控制前面产生的两路 PWM 波的占空比和 L298N 芯片的 In1、In2、In3、In4 的方向来实现小车的前进寻迹

28、与后退寻迹,其程序流程图详见图 4.1 所示。开始读取传感器是否两边都遇到黑线停止是否左遇到且右没遇到是否右遇到且左没遇到左转弯右转弯 直行YNYYNN20图 4.1 直流电机控制流程图根据图 4.1 可以看到程序一开始就进行读取红外线传感器,如果左右两边都遇到黑线则停止前进;如果左边遇到黑线而且右边没有遇到黑线,小车则左转;如果右边遇到黑线而且左边没有遇到黑线,小车则右转;如果两边都没有遇到黑线小车则直行。具体程序控制详见程序清单 4.1。4.2.3 转速捕获本项目采用 16 位定时器 1 和 32 位定时器 1 的捕获功能来实现两直流电机的转速捕获。由于主轮与后面光码盘扇叶转速的比例是 1

29、:80,而且有两片扇叶。所以测主轮的转速公式为:转速= (FAHBCLK/(CAP1_2-CAP1_1)/(N2-1)*3/8/ TMR16B1PR,程序控制详见程序清单 4.5.程序清单 4.5 直流电机转速的测量void TimeNew1()/光栅捕获并记录 R1=R2;/捕获左电机光栅并记录if(R_Mcp2=0)R2=1;if(R_Mcp2=1)R2=0;if(R1=1)if(R2=0)rm2+;if(rm2=1)rm2=0;Count2+;if(Count2=10000)Count2=0;if(R_Mcp1=0)r2=1; /捕获右电机光栅并记录if(R_Mcp1=1)r2=0;if

30、(r1=1)if(r2=0)rm1+;if(rm1=1)rm1=0;Count1+;if(Count1=10000)Count1=0;r1=r2; m1=lucheng1/1000, /转换成路程并分解成 BCD 码dm1=(lucheng1-1000*m1)/100, cm1=(lucheng1-1000*m1-100*dm1)/10, 21mm1=lucheng1-1000*m1-100*dm1-10*cm1,m2=lucheng2/1000, dm2=(lucheng2-1000*m2)/100,cm2=(lucheng2-1000*m2-100*dm2)/10,mm2=lucheng2

31、-1000*m2-100*dm2-10*cm2if(Count3=4000) /定时一秒 /lucheng1=Count2*2200/1580;lucheng2=Count1*2200/1580;Count3=0;Count1=0,Count2=0;/路程计算4.2.4 键盘显示模块键盘显示用处理器的 SPI 模块实现,设置键盘显示为从机。具体初始化详见程序清单 4.6 所示。程序清单 4.6 键盘显示void Send_1data(uint Data) /595 串行送数据uchar count,data_c;for(count=0;count8;count+)if(Dataelse dat

32、a_c=0;PIN_DATA=data_c;PIN_CP=1;PIN_CP=0;Data=1;void STR_TURN() /开关锁PIN_STR=1;PIN_STR=0;for(i=0;i8;i+) /将待显示的数据送到 595 串行板上显示22Send_1data(numnumberi);Send_1data(weii);STR_TURN();4.2.5 按键模块按键模块处理流程图如图 4.2 所示。将预备发送显示的整数的每一位依次存放于一个数组单元发送时间是否到达等待发送时间将存储好的数据发送到键盘显示板上显示查询等待按键按下是否有键按下修改相关程序或数据信息执行程序NYYYN图 4.

33、2 按键处理程序流程图把 M0 的 P3.5 引脚设置为 GPIOI 功能,设置为输入,进行扫描键盘。使用变量 i 作为位码设置变量,由 0 至 7 依次循环,例如当按下 5 号键的时候,当i 变成 5 的时候,会在 5 号线上出现低电平,p3.5 上出现低电平,当 M0 上边检测到低电平的时候,将变量 i 的值赋值给按键号标志变量 whichkeydown,当按键松开后,对 whichkeydown 的值进行处理,也就是相当于对按键的事件进行了处理,处理完成后,将 whichkeydown 的值赋值为 8,说明没有按键按下。按键要定时检测按键是否按键,实时处理即可。这里使用的是前面设置的 1

34、6 位定时23器 0 的定时 2.5ms 进行检测。其具体详见程序清单 4.7.程序清单 4.7 按键检测void Key_Proc(void)uint32 key;if(有按键 ) /有按键DelayNS(30); /延时去抖if(按键有效 0) /按键有效读取按键值while() /等待释键;switch(key)case 按键 1:; /按键 1 处理break;case 按键 2:; /按键 2 处理break;case 按键 3:; /按键 3 处理break; 4.2.6 遥控模块所谓遥控即通过电磁波的远距离传送特点进行工作,由处理器通过对接收装置的管脚的电平的读取从而作出相应工作

35、。程序清单 4.8 遥控接收与控制#define AD2 P3_5#define BD0 P3_1#define CD3 P3_724#define DD1 P3_3/*信号检测*/int signalfScan()if (AD2=0if (AD2=1if (AD2=0if (AD2=0if (AD2=0if(flag=1)Flag=1;if(flag=2)Flag=2; if(flag=3)Flag=3;if(flag=4)Flag=4;return flag; /*信号处理*/if(Flag=1) 做相应工作if(Flag=2) 做相应工作if(Flag=3) 做相应工作f(Flag=4)

36、 做相应工作4.2.7 避障模块小车避障通过超声波发出声波,并根据反射回来的时间,距离=T*340m/从而计算出障碍物距离,根据障碍物不同距离,做出相应反应,在这个模块,主要是如何测距。这需要利用定时器中断的实效性,来测距,具体代码如下清单程序清单 4.8 超声波测距/*超声波电平触发测矩*/25unsigned long MeterByTrig()unsigned char tempa;unsigned char IsOverFlow;unsigned long PresentTime, tempb;IsOverFlow = 0;TMOD = (TMOD /定时器初始化TCON = (TCO

37、NTH1 = 0;TL1 = 0;Trig_Pin = 0;for(tempa = 0; tempa 10; tempa+)Trig_Pin = 1;Trig_Pin = 0;while(1)if(Echo_Pin = 1)/Start Timer;TCON =(TCON/start timerbreak;if(TCONbreak;/overflow;while(1)if(Echo_Pin = 0)26/Stop Timer;TCON = (TCONbreak;if(TCONbreak;/overflow;/ unsigned long PresentTime, tempb;PresentTi

38、me = TH1;PresentTime = 0X08;PresentTime += TL1;tempb = PresentTime/137;PresentTime /= 7;/*3PresentTime -= tempb;/time, ustempb = PresentTime/150;PresentTime /= 3;PresentTime += tempb;/Delay1Ms();return PresentTime/2; /返回测量距离4.2.8 液晶模块液晶显示做为一个嵌入工程实践丰富的人机交互界面,可以为我们提供一个很好的指示和控制平台,其驱动待码主要包含读写命令数据,LCG 初始化等,其主要代码实现如下:程序清单 4.9 液晶驱动/写命令void writeCmd(uchar cmd)wait();

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 大学论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报