《基于单片机的智能小车控制系统(论文).docx》由会员分享,可在线阅读,更多相关《基于单片机的智能小车控制系统(论文).docx(39页珍藏版)》请在课桌文档上搜索。
1、专科毕业设计(论文)题目基于单片机智能小车控制系统设计学生姓名XXX班级XxXXxXX学号H院(系)电子工程学院专业一应用电子技术指导教师XXX职称XXX二OXX年X月XX日摘要随着计算机、微电子、材料、机械、通信等技术的快速开展,车辆的智能化和机器人的开展速度也越来越快,作为21世纪自动化领域内非常伟大的成就它已经和人们的生产生活紧密的联系在了一起。智能车辆迅速成为世界车辆研究领域的热点和汽车工业新的增长点。所以,智能化的车辆是未来人们生活重要的载体。因此有必要对智能车辆进行研究。研制一种智能,高效的智能小车控制系统具有重要的实际意义和科学理论价值。本系统设计了一个能自动循迹的智能小车控制系
2、统。以STC89C52单片机为控制核心,利用红外无线遥控智能小车,利用超声波传感器检测道路上的障碍并提示,利用LCD1602显示小车的速度和路程。能实现小车自动根据地面实况前进倒退、转向行驶,超声波测距提示障碍物,LCDI602实时显示小车的速度和行驶的路程,具有高度的智能化,到达设计目标。关键词:智能小车:STC89C52单片机;超声波传感器;LCD1602THESMARTCARBASEDONMICROCONTROLLERABSTRACTWiththerapiddevelopmentofcomputer,microelectronics,materials,machinery,communi
3、cationandothertechnologies,theIntelligenlizationofvehiclesandthedevelopmentofrobotsaregettingfasterandfaster.Asaverygreatachievementinthefieldofautomationinthe21stcentury.Closetiestogether.Intelligentvehiclesquicklybecometheworldsautomotiveresearchhotspotsandthenewgrowthpointoftheautomotiveindustry.
4、Therefore,thestudyofintelligentvehiclesarenecessary.Therefore,thedevelopmentofasmart,intelligentcarcontrolsystemwithhighefficiencyisofpracticalsignificanceandscientificimportanttheoreticalvalue.Thispaperintroducesthedesignofasmartcarcontrolsystemthatcanautomatictracking.Basedonsignle-chipmicrocomput
5、erAT89C51Toachieveinfraredwirelessremotecontrolsmartcar,theuseofultrasonicsensorstodetectobstaclesontheroadandpromptedtheuseofLCD1602showcarspeedanddistance.Thecarcanrealizeautomaticbasedontheblacklineforwardregression.Steering9Ultrasonicranging,promptingobstacles,LCD1602real-timedisplayofthespeedof
6、thecaranddriveaway,withahighdegreeofintelligence,achievethedesigngoal.KeyWords:Smartcar;AT89C51MCU;ultrasonicsensor;LCD1602目录摘要ABSTRACTII目录III第1章绪论错误!未定义书签。1.1 课题的背景和意义错误!未定义书签。1.2 课题的研究现状及开展趋势1第2章方案设计与论证22. 1主控系统23. 2电源模块24. 3电机驱动模块2电机模块选择与论证2电机驱动模块选泽与论证35. 4遥控模块46. 5显示模块57. 6壁障模块5第3章硬件设计63.1总体设计63
7、. 2驱动电路63. 3遥控电路93. 4显示电路113. 5避障电路118. 6主控电路13第4章软件设计169. 1主程序模块设计164.1.1主程序流程图164.1.2主程序的设计174.2电机驱动程序的设计194.2.1电机驱动程序流程图194.2.2电机驱动程序的设计204.3 红外遥控程序的设计21遥控模块流程图21红外遥控程序的设计224.4 测距壁障模块程序的设计234. 4.1超声波测距模块流程图235. 4.2超声波测距模块程序的设计234. 5显示模块程序的设计244 .5.1显示模块流程图245 .5.2显示模块程序的设计25第5章软件仿真285. 1KElL软件285
8、. 2PR0UES软件28第6章实物安装与调试305.1 器件清单306. 2结果及分析307. 3使用指南31第7章结束语32参考文献33致谢34附录一原理图35附录二源程序36附录三实物图45第1章绪论1.1 课题的背景和意义智能作为现代社会的新产物,是以后的开展方向,他可以按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要到达的或是更高的目标。本设计主要表达多功能小车的智能模式,设计中的理论方案、分析方法及特色与创新点等可以为自动运输机器人、采矿勘探机器人、家用自动清洁机器人等自动半自动机器人的设计与普及有一定的参考意义。同时小车可以作为玩具的开展对象,为中
9、国玩具市场技术含量的缺乏进行一定的弥补,实现经济收益,形成商业价值。超声波作为智能车避障的一种重要手段,以其避障实现方便,计算简单,易于做到实时控制,测量精度也能到达实用的要求,在未来汽车智能化进程中必将得到广泛应用。我国作为一个世界大国,在高科技领域也必须占据一席之地,未来汽车的智能化是汽车产业开展必然的,在这种情况下研究超声波在智能车避障上的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。1.2 课题的研究现状及开展趋势智能小车的研究、开发和应用涉及传感技术、电气技术、电气控制技术、智能控制等学科,智能控制技术是一门跨科学的综合性技术,当代研究十分活
10、泼,应用日益广泛的领域L众所周知机器人技术的开展是一个国家高科技水平和工业自动化程度的重要标志和表达。因此目前世界各国都在开展对机器人技术的研究。机器人由于有很高的灵活性、可以帮助人们提高生产率、改良产品质量等优点,在世界各地的生产生活领域得到了广泛的应用。智能小车正是模仿机器人的一种尝试。它是一种以汽车电子为背景,涵盖多学科的科技创新性设计,现智能小车开展很快,从智能玩具到其它各行业都有实质成果。其根本可实现循迹、避障、检测贴片、寻光入库、避崖等根本功能,这几届的电子设计大赛智能小车又在向声控系统开展。第2章方案设计与论证1. 1主控系统本设计采用STC89C52单片机为主控芯片,通过电机驱
11、动电路和超声波发射接收及液晶实时显示小车与障碍物的距离红外遥控设计而成,采用模块化的设计方案。并且运用红外遥控器控制小车的前进,后退,左右转和停止的功能。2. 2电源模块本次设计采用了7805芯片,因为7805电源芯片的电路简单,实用,并且能够完全满足智能避障小车和单片机控制系统和L298N(直流电机驱动)芯片的供电。7805芯片的实物有3个引脚,分别为输入IN端、输出OUT端和接地GND端,一般情况下可以提供1.5A的电流,如果在散热足够的情况下可以提供51单片机主控模块和直流电机驱动等模块的电压。根据7805电源芯片的情况再结合电机的工作电压,应选取了12V电源作为7805的输入电源。3.
12、 3电机驱动模块4. 3.1电机模块选择与论证方案一:使用步进电机作为智能小车系统的驱动电机,因为步进电机的转动角度可以精确的定位,这样就可以比拟精确的定位小车的前进距离和位置。但是由于步进电机的输出力矩偏低,并且会随着电机转速的升高而下降,在到达较高的转速时其输出的力矩会急剧下降,因此不适于小车等对速度有着一定要求的系统。经过综合分析比拟决定放弃此方案。方案二:使用直流减速电机作为智能小车系统的驱动电机。直流减速电机的转动力矩比拟大,而且体积较小,重量也很轻,使用方便。另外小车电机内部还装有减速齿轮组,所以并不需要去考虑调速的功能,可以很方便的通过单片机来控制直流减速电机的正传、反转、停止操
13、作。综合以上考虑选择方案二的直流减速电机作为整个智能小车的驱动电机。图2.1直流减速电机5. 3.2电机驱动模块选择与论证方案一:采用继电器对电动机进行控制,通过切换电动机的开关来调整小车的速度。这个方案的优点是电路相比照拟简单,但是它的缺点也比拟多,如:继电器的响应时间偏慢,寿命较短,容易损坏,可靠性也不是很高。故决定放弃此方案。方案二:采用专用的电机驱动芯片L298N来控制直流减速电机,L298N芯片如图2-2)是一个具有高电压大电流的全桥驱动芯片,一片L298N芯片可以分别的控制两个直流减速电机,在646V的电压下,可以提供2A的额定电流,额定功率25W,并且具有过热自动关断和电流反响检
14、测功能,平安可靠。该芯片是利用TTL电平进行控制的。通过单片机的IO口输出上下电平来改变芯片控制端的输入电平,即可以实现对电机进行正转、反转和停止操作。另外为了保证L298N的正常工作,我还安装了8个续流二极管1N4007。用该芯片作为电机驱动,驱动能力大、操作方便、稳定性好、性能优良。综合以上分析与论证我们选择方案二的驱动芯片L298N作为整个智能小车系统的电机驱动电路。图2.2L298N2. 4遥控模块本设计采用红外遥控来控制信号的传送。选择红外遥控装置作为小车的遥控控制器。红外遥控是通过遥控发射器内的编码芯片将按键信息调制成一串0和1的二进制代码,然后通过红外线发出,最后被红外接收装置接
15、收进行解码,再运用单片机对解码后的码信息进行识别,然后再根据不同的码信息进行不同的控制操作。图2.3VS1838封装3. 5显示模块方案一:采用LED数码管显示。数码管使用简单,价格低廉,但一个数码管只能显示一个数字,要显示多位数据时要使用多个数码管,这就增加了硬件电路的复杂度和额外功耗,而且LED数码管也无法显示字符。由于我们方案要显示小车运行的速度和路程,LED数码管没方法显示这么多的内容,因此考虑其它的方案。方案二:采用LCDl602液晶(如图2.4)显示。LCD1602液晶具有功耗低,显示内容丰富清晰,显示信息量大,显示速度较快,界面友好,使用简单等特点而得到了广泛的应用。并且外围电路
16、也比拟简单,因此我们选择此方案。通过以上方案论述我们选择方案二,显示小车与障碍物距离的任务。图2.4LCDI602液晶显示器4. 6避障模块方案一:用漫反射式光电开关进行避障。光电开关的工作原理是根据光线发射头发出的光束,被物体反射,其接收电路据此做出判断反响,物体对红外光由同步回路选通而检测物体的有无。当有光线反射回来时,输出低电平。当没有光线反射回来时,输出高电平。操作简单但是测量的距离不远。方案二:用超声波传感器进行测距避障。超声波传感器的原理是:超声波由压电陶瓷超声波传感器发出后,遇到障碍物便反射回来,然后再被超声波传感器接收。超声波传感器在避障的设计中被广泛应用。为了使用方便,便于操
17、作和调试,采用集成超声波测距模块HC-SRo4。综合考虑本系统只需要检测障碍物,没有十分复杂的环境。为了使用的方便,便于操作和调试,最终选择了方案二。第3章硬件设计5. 1总体设计智能小车采用前轮驱动,前轮左右两边各用一个电机驱动,通过电机驱动芯片L298N来控制前面两个轮子的转动与停止从而到达控制转向的目的,后轮是拖动轮,起支撑作用。小车距离的检测通过超声波传感器HC-SR04,将检测到的数据传回单片机进行处理。小车的避障用超声波避障模块HC-SR04,将其置于车头,检测到障碍物时,小车做出相应的反响。总体设计框图如图3.1。键盘遥控编码芯片红外遥控模块编M调制、1红外-射晶振模 块超声避障
18、 模块STC89C52电机驱动 模块数据显示 模块系统应答a遥控局部框图b小车局部框图图3.I系统总体设计框图3.2驱动电路电机驱动芯片采用L298N,是一款承受高压大电流的全桥型直流/步进电压驱动器,如下列图3.2。图3.2电机控制芯片I.298N的引脚排列其中L298N各引脚的编号与功能和内部逻辑如下表3.1和图3.3。表3.1L298N引脚编号与功能引脚编号电称功能1电流传感器A在该引脚和地之间接小阻值电阻可用来检测电流2输出引脚1内置驱动器A的输出端1,接至电机A3输出引脚2内置驱动器A的输出端2,接至电机A4电机电源端电机供电输入端,电压可达46V5输入引脚1内置驱动器A的逻辑控制输
19、入端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在该引脚和地之间接小阻值电阻可用来检测电流图3.3L298N内部原理图电机驱动A/B的控制逻辑如下表所示。表3.2电机驱动A/B的控制逻辑输入信号电机运动方式使能端A/B输入引脚1/3输入引脚2/410前进10后退111紧急停车00紧
20、急停车0XX自由转动L298N可直接对电机进行控制,不需要隔离电路。通过单片机的I/O输入改芯片控制端的电平,即可以对电机进行正反转,停止的操作,操作非常方便,亦能满足直流减速电机的大电流要求。调试时依照上表,用程序输入对应的码值,即可以实现对应的操作。其驱动电路原理图如下列图3.4所示。图3.4L298N驱动原理图3. 3遥控电路红外接收器也叫做一体化红外接收头,其内部是由红外监测二极管,放大器,限副器,带通滤波器,积分电路,比拟器等构成的。红外监测二极管接收到红外信号后,会把信号送到放大器和限幅器,限幅器把脉冲幅度控制在一定的水平。交流信号进入带通滤波器,带通滤波器只允许30khz到60k
21、hz的负载波通过,然后脉冲信号再通过解调电路和积分电路进入比拟器,由比拟器输出上下电平信号,复原出发射端的信号波形。但为了提高接收的灵敏度输出的上下电平和发射端是反相的。红外接收头有很多的种类,一般都有电源引脚、信号输出引脚和接地引脚。根据发射端调制载波的不同应选用相应解调频率的接收头,本设计我们采用车载遥控发射器、一体化红外接收头1838来解调HT6221编码芯片的编码。其实物图如图3.5所示:图3.5(1)1838红外接收头图3.5(2)车载遥控发射器由于红外接收头内部放大器也很大的增益,这样很会容易引起干扰,因此在接收头的电源引脚上须加上大小在22uf以上的滤波电容。本设计的红外接收电路
22、如图3.6所示:图3.6红外接收电路图其中U6为1838红外接收头,电容C4为滤波电容,DOUT是解调信号的输出端,直接与单片机的P3.2引脚即INTo中断相连8解码的重点是怎样识别位0和位1,由于位0和位1的低电平脉宽相同但高电平脉宽不一样。所以需要根据高电平的宽度区别位0和位1,如果从056ms低电平信号过后延时了0.56ms以后如果能读到低电平信号说明该位为0反之那么为1,为了可靠起见延时必须介于0.56ms和1.12ms之间,否那么如果该位为0读到的己是下一位的高电平,因此我们取其中间值即(1.12ms+0.56ms)/2=0.84ms,当按下遥控器的按键后,便有红外脉冲编码信号发出,
23、经红外接收头接收解码后在其输出端输出检波整形后的方波信号,然后直接输入至单片机外部中断进行码信息的识别,单片机再调用相应子程序执行对应的操作。3.4 显示电路用LCDI602来显示数据,LCD液晶具有功耗低、显示内容丰富、清晰,显示信息量大,显示速度较快等特点。其中用滑动变阻器RVo来调节显示器的背光亮度。电路原理图如下列图3.7。图3.7显示电路原理图3.5 避障电路设计中采用超声波传感器进行测距避障。超声波传感器的原理是:超声波由压电陶瓷超声波传感器发出后,遇到障碍物便反射回来,然后再被超声波传感器接收。超声波传感器在避障的设计中被广泛应用。为了使用方便,便于操作和调试,采用集成超声波测距
24、模块HC-SRO4(如图3.8)O图3.8HC-SR04超声波测距模块HC-SRO4电气参数如表3.3所示,声波时序图如图3.9(1)所示,超声波检测原理图如图3.9(2)所示。表3.3HC-SR04电气参数图3.9(1)超声波声波时序图图3.9(2)超声波检测原理图3. 6主控电路单片机是控制单元的核心。起着控制小车所有运行状态的作用。单片机控制模块使用的是STC公司生产的STC89C52RC,使用该芯片很容易实现对其它模块的控制。通过对单片机STC89C52RC写入程序,可以方便的用软件来控制。图3.10单片机最小系统STC89C52RC单片机最小系统包括了晶振电路,电源电路以及复位电路,
25、其中复位电路的复位按键用于小车的复位。P1.3P1.7分别控制电机驱动。其它P口用外接控制小车的各种控制开关,Po口外接上拉电阻,可用于外接LCDI602。STC89C52RC单片机介绍:STC89C52RC是STC公司生产的一种低功耗、高性能CMoS8位微控制器,具有8K字节系统可编程FIaSh存储器。STC89C52使用经典的MCS-51内核,但做了很多的改良使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。主要特性如下:1 .增强型8051单片机,6时钟/机器周期和1
26、2时钟/机器周期可以任意选择,指令代码完全兼容传统8051。2 .工作频率范围:040MHz,相当于普通8051的080MHz,实际工作频率可达48MHz。3 .工作电压:5.5V3.3V万V单片机)/3.8V2.OV3V单片机)4 .片上集成512字节RAM。5 .用户应用程序空间为8K字节。6 .ISP(在系统可编程)/IAP在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RXD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片。7 .通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,PO口是漏极开路输出,作为总线扩展用时,不用加上拉电阻
27、,作为I/O口用时,需加上拉电阻。8 .具有看门狗功能。9 .具有EEPROM功能。10 .共3个16位定时器/计数器。即定时器TO、Tl,T211 .外部中断4路,下降沿中断或低电平触发电路,PowerDOWn模式可由外部中断低电平触发中断方式唤醒。12 .通用异步串行口(UART),还可用定时器软件实现多个UART。13 .工作温度范围:-40+85(工业级)/075(商业级)14 .PDIP封装。STC89C52单片机的引脚图如下列图3.10图3.11STC89C52引脚图第4章软件设计4.1 主程序模块的设计4.1.1 主程序的流程图本设计软件局部主要分为五大模块,分别为显示模块、超声
28、波模块、电机驱动模块、红外遥控模块、主程序模块。其中定时器0用来计数器溢出,超出测量范围,门用于检测脉宽信号;外部中断0用于红外遥控。在图4T主程序流程图中,开始时先是单片机的初始化,包括定时器初始化,外部中断的初始化,液晶的初始化。然后调用循迹子程序,小车正常行驶,如果遇到了障碍那么调用超声波模块子程序,判断前方30Cm处是否有障碍物,如果检测到左右障碍那么小车后退到平安距离后,再次正常行驶。图4.1主程序流程图4.1.2主程序的设计void main()ENl = EN2 = 1;cmg88 ();LCMInitO ; delay(5);DisplayListChar(O, Display
29、ListChar(O, 1,TMOD = 0x01;TMOD = 0x20;THl = 0x00;TLl = 0x00;/7使能左右电机关数码管/LCM初始化延时0,Range);/1602第一行显示range数组的内容table);1602第二行显示table数组的内容定时器0工作方式1,16位定时模式定时器1工作方式2,8位自动重装写0,表示溢出一次时间是256个机器周期ETl=1;开定时器1中断TRl=1;/启动定时器1ITO=1;设置外部中断O的跳转方式EXO=1;启动外部中断OTHOTLOETO=o;=0:=1;允许To中断EA=1;开总中断whiIe(I)StartModuleO;
30、whiIe(!RX);TRO=I;While(RX):TRO=O;Conut();AvoidO;if(IRok)IRcordproO;IRok=O;if(IRprook)启动测距模块等待开启计数计数并等待关计数计算距离避障判断脉宽是否检测完毕根据脉宽检测出4个字节的数据重新等待脉宽检测判断是否解码完成switch(IRcord2)case0x18:forward();前进delay(100O);break;case0x52:backward();delay(1000);break;后退case0x08:left_rapidly();delay(1000);break;左转case0x5A:ri
31、ght_rapidly();delay(100O);break;/7右转caseOxlC:stop();delay(2000);break;停止default:break;IRpro_ok=0;delay(65);4. 2电机驱动程序的设计5. 2.1电机驱动程序流程图图4.2电机驱动程序流程图电机驱动程序流程图如上图4.2,当接通电源开关时,小车那么调用默认前行程序,正常前行。超声波检测模块启用检测子程序。当检测到小车左侧有障碍物,那么小车调用右转子程序,使小车到达平安行驶距离,右转程序流程一样,不在赘述。如果小车检测到左右障碍,这时小车会短时间停车,然后调用后退子程序,使小车后退到平安距离
32、,再次回到正常行驶状态。如果后退到一定距离还未到达平安行驶距离,那么小车那么会再次调用相应子程序使小车到达正常行驶的距离。6. 2.2电机驱动程序的设计#includesbitINl=P2;sbitIN2=P3;sbitIN3=Pl6;sbitIN4=P7;sbitENl=Pl4;sbitEN2=Pl5;voiddelay(unsignedintz)unsignedintx,y;for(x=z;x0;X)for(y=114;y0;y);voidmain()ENl=1;EN2=1;INl=0;IN2=1;IN3=1;I、4=Q;delay(3000);ENl=0;EN2=0;delay(3000
33、):ENl=1;EN2=1:INI=1;IN2=0;IN3=0;IN4=1;delay(3000);EXl=0;EN2=0;delay(3000);ENl=1;EN2=1;INl=0;IN2=1;IN3=0;IN4=0:delay(3000):ENl=O;EN2=O;delay(3000);ENl=1;EN2=1;INl=1;IN2=1;IN3=1:IN4=O;delay(3000);ENl=O;EN2=O;whiIe(I);4. 3红外遥控程序的设计5. 3.1红外遥控模块流程图图4.3红外遥控模块流程图在图4.3红外遥控模块流程图中,通过遥控器发射控制信号,然后检测分析P3.2口接收到的信
34、号,从而控制小车的行驶状态。程序中为了缓和小车在行进中存在的惯性,所以每个状态切换时都会有一小段延时效果。6. 3.2红外遥控子程序设计voidtimer()interrupt1fIag=I;)voidStartModuleOTX=I;DelaylOus(2);TX=O;voidforward()left_motor_go;right_motor_go;voidbackward()leftmotorback;rightmotorback;voidstop()right_motor_stops;left_motor_stops;voidleft_rapidly()left_motor_back;
35、right_motor_go;)voidrightrapidly()leftmotor_go;right,motorback;4.4测距避障模块程序的设计4.4.1 测距模块流程图图4.4测距模块流程图测距模块流程图如图4.4,开始时单片机先给超声波测距模块Trig端发送一个高电平且这个高电平要持续20us,然后再给Trig端发送一个低电平,即启动了超声波测距模块,超声波测距模块会自动发送8个40KHZ的方波,等待是否有信号返回,如果有信号返回会通过IO口超声波测距模块的Echo端输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间,测试距离=(高电平时间*声速(340M/S)/2,单
36、位为mm。如果距离小于30cm.小车会后退并转向。4.4.2 测距模块程序设计voidConut(void)time=T110*256+TL0;THO=O;TLO=O;S=(float)(time*l.085)*0.17;if(S=7000)Iflag=l)flag=。;disbuff0=10;disbuff1=1O;disbuff2=10;disbuff3=10;elsedisbuffO=SlOOO;disbuffl=S%1000100;di三buff2=S%10010;disbuff3=S%10;4.5显示模块程序的设计4.5.1显示模块流程图图4.5显示模块流程图图4.5为显示模块流程图
37、,先是初始化LCD1602然后在液晶的第一行显示=RangeFinder=液晶第二列显示Distance:OO0.Omnr然后在主程序不断的调用显示程序刷新mm前面的数字。4.5.2显示程序设计unsignedcharReadStatusLCM(void)1.CM_Data=OxFF;1.CM_RS=0;DelaylOus(I);1.CMRW=1;DelaylOus(1);do1.CME=0;DelayIOus(1);1.CM_E=0;DelaylOus(1);1.CM_E=1;DelaylOus(1);while(LCM_Data&Busy);return(LCM_Data);voidWri
38、teDataLCM(unsignedcharWDLCM)ReadStatusLCMO;1.CMData=WDLCM;1.CMRS=1;DelaylOus(1);1.CMRW=O;DelayIOus(1);1.CM_E=O;DelaylOus(1);1.CM_E=O;DclaylOus(1);1.CM_E=1;DelaylOus(1);voidWriteCommandLCM(tinsignedcharWCLCM,BuysC)if(BuysC)ReadStatusLCMO;1.CM_Data=WCLCM;1.CMRS=O;DelaylOus(I);1.CMRW=O;DelaylOus(1);1.C
39、ME=O;DelaylOus(1);1.CO=0;DelaylOus(I);1.CM_E=1;DelaylOus(I);voidLCMInit(void)1.CMData=0;WriteCommandLCM(0x38,0);delay(5);WriteCommandLCM(0x38,0);delay(5);WrIteCommandLCM(0x38,0);delay(5);WriteCommandLCM(0x38,1);WriteCommandLCM(0x08,1);WriteCommandLCM(0x01,1);WriteCommandLCM(0x06,1);WriteCommandLCM(0
40、x0c,1);unsigned char DData)unsigned char code *DData)voidDisplayOneChar(unsignedcharX,unsignedcharYY&=0x1;X&=OxF;if(Y)X=0x40;X=0x80;WriteCommandLCM(X,1);WriteDataLCM(DData);voidDisplayListChar(unsignedcharX,unsignedcharY,unsignedcharListLength;1.istLength二0;Y&=0xl;X&=0xF;while(DDataListLength0x19)if
41、(XWINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。优点如下:1.KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能表达高级语言的优势。2与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。5. 2Protues软件Proteus软件是英国LabCenterElectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术)。它
42、不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比拟好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但己受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。ProteUS是英国著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HCI1、PIClO/12/16/182430DsPIC33.AVR、ARM、8086和MSP430等,2023年又增加
43、了CorteX和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。优点如下:1. Proteus可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。2. PrOteUS可提供的仿真仪表资源:示波器、逻辑分析仪、虚拟终端、SPl调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。3. 除了现实存在的仪器外,ProteUS还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器
44、仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。4. Proteus可提供的调试手段PrOteUS提供了比拟丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号我们首先单独调试各功能子程序,检验程序是否能够实现预期的功能,接口电路的控制是否正常等;最后逐步将各子程序连接起来总调。第六章实物安装与调试6.1器件清单表6.1器件列表器件类型器件名称数量(个)软件PR0TUES1KEIL1硬件电机2超声波探测模块1LCD16021底板1电路板1STC89C52单片机1单片机最小系统1开关有锁)1电机驱动模块1红外接收模块1LED灯1车轮电池盒2电池8遥控器13k电阻1杜邦线假设干扎带假设干6