




已阅读5页,还剩52页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
带LCD显示功能的避障小车的设计毕业论文目 录摘 要IAbstractI第一章 绪论11.1 选题背景11.2 课题主要研究的内容21.3 本课题的章节安排2第二章 硬件系统设计方案32.1 总体结构方案32.2 单片机控制模块方案32.3 单片机引脚功能32.4 光电传感器模块方案62.5 摇头舵机模块方案62.6 超声波测距模块方案72.7 电机驱动方案82.8 电源设计方案112.9 显示模块方案11第三章 基于1602LCD液晶显示器的显示模块133.1 1602LCD液晶显示器的简介133.2 字符型1602LCD液晶显示器的工作原理143.2.1 字符型1602LCD液晶显示器的引脚图与功能143.2.2 字符型1602LCD液晶显示器的内部结构173.2.3 字符型LCD控制指令19第四章 1602驱动程序的设计244.1 判断液晶忙碌状态程序244.2 指令与显示地址写入液晶模块程序244.3 数据(字符的标准ASCII码)写入液晶模块程序254.4 LCD的显示模式进行初始化程序26第五章 智能避障小车软件设计285.1 51小车的避障功能285.2 主程序设计285.3 子程序定时器初始化设计295.4 子程序定时器1中断函数设计(舵机PWM脉冲产生程序)295.5 子程序舵机测试设计305.6 子程序外部中断0服务函数设计315.7 子程序超声波测距及显示设计315.8 子程序超声波测距并动作设计32第六章 功能调试346.1 LCD1602液晶显示器的仿真调试346.2 LCD1602液晶显示器的实物调试356.3 整机调试36第七章 结论37致 谢38参考资料39附录一40附录二50- II -第一章 绪论 1.1 选题背景智能小车,也就是轮式机器人,最适合在那些人类无法工作的环境中工作,该技术可以应用于无人驾驶机动车,无人生产线,仓库,服务机器人等领域。智能小车要想走向实用,必需拥有能胜任的运动系统、可靠的导航系统、精确的感知能力和具有既安全而又友好地与人一起工作的能力。智能小车的智能指标为自主性、适应性和交互性。适应性是指小车具有适应复杂工作环境的能力(主要通过学习),不但能识别和测量周围的物体,还有理解周围环境和所要执行任务的能力,并做出正确的判断及操作和移动等能力。自主性是指小车能根据工作任务和周围环境情况,自己确定工作步骤和工作方式;交互性是智能产生的基础,交互包括小车与环境、小车与人及小车之间三种,主要涉及信息的获取、处理和理解。智能作为现代社会的新产物,是以后的发展方向,他可以按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要达到的或是更高的目标。本设计主要体现多功能小车的智能模式,设计中的理论方案、分析方法及特色与创新点等可以为自动运输机器人、采矿勘探机器人、家用自动清洁机器人等自动半自动机器人的设计与普及有一定的参考意义。同时小车可以作为玩具的发展对象,为中国玩具市场技术含量的缺乏进行一定的弥补,实现经济收益,形成商业价值。 超声波作为智能车避障的一种重要手段,以其避障实现方便,计算简单,易于做到实时控制,测量精度也能达到实用的要求,在未来汽车智能化进程中必将得到广泛应用。我国作为一个世界大国,在高科技领域也必须占据一席之地,未来汽车的智能化是汽车产业发展必然的,在这种情况下研究超声波在智能车避障上的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。本智能小车系统最诱人的前景就是可用于未来的智能汽车上了,当驾驶员因疏忽或打瞌睡时这样的智能汽车的设计就能体现出它的作用。如果汽车偏离 车道或距障碍物小于安全距离时,汽车就会发出警报,提醒驾驶员注意,如果驾驶员没有及时作出反应,汽车就会自动减速或停靠于路边。 这样的小车还可以用于月球探测等的无人探月车,帮助我们传达月球上更多的信息,让我们更加的了解月球,为将来登月做好充分准备。这样的小车在科学考察探测车上也有广阔的应用前景,在科学考察中,有很多危险且人们无法涉足的地方,这时,智能科学考察车就能够派上用场,在它上面装上摄像机,代替人们进行许多无法进行的工作。因此为了使智能小车工作在最佳状态,进一步研究及完善其速度和方向及显示的控制是非常有必要的。1.2 课题主要研究的内容本设计题目为智能避障小车设计,主要研究小车的智能避障功能,当小车遇到障碍物时,并且距离小于等于15cm时,小车会自动做出一系列相应的避障措施,并将其距离随时间自动变化地显示在1602LCD液晶显示屏上,让人们能正确判断小车的动作是否准确无误。本课题还介绍了智能避障小车的发展与意义,1602LCD液晶显示器的仿真部分,软件部分的编程(包括主程序和1602LCD头文件程序),主程序和1602LCD头文件程序流程图的绘制,智能避障硬件总原理图Protues99的测绘和智能避障功能的总调试。1.3 本课题的章节安排 第1章主要介绍了智能避障小车的发展与意义 第2章介绍了智能避障小车的硬件系统设计方案 第3章基于1602LCD液晶显示器的显示模块第4章1602LCD驱动程序的设计 第5章智能避障小车的软件设计部分 第6章智能避障功能的调试 第7章对本设计课题的结论- 55 -第二章 硬件系统设计方案2.1 总体结构方案 本设计主要是进行距离的测量和报警,设计中涉及到的内容较多,主要是将超声波测距模块、红外光电传感器模块、摇头舵机模块、单片机控制模块、电源模块、电机驱动模块、1602LCD显示模块这几个模块结合起来。而本设计的核心是超声波测距模块,其他相关模块都是在测距的基础上拓展起来的,测距模块是利用超声波传感器,之后选择合适单片机芯片,以下就是从相关方面来论述的。简要硬件系统框图如图2-1:图 2-1硬件系统框图2.2 单片机控制模块方案一般在系统的设计当中,能否完成设计任务最重要的就在于系统的核心器件是否选择合适,而单片机更是是系统控制的核心,所以对单片机的选择更是异常重要。如果选择了一个合适的单片机不仅可以最大地简化系统的操作,而且其功能可能是最好的,可靠性也比较高,对整个系统来说更方便。目前,市面上的单片机的种类繁多,并且他们在功能方面也是各自有各自的特点。51系列单片机它在指令系统、硬件结构和片内资源等方面与标准的52系列的单片机可以完全的兼容。52系列的单片机执行速率快,功耗低,在系统、在应用可编程,不占用用户的资源。根据本系统设计的实际要求,选择STC89C52RC单片机做为本设计的单片机使用,它是由STC公司生产的高性能、低功耗的CMOS 8位单片机。STC89C52RC单片机具有以下几个性能特点:4 k字节的闪存片内程序存储器,128字节的数据存储器,32个外部输入和输出口,2个全双工串行通信口,看门狗电路,5个中断源,2个16位可编程定时计数器,片内震荡和时钟电路且全静态工作并由低功耗的闲置和掉电模式。2.3 单片机引脚功能单片机的引脚功能图如图2-2所示。图2-2单片机引脚图(1)电源引脚Vcc(40脚):正电源的引脚,工作电压是5 V。GND(20脚):接地端。(2)时钟电路的引脚XTAL1和XTAL2为了产生时钟信号,在89C51单片机的芯片内部已经设置了一个反相放大器,其中XTAL1端口就是片内反相放大器的输入端,XTAL2端则是片内振荡器反相放大器的输出端 。单片机使用的工作方式是自激振荡的方式,XTAL1和XTAL2外接的是12 MHz的石英晶振,使内部振荡器按照石英晶振的频率频率进行振荡,从而就可以产生时钟信号。时钟信号电路如图 2-2所示。图2-3时钟信号电路(3)复位RST(9脚)当振荡器运行时,只要有有两个机器周期即24个振荡周期以上的高电平在这个引脚出现时,那么就将会使单片机复位,如果将这个引脚保持高电平,那么51单片机芯片就会循环不断地进行复位。复位后的P0口至P3口均置于高电平,这时程序计数器和特殊功能寄存器将全部清零。本课题设计的单片机复位电路如图2-3所示。图2-4 单片机复位电路图(4)输入输出口(I/O口)引脚P0口是一个三态的双向口,既可以作为数据和地址的分时复用口,又可以作为通用输入输出口。P0口在有外部扩展存储器时将会被作为地址/数据总线口,此时P0口就是一个真正的双向口;而在没有外部扩展存储器时,P0口也可以作为通用的I/O接口使用,但此时只是一个准双向口;另外,P0口的输出级具有驱动8个LSTTL负载的能力即输出电流不小于800 uA。P1口是一个带内部上拉电阻的8位双向I/O口,而P1口只有通用I/O接口一种功能,而且P1口能驱动4个LSTTL负载;在使用时通常不需要外接上拉电阻就能够直接驱动发光二极管;在端口置1时,其内部上拉电阻将端口拉到高电平,作输入端口用。对于输出功能,在单片机工作的时候,可以通过用程序指令控制单片机引脚输出高电平或低电平。例如: 指令CLR是清零的意思,CLR P1.0的意思就是让单片机的P1.0端口输出低电平;而指令SETB是置1的意思,SETB P1.0的意思就是让单片机P1.0端口输出高电平。P2口是一个带内部上拉电阻的8位双向I/O口,而且P2口具有驱动4个LSTTL负载的能力。P2端口置1时,内部上拉电阻将端口的电位拉到高电平,作为输入口使用;在对内部的Flash程序存储器编程时,P2口接收高8位地址和控制信息,而在访问外部程序和16位外部数据存储器时,P2口就送出高8位地址。在访问8位地址的外部数据存储器时,P2引脚上的内容在此期间不会改变。P3口也是一个带内部上拉电阻的8位双向I/O口,P3口能驱动4个LSTTL负载,这8个引脚还用于专门的第二功能。P3口作为通用I/O口接口时,第二功能输出线为高电平。P3口置1时,内部上拉电阻将端口电位拉到高电平,作输入口使用;在对内部Flash程序存储器编程时,此端接控制信息。(5) /EA/Vpp(31脚)/EA为片外程序存储器访选用端。当该引脚访问片外程序存储器时,应该输入的是低电平,要使89C51只访问片外程序存储器,这时该引脚必须保持低电平;而在对Flash存储器编程时,用于施加Vpp编程电压。2.4 光电传感器模块方案光电传感器是采用光电元件作为检测元件的传感器。它首先把被测量的变化转换成光信号的变化,然后借助光电元件进一步将光信号转换成电信号。光电传感器一般由光源、光学通路和光电元件三部分组成。 光电检测方法具有精度高、反应快、非接触等优点,而且可测参数多,传感器的结构简单,形式灵活多样,因此,光电式传感器在检测和控制中应用非常广泛。 光电传感器是各种光电检测系统中实现光电转换的关键元件,它是把光信号(红外、可见及紫外光辐射)转变成为电信号的器件。光电传感器的实物图如图2-5所示:图2-5 光电传感器光电式传感器是以光电器件作为转换元件的传感器。它可用于检测直接引起光量变化的非电量,如光强、光照度、辐射测温、气体成分分析等;也可用来检测能转换成光量变化的其他非电量,如零件直径、表面粗糙度、应变、位移、振动、速度、加速度,以及物体的形状、工作状态的识别等。光电式传感器具有非接触、响应快、性能可靠等特点,因此在工业自动化装置和机器人中获得广泛应用。近年来,新的光电器件不断涌现,特别是CCD图像传感器的诞生,为光电传感器的进一步应用开创了新的一页。2.5 摇头舵机模块方案标准的舵机有3条导线,分别是:电源线、地线、PWM控制线。以辉盛GS90型舵机为例。辉盛GS90型舵机实物图如图2-6所示:图2-6 辉盛GS90型的舵机实物图电源线和地线用于提供舵机内部的直流电机和控制线路所需的能源电压通常介于46V,一般取5V。注意,给舵机供电电源应能提供足够的功率。控制线的输入是一个宽度可调的周期性方波脉冲信号,方波脉冲信号的周期为20 ms(即频率为50 Hz)。当方波的脉冲宽度改变时,舵机转轴的角度发生改变,角度变化与脉冲宽度的变化成正比。辉盛GS90型舵机的输出轴转角与输入信号的脉冲宽度之间的关系可用图2-7来表示。图2-7舵机的输出轴转角与输入信号的脉冲宽度之间的关系图2.6 超声波测距模块方案超声波是一种超出人类听觉极限的声波即其振动频率高于20 kHz的机械波。超声波传感器在工作的时候就是将电压和超声波之间的互相转换,当超声波传感器发射超声波时,发射超声波的探头将电压转化的超声波发射出去,当接收超声波时,超声波接收探头将超声波转化的电压回送到单片机控制芯片。超声波具有振动频率高、波长短、绕射现象小而且方向性好还能够为反射线定向传播等优点,而且超声波传感器的能量消耗缓慢有利于测距。在中、长距离测量时,超声波传感器的精度和方向性都要大大优于红外线传感器,但价格也稍贵。从安全性,成本、方向性等方面综合考虑,超声波传感器更适合设计要求。超声波测距实物图如图2-8所示: 图2-8超声波测距实物图通过超声波发射装置发出超声波,根据接收器接到超声波时的时间差就可以知道距离了,这与雷达测距原理相似。 超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。(超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2) 2.7 电机驱动方案L293D驱动模块,采用STST公司原装全新的L293D芯片,采用SMT工艺稳定性高,采用高质量铝电解电容,使电路稳定工作。可以直接驱动4路3-16V直流电机,并提供了 5V输出接口 (输入最低只要6V),可以给 5V单片机电路系统供电(低纹波系数),支持支持 3.3V MCUARM控制,可以方便的控制直流电机速度和方向,也可以控制2相步进电机,5线4相步进电机。是智能小车必备利器利器。L293D内部原理图如图2-9所示:图2-9 L293D内部原理图L293D参数如下:1.驱动芯片:L293D双H 桥直流电机驱动芯片(两片) 2.驱动部分端子供电范围Vs:5V16V;如需要板内取电,则供电范围 Vs: +6V+16V 3.驱动部分峰值电流Io:1A 4.逻辑部分工作电流范围:036mA 5.控制信号输入电压范围 (IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8): 低电平:0.3VVin1.5V 高电平:2.3VVinVss 6.使能信号输入电压范围(EN1 EN2 EN3 EN4): 低电平:0.3Vin1.5V(控制信号无效 ) 高电平:2.3VVinVss(控制信号有效) 7.存储温度:25130 本模块可以与51,AVR,PIC,ARM 等控制器连接, MCU_GND MCU_+5V 是指可以用驱动输出+5V 的电源给控制系统供电。当然,也可以不用,当不用的时候悬空。但它们一定要共地。即MCU_GND要与驱动模块GND相连(这点至关重要)。IO 是指MCU的普通的输入输出接口。这里特别指出的是EN1 EN2 这里我们已经用跳线帽直接插到 5V了,直接使能,如果有PWM 调速可以去掉跳线帽直接从这这里输入PWM信号,调节电机速度. 以下举例:控制逻辑。这里一路其它的,其它三路类推表2-1控制逻辑表电机IN1IN2EN1不转000不转010不转100不转110不转001正转011反转101不转111 L293D有过电流保护功能,当出现电机卡死时,可以保护电路和电机等。所以我们选择L293D。电机驱动原理图如图2-10所示:图2-10电机驱动原理图2.8 电源设计方案采用干电池进行供电采用六节1.2V干电池降压至7.2V 后给单片机及其他电路模块单元供电,干电池用电池盒封装,体积和重量较小,同时玩具车底座可以安装六节干电池,正好可为单片机及其他单元供电。在稳压方面,起始时考虑使用 7805芯片对7.2V的电池电压进行降压稳压。但考虑到这样使得 7805 芯片消耗大量能量,降低电池寿命;我们将 7.2V电池电压接一个二极管降压后直接给单片机及其他逻辑单元供电。但电机电源必须做稳压处理。考虑到电池在使用过程中电压会下降,我们将设计简单的 RC缓冲电路对急需供电的情况进行补压。电源原理图如图2-11所示:图2-11 电源原理图2.9 显示模块方案1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。 1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。 目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。1602LCD的特性是+3.3V电压,对比度可调,内含复位电路,提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能。有80字节显示数据存储器DDRAM,内建有192个5X7点阵的字型的字符发生器CGROM,8个可由用户自定义的5X7的字符发生器CGRAM。低压微功耗,外观小巧精致,厚度只有6.58mm, 被动显示型(无眩光,不刺激人眼,不会引起眼睛疲劳),显示信息量大(因为像素可以做得很小),易于彩色化(在色谱上可以非常准确的复现),无电磁辐射(对人体安全,利于信息保密), 长寿命(这种器件几乎没有什么劣化问题,因此寿命极长,但是液晶背光寿命有限,不过背光部分可以更换)。微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。第三章 基于1602LCD液晶显示器的显示模块3.1 1602LCD液晶显示器的简介 LCD 液晶显示器是 Liquid Crystal Display 的简称,LCD 的构造是在两片平行的玻璃基板当中放置液晶盒,下基板玻璃上设置TFT(薄膜晶体管),上基板玻璃上设置彩色滤光片,通过TFT上的信号与电压改变来控制液晶分子的转动方向,从而达到控制每个像素点偏振光出射与否而达到显示目的。现在LCD已经替代CRT成为主流,价格也已经下降了很多,并已充分的普及。LCD(life cycle design) 液晶显示器按照控制方式不同可分为被动矩阵式LCD及主动矩阵式LCD两种。段码式显示和点阵式显示。段码是最早最普通的显示方式,比如计算器,电子表这些。自从有了MP3,就开发了点阵式,如MP3,手机屏,数码相框这些高档消费品。 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。 1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。 液晶显示器各种图形的显示原理1)线段的显示:点阵图形式液晶由MN个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共168=128个点组成,屏上6416个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。2)字符的显示:用LCD显示一个字符时比较复杂,因为一个字符由68或88点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。3)汉字的显示 :汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5右边为2、4、6根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节直到32B显示完就可以LCD上得到一个完整汉字3.2 字符型1602LCD液晶显示器的工作原理字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。 一般1602字符型液晶显示器实物如图图3-1 1602字符型液晶显示器实物如图3.2.1 字符型1602LCD液晶显示器的引脚图与功能1602引脚图如下:图3-2 1602引脚图表3-1引脚接口说明表引脚号引脚号电平输入/输出作用1Vss电源地 2Scc电源(+5V)3Vee对比调整电压4RS0/1输入0=输入指令1=输入数据5R/W0/1输入 0=向LCD输入指令或数据1=从LCD读取信息6E1,1 0输入 使能信号,1时读取信息1 0(下降沿)执行指令7DB00/1输入/输出数据总线line0(最低位)8DB10/1输入/输出数据总线line19DB20/1输入/输出数据总线line210DB30/1输入/输出数据总线line311DB40/1输入/输出数据总线line412DB50/1输入/输出数据总线line513DB60/1输入/输出数据总线line614DB70/1输入/输出 数据总线line7(最高位)15AVccLCD背光电源正极16K接地LCD背光电源负极 1602采用标准的16脚接口,其中: 第1脚:VSS为电源地 第2脚:VCC接5V电源正极 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第6脚:E(或EN)端为使能(enable)端。 第714脚:D0D7为8位双向数据端。 第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。其与单片机的连接如下图所示图3-3与单片机的连接如下图3.2.2 字符型1602LCD液晶显示器的内部结构 图3-4字符型1602LCD液晶显示器的内部结构1.数据显示存储器DDRAMDDRAM用来存放要LCD显示的数据,只要将标准的ASCII码送入DDRAM,内部控制电路会自动将数据传送到显示器上。DDRAM有80字节空间,共可显示80个子(每个字为一个字)。2.字符产生器CGROM字符产生器CGROM存储了160个不同的点阵字符图形,如图3-5所列,这些字符有阿拉伯数字、英文字母的大小写、常用的符号和日文假名等,每一个字符都有一个固定的代码。图3-5点阵字符图形3.字符产生器CGRAM字符产生器CGRAM是供使用者储存自行设计的特殊造型的造型码RAM,CGRAM共有512位(64节)。一个5X7点阵字型占用8X8bit,所以CGRAM最多可存8个造型。4.指令寄存器IRIR指令寄存器负责储存单片机要写给LCD的指令码。当单片机要发送一个命令到IR指令寄存器时,必须要控制LCD的RS、R/W及E这3个引脚,当RS及R/W引脚信号为0,E引脚信号有1变为0时,就会把在DB0DB7引脚上的数据送入IR指令寄存器。5.数据寄存器DR数据寄存器DR负责储存单片机要写到CGRAM或DDRAM的数据,或储存单片机要从CGRAM或DDRAM读出的数据,因此DR寄存器可视为一个数据缓冲区,它也是由LCD得RS、R/W及E三个引脚来控制。当RS及R/W引脚信号为1,E引脚信号为1时,LCD会将DR寄存器内的数据由DB0DB7输出,以供单片机读取;当RS引脚信号为1,R/W接引脚信号为0,E引脚信号由1变为0时,就会把在DB0DB7引脚上的数据存入DR寄存器。6.忙碌标志信号BFBF的功能是告诉单片机,LCD内部是否正忙着处理数据。当BF=1时,表示LCD内部正在处理数据,不能接受单片机送来的指令或数据。LCD设置BF的原因为单片机处理一个指令的时间很短,只需几微妙左右,而LCD得花上40us1.62ms的时间,所以单片机要写数据或指令到LCD之前,必须先查看BF是否为0。7.地址计数器ACAC的工作是负责计数写到CGRAM、DDRAM数据的地址,或从DDRAM、CGRAM读出数据的地址。使用地址设定指令写到IR寄存器后,则地址数据会经过指令解码器,再存入AC。当单片机从DDRAM或CGRAM存取资料时,AC依照单片机对LCD的操作而自动地修改它的地址计数值。3.2.3 字符型LCD控制指令LCD控制指令共有11组,介绍如下:1.清 屏清屏指令格式如下:表3-2 清屏指令格式控制信号控制代码RSR/WEDB7DB6DB5DB4DB3DB2DB1DB000100000001指令代码为01H,将DDRAM数据全部填入“空白”的ASCII码20H,执行此指令将清除显示器的内容,同时光标移到左上角。2.光标归位光标归位指令格式如下:表3-3光标归位指令格式控制信号控制代码RSR/WEDB7DB6DB5DB4DB3DB2DB1DB00010000001X指令代码为02H,地址计数器AC被清零。DDRAM数据不变,光标移到左上角。X表示可以为0或1。3.输入方式设置输入方式设置指令格式如下:表3-4输入方式设置指令格式控制信号控制代码RSR/WEDB7DB6DB5DB4DB3DB2DB1DB0001000000I/DS该指令用来设置光标、字符移动的方式,具体设置情况如下:表3-5设置光标、字符移动的方式状态位指令代码功能I/DS0004H光标左移1格,AC值减1,字符全部不动0105H光标不动,AC值减 1,字符全部右移一格1006H光标右移1格,AC值加1,字符全部不动1107H光标不动,AC值加 1,字符全部左移一格4.显示开关控制显示开关控制指令格式如下:表3-6显示开关控制指令格式控制信号控制代码RSR/WEDB7DB6DB5DB4DB3DB2DB1DB000100001DCB指令代码为08H0FH。该指令控制字符、光标及闪烁的开与关,有3个状态位D、C、B,这3个状态位分别控制着字符、光标和闪烁的显示状态。D是字符显示状态位。当D=1时为开显示,D=0时为关显示。注意关显示仅是字符不出现,而DDRAM内容不变。这与清屏指令不同。C是光标显示状态位。当C=1时为光标显示,C=0时为光标消失。光标为底线形式(5X1点阵),光标的位置由地址指针计数器AC确定,并随其变动而移动。当AC值超出了字符的显示范围,光标将随之消失。B是光标是闪烁显示状态位。B=1时,光标闪烁,B=0时,光标不闪烁。5.光标、字符移位光标、字符移位指令的格式如下:表3-7光标、字符移位指令的格式控制信号控制代码RSR/WEDB7DB6DB5DB4DB3DB2DB1DB00010001S/CR/LXX执行该指令将产生字符或光标向左或向右滚动一个字符位。如果定时间隔地执行该指令,将产生字符或光标的平滑滚动。光标、字符移位的具体设置情况如下:表3-8光标、字符移位的具体设置情况状态位指令代码功能S/DR/L0010H光标左移0114H光标右移1018H光标左移111CH光标右移6.功能设置功能设置指令格式如下:表3-9功能设置指令格式控制信号控制代码RSR/WEDB7DB6DB5DB4DB3DB2DB1DB0001001DLNF00该指令用于设置控制器的工作方式,有三个参数DL、N和F。它们的作用如下:DL用于设置控制器与计算机的接口形式。接口形式体现在数据总线长度上。DL=1设置数据总线为8位长度,即DB7DB0有效。DL=0设置数据总线为4位长度,即DB7DB4有效。在该方式下8伪指令代码和数据将按先高4位后低4位的顺序分两次传输。N用于设置显示的字符行数。N=0为一行字符行。N=1为两行字符行。F用于设置显示字符的字体。F=0为5X7点阵字符体。F=1为5X10点阵字符体。7.CGRAM地址设置CGRAM地址设置指令格式如下:表3-10 CGRAM地址设置指令格式控制信号控制代码RSR/WEDB7DB6DB5DB4DB3DB2DB1DB000101A5A4A3A2A1A0该指令将6位的CGRAM地址写入地址指针计数器AC内,随后,单片机对数据的操作是对CGRAM的读/写操作。8.DDRAM地址设置DDRAM地址设置指令格式如下:表3-11 DDRAM地址设置指令格式控制信号控制代码RSR/WEDB7DB6DB5DB4DB3DB2DB1DB00011A6A5A4A3A2A1A0该指令将7位的DDRAM地址写入地址指针计数器AC内,随后,单片机对数据的操作是对DDRAM的读/写操作。A6为0表示第0行显示,为1表示第1行显示,A5A4A3A2A1A0中的数据表示显示的列数。由于LCD起始列为0,最后1列为15,所以,因此将超出LCD的显示范围。这种情况多用于移动显示,即先让显示列位于LCD之外,再通过编程,使待显示列数逐步减小,此时,将会看到字符由屏外逐步移到屏内的显示效果。显示字符时,要先输入显示字符的地址。也就是告诉模块在哪里显示字符,图3-4是1602液晶显示器内部DDRAM显示地址。图3-6 LCD1602内部显示地址从图中可以看出,第1行第0个字符的地址是40H,那么是否直接希写入40H就可以将光标定义在地1行第0个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1,所以,实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。9.读BF及AC的值读BF及AC指令的格式如下:表3-12 BF及AC指令的格式控制信号控制代码RSR/WEDB7DB6DB5DB4DB3DB2DB1DB0011BFAC6AC5AC4AC3AC2AC1AC0LCD的忙碌标志BF用以指示LCD目前的工作情况,当BF=1时,表示正在做内部数据的处理,不接受单片机送来的指令会数据。当BF=0时,则表示已准备接受命令或数据。当程序读取此数据的内容是,DB7表示忙碌标志,而另外DB6DB0的值表示CGRAM或DDRAM中的地址,至于是指向哪一地址则根据最后写入的地址设定指令而定。10.写数据到CGRAM或DDRAM写数据到CGRAM或DDRAM的指令格式如下:表3-13写数据到CGRAM或DDRAM的指令格式控制信号控制代码RSR/WEDB7DB6DB5DB4DB3DB2DB1DB0101 先设定CGRAM或DDRAM地址,再将数据写入DB7DB0中,以使LCD显示出字形。也可将使用者自创的图形存入CGRAM。11.从CGRAM或DDRAM读取数据从CGRAM或DDRAM读取数据的指令格式如下:表3-14从CGRAM或DDRAM读取数据的指令格式控制信号控制代码RSR/WEDB7DB6DB5DB4DB3DB2DB1DB0111 先设定CGRAM或DDRAM地址,在读取其中的数据。第四章 1602驱动程序的设计4.1 判断液晶忙碌状态程序判断液晶忙碌状态程序如下:图4-1 判断液晶忙碌状态程序程序功能是判断液晶模块的忙碌状态。首先读入1602的状态,设置E为高电平,将忙碌状态标志为BF赋给result,在将E置低电平,result值返回,就可知道液晶是否忙碌。4.2 指令与显示地址写入液晶模块程序指令与显示地址写入液晶模块程序如下:图4-2指令与显示地址写入液晶模块程序程序功能是将模式设置指令或显示地址写入液晶模块。首先判断液晶是否在忙碌状态,如果是则继续等待,如果不是则开始执行指令。设1602状态为写入指令,将E置低电平,再将数据dictate送入P0口,将E置高电平,显示后再将E关闭。4.3 数据(字符的标准ASCII码)写入液晶模块程序数据(字符的标准ASCII码)写入液晶模块程序如下:图4-3 数据(字符的标准ASCII码)写入液晶模块程序程序功能是将数据(字符的标准ASCII码)写入液晶模块。首先判断液晶是否在忙碌状态,如果是则继续等待,如果不是则开始执行指令。设1602状态为写入数据,将E置低电平,再将数据y送入P0口,将E置高电平,显示后再将E关闭。4.4 LCD的显示模式进行初始化程序LCD的显示模式进行初始化程序如下:图4-4 LCD的显示模式进行初始化程序程序功能是对LCD的显示模式进行初始化设置。首先给LCD一段反应时间,将显示模式设为62显示,57点阵,8位数据接,显示开,有光标,光标闪烁,光标右移,字符不移。第五章 智能避障小车软件设计5.1 51小车的避障功能51避障小车的功能是51小车在遇到障碍物时会自动判断障碍物距51小车的距离,并送到显示器上显示。再左右旋转测试距离和做出判断动作,例如:后退、转弯、调头、前进等。51避障小车,就是利用超声波来检测小车的前方是否有障碍物,51小车的前方你要放一个超声波发生器、一个超声波接收器,当超声波发生器发出去的声波遇到障碍物时,这些声波就会被反射回来,这时就利用超声波接收器接受被反射回来的声波,然后再在车身上面按装一个声波转化器,就是把反射回来的声波转化成其他的信号,让51小车测试障碍物与小车距离,再做一系列动作来躲避障碍物,以实现避障功能。5.2 主程序设计主程序流程图如下:图5-1主程序流程图此程序实现了利用红外光电测距传感器判断有无障碍物,如果没有则继续用红外光电传感器测距判断,而如果有则停车、后退、掉头。此程序首先进行定时器初始化,舵机测试,LCD初始化,然后进行红外光电传感器测距判断车前有无障碍物,并根据结果做出相应的动作,以此继续循环。5.3 子程序定时器初始化设计定时器初始化程序流程图:图5-2 定时器初始化程序流程图此程序实现定时器的初始化。首先关闭超声波产生脉冲引脚与成功标志。接着设定定时器1、2的定时方式,再赋初始值,开定时器1中断及设优先级,关外部中断0,最后开总中断。5.4 子程序定时器1中断函数设计(舵机PWM脉冲产生程序)子程序定时器1中断流程图如下:图5-3 定时器1中断流程图此程序的作用是产生舵机PWM脉冲信号。首先设定时器1的初值,在根据pro的值产生占空比可调的PWM脉冲信号,并以此循环。5.5 子程序舵机测试设计舵机测试程序如下:图5-4 舵机测试程序此程序的功能是判断舵机的好坏与舵机能左右旋转的角度及此时pro的值。先开定时器1再设pro,延时一段时间让舵机有足够的时间转动,在观察舵机转动的角度,并加以记录,再连续多换几次pro的值重复以上动作。最后关定时器1。5.6 子程序外部中断0服务函数设计外部中断0程序流程图如下:图5-5 外部中断0程序流程图此程序的作用是用作判断回波电平。首先取定时器1里的值,设成功标志,接着定时器清零,关闭定时器,最后关闭总中断开关。5.7 子程序超声波测距及显示设计超声波测距及显示程序如下:图5-6超声波测距及显示程序此程序的功能是测小车与障碍物的距离,并显示到1602LCD上。首先关中断,给超声波一高电平为20us,接着给一个低电平,判断回波引脚是否进入高电平,如果没有,则继续判断。如果有,则启动定时器0,清成功标志,开外部中断0,开总中断,这时再延时等超声波返回,此时如果成功标志为0,则继续等超声波返回,如果成功标志为1,根据公式算距离,并送到1602LCD显示。5.8 子程序超声波测距并动作设计超声波测距并动作程序如下图5-7 超声波测距并动作程序此程序实现了当小车与障碍物正前方小于等于15CM,小车就会停止运动,让舵机转动正负N度用超声波测出其小车与障碍物的距离D1,D2,在让D1、D2与15CM进行比较,最后选出距离大于15CM且距离最大的路线,接着让小车后退,掉头,再继续前进。第六章 功能调试6.1 LCD1602液晶显示器的仿真调试图6-1 小车在0方向上距障碍物的距离图6-2 小车在90方向上距障碍物的距离图6-3 小车在-90方向上距障碍物的距离上图显示了小车在三个不同角度上距障碍物的距离,小车会通过计算比较作出正确的判断,从而选择理性的躲避障碍物轨迹。6.2 LCD1602液晶显示器的实物调试图6-4 小车在0方向上距障碍物的距离图6-5小车在90方向上距障碍物的距离图6-6小车在-90方向上距障碍物的距离为直观的说明小车显示部分的效果,我们采用实物与仿真结果对照的形式加以说明。通过上面的比较,可以了解到仿真调试与实物调试的显示效果基本相同,所以LCD1602是非常好的液晶显示器。6.3 整机调试6-7整机调试图经实地测试,小车在避障模式下运行很稳定。在避障模式下,小车即使碰到物体,亦能在极短时间内执行倒车指令,离开物体
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025西安寰宇卫星测控与数据应用有限公司招聘(5人)笔试参考题库附带答案详解
- 2025甘肃禹力水电工程有限责任公司招聘15人笔试参考题库附带答案详解
- 2025浙江百康光学股份有限公司招聘51人笔试参考题库附带答案详解
- 2025河南郑州市新密市国开投资集团有限公司招聘管理人员和专业技术人员9人笔试参考题库附带答案详解
- 2025江苏苏州市张家港市建安工程机械质量检测有限公司招聘16人笔试参考题库附带答案详解
- 2025广西水利发展集团商贸有限公司招聘12人笔试参考题库附带答案详解
- 2025年重庆建工第三建设有限责任公司招聘1人笔试参考题库附带答案详解
- 2025年河南省储备粮管理集团招聘12人笔试参考题库附带答案详解
- 2025年国航股份西藏分公司“三地招聘”活动专项招聘3人笔试参考题库附带答案详解
- 2025年四川绵阳市公共交通集团有限责任公司招聘公交车驾驶员40人笔试参考题库附带答案详解
- 2025年湖南银行社招笔试题库及答案
- 2025年精密数控机床进口采购合同
- DB44T 2635-2025 国土变更调查县级数据库建设技术规范
- 海南省2025年中考化学真题试题(含答案)
- 脱证中医护理常规
- 中国全自动样品处理系统行业投资分析及发展战略咨询报告
- 未来趋势:2025年采购管理优化方案
- 某小学科学实验操作考核细则
- 执法办案培训课件
- 中小学小班化教学模式与支持体系构建研究
- 2025年陕西省中考英语试题卷(含答案及解析)
评论
0/150
提交评论