寻迹避障小车原理
pwm调速循迹避障小车的总结与体会

PWM调速循迹避障小车是一种基于单片机控制系统的智能小车,具有很高的实用价值和教学意义。
在实际应用中,PWM调速循迹避障小车可以应用于智能家居、智能物流等领域,为人们的生活和工作带来便利。
在设计和制造PWM调速循迹避障小车的过程中,我们经历了许多挑战和收获了许多成果。
在此,我将共享我对PWM调速循迹避障小车的总结与体会。
一、总结1. PWM调速原理PWM即脉冲宽度调制,是一种用来调节模拟电路的技术。
在PWM 调速循迹避障小车中,我们通过改变电机工作周期内的通电时间来控制电机的转速,从而实现小车的速度调节。
2. 循迹原理循迹是指小车根据预设的路径行驶,通常使用红外线传感器、摄像头等设备来实现。
在PWM调速循迹避障小车中,我们利用红外线传感器来检测小车周围的环境,根据检测结果来调整小车的行驶方向,实现循迹功能。
3. 避障原理避障是指小车在行驶过程中遇到障碍物时,能够及时停车或绕行,避免发生碰撞。
在PWM调速循迹避障小车中,我们通过超声波传感器等设备来检测前方障碍物的距离,根据检测结果来控制小车的行驶,实现避障功能。
4. 控制系统PWM调速循迹避障小车的控制系统由单片机、传感器、驱动电路和执行机构等部分组成。
通过单片机对传感器检测结果的分析和处理,再通过驱动电路和执行机构的协调工作,实现对小车的调速、循迹和避障控制。
二、体会1. 技术挑战在设计和制造PWM调速循迹避障小车的过程中,我们遇到了许多技术挑战,比如传感器的精度和稳定性、控制算法的优化等。
通过不断的尝试和改进,我们最终克服了这些挑战,成功实现了小车的功能。
2. 团队合作制造PWM调速循迹避障小车是一个涉及多个领域知识的复杂任务,需要团队成员之间的合作和协调。
在这个过程中,我们学会了有效的交流和合作,培养了团队精神,提高了解决问题的能力。
3. 实践意义通过制造PWM调速循迹避障小车,我们不仅加深了对相关知识的理解,还锻炼了动手能力和解决实际问题的能力。
避障小车原理

避障小车原理
避障小车是一种能够自主避免障碍物的智能车辆,其原理在于使用多个传感器来感知周围环境,然后根据传感器的反馈进行决策和控制。
首先,避障小车通常会搭载红外线传感器或超声波传感器,这些传感器能够测量到前方障碍物离小车的距离。
通过读取传感器的数据,小车可以得知前方是否存在障碍物以及距离障碍物的距离。
接下来,小车会根据传感器的数据进行决策。
如果传感器检测到前方有障碍物并且距离较近,小车就需要采取避让策略。
常见的避让策略包括停车、后退、向左或向右转向等。
这些决策通常是通过嵌入式系统中的逻辑电路或者控制算法实现的,可以根据不同的情况进行相应的操作。
最后,小车会根据决策的结果进行控制,以实现避障的目标。
例如,如果决策是向左转向,则小车会通过电机控制左轮向前转动,从而实现左转的动作。
通过控制车轮的旋转方向和速度,小车可以在避开障碍物的同时保持前进的方向。
除了红外线传感器和超声波传感器外,还有其他一些传感器也可以用于避障小车,例如激光雷达和摄像头等。
这些传感器能够提供更为精确的环境感知数据,从而使小车能够更准确地判断障碍物的位置和形状,进而做出更合理的避让决策。
总体来说,避障小车的原理是通过感知、决策和控制三个步骤
来实现自主避障。
这种技术可以广泛应用于无人驾驶汽车、机器人以及其他需要自主避障功能的智能设备中。
循迹小车的原理

循迹小车的原理循迹小车是一种基于传感器的智能机器人,它能够自动地在预设的路径上行驶,并根据环境的变化进行自我调整。
循迹小车的原理主要涉及到传感器、控制电路和电机三个方面。
首先,循迹小车依靠传感器来感知环境的变化,其中最常用的传感器是红外线传感器。
红外线传感器主要由发射器和接收器组成,其中发射器发射红外线信号,接收器接收反射回来的红外线信号。
当循迹小车在行驶过程中,传感器能够感知到路径上的黑线或者其他颜色差异,然后将这些信号转化为电信号,传递给控制电路。
其次,控制电路是循迹小车的核心部分,它根据传感器接收到的信号,进行相应的逻辑判断和处理,来控制电机的运动。
控制电路一般由集成电路组成,可以通过编程或者硬连线的方式来实现逻辑控制。
当传感器感知到黑线时,控制电路会判断是否需要转弯,根据不同的判断结果,向电机提供不同的控制信号,控制电机的转向和速度。
这样循迹小车就可以根据黑线的走向,做出适当的转弯和速度调整,从而沿着预设的路径行驶。
第三,电机是循迹小车的动力源,它负责驱动车轮的转动。
一般来说,循迹小车采用两个驱动轮,每个驱动轮都有一个电机来驱动。
电机接收控制电路输出的控制信号,根据信号的不同进行相应的运转,从而驱动车轮转动。
当循迹小车需要转弯时,控制电路会向电机提供不同的信号,使得其中一个电机停止或者反向运转,从而实现转弯动作。
通过控制电路对电机的控制,循迹小车可以根据需要改变行进速度和转弯半径,以实现在预设路径上的准确行驶。
综上所述,循迹小车的原理主要包括传感器的感知、控制电路的处理和电机的运转。
通过传感器感知路径上的黑线或其他有色标记,控制电路进行逻辑判断和处理,再通过控制信号控制电机的运动,循迹小车就可以自动地在预设的路径上行驶。
循迹小车的原理简单实用,可以通过调整控制电路和传感器的设置,实现不同场景下的行驶需求,因此在教育、娱乐和实验等领域都有广泛的应用。
寻迹避障小车原理

循迹避障小车原理一)小车功能实现利用光电传感(红外对射管,红外发射与接收二极管组成)检测黑白线,实现小车能跟着白线(或黑线)行走,同时也可避开障碍物,即小车寻迹过程中,若遇障碍物可自行绕开,绕开后继续寻迹。
二)电路分析1.光电传感循迹光电传感器原理,利用黑白线对红外线不同的反射能力。
然后通过光敏二极管或光敏三极管,接收反射回的不同光强信号,把不同光强转换为电流信号,最后通过电阻,转换为单片机可识别的高低电平。
光电传感器实现循迹的基本电路如下图所示、循迹传感器基本电路电路解释:TC端是传感器工作控制端,为高电平时,发光二极管不工作,传感器休眠,为低电平时,传感器启动。
Signal端为检测信号输出,当遇到黑线,黑线吸收大量的红外线,反射的红外线很弱,光敏三极管不导通,signal 输出高电平,当遇到白线,与黑线相反,反射的红外线很强,使光敏三极管导通,signal输出低电平。
寻迹部分调整左右传感器之间的距离,两探头距离约等于白线宽度最合适,一般白线宽度选择范围为3 – 5 厘米比较合适。
注意:该传感器的灵敏度是可调的,偶尔传感器遇到白线却不能送出相应的信号,通过调节传感器上的可调电阻,适当的增大或减小灵敏度。
另外,循迹传感器的安放也算是比较有讲究的,有两种方法,一种是两个都是放置在白线内侧但紧贴白线边缘,第二种是都放置在白线的外侧,同样紧贴白线边缘。
我们通常采用第二种方法。
编写程序使小车遇白线时,小车跟着白线走。
当小车先前前进时,如果向左偏离了白线。
那么右边传感器会产生一个低电平,单片机判断这个信号,然后向右拐。
回到白线后。
两传感器输出信号为高电平。
小车前进。
如果小车向右偏离白线,左边传感器产生一个低电平,单片机判断这个信号,然后向左拐。
如此如此,小车必不偏离白线。
若小车的两对光电传感器同时输出的信号为高电平(黑底)或低电平(白底),即单片机判断的都为高电平或低电平,小车向前直走,在此过程中(直走)小车若遇白线,小车又重复上面动作跟着白线走。
循迹小车原理

循迹小车原理
循迹小车是一种智能机器人,通过感应地面上的黑线来实现自主导航。
它具有一组红外线传感器,安装在车体底部。
这些传感器能够感知地面上的线路情况,判断车子应该如何行驶。
循迹小车的工作原理是基于光电传感技术。
当小车上的传感器感受到黑线时,光电传感器就会产生信号。
这些信号通过控制系统进行处理,确定小车的行驶方向。
如果传感器感受到较亮的地面,即没有黑线的区域,控制系统会判断小车偏离了轨迹,并做出相应的调整。
为了确保精确的导航,循迹小车的传感器通常安装在车体的前部和底部,使其能够更好地感知地面上的线路。
此外,传感器之间的距离也很重要,它们应该能够覆盖整个车体宽度,以确保车子能够准确地行驶在黑线上。
循迹小车的控制系统通过对传感器信号的分析来判断车子的行驶方向。
当传感器感知到线路时,控制系统会发出信号,控制电机转动,使车子朝着正确的方向行驶。
如果传感器感知不到线路,或者线路出现了间断,控制系统会做出相应的调整,使车子重新找到正确的线路。
循迹小车是一种简单而有效的机器人,它在许多领域都有广泛的应用。
例如,它可以用于仓库自动化,实现货物的自动运输;也可以用于工业生产线,实现物品的自动装配。
总的来说,循迹小车通过光电传感技术,能够自主导航,实现精确的线路行驶。
51单片机小车循迹避障原理

51单片机小车循迹避障原理
51单片机小车循迹避障的原理主要包括以下步骤:
1. 传感器检测:小车通过安装的传感器检测路径和障碍物。
寻迹传感器利用黑色对光线的反射率小这个特点,当检测到黑线时,传感器上的开关指示灯会熄灭,输出的是高电平。
如果没有经过黑线,一直保持低电平。
红外传感器在有障碍物时灯会亮,所以有障碍物代表低电平,没有障碍物高电平。
2. 信息处理:51单片机接收并处理传感器的信号。
根据传感器的信号,单片机判断出小车是否偏离了预定路径,或者前方是否有障碍物。
3. 电机控制:根据信息处理的结果,单片机控制电机转动。
例如,如果检测到小车偏离了预定路径,单片机将发送信号使电机转动,使小车回到正确的路径上。
如果检测到前方有障碍物,单片机将发送信号使电机停止转动,避免小车撞到障碍物。
4. 循环检测:小车在行进过程中不断重复上述步骤,确保能够持续地沿着预定路径行进并避开障碍物。
这就是51单片机小车循迹避障的基本原理。
实际的实现可能会更复杂,可能需要更多的传感器和控制逻辑来确保小车的稳定和安全运行。
寻迹避障小车基本知识

循迹避障小车原理一)小车功能实现利用光电传感(红外对射管,红外发射与接收二极管组成)检测黑白线,实现小车能跟着白线(或黑线)行走,同时也可避开障碍物,即小车寻迹过程中,若遇障碍物可自行绕开,绕开后继续寻迹。
二)电路分析1.光电传感循迹光电传感器原理,利用黑白线对红外线不同的反射能力。
然后通过光敏二极管或光敏三极管,接收反射回的不同光强信号,把不同光强转换为电流信号,最后通过电阻,转换为单片机可识别的高低电平。
光电传感器实现循迹的基本电路如下图所示、循迹传感器基本电路电路解释:TC端是传感器工作控制端,为高电平时,发光二极管不工作,传感器休眠,为低电平时,传感器启动。
Signal端为检测信号输出,当遇到黑线,黑线吸收大量的红外线,反射的红外线很弱,光敏三极管不导通,signal 输出高电平,当遇到白线,与黑线相反,反射的红外线很强,使光敏三极管导通,signal输出低电平。
寻迹部分调整左右传感器之间的距离,两探头距离约等于白线宽度最合适,一般白线宽度选择范围为3 –5 厘米比较合适。
注意:该传感器的灵敏度是可调的,偶尔传感器遇到白线却不能送出相应的信号,通过调节传感器上的可调电阻,适当的增大或减小灵敏度。
另外,循迹传感器的安放也算是比较有讲究的,有两种方法,一种是两个都是放置在白线内侧但紧贴白线边缘,第二种是都放置在白线的外侧,同样紧贴白线边缘。
我们通常采用第二种方法。
编写程序使小车遇白线时,小车跟着白线走。
当小车先前前进时,如果向左偏离了白线。
那么右边传感器会产生一个低电平,单片机判断这个信号,然后向右拐。
回到白线后。
两传感器输出信号为高电平。
小车前进。
如果小车向右偏离白线,左边传感器产生一个低电平,单片机判断这个信号,然后向左拐。
如此如此,小车必不偏离白线。
若小车的两对光电传感器同时输出的信号为高电平(黑底)或低电平(白底),即单片机判断的都为高电平或低电平,小车向前直走,在此过程中(直走)小车若遇白线,小车又重复上面动作跟着白线走。
智能循迹避障小车简版

智能循迹避障小车智能循迹避障小车---1. 引言智能循迹避障小车是一种能够根据环境中的信息自主移动的车辆,通过具备循迹和避障的能力,能够在不需要人工干预的情况下自主导航。
这种小车通常使用各种传感器来感知周围环境,使用算法来处理感知数据,并根据处理结果做出移动决策。
本文将介绍智能循迹避障小车的原理、设计和应用。
2. 原理智能循迹避障小车的原理主要包括感知、决策和执行三个部分。
2.1 感知感知是指小车通过各种传感器感知周围环境的过程。
常用的传感器包括红外线传感器、超声波传感器和摄像头等。
红外线传感器可以用来检测前方是否有障碍物,超声波传感器可以用来测量障碍物的距离,摄像头可以用来获取场景图像。
通过这些传感器,小车可以获得关于障碍物位置、距离和形状等信息。
2.2 决策决策是指小车根据感知到的环境信息做出移动决策的过程。
在决策过程中,通常会使用机器学习算法进行数据分析和模式识别,以便更准确地判断障碍物的位置和形状,并制定相应的移动策略。
例如,如果感知到前方有障碍物,小车可以选择绕过障碍物或者停下来等待。
2.3 执行执行是指小车根据决策结果执行相应的移动动作的过程。
根据决策结果,小车可以通过调整轮速或者改变行驶方向的方式来避开障碍物。
利用电机和轮子的组合,小车可以实现前进、后退、转向等多种运动。
3. 设计智能循迹避障小车的设计包括硬件设计和软件设计两个方面。
3.1 硬件设计硬件设计主要包括选取合适的传感器和执行器,并搭建相应的电子电路。
可以选择使用Arduino等单片机作为控制中心,连接红外线传感器、超声波传感器、摄像头以及电机和轮子等组件。
通过编程控制各个组件之间的通信和协作,实现小车的感知、决策和执行功能。
3.2 软件设计软件设计主要包括对传感器数据的处理和决策算法的实现。
可以使用C/C++等编程语言编写程序,通过读取传感器数据、分析数据并做出相应的决策。
常用的算法包括机器学习、图像处理和路径规划等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
循迹避障小车原理一)小车功能实现利用光电传感(红外对射管,红外发射与接收二极管组成)检测黑白线,实现小车能跟着白线(或黑线)行走,同时也可避开障碍物,即小车寻迹过程中,若遇障碍物可自行绕开,绕开后继续寻迹。
二)电路分析1.光电传感循迹光电传感器原理,利用黑白线对红外线不同的反射能力。
然后通过光敏二极管或光敏三极管,接收反射回的不同光强信号,把不同光强转换为电流信号,最后通过电阻,转换为单片机可识别的高低电平。
光电传感器实现循迹的基本电路如下图所示、循迹传感器基本电路电路解释:TC端是传感器工作控制端,为高电平时,发光二极管不工作,传感器休眠,为低电平时,传感器启动。
Signal端为检测信号输出,当遇到黑线,黑线吸收大量的红外线,反射的红外线很弱,光敏三极管不导通,signal输出高电平,当遇到白线,与黑线相反,反射的红外线很强,使光敏三极管导通,signal输出低电平。
寻迹部分调整左右传感器之间的距离,两探头距离约等于白线宽度最合适,一般白线宽度选择范围为3 – 5 厘米比较合适。
注意:该传感器的灵敏度是可调的,偶尔传感器遇到白线却不能送出相应的信号,通过调节传感器上的可调电阻,适当的增大或减小灵敏度。
另外,循迹传感器的安放也算是比较有讲究的,有两种方法,一种是两个都是放置在白线内侧但紧贴白线边缘,第二种是都放置在白线的外侧,同样紧贴白线边缘。
我们通常采用第二种方法。
编写程序使小车遇白线时,小车跟着白线走。
当小车先前前进时,如果向左偏离了白线。
那么右边传感器会产生一个低电平,单片机判断这个信号,然后向右拐。
回到白线后。
两传感器输出信号为高电平。
小车前进。
如果小车向右偏离白线,左边传感器产生一个低电平,单片机判断这个信号,然后向左拐。
如此如此,小车必不偏离白线。
若小车的两对光电传感器同时输出的信号为高电平(黑底)或低电平(白底),即单片机判断的都为高电平或低电平,小车向前直走,在此过程中(直走)小车若遇白线,小车又重复上面动作跟着白线走。
避障部分当小车在寻迹(沿着白线走或直走)过程中遇障碍物,小车亦可自行转弯,转弯动作完成后,又继续寻迹。
2.电机驱动电路电机驱动芯片采用L298N,是一款承受高压大电流的全桥型直流/步进电压驱动器,如下图电机控制芯片L298N的引脚排列引脚编号名称功能1电流传感器A在该引脚和地之间接小阻值电阻可用来检测电流2输出引脚1内置驱动器A的输出端1,接至电机A3输出引脚2内置驱动器A的输出端2,接至电机A4电机电源端电机供电输入端,电压可达46V5输入引脚1内置驱动器A的逻辑控制输入端16使能端A内置驱动器A的使能端7输入引脚2内置驱动器A的逻辑控制输入端28逻辑地逻辑地9逻辑电源端逻辑控制电路的电源输入端为5V10输入引脚3内置驱动器B的逻辑控制输入端111使能端B内置驱动器B的使能端12输入引脚4内置驱动器B的逻辑控制输入端213输出引脚3内置驱动器B的输出端1,接至电机B14输出引脚4内置驱动器B的输出端2,接至电机B15电流传感器B在该引脚和地之间接小阻值电阻可用来检测电流L298N内部原理图电机驱动A/B的控制逻辑如下表所示输入信号电机运动方式使能端A/B输入引脚1/3输入引脚2/4110前进101后退111紧急停车100紧急停车0X X自由转动电机驱动A/B的工作原理电机控制逻辑如下:以电机A为例,当使能端A为高电平是,如果输入端M1 Direction引脚为高电平,三极管导通,输入引脚1为低电平而输入引脚2为高电平,电机A反转;如果输入端M1 Direction引脚为底电平,三极管截止,输入引脚1为高电平而输入引脚2为低电平,电机A正转。
电机驱动原理图3.中文液晶显示器128x64带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块。
其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集。
利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字,也可完成图形显示。
具有低电压低功耗特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
基本特性: 低电源电压(VDD:+3.0--+5.5V)显示分辨率:128×64点内置汉字字库,提供8192个16×16点阵汉字(简繁体可选)内置 128个16×8点阵字符2MHZ时钟频率显示方式:STN、半透、正显驱动方式:1/32DUTY,1/5BIAS视角方向:6点背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10通讯方式:串行、并口可选内置DC-DC转换电路,无需外加负压无需片选信号,简化软件设计工作温度: 0℃ - +55℃ ,存储温度: -20℃ - +60℃ 模块接口说明:PIN15LED+背光正极,接4.8V-5VPIN116LED-背光负极,接0V*注:1:如在实际应用中仅使用并口通讯模式,可将PSB接固定高电平,也可以将模块上的J8和“VCC”用焊锡短接;2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空;3:如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。
引脚控制信号应用D/I,R/W的配合选择决定控制界面的4种模式:D/I R/W功能说明L L MPU写指令到指令暂存器(IR)L H读出忙标志(BF)及地址记数器(AC)的状态H L MPU写入数据到数据暂存器(DR)H H MPU从数据暂存器(DR)中读出数据E信号操作:E状态执行动作结果内部寄存器信号● 忙标志:BFBF标志提供内部工作情况,BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据。
BF=0时,模块为准备状态,随时可接受外部指令和数据。
利用STATUS RD 指令,可以将BF读到DB7总线,从而检验模块之工作状态。
●字型产生ROM(CGROM)字型产生ROM(CGROM)提供8192个此触发器是用于模块屏幕显示开和关的控制。
DFF=1为开显示(DISPLAY ON),DDRAM的内容就显示在屏幕上,DFF=0为关显示(DISPLAY OFF)。
DFF 的状态是指令DISPLAY ON/OFF和D/IT信号控制的。
●显示数据RAM(DDRAM)模块内部显示数据RAM提供64×2个位元组的空间,最多可控制4行16字(64个字)的中文字型显示,当写入显示数据RAM时,可分别显示CGROM与CGRAM的字型;此模块可显示三种字型,分别是半角英数字型(16*8)、CGRAM字型及CGROM的中文字型,三种字型的选择,由在DDRAM中写入的编码选择,在此阶段0000H—0006H的编码中(其代码分别是0000、0002、0004、0006共4个)将选择CGRAM的自定义字型,02H—7FH的编码中将选择半角英数字的字型,至于A1以上的编码将自动的结合下一个位元组,组成两个位元组的编码形成中文字型的编码BIG5(A140—D75F),GB(A1A0-F7FFH)。
●字型产生RAM(CGRAM)字型产生RAM提供图象定义(造字)功能,可以提供四组16×16点的自定义图象空间,使用者可以将内部字型没有提供的图象字型自行定义到CGRAM中,便可和CGROM中的定义一样地通过DDRAM显示在屏幕中。
● 地址计数器AC地址计数器AC地址计数器是用来贮存DDRAM/CGRAM之一的地址,它可由设定指令暂存器来改变,之后只要读取或是写入DDRAM/CGRAM的值时,地址计数器的值就会自动加一,当D/I为“0”时而R/W为“1”时,地址计数器的值会被读取到DB6——DB0中。
●光标/闪烁控制电路此模块提供硬体光标及闪烁控制电路,由地址计数器的值来指定DDRAM中的光标或闪烁位置。
指令操作模块控制芯片提供两套控制命令,基本指令和扩充指令如下:指令表1:(RE=0:基本指令)指令表2:(RE=1:扩充指令)注:当IC1在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读取BF标志时,BF需为零,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即是等待前一个指令确实执行完成。
三、显示应用1、字符显示带中文字库的128X64-0402B每屏可显示4行8列共32个16×16点阵的汉字,每个显示RAM可显示1个中文字符或2个16×8点阵全高ASCII码字符,即每屏最多可实现32个中文字符或64个ASCII码字符的显示。
带中文字库的128X64-0402B内部提供128×2字节的字符显示RAM缓冲区(DDRAM)。
字符显示是通过将字符显示编码写入该字符显示RAM实现的。
根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM(自定义字形)的内容。
三种不同字符/字型的选择编码范围为:0000~0006H(其代码分别是0000、0002、0004、0006共4个)显示自定义字型,02H~7FH显示半宽ASCII码字符,A1A0H~F7FFH显示8192种GB2312中文字库字形。
字符显示RAM在液晶模块中的地址80H~9FH。
字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如下表所示。
80H81H82H83H84H85H86H87H90H91H92H93H94H95H96H97H88H89H8AH8BH8CH8DH8EH8FH98H99H9AH9BH9CH9DH9EH9FH其中,C语言编译器具有直接把中文转换成ASCII码字符功能。
对照下面原理图,编译程序示例,并下载到实验板上,观测现象。
4.寻迹避障程序#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit RM1=P0^0;sbit RM2=P0^1;//右电机sbit LM1=P0^2;sbit LM2=P0^3;//左电机sbit bzh=P2^6;sbit RAD=P0^6;//红外接收右电机转sbit LBD=P0^7;//红外接收左电机转sbit rs=P3^5;// LCD的RSsbit rw=P3^6;// LCD的R/Wsbit en=P3^7;// LCD的Evoid lcd_string(uchar *strpoint);void delay(uint a){ uint b,c;for(b=a;b>0;b--)for(c=120;c>0;c--);}uchar i=0;void checkbusy()//检查LCD忙{ uchar dat;rs=0; //rs=1为数据,=0为命令.rw=1; //rw=1为读,=0为写.do{P1=0x00;en=1; //E信号下降沿锁存DB7~DBOdat=P1; //读入P1的值en=0; //锁存dat=0x80 & dat; //BUSY:1内部在工作,0正常状态 }while(!(dat==0x00));rw=0;}void sentcom(uchar com){ checkbusy(); //检查Busyrs=0;en=0;P1=com;delay(5);en=1;delay(5);en=0;}void sentdata(uchar date) //写数据{checkbusy();rs=1;en=0;P1=date;delay(5);en=1;delay(5);en=0;}//初始化 LCMvoid lcd_init(){sentcom(0x38);//功能设置,一次送8位数据,基本指令集 sentcom(0x0C);//0000,1100 整体显示,游标off,游标位置offsentcom(0x01);//0000,0001 清DDRAMsentcom(0x02);//0000,0010 DDRAM地址归位sentcom(0x80);//1000,0000 设定DDRAM 7位地址000,0000到地址计数器AC}void lcd_string(char *strpoint)//在当前显示位置显示LCD字符串{ register i=0;while(strpoint[i]!=0){sentdata(strpoint[i]);i++;}}void stop(){lcd_init();sentcom(0x80);lcd_string("现代创新实训室 ");//C编译系统本省也具有转换功能,所以也可以这样写sentcom(0x90);lcd_string("寻迹避障一体小车");sentcom(0x88);lcd_string("--指导:文方老师");sentcom(0x98);lcd_string("--设计:刘志聪 ");}void tracing(){sentcom(0x80);lcd_string("现代创新实训室 "); sentcom(0x90);lcd_string("--指导:文方老师"); sentcom(0x88);lcd_string("--设计:刘志聪 "); sentcom(0x98);lcd_string(" 小车寻迹中---"); }void bypass(){sentcom(0x80);lcd_string("现代创新实训室 "); sentcom(0x90);lcd_string("--指导:文方老师"); sentcom(0x88);lcd_string("--设计:刘志聪 "); sentcom(0x98);lcd_string(" 小车避障中---"); }void find(){tracing();while(bzh==1){ if(LBD&&RAD==1){RM1=1;LM1=1;RM2=0;LM2=0;}if(RAD==0){RM1=0;LM1=1;RM2=0;LM2=0;if(LBD==0){RM1=1;LM1=1;RM2=0;LM2=0;delay(i);}}if(LBD==0){RM1=1;LM1=0;RM2=0;LM2=0;if(RAD==0){RM1=1;LM1=1;RM2=0;LM2=0;delay(i);}}}}void bizhan(){ bypass();if(bzh==0){RM1=1;LM1=0;RM2=0;LM2=1;delay(100);}}void main(){ stop();delay(2000);while(1){find();bizhan();} }。