• 534.00 KB
  • 2022-04-22 13:46:03 发布

巡迹广告机器人的硬件电路毕业论文.doc

  • 45页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'巡迹广告机器人的硬件电路设计毕业论文目录第1章引言11.1机器人概述11.2设计任务及设计目标11.3巡迹广告机器人总体设计方案2第2章主控模块设计32.1单片机的发展及介绍32.2 80C51单片机介绍32.3单片机的最小系统设计42.3.1  复位电路42.3.2晶振电路52.3.3电源电路设计5第3章巡迹系统的设计73.1巡迹系统的原理73.1.1检测点的组成与结构83.1.2光电三极管的工作原理83.1.3检测点的结构93.2光电检测比较电路103.2.1  LM339电压比较器的原理103.2.2检测信号比较11第4章步进电机驱动模块的设计134.1步进电机134.1.1步进电机的基本原理及类型134.1.2  步进电机的主要性能指标144.1.3步进电机的一些特点144.2步进电机驱动芯片L293154.2.1  L293的主要技术特点154.2.2 L293的引脚说明164.3  步进电机与单片机的接口电路18第5章液晶显示模块的设计195.1  SMG12864ZK液晶显示模块195.2  SMG12864ZK主要技术参数205.3  SMG12864ZK的显示步骤205.3.1显示资料RAM(DDRAM)20-ii- 5.3.2绘图RAM(GDRAM)205.4  SMG12864ZK与单片机硬件连接方式215.4.1与80C51并口方式215.4.2  与80C51串口方式21第6章语音录放设计236.1语音录放芯片ISD4004概述236.2ISD4004管脚功能说明及其与单片机的接口电路24第7章巡迹广告机器人的整体设计267.1巡迹广告机器人的硬件原理图267.2巡迹广告机器人的俯视图267.3  巡迹广告机器人的场景图277.4  巡迹广告机器人软件流程图28第8章结论30参考文献31致谢32附录33附录一:巡迹广告机器人的软件设计程序33附录二:巡迹广告机器人的硬件原理图44-ii- 第1章引言1.1机器人概述机器人是近年来迅速发展的一个重要的高技术领域。机器人技术涉及到精密机械、机构运动学、动力学、控制工程、计算机科学、传感器技术、信息处理、仿生学、人工智能等各个学科领域。机器人的出现及发展,己经使传统工业生产的面貌发生了根本性的变化,使人类的生产方式从手工作业、机械化、自动化跨入了智能化的新时代。机器人并不是简单意义上的代替人的劳动,而是综合了人的特长和机器特长的一种拟人的电子机械装置,既有人对环境状态的快速反应和分析判断能力,又有机器可以长时间持续工作、精确度高、抗恶劣环境的能力,从某种意义上说它也是机器的进化过程产物,它是工业以及非产业界的重要生产和服务性设备,也是先进制造技术领域不可缺少的自动化设备。随着计算机技术不断向智能化方向发展,机器人应用领域的不断扩展和深化以及在各种系统中的群体应用,机器人也在不断向智能化、小型化方向发展,以满足社会化、多样化、商品化、个性化的需求,并适应多变的非结构环境作业,向各种领域进军。机器人是一种智能化程度高,自由度数多,适应范围广,不仅具有视觉、听觉、触觉等智能,而且还具有一定的逻辑思维能力,能进行推理、判断,能理解命令、识别对象、感知环境,甚至还能随机应变,进行更为复杂的劳动,代替人的部分脑力劳动。目前,世界上己经有一定数量的智能机器人在从事各种不同的工作。它们可以搬运重物、生产产品、打扫卫生、打捞沉物;还可以登天入海,从事各种危险的工作;甚至进入到人们的家庭生活中,充当扮演各种特殊的角色。进入21世纪后,随着社会发展的进步趋势已出现了一种将机器人结合到从制造、娱乐到卫生保健的日常生活中。机器人不仅可以将人从危险的情况中解脱出来,实质上也就是让机器人作为人类的部分功能替代品来使用,而且机器人正朝着更高层次、与人类生活更加密切的方向发展。从而真正地体现出新世纪人类享受现代化科技成果的重要特色。1.2设计任务及设计目标本设计是设计一个具有巡迹及广告播放和广告显示功能的小型移动机器人,要求能在画有一定宽度的白线的深色(绿色)平面上按要求沿线平稳行走,路线设置为一段不交叉的曲线。按开关启动及停止,采用3个反射式光电传感器用来检测白线,用二个步进电机驱动轮子前进、后退、左转和右转。机器人设计采用前面一个万向轮,后面两个驱动轮的三轮支撑方式。-43- 在移动的同时,具有语音播放广告和液晶显示广告的功能,可以循环播放和显示几种广告。1.3巡迹广告机器人总体设计方案图1.1是巡迹广告机器人的硬件结构图,它由微控制器、液晶显示模块,语音录放芯片,传感器和电机驱动,步进电机部分组成。传感器液晶显示模块SMG12864ZK语音录放微控制器80C51电机驱动L293左步进电机ABM11A30右步进电机ABM11A30图1.1巡迹广告机器人的硬件框图巡迹广告机器人设计采用80C51单片机作为控制核心,用光电传感器做为机器人的巡迹检测部分,将检测信号输入80C51单片机中处理,由单片机输出相应的控制行走程序控制机器人的驱动系统,使机器人按照预定的路线行走。同时在行走的过程中,不断地检测机器人当前的位置状态,将此刻位置状态与理论正确状态相比较、判断,随时纠正机器人行走位置的偏差,确保机器人行走位置的准确性。在行走过程中的播放和显示广告的功能则由语音录放芯片和液晶显示模块来完成。-43- 第2章主控模块设计2.1单片机的发展及介绍单片机是单片微型计算机(Single-chipMicrocomputer)的简称,又可称为微控制器(Microcontroller)。它在一块芯片上集成了中央处理器(CPU)、只读存储器(ROM)、随时存储器(RAM)、定时器/计数器及各种I/O口。也就是说,一块单片机芯片,就相当于一台微型计算机。单片机由于具有体积小、功能强、性价比高的特点,被广泛应用到控制系统中,把单片机应用到控制系统中,可以取代原来的复杂的电子线路或数字电路构成的控制系统,可以通过软件控制来实现,并能够实现智能化,现在单片机控制的范畴无处不在,例如通信产品、家用电器、只能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛,它从根本上改变了传统的控制方法和设计思想,是控制技术的一次革命,是一座里程碑。随着半导体技术的飞速发展,单片机本身的设计中不断采用了一些新的抗干扰技术,使单片机的可靠性不断提高。除了选择抗干扰能力强的单片机外,单片机系统中其他辅助元件的可靠性也是非常重要的,一些抑制干扰的元器件的使用有助于提高系统的可靠性。单片机自身的抗干扰措施,可以提高系统的可靠性。 我国目前最常用的单片机有如下几家:Intel(MCS51系列MCS96系列)、Atmel(AT89系列MCS51内核)、Microchip(PIC系列)、Motorola(68HCXX系列)、Zilog(Z86系列)、Philips(8780MCS51内核)、Siemens(SAB80系列MCS51内核)、NEC(78系列)、Epson(系列)。在巡迹广告机器人设计中采用了Intel公司生产的80C51单片机,它对机器人信息的采集和处理,以及对各个部件的控制起到了关键的作用。2.2 80C51单片机介绍虽然目前单片机的品种很多,但其中最具代表性的当属Intel公司的MCS-51单片机系列。MCS-51以其典型的结构、完善的总线、SFR的集中管理模式、位操作系统和面向控制功能的丰富的指令系统,为单片机的发展奠定了良好的基础。MCS-51系列的典型芯片是80C51(CHMOS型的8051)。为此,众多的厂商都介入了以80C51为代表的8位单片机的发展,如Philips、Siemens(Infineon)、Dallas、ATMEL等公司,我们把这些公司生产的与80C51兼容的单片机统称为80C51系列。特别是在近年来,80C51系列又有了许多发展,推出了一些新产品,主要是改善单片机的控制功能,如内部集成了高速I/O口、ADC、PWM、WDT等,以及低电压、微功耗、电磁兼容、串行扩展总线和控制网络总线性能等。-43- 2.3单片机的最小系统设计单片机最小系统是单片机工作的最简单电路,它具有可靠的复位电路和稳定的晶振电路。单片机最小系统如图2.1所示。图2.1单片机80C51最小系统2.3.1  复位电路无论用户使用哪种类型的单片机,总要涉及到单片机复位电路的设计。单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第一个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位,复位电路设计的好坏,直接影响到整个系统工作的可靠性。许多用户在设计完单片机系统,并在实验室调试成功后,在现场出现了“死机”程序“ 走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。本设计采用按键复位电路。该电路除具有上电复位功能外,在单片机工作中若还需复位,只需按电路中的SW1键,此时电源VCC经电阻R15、R16分压,在RST端产生复位高电平。具体设计见图2.2。-43- 图2.2单片机按键复位电路2.3.2晶振电路晶振电路在单片机在工作时提供一个时钟信号,没有它电路不能工作。晶振选11.0592M,主要因为它能够准确地划分时钟频率,与UART(通用异步接收器/发送器)常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这个晶振都是准确的,因此常被使用。晶振的两个电容的作用:这两个电容叫晶振的负载电容,分别接在晶振的两个脚上和对地的电容,一般在几十皮发。它会影响到晶振的谐振频率和输出幅度。一般选用30PF的电容。设计中选用11.0952M、两个30PF的电容做晶振电路结构。其电路如图2.3所示:图2.3单片机的晶振电路2.3.3电源电路设计电源电路由滤波电路、集成稳压电路组成,为控制器提供稳定的+5V电源以及提高电源电路的抗干扰性。其电路如图2.4所示:-43- 图2.4电源电路接口电路说明:电容是旁路电容,作用是抑制电路中可能产生的自激振荡,尽量放在管脚根部,其中C12的电容大于C11的电容,是为了防止3处的电容漏电时,放电速度大于1处(输出端)的速度,导致稳压器倒置而损坏。-43- 第3章巡迹系统的设计3.1巡迹系统的原理巡迹系统是巡迹广告机器人的一种简单“ 视觉”,它能有效地保证机器人在运动过程中位置的准确性。它利用了光电检测原理,是光电检测在机器人中的应用。巡迹广告机器人能够沿着引导线条自主前行,它是通过车体前部横向排列的3个光传感器检测引导线条,发送信号到微控制器。微控制器对检测信号进行处理,并控制电机校正偏移量,从而实现巡迹行走。图3.1解释了巡迹广告机器人巡迹原理。如果位于中间的传感器检测到引导线条,传感器将发出“ 有线”信号,后轮的两台步进电机继续接通运转,驱动车体前行;如果除中传感器之外,左、右传感器中的任意一个检测到引导线条,则此传感器输出相应的信号,这时,该侧的驱动电机停止运行,另一侧的电机继续运行,以此达到校正方向的目的。在设计上,应使三个传感器相邻二个之间的距离小于白线的宽度,而左右传感器之间的距离应大于白线的宽度,以避免出现3个传感器都没检测到白线或者都检测到白线的可能性。引导线条左、中传感器同时感知左转前行中传感器感知右转右、中传感器同时感知图3.1巡迹广告机器人巡迹检测原理图巡迹系统的工作原理是:-43- 整个巡迹系统主要是由比较电路板和光发射接收板两大部分组成,光发射接收板上的发光二极管发光,照射到地面上后,不同颜色的地面对光反射性能的不同,从而反射光进入到光电三极管中的强弱也跟随着发生变化,导致光电三极管产生的光电流大小有差异,光电流通过比较电路板将模拟电流信号经比较器比较后,转换为数字电压信号,电压信号经过放大器放大与整流器整流后,分别输入到单片机中,在单片机中将输入信号与理论信号(即阈值)进行比较,从而判断机器人的当前位置状态。由于每个光电管的物理特性不一致,所以为了保证可靠性,在采样时,先分别对每个光电管在深色(墨绿色)区域进行采样,然后再采集浅色(白色)区域的电平值,这两个采样值经A/D转换后的平均数即为参考电压值。但是一次采样是远远不够的,还需要采样多次,然后再取他们的平均值作为最终的参考电压值。计算公式如下:V1=1/2(x1+y1),V2=1/2(x2+y2)……Vn=1/2(xn+yn)(3.1)Value=1/n(V1+V2……+Vn)(3.2)其中x1…xn为深色区域某次的采样值, y1…yn为浅色区域某次的采样值,V1…Vn为某次深浅区域采样平均值,Value为最终的平均值即阈值。3.1.1检测点的组成与结构每一块光发射接收板就是机器人巡迹系统的一个检测点。对每一个检测点来说,它是由3个白发红的高亮度发光二极管(LED)和一个NPN型光电三极管组成。将三个检测点即三个反射式光电传感器安置于车体的前面,巡迹所用传感器安装位置如图3.2所示,A、C传感器在白线两测用于检测是否跑偏,B传感器在白线范围内用于辅助检测,以确保小车机器人随时在以如图3.2 的状态运行。传感器状态决定下一步的运行方式,具体可参见程序设计中的相关内容。反射式传感器的原理图如图3.3 所示。引导线发射接收反射平面CBA主动轮万向轮图3.2巡迹传感器安装位置示意图图3.3反射式传感器原理图3.1.2光电三极管的工作原理光电三极管是一种相当于在基极和集电极之间接有光电二极管的普通三极管,结构与一般晶体管相类似,在检测单元中发挥着极其重要的作用,主要完成对接收光的信号转换,即光电效应,也就是将接收到的光信号转化为电流信号。其工作原理是:-43- 当光照射到集电结的基极区时,产生电子一空穴对,由于集电结反向偏置,而使内电场增加。这样电子扩散到结区时,很容易漂移到集电极中去,在基极留下的空穴,促使基极对发射极的电位升高,更有利于发射集中的电子大量经过基极而流向集电极,从而形成光电流。随着光照的增强,光电流也随之增加。从三极管的原理中可以得出:若光电三极管的放大倍数为则:(3.3)(3.4)所以光电三极管具有:将光信号转换成电信号,起到一个光电二极管的作用;同时它又起到一般晶体三极管中集电结的作用,使光电流得以放大。基于此两个作用可知,光电三极管比光电二极管的灵敏度要高得多。3.1.3检测点的结构由于设定机器人行走的地面为墨绿色的地板胶,在上粘有白色的指示线。根据光学原理,红色光在绿色地面上的反射强度最低,采用红色光照射可以取得最佳的对比度,因此选用白发红的高亮度发光二极管。2120度1图3.4检测点的组成检测点的组成如图3.4所示,图中1为发光二极管,2为光电三极管。3个白发红的发光二极管成均布排列在光电三极管的周围,离光电三极管约6mm,调整每一个发光二极管的角度,使它们发出的光线会聚在地面上形成一个光斑,而其光斑的中心点又在光电三极管的正下方。这样安排光路避免了地面的镜面效应,即不会出现由发光二极管发出的光经地面镜面反射而进入光电三极管内的情况,保证了地面上形成的漫反射光能够有效地到达光电三极管。同时为了防止检测点受外界自然光线的影响,将每一个检测点用一个圆形的黑色围罩进行保护,黑色围罩的上端固定在检测点的安装板上,下端离地面约5mm-43- 。3个白发红的高亮度发光二极管发出的红色光照射到地面上,产生漫反射,反射光进入光电三极管后,光电三极管产生光电流,其产生光电流的能力随地面发射光的强弱而呈显著的变化。因此,由于地面引导白线上的光强明显大于周围的其他颜色(如绿色)的光强,光电三极管在白线上方产生的光电流就明显大于在非白线处产生的光电流,每个光电三极管的光电流输出信号都通过比较器进行处理,通过调整比较器的比较基准电压,可确定光电三极管是否处于白线的上方,达到检测的目的。3.2光电检测比较电路在机器人的检测系统中,检测的模拟信号必须转化为数字信号后才能进入到AT89S52单片机中,信号的转化是由LM339比较器电路完成。我们可以根据光电传感器的参数或者初次改进以后所得到的实验结果调节可变电阻去设定LM339比较器的参考电压。3.2.1  LM339电压比较器的原理VDVrefVIVO-VO+VOOVIVrefVOLM339比较器是一种用来比较输入信号V1和参考电压Vref的电路,图3.5(a)图为其基本电路。参考电压Vref加于运放的反相端,它可以是正值,也可以是负值,图中给出的为正值,而输入信号V1则加于运放的同相端。这时,运放处于开环工作状态,具有很高的开环电压增益。电路的传输特性如图3.5(b)图所示,当输入信号的电压V1小于参考电压Vref时,即差动输入电压VD=VI一Vref<0时,运放将处于负饱和状态,V0=V0-;当输入信号电压V1略大于参考电压Vref时,即VD=VI一Vref>0,运放立即转入正饱和状态,Vo=V0+,如图3.5(b)图传输特性曲线中的实线所示,它表示V1在参考电压Vref附近有微小的减小时,输出电压将从正的饱和值V0+过渡到负的饱和值Vo-;若有微小的增加,输出电压又将从负的饱和值Vo-过渡到正的饱和值V0+。如果将参考电压Vref和输入信号电压V1的接入端进行互换,即Vref接同相端,而V1接到反相端,则可得到比较器的另一条传输特性,如图3.5(b)图传输特性曲线中的虚线所示。若参考电压Vref=0,即比较器的反相端直接与地相连,则输入信号电压Vl在每次过零时,其输出就要产生突然地变化。这种过零比较器的传输特性曲线就相当于将图3.5(b)图中的曲线平行移动到坐标原点处。由于比较器的以上性质,特将其用于模拟信号的转换,即将模拟信号转换为数字信号。常用于光电检测方面,便于计算机对数据的快速批量处理。(a)电路图(b)传输特性图图3.5LM339电压比较器-43- 3.2.2检测信号比较图3.6中,仅表示出了机器人前寻线系统第一个检测信号的电压比较原理图,其它各路的检测信号电压比较原理图均与此相同。各符号代表的元件如下:U21A--LM339电压比较器;U22A一7407正向驱动器;R11一可调电阻(0-10KΩ);D1,D2,D3一发光二极管;Q1一光电三极管;SM1—施密特同向触发器。图3.6 检测信号比较原理图图3.6中,仅表示出了机器人前寻线系统第一个检测信号的电压比较原理图,其它各路的检测信号电压比较原理图均与此相同。各符号代表的元件如下:图中左侧部分是巡迹系统的检测探头电路,在VCC在-5伏的电源作用下D1,D2,D3发光二极管发出高亮度的红光,通过地面的反射,反射光被Q1光电三极管接收,从而产生光电流,光电流的大小由进入到光电三极管Q1中反射光的强弱决定。因此在光电三极管Q1的两端就存在电位差,若进入Q1的反射光越强,产生的光电流就越大,则Q1两端的电位差值就越小;反之,Q1两端的电位差值就越大。随着机器人的不断前进,反射光的连续变化,Q1两端的电位差值就跟随发生变化,成为一个动态的模拟电压信号。光电三极管Q1产生的电压模拟信号与LM339比较器的反向端4脚相连,而LM339比较器的正向端5脚与一个可调电阻R11连接,即相当于可调电阻R11提供了一个参考标准电压,且在调试的过程中,调整R1-43- 1的阻值的变化,就可以选择一个最佳的电阻值,使LM339电压比较器的输出值2脚为一个比较敏感的数字变化值,即当机器人的检测点在白色指示线上和墨绿色的区域两种状态时,电压比较器的输出值应该是两种差别比较大的数字值,若一种为高电平值5V,则另一种就为低电平值,再经施密特同向触发器对信号进行整形,输入到单片机中。因此,用二进制数1来表示相应的传感器检测到白线,用0来表示相应的传感器未检测到白线,通过分别对三个传感器的采样,由此判断机器人的行走状态,根据相应的程序改变步进电机脉冲以控制其运转,使机器人能沿着设定的白线行走。电压比较器LM339通过对输入电压的比较,从2脚输出一个电压值,经过正向驱动器7407驱动、放大,再经施密特同向触发器整形进入到80C51单片机中,就完成了检测系统的采集信号的输入。-43- 第4章步进电机驱动模块的设计4.1步进电机步进电机本质上是一种低速电机,被设计用来实现精确运动,一旦到达指定的位置就能保持在那里。步进电机的最大工作转速为50~100r/min,这对于机器人来说恰好也是最合适的工作转速。在同等功率的条件下步进电机的尺寸显的比直流电机要大且笨重。但步进电机的输出转矩通常也不是十分强劲,因此不能用于质量很大的机器人。4.1.1步进电机的基本原理及类型步进电机其实是轮流的从一个特定的位置转到下一个特定位置来实现旋转的。旋转一周所需要行进的次数是步进电机的一项技术指标,通常称之为步数或者步距角,很多个绕组在机壳内被规则的有序的排列就是为了转子能够由一个位置精确的转到下一个位置。绕组(分别设为A、B、C、D)被安装在定子(机壳)上。定子的电极加上电压后,转子将被定子上相反的磁极相吸引而转动。转子是由大量的永磁体组成的,当定子上的绕组通上电流后,这些永磁体将趋向于和绕组对准成一条直线。转子上突出的磁极称为齿,转子最重要的特征就是所具有的齿数。沿着机壳圆周,垫子的绕组被重复的,等间距的以交错的形式布置。具体怎么排列绕组取决于步进电机的结构形式。步进电机有两种类型:一种是单极性步进电机,通常也称为四相步进电机;另外一种为双极性,通常也称为两相步进电机。单极性步进电机有四对绕组交互的布置在机壳上,而双极性步进电机只有两对绕组,对称的布置着。对于一个单极性步进电机而言,其线圈两端的电压方向是不变的,这也正是为什么称之为单极性的原因。而双极性步进电机则是通过不断改变其绕组两端的电压方向来实现转动的,双极性便如此得来。步进电机旋转一周需要的步数取决于转子上的永磁体的数量,也就是转子的齿数。齿数越多,意味着旋转一周需要的步数越多,相应的分辨率也越高。同样尺寸的步进电机,双极性与单极性比较,功率既强劲,速度又快。因为双极性步进电机每次可以使用一半数量的绕组,也就是单极性步进电机每次所能的绕组数量的两倍。因为双极性步进电机每次使用两倍于单极性步进电机的绕组,因而产生更大的磁场。然而,双极性步进电机要求其绕组两端的电压可以变化方向,这使的驱动器的电路要复杂得多。而单极性的驱动电路只要每一个绕组一个三极管就可以驱动。由于驱动器电路要相对简单,所以单极性步进电机是机器人最为常用的步进电动机。对于本设计制作的巡迹广告机器人,为使达到更好的控制精度,采用双极性步进电机。-43- 4.1.2  步进电机的主要性能指标要步进电机平稳的转动,其步距角最大不能超过3.6°,否则从视觉效果上都可以观察到冲击。而原则上步角大可到30°,小可到0.9°。步进电机的主要特性指标是启动转矩、保持转矩和加速转矩。启动转矩是指步进电机从一个齿位转到下一个齿位时所具有的转矩,保持转矩是指步进电机在静止状态或者处于某工作状况点时维持在该平衡位置的能力。加速转矩通常具有最大值,并取决于驱动脉冲的频率。此外,驱动电压和绕组电阻的大小也对其施加影响。步进电机的性能指标参数如下表4.1所示:表4.1步进电机的性能指标参数参数定义电压额定电压(步进电机设计的正常工作电压)绕组阻抗单相绕组的直流阻抗电流绕组最大安全电流步数7.5°=48步,1.8°=200步动态力矩步进电机转动输出的最大力矩4.1.3步进电机的一些特点1)步进电机需加驱动电路,其驱动信号输入端为脉冲信号,若加入适当的脉冲信号,步进电机的转子就以一定的角度(称为步角)转动。2)步进电机的步进角一般为1.8°,即200步完成一圈。3)步进电机具有瞬间启动与急速停止的特性。4)改变励磁顺序,可以改变步进电机的旋转方向。5)一般步进电机的精度为步进角的3-5%,且不累积。6)步进电机外表允许的最高温度。步进电机温度过高首先会使电机的磁性材料退磁,从而导致力矩下降乃至于失步,因此电机外表允许的最高温度应取决于不同电机磁性材料的退磁点;一般来讲,磁性材料的退磁点都在摄氏130度以上,有的甚至高达摄氏200度以上,所以步进电机外表温度在摄氏80-90度完全正常。7)步进电机的力矩会随转速的升高而下降。当步进电机转动时,电机各相绕组的电感将形成一个反向电动势;频率越高,反向电动势越大。在它的作用下,电机随频率(或速度)的增大而相电流减小,从而导致力矩下降。-43- 8)步进电机低速时可以正常运转,但若高于一定速度就无法启动,并伴有啸叫声。    步进电机有一个技术参数:空载启动频率,即步进电机在空载情况下能够正常启动的脉冲频率,如果脉冲频率高于该值,电机不能正常启动,可能发生丢步或堵转。在有负载的情况下,启动频率应更低。如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低,然后按一定加速度升到所希望的高频(电机转速从低速升到高速)。4.2步进电机驱动芯片L293L293是著名的SGS公司的产品,内部包含4通道逻辑驱动电路。其后缀有B、D、E等,除L293E为20脚外,其它均为16引脚。其额定工作电流为1A,最大可达1.5A,Vss电压最小4.5V,最大可达36V;Vs电压最大值也是36V,但经过我的实验,Vs电压应该比Vss电压高,否则有时会出现失控现象。4.2表是其使能、输入引脚和输出引脚的逻辑关系。表4.2L293使能、输入引脚和输出引脚的逻辑关系ENA(B)IN1(IN3)IN2(IN4)电机运行情况HHL正转HLH反转H同IN2(IN4)同IN1(IN3)快速停止LXX停止4.2.1  L293的主要技术特点1)L293小型电机驱动芯片,工作电压4.5-36V,最大驱动电流1A。2)两个直流饲服电机接口,一个四相步进电机接口。3)强电和弱电采用光耦隔离,最大限度地避免了MCU受电磁干扰。4)两个H桥驱动器,可方便实现脉宽调制(PWM)。5)采用锁紧式接线柱,方便连接直流电机和电机电源。6)电机驱动与逻辑控制分开供电,可以使用3.3V或5V系统控制。7)芯片内部没有过流保护,使用时注意电机电流不能过大。-43- 4.2.2 L293的引脚说明L293的引脚见图4.1,功能说明见表4.3。图4.1L293引脚图表4.3L293引脚功能说明引脚符号功能说明3,6OUT1,OUT2接电机电枢绕组11,14OUT3,OUT4接电机励磁绕组2,7,10,15IN1,IN2,IN3,IN4电机的控制信号8VS驱动电机电源16Vcc输入信号参考电源4,5,12,13GND接地1,9EN1,EN2使能信号-43- L293D采用16引脚DIP封装,其内部集成了双极型H-桥电路,所有的开量都做成n型。这种双极型脉冲调宽方式具有很多优点,如电流连续;电机可四角限运行;电机停止时有微振电流,起到“动力润滑”作用,消除正反向时的静摩擦死区:低速平稳性好等。L293D通过内部逻辑生成使能信号。H-桥电路的输入量可以用来设置马达转动方向,使能信号可以用于脉宽调整(PWM)。另外,L293D将2个H-桥电路集成到1片芯片上,这就意味着用1片芯片可以同时控制2个电机。每1个电机需要3个控制信号EN12、IN1、IN2,其中EN12是使能信号,IN1、IN2为电机转动方向控制信号,IN1、IN2分别为1,0时,电机正转,反之,电机反转。选用一路PWM连接EN12引脚,通过调整PWM的占空比可以调整电机的转速。选择一路I/O口,经反向器74HC14分别接IN1和IN2引脚,控制电机的正反转。L293内部模块见图4.2所示。图4.2L293内部模块图-43- 4.3  步进电机与单片机的接口电路图4.3步进电机和80C51单片机的接口电路这里用的电机是双极性步进电机,双极性步进电机可以采用三种步进方式:单拍,双拍和半拍方式。单拍是指每次仅给一个绕组通电,结果导致转子旋转,并运动到转子永磁体与具有相反极性的绕组对齐的位置。双拍方式同时给两个绕组通电,这样就导致转子旋转,并在永磁体到达两个通电绕组的中间位置点时平衡。双拍方式的优点是比单拍方式多获得41.4%的输出力矩,不过代价是要花费后者两倍的能量。半拍方式工作时则让两个绕组通电与单个绕组通电方式交替的进行,半拍方式的输出力矩比双拍方式小。本设计采用了半拍方式。步进电机的和80C51单片机的接口电路如图4.3。步进电机驱动芯片的控制脉冲由单片机输入,其驱动电压及步进电机的工作电压均为12V。-43- 第5章液晶显示模块的设计液晶显示器(LCD)具有工作电压低、微功耗、显示信息量大和接口方便等优点,现在已被广泛应用于计算机和数字式仪表等领域,成为测量结果显示和人机对话的重要工具。液晶显示器按其功能可分为三类:笔段式液晶显示器、字符点阵式液晶显示器和图形点阵式液晶显示器。前两种可显示数字、字符和符号等,而图形点阵式液晶显示器还可以显示汉字和任意图形,达到图文并茂的效果,其应用越来越广泛。本设计采用SMG12864ZK液晶显示模块作为巡迹广告机器人的广告显示模块。5.1  SMG12864ZK液晶显示模块SMG12864ZK液晶显示模块是128×64点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置国标GB2312码简体中文字库(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。可与CPU直接接口,提供两种界面来连接微处理机:8位并行及行两种连接方式。具有多种功能:光标显示、画面移位、睡眠模式等。SMG12864ZK引脚说明如表5.1。表5.1SMG12864ZK引脚功能说明引脚名称方向说明引脚名称方向说明1VSS-电源负极11DB4I/O数据42VDD-电源正极(+5v)12DB5I/O数据53VO-LCD偏压输入13DB6I/O数据64RS(CS)H/L数据/命令选择端14DB7I/O数据75R/WH/L读/写控制信号15PSBH/LH:并行数据模式L:串行数据模式6E(SCLK)H,/L使能信号16NC-空脚7DB0I/O数据017/RSTH/L复位端(L:复位)8DB1I/O数据118NC-空脚9DB2I/O数据219BLA-背光源极10DB3I/O数据320BLK-背光源极-43- 5.2  SMG12864ZK主要技术参数SMG12864ZK主要技术参数见表5.2。表5.2SMG12864ZK主要技术参数显示容量工作电压工作电流背光源工作电流点尺寸模块最佳工作电压背光源颜色128X64点阵4.8~5.2V4.0mA(5.0V)<150.0mA0.44X0.60(WXH)mm5.0V黄绿(5.0V)5.3  SMG12864ZK的显示步骤5.3.1显示资料RAM(DDRAM)显示资料RAM提供64×2个位元组的空间,最多可以控制4行16字(64个字)的中文字型显示,当写入显示资料RAM时,可以分别显示CGROM、HCGROM与CGRAM的字型;ST7920A可以显示三种字型,分别是半宽的HCGROM字型、CGRAM字型及中文CGROM字型, 三种字型的选择,由在DDRAM中写入的编码选择,在0000H—0006H的编码中将自动的结合下一个位元组,组成两个位元组的编码达成中文字型的编码(A140—D75F),各种字型详细编码如下:1)显示半宽字型:将8位元资料写入DDRAM中,范围为02H—7FH的编码。2)显示CGRAM字型:将16位元资料写入DDRAM中,总共有0000H,0002H,0004H,0006H四种编码。3)显示中文字形:将16位元资料写入DDRAMK,范围为A1A1H—F7FEH的编码。5.3.2绘图RAM(GDRAM)绘图显示RAM提供64×32个位元组的记忆空间,最多可以控制256×64点的二维绘图缓冲空间,在更改绘图RAM时,先连续写入水平与垂直的坐标值,再写入两个8位元的资料到绘图RAM,而地址计数器(AC)会自动加一;在写入绘图RAM的期间,绘图显示必须关闭,整个写入绘图RAM的步骤如下:1)关闭绘图显示功能;2)先将垂直的坐标(Y)写入绘图RAM地址;3)再将水平的位元组坐标(X)写入绘图RAM地址;4)将D15——D8写入到RAM中;5)将D7——D0写入到RAM中;-43- 6)打开绘图显示功能。5.4  SMG12864ZK与单片机硬件连接方式5.4.1与80C51并口方式5V5VP3.0P1.0P1.7P3.180C51P3.2SMG12864ZKDB0BLKEBLARSTYR/WPSBRSDB7SMG12864ZK液晶显示模块与80C51单片机的并口连接方式如图5.1所示。图5.180C51并口连接方式5.4.2  与80C51串口方式SMG12864ZK液晶显示模块与80C51单片机的串口连接方式如图5.2所示。P3.2P3.1P3.080C515V5VPSBBLARSTYCSSTDSCLKBLKSMG12864ZK图5.280C51串口连接方式-43- 串口与并口的传输方式不一样,串行口只能用1条线传输一位数据,每次传输一个字节的一位;并口是可以并发数据地,可以同时传输多位。并行口由于同时传输更多的信息,速度明显高于串行口,因此,巡迹广告机器人的广告显示功能部分设计采用与单片机80C51的并口方式。-43- 第6章语音录放设计录放是指利用数字技术对语音信号进行采集、处理、并且在一定存储设备中进行存储,并可在需要时进行输出的过程。由于相对于模拟设备来说,数字设备易于集成、小型化、成本更低,同时更为稳定,且操作更为直接、方便,使得数字语音录放系统目前在各种领域中都得到了广泛的应用。例如监控环境中使用的语音采集系统;再如家庭或学校中使用的语音复读机等,都可看作是数字语音录放系统的典型应用。然而目前一般的数字语音录放系统中,对语音只是进行简单的采集、存储和播放;虽然可以较大程度上保证语音的保真度,但过多的语音数据会造成对大量存储设备的需求。对于大型系统,可通过采用大容量的硬盘、甚至大规模的磁盘阵列来解决;但是对于小型的设备,例如便携式的语音复读机,由于容量有限,则不能采用同样的方法。随着科技的进步和社会的发展,现代电子产品设计越来越注重产品的易使用型,人机界面一定要良好。声音、图象等做为人类交往的最重要手段,也被体现在电子产品设计中。采用一颗语音芯片,让产品开口说话,可以起到强化宣传品牌、指导用户使用、故障紧急提示、娱乐等功能,使产品设计新颖实用、先声夺人、出奇制胜。不同的产品功能设计和市场需求,在设计时必须正确选用不同的语音芯片或组件,以达到最佳的性价比。 本设计采用了ISD4004语音录放芯片来实现巡迹广告机器人的录放功能。6.1语音录放芯片ISD4004概述ISD4004系列工作电压3V,单片录放时间8至16分钟,音质好,适用于移动电话及其他便携式电子产品中。芯片采用CMOS技术,内含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存贮陈列。芯片设计是基于所有操作必须由微控制器控制,操作命令可通过串行通信接口(SPI或Microwire)送入。芯片采用多电平直接模拟量存储技术,每个采样值直接存贮在片内闪烁存贮器中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和"金属声"。采样频率可为4.0,5.3,6.4,8.0kHz,频率越低,录放时间越长,而音质则有所下降,片内信息存于闪烁存贮器中,可在断电情况下保存100年(典型值),反复录音10万次。ISD4004芯片的引脚如图6.1所示。其内部录音时,外部音频信号通过话筒输入和线路输入方式进入,话筒可采用普通的驻极体话筒,在芯片内话筒放大器带自动增益调节,由外接阻容件设定响应速度和增益范围。若信号幅度100mv左右即可直接进入线路输入端,音频信号由内部滤波器、采样电路处理后以模拟量方式存入专用快闪存储器中。由于快闪存储器是非易失器件,断电等因素不会使存储的语音丢失。放音时芯片内读逻辑电路从FLASHRAM中取出信号,-43- 图6.1ISD4004引脚图经过一个低通滤波器送到功率放大器中,然后直接推动外部的喇叭放音。厂家要求外接喇叭为16欧姆,实际试验用8-16欧姆均可。6.2ISD4004管脚功能说明及其与单片机的接口电路ISD4004管脚功能说明:电源:(VCCA,VCCD)为使噪声最小,芯片的模拟和数字电路使用不同的电源总线,并且分别引到外封装的不同管脚上,模拟和数字电源端最好分别走线,尽可能在靠近供电端处相连,而去耦电容应尽量靠近器件。地线:(VSSA,VSSD)芯片内部的模拟和数字电路也使用不同的地线。同相模拟输入(ANAIN+)这是录音信号的同相输入端。输入放大器可用单端或差分驱动。单端输入时,信号由耦合电容输入,最大幅度为峰峰值32mV,耦合电容和本端的3KΩ电阻输入阻抗决定了芯片频带的低端截止频率。差分驱动时,信号最大幅度为峰峰值16mV,为ISD33000系列相同。反相模拟输入(ANAIN-)差分驱动时,这是录音信号的反相输入端。信号通过耦合电容输入,最大幅度为峰峰值16mV。音频输出(AUDOUT)提供音频输出,可驱动5KΩ的负载。片选(SS)此端为低,即向该ISD4004芯片发送指令,两条指令之间为高电平。串行输入(MOSI)此端为串行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到本端,供ISD输入。串行输出(MISO)ISD的串行输出端。ISD未选中时,本端呈高阻态。-43- 串行时钟(SCLK)ISD的时钟输入端,由主控制器产生,用于同步MOSI和MISO的数据传输。数据在SCLK上升沿锁存到ISD,在下降沿移出ISD。中断(/INT)本端为漏极开路输出。ISD在任何操作(包括快进)中检测到EOM或OVF时,本端变低并保持。中断状态在下一个SPI周期开始时清除。中断状态也可用RINT指令读取。OVF标志----指示ISD的录、放操作已到达存储器的未尾。EOM标志----只在放音中检测到内部的EOM标志时,此状态位才置1。行地址时钟(RAC)漏极开路输出。每个RAC周期表示ISD存储器的操作进行了一行(ISD4004系列中的存贮器共2400行)。该信号175ms保持高电平,低电平为25ms。快进模式下,RAC的218.75μs是高电平,31.25μs为低电平。该端可用于存储管理技术。外部时钟(XCLK)本端内部有下拉元件。芯片内部的采样时钟在出厂前已调校,误差在+1%内。商业级芯片在整个温度和电压范围内,频率变化在+2.25%内。工业级芯片在整个温度和电压范围内,频率变化在-6/+4%内,此时建议使用稳压电源。若要求更高精度,可从本端输入外部时钟。由于内部的防混淆及平滑滤波器已设定,故上述推荐的时钟频率不应改变。输入时钟的占空比无关紧要,因内部首先进行了分频。在不外接地时钟时,此端必须接地。自动静噪(AMCAP)当录音信号电平下降到内部设定的某一阈值以下时,自动静噪功能使信号衰弱,这样有助于养活无信号(静音)时的噪声。通常本端对地接1mF的电容,构成内部信号电平峰值检测电路的一部分。检出的峰值电平与内部设定的阈值作比较,决定自动静噪功能的翻转点。大信号时,自动静噪电路不衰减,静音时衰减6dB。1mF的电容也影响自动静噪电路对信号幅度的响应速度。本端接VCCA则禁止自动静噪。语音录放芯片ISD4004与单片机80C51的接口电路如图6.2所示。图6.2ISD4004与80C51单片机的接口电路-43- 第7章巡迹广告机器人的整体设计7.1巡迹广告机器人的硬件原理图巡迹广告机器人的硬件原理图见附录二。从电路图中,可以很显然的得出一个结论:在本论文的前面几章讲述了微控制器的应用、光电传感器的原理、步进电机的使用、液晶显示和语音录放等等知识,巡迹广告机器人就是上述诸多技术的集成。7.2巡迹广告机器人的俯视图巡迹广告机器人的俯视图如图7.1所示。7920141618171100615283151219813114图7.1巡迹广告机器人的俯视图-43- 巡迹广告机器人的俯视图说明见表7.1。表7.1巡迹广告机器人的俯视图的说明序号名称序号名称1右传感器11喇叭2中传感器12电池盒3左传感器13液晶显示屏4录、放控制键(/RE)14右轮5停止键(/CE)15左轮6]第一段控制键(/M1)16复位按扭7第二段控制键(/M2)17左步进电机8第三段控制键(/M3)18右步进电机9第四段控制键(/M4)19启动按扭10麦克风20万向轮7.3  巡迹广告机器人的场景图巡迹广告机器人的场景要求:地面为墨绿色的地板胶,在上粘有白色的指示线,路线设置为一段不交叉的曲线,线宽略大于两相邻传感器的距离,如图7.2所示。小车在启动时,中间传感器应正对白线。起点终点小车图7.2 巡迹广告机器人的场景图-43- 在实际设计中,出于对一些复杂场景的考虑,可对机器人做如下一些改进:1)当划定的白线小于一定的宽度时,即小于机器人相邻二传感器之间的距离时,可增加机器人的检测点,检测点的布局可做不规则排列,使同时多传感器能检测到白线,以提高机器人识别路线的检测准确度跟稳定性,但增加机器人的检测点对单片机的开销较大,单片机要花大量时间用来检测及处理收集来的信息,影响巡迹的效率,而且这样也增加了硬件安装和编制软件的复杂程度。当白线宽度较宽时,三个传感器都能检测到白线,当某一个传感器不能检测到白线时,即可做相应的左转或者右转,这种情况一般较好解决。2)步进电机的速度控制,我们可以改变步进电机的输入脉冲的个数或调节脉宽实现对步进电机的速度控制,即当行走为直线时,可加快其行走速度,当在一些比较弯曲的地方需要做大幅度的方向调节时,速度就不能过大,否则很容易冲出直线,使三个传感器都未能检测到白线而不能回到巡迹状态。此时,当单片机控制转弯时,即当左传感器或右传感器检测到白线时,要求一步进电机的速度要求很慢甚至停止,这都可以改进单片机的左转或右转程序来控制。3)在实际巡迹状态下,当出现白线相交叉的情况时,由于行走曲线在一定距离其弯曲程度不会很大,可以适当设定步进电机的速度,使当其三传感器都检测到白线时,由于惯性的作用或对步进电机加一延时脉冲,使其冲出交叉区域。继续沿原曲线行走。4)当指定白线设定有终点或当机器人冲出白线时,可以设定其自动停止或后退。7.4  巡迹广告机器人软件流程图巡迹广告机器人软件流程图如图7.3所示。图7.3说明:在本设计中,我们把机器人巡迹部分跟广告播放和显示部分做为二个分别独立又受单片机同步控制的子系统,巡迹功能跟广告显示功能之间不相互影响,按键起动之后分别可实现其功能。单片机上电后,进行初始化设置,设置完成后,开始液晶显示和播放广告,在显示和播放广告的同时,机器人巡迹系统进行巡迹检测,传感器检测顺序为右、左、中。若右传感器检测到白线则右转;若左传感器检测到白线,则左转;若只有中传感器检测到白线,则前行;若三传感器都没检测到白线,此时机器人就停止行动。在机器人右转或左转或前行后检测定时器是否达到15秒,达到15秒则显示和播放下一段广告,再进行巡迹检测;若没达到15秒就继续巡迹检测。有关巡迹广告机器人的具体软件设计程序见附录一。-43- 初始化右传感器是否检测到白线语音播放液晶显示停止是否达到15秒播放下一段语音显示下一段广告开始YES结束左传感器是否检测到白线中传感器是否检测到白线NONONO右转左转前行NOYESYESYES图7.3巡迹广告机器人软件流程图-43- 第8章结论经过近四个月的精心准备,本次毕业设计任务――巡迹广告机器人的设计――已经顺利完成了。毕业设计是一个很重要的环节,是对大学四年所学知识的检验,是一项严谨细致的工程。,它要求我们去阅读大量的有关书籍,综合归纳每一部分的内容,不容有错。在巡迹广告机器人的具体设计中,并不是单片机知识的简单应用设计,它将单片机、传感器、显示器等多方面的知识很好的综合在了一起,不仅要考虑实际应用场景,而且对单片机的开销及各元器件的选择与接口电路的设计都是很需要考虑的。巡迹广告机器人是在巡迹机器人的基础上加上广告显示,语音录放的功能。巡迹机器人是利用位于车体前端的光电传感器来检测白色引导线条,微控制器对检测信号进行处理并控制电机校正偏移量。左右车轮独立驱动,控制小车的方向使之沿引导线自主行走。巡迹广告机器人采用了液晶显示和语音录放功能,其中液晶显示部分不仅可以显示广告,也可做为机器人探测数据的显示,语音录放部分还可以随个人爱好自己录放音乐,是广告娱乐与实际应用的结合。在设计中,我查阅了大量关于单片机应用的文献资料,也通过网络查寻到许多相关信息,从中我学到了大量的理论和应用知识。同时,设计中也存在很多的不足,如对一些比较复杂的场景下怎样提高机器人的运动性能、怎样提高机器人的巡迹精度、对实际应用的参数设置等都缺乏考虑,希望在将来能加以完善。机器人技术永远是一门崭新的学科,会随着科学技术的进步而不断发展。相信在不久的将来,机器人将走进我们平常百姓家,代替我们做一些如打扫卫生、搬运重物等事情,将是人类的一大帮手。四个月的毕业设计过程带给我很多专业知识方面的收获,特别是在单片机控制系统的应用和设计方面积累了不少的经验,能把自己的所学知识应用到实际当中来。除此之外,我的各方面能力都有所提高,特别是我的逻辑思维能力和解决问题的动手能力。在以后的工作生活中,我将努力学习、工作,为祖国的经济建设尽自己应有的责任。-43- 参考文献[1]邹继明,王卫,吴红星.二相步进电机驱动集成电路SAA1042的应用[J].微电机,2002.3(2):45-47.[2]朱奕丹,余文良.单片机控制的点阵图形液晶显示模块的开发[J].仪表技术.2007.33(3):13-15.[3]何超,贾德文,李加强.一种基于语音识别芯片的家电语音控制器设计[J].电子技术应用 2007.33(5):48-50.[4]马成,何培祥,李庆东.图形点阵试显示模块与51单片机的接口设计[J],2007:73-74.[5]潘小舒.巡迹小车论文巡迹部分[J].湖南大学,2005.[6]船仓一郎.机器人控制电子学.北京:科学出版社[M],2003.[7]陈小忠,黄宁,赵小侠编著.单片机接口技术实用子程序[M].北京:人民邮电出版社,2005.[8]方佩敏编著.新编传感器原理及应用详解[M].北京:电子工业出版社,1995.[9]常健生编著.检测与转换技术[M].北京:机械工业出版社,2000.[10]齐丕智.光敏感器件及其应用[M].北京:国防工业出版社,1998.[11]王季秩,陈景华,陆培庆编著.电机实用技术[M].上海:上海科学出版社,1997.[12]电子制作实验室.语音录放芯片ISD4004[EB/OL].www.xie-gang.com,2007.33(6):48-50.[13]  Dennis·Clark,Michael·Owings.BuildingRobotDriveTrain[M].America:TheMcGraw-Hillcompanies,inc,2003.-43- 附录附录一:巡迹广告机器人的软件设计程序主程序:ORG0000HAJMPBEGINORG100OHBEGIN:CLREAMOVR0,#00H ;初始化MOVR1,#00HMOVR2,#00HMOVR3,#00HMOVA,#00HMOVC,#00HLCALLFORWLCALLDISPLAY ;取样LCALLBJ;跳入判断子程序MOVA,R2SUBA,103HSETBP3.0MOVR3,#500GOON:LCALLDELAYDJNZR3,GOONCLRP3.0ENDRIGHT:PUSHR2 ;步进电机右转子程序PUSHR3PUSHAMOVA,R1MOVDPTR,#TABLE ;导入表格MOVCA,@A+DPTR ;查表SWAPAMOVP1,A;启动电机CALLDELAY ;延时-43- INCR1;换相DJNZR1,#4H,ST1MOVR1,#00HST1:POPAPOPR3POPR2RETLEFT:PUSHR2;步进电机左转子程序PUSHR3PUSHAMOVA,R0MOVDPTR,#TABLE;导入表格MOVCA,@A+DPTR;查表MOVP1,A ;启动电机CALLDELAY;延时INCR0;换相CJNER0,#4H,ST2MOVRO,#00HST2:POPAPOPR3POPR2RETFORW:SETBP2 ;前进状态LCALLDELAYCLRP2.2CLRP2.6BJ: ;判断子程序MOVCP0.2JCRIGHTMOVCP0.0JCLEFTMOVCP0.1JCSTARTRETDELAY:MOVR3,#40;延时子程序-43- D1:MOVR2,#12 ;延时程序,延时15msDJNZR2,$DJNZR3,D1RET音乐播放程序:STARTYY:     MOV  A,#01HYINYUE:     MOV  P1,A ;选通一个端口,开始播放一段音乐     LCALLDELAYY;延时 RL   A    ;循环右移,开始播放下一段音乐           NOP          SJMP STARTYYDELAYY:           ;延时子程序(15秒)     MOV  R0,#0FHDELAYY1:     MOV  R1,#0AHDELAYY2:     MOV  R2,#00HDELAYY3:    MOV  R3,#0B2H   DJNZ R3,$     DJNZ R2,DELAY3     DJNZ R1,DELAY2DJNZ R1,DELAY1RET;液晶显示程序:RS  EQU  P3.1 ;定义数据与指令线RW  EQU P3.2;定义读写线E    EQU P3.0;定义使能控制线XPOSEQU20H ;定义列地址YPOSEQU21H ;定义行地址FIRST_COLEQU30H;定义字符/汉字显示起始行-43- FIRST_ROWEQU31H;定义字符/汉字显示起始列HZK_WIDEQU32H;定义字符/汉字显示长度HZK_LINEQU33H;定义字符/汉字显示行数FIRST_ADDEQU34H;定义字符/汉字显示起始位置START_ADD EQU  35H   ;起始位置缓存单元FIRST_LIN  EQU36H;起始行位置缓存单元G_COLUMN    EQU37H;定义图形显示起始行G_ROWEQU38H;定义图形显示起始列G_WIDEQU39H;定义图形显示宽度START:MOVSP,#60hCLRRESETNOPSETBRESETCLRRWLCD:LCALLLCDRESET;调用系统初始化程序CALLHZKLIB ;汉字显示CALLDELAY ;延时MOVA,#01H;指令#01H为:清除屏幕文字,把地址指针指向00HCALLLCDWCMOVDPTR,#BITMAP;显示图形BITMAPCALLLCDDISCALLDELAYCALLCLEAR;清屏HZKLIB:;显示汉字子程序MOVFIRST_ADD,#00H;设定字符/汉字显示起始位置为第一个显示单元MOVFIRST_LIN,#01H  ;设定字符/汉字显示起始位置为第一行MOVDPTR,#TAB;需要显示汉字机内码数据表MOVHZK_WID,#08H;每行显示汉字个数MOVHZK_LIN,#04H;显示行数MOVSTART_ADD,#00H;清首个显示地址缓存单元LCALLHZK_DISP ;调用汉字显示子程序RETLCDDIS:  ;图形显示子程序,该子程序可简化为一个函数调用-43- MOVXPOS,#0 ;设定图形显示起始行单元MOVYPOS,#0DIS_A1:MOVXPOS,#0DIS_A2:MOVA,#36H ;选择扩充指令集关闭图形显示CALLLCDWCMOVA,YPOSADDA,#80H;输入图形显示起始地址CALLLCDWCMOVA,XPOSADDA,#80HCALLLCDWCMOVB,AMOVA,#30H ;重新选择基本指令集CALLLCDWCCLRAMOVCA,@A+DPTR   ;输入显示数据(横向高8位数据)CALLLCDWDINCDPTRCLRAMOVCA,@A+DPTR  ;输入显示数据(横向低8位数据)CALLLCDWDINCXPOS ;列地址加一INCDPTRMOVA,BCJNEA,#87H,DIS_A2 ;最后一列地址为87HINCYPOS  ;行地址加一MOVA,YPOSCJNEA,#20H,DIS_A1;最后行地址为80H+20H=0A0HMOVYPOS,#0DIS_A3:MOVXPOS,#0 ;下半部分的显示DIS_A4:MOVA,#36H ;选择扩充指令集关闭图形显示CALLLCDWCMOVA,YPOS-43- ADDA,#80HCALLLCDWCMOVA,XPOSADDA,#88H ;下部分列地址首址CALLLCDWCMOVB,AMOVA,#30H  ;重新选择基本指令集CALLLCDWCCLRAMOVCA,@A+DPTR;输入显示数据(横向高8位数据)CALLLCDWDINCDPTRCLRAMOVCA,@A+DPTR;输入显示数据(横向低8位数据)CALLLCDWDINCDPTRINCXPOS ;列地址加一MOVA,BCJNEA,#8FH,DIS_A4 ;最后一列地址为8FHINCYPOS;行地址加一MOVA,YPOSCJNEA,#20H,DIS_A3;最后行地址为80H+20H=0A0HRETCLEAR:;清除图形显示CGRAMMOVA,#00CALLLCDFILLRETHZK_DISP: ;汉字显示子程序MOVR1,HZK_WIDHZK10:LCALLLCDPOS;调用调整地址单元子程序MOVA,START_ADD;设定DDRAM地址,显示位置地址LCALLLCDWCHZK11:CLRA;因为要连续输入机内码高位(区码)、低位(位码)MOVCA,@A+DPTR;所以要输入两次数据LCALLLCDWD-43- INCDPTR;显示地址会自动加一CLRAMOVCA,@A+DPTRLCALLLCDWDLCALLDELAY03INCDPTRDJNZR1,HZK11MOVR1,HZK_WID;调整显示长度INCFIRST_LIN;跳到下一行DJNZHZK_LIN,HZK10RETLCDRESET:LCALLDELAY ;延时MOVA,#30H;30---基本指令操作LCALLLCDWCMOVA,#30H;使用8位控制界面LCALLLCDWCLCALLDELAY01MOVA,#01H ;清除屏幕文字,把地址指针指向00H单元LCALLLCDWCLCALLDELAY01MOVA,#06H;在资料写入或读取时,设定游标移动方向及指定显示移位LCALLLCDWCMOVA,#0CHCALLLCDWCLCALLDELAY01RET-LCDPOS:PUSHDPH;地址转换子程序PUSHDPLPUSHAMOVDPTR,#LINE_ADD;LINE-ADD为地址表指针MOVA,FIRST_LINMOVCA,@A+DPTRADDA,FIRST_ADDMOVSTART_ADD,A-43- POPAPOPDPLPOPDPHRETCHK_BUSY:PUSHACCCLRRS;读忙状态子程序SETBRWSETBECHK_B:JBP1.7,CHK_BCLREPOPACCRETLCDWD:;写数据子程序LCALLCHK_BUSYNOPSETBRSCLRRWSETBEMOVP1,A;P1=DATA(I/O)LCALLDELAY01CLREMOVP1,#0FFHRETLCDWC: ;写指令子程序LCALLCHK_BUSY ;以确保上一指令/数据模块已经接收处理完CLRRS;RW=0CLRRWSETBEMOVP1,A;P1=DATA(I/O)LCALLDELAY01CLREMOVP1,#0FFHRETDELAY:;延时子程序MOVR5,#03H-43- DE_1:MOVR6,#0FFHDE_2:MOVR7,#0FFHDE_3:DJNZR7,DE_3DJNZR6,DE_2NOPDJNZR5,DE_1RETDELAY01:MOVR6,#6DE_A:MOVR7,#0FhDE_B:DJNZR7,DE_BDJNZR6,DE_ARETDELAY02:MOVR6,#6DE_A1:MOVR7,#18hDE_B1:DJNZR7,DE_B1DJNZR6,DE_A1RETDELAY03:MOVR5,#03HDE_6:MOVR6,#0BFHDE_4:MOVR7,#0BFHDE_5:DJNZR7,DE_5DJNZR6,DE_4DJNZR5,DE_6RETTAB:DB " 唯实惟新 "DB"至诚致志"RETBITMAP:;调入了一幅图像";-------------------------------------------------------------------------------db0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0db0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0db0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0db0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0db0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0db0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0-43- db0,0,0,0,0,0,0,0,0,3,192,0,0,0,0,0db0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0db0,0,0,0,0,0,0,0,0,40,224,0,0,0,0,0db0,0,0,32,0,0,0,0,56,56,224,0,0,0,0,0db0,0,1,240,0,0,0,0,252,56,224,0,0,0,0,0db0,0,1,248,0,0,0,3,252,31,224,0,0,0,0,0db0,0,1,252,0,0,0,1,252,27,192,0,0,0,0,0db0,0,0,254,0,0,0,0,56,27,192,0,0,0,0,0db0,0,0,254,0,0,0,0,48,27,192,0,0,0,0,0db0,0,0,124,0,0,0,0,48,30,192,0,0,0,0,0db0,0,0,252,0,0,0,0,48,28,252,0,3,128,0,0db0,0,0,248,0,0,0,0,56,31,254,0,3,192,0,0db0,0,0,248,0,0,0,1,152,127,224,0,7,224,0,0db0,0,0,248,0,0,0,1,140,251,192,0,7,192,0,0db0,0,0,252,0,0,0,1,207,231,128,0,15,128,0,0db0,0,1,242,0,0,0,1,205,142,0,0,15,0,0,0db0,0,1,241,192,0,0,1,252,31,254,0,28,0,0,0db0,0,1,225,255,0,0,1,188,63,7,0,56,0,0,0db0,0,1,227,255,128,0,1,184,249,135,0,126,0,0,0db0,0,1,231,255,192,0,1,144,241,135,0,255,192,0,0db0,0,3,207,255,192,0,1,128,185,135,0,231,224,0,0db0,0,3,255,255,192,0,1,128,51,142,1,192,248,0,0db0,0,3,255,248,0,0,1,32,99,14,3,128,60,0,0db0,0,3,255,224,0,0,1,32,230,12,3,0,31,0,0db0,0,15,255,192,0,0,1,64,206,28,7,0,15,128,0db0,0,31,255,0,0,0,1,192,140,24,14,0,7,224,0db0,0,127,254,0,0,0,1,192,24,56,14,0,3,252,0db0,7,255,248,0,0,0,1,192,56,112,60,0,1,255,0db0,63,255,240,0,0,0,0,128,7,224,56,0,0,255,192db0,31,255,224,0,0,0,0,0,3,192,0,0,0,127,192db0,15,255,240,0,0,0,0,0,1,128,0,0,0,48,0db0,7,255,252,0,0,0,0,0,0,0,0,0,0,0,0db0,3,255,254,0,0,0,0,0,0,0,0,0,0,0,0db0,1,255,255,0,0,0,0,0,0,0,0,0,0,0,0db0,0,31,31,128,0,0,0,0,0,0,0,0,0,0,0-43- db0,0,31,15,192,0,0,0,0,0,0,0,0,0,0,0db0,0,30,3,240,0,0,0,0,0,0,0,0,0,0,0db0,0,30,1,248,0,0,0,0,0,0,0,0,0,0,0db0,0,62,0,252,0,0,0,224,0,0,0,0,64,0,0db0,0,62,0,254,0,0,3,241,130,97,156,96,97,134,0db0,0,62,0,127,0,0,2,17,130,113,156,96,225,198,0db0,0,62,0,63,128,0,6,25,130,113,156,96,225,198,0db0,0,127,224,31,192,0,6,1,130,121,156,224,177,230,0db0,0,255,240,31,240,0,3,129,130,105,156,225,177,166,0db0,1,255,248,15,252,0,1,225,130,105,150,161,145,166,0db0,3,251,252,7,255,0,0,113,130,109,150,161,25,182,0db0,7,240,252,7,255,128,0,25,130,101,147,161,249,150,0db0,15,224,124,1,255,224,6,25,130,103,147,163,25,158,0db4,127,192,28,0,255,252,6,25,134,99,147,163,13,142,0db1,255,0,8,0,127,254,6,25,134,99,147,34,13,142,0db0,16,0,0,0,31,255,3,240,252,97,147,38,13,134,0db0,0,0,0,0,7,255,0,224,120,97,145,38,5,134,0db0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0db0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0db0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0db0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0db0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0db0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;-------------------------------------------------------------------------------------------------------END-43- 附录二:巡迹广告机器人的硬件原理图-43-'