有关单片机的毕业论文

上传人:沈*** 文档编号:66207983 上传时间:2022-03-27 格式:DOC 页数:40 大小:490.53KB
收藏 版权申诉 举报 下载
有关单片机的毕业论文_第1页
第1页 / 共40页
有关单片机的毕业论文_第2页
第2页 / 共40页
有关单片机的毕业论文_第3页
第3页 / 共40页
资源描述:

《有关单片机的毕业论文》由会员分享,可在线阅读,更多相关《有关单片机的毕业论文(40页珍藏版)》请在装配图网上搜索。

1、毕业设计论文(中文)摘要论文题目智能玩具小车课题来源查询资料、询问老师拟定摘要:根据调查统计,今年来全球玩具销量增幅与全球平均GDP增幅大致相当。而玩具市场的内在结构比重却发生了重大变化:传统玩具的市场比重在逐步缩水,高科技含量的电子玩具则蒸蒸日上。如今高科技含量的电子互动式玩具已经成为玩具行业发展的主流,本文设局了一个具有障碍检测、字符显示功能的只能遥控小车。该小车对传统的手动遥控小车做了改进,使之可以实现任意角度转向和以任意速度前进,而不像一般的小车那样只能以固定角度转向和以固定速度前进,因此更加接近真实的车辆。本文还在小车的控制系统中采用红外远程遥控,使控制者可以对小车进行遥控操作,产生

2、相应的操作,而且小车和控制者还具有一定的交互功能。主要完成的功能有:红外遥控操作、小车速度控制、转向控制、前方障碍检测、声音警报、字符显示等。关键字:8052AH 电机 超声波 红外遥控 显示系统 “看门狗”毕业设计论文(英文)摘要ThesisIntelligent toy carSource projectQuery data, ask the teacher preparationAbstract:According to the survey, global toy sales growth this year and roughly the same increase in avera

3、ge global GDP. The toy market share in the structure pinch has undergone a major change: the traditional toy market share is gradually shrinking, high-tech electronic toys are booming. Now high-tech electronic toys, interactive toys have become the mainstream of development of the industry, this pap

4、er has established a Bureau of obstacle detection, the character can only remote control car display. The traditional manual remote control car on the car has been improved, so that can turn at any angle and in any pace, but unlike most of the car that will only shift a fixed angle and constant pace

5、, so the vehicle closer to the real . This cars control system is also using infrared remote control, so that the controller can be remote-controlled car, resulting in appropriate action, and the car and the controller also has some interactive features. Completed the main features are: infrared rem

6、ote control, car speed control, steering control, front obstacle detection, voice alarm, the character display.Keywords: 852AH motor ultrasonic infrared remote control display system “watchdog”目录1 引言711 选题背景71.2 本设计所要实现的目标72 系统设计82.1 系统组成82.1.1 速度控制系统92.1.2 转向控制系统102.1.3 检测系统112.1.4 语音系统122.1.5 显示系统

7、132.1.6 遥控系统142.1.7 “看门狗”设计162.2 硬件设计162.2.1 直流电机驱动172.2.2 转向控制系统172.2.3 检测系统硬件设计182.2.4 语音系统192.2.5 显示系统192.2.6 遥控系统192.2.7 “看门狗”硬件设计203 软件设计233.1 软件框图243.2 电机控制软件243.3语音软件273.4显示软件313.5 红外接收软件343.6 “看门狗”软件设计373.6.1避免在中断服务子程序中插入喂狗程序段373.6.2避免在用户应用程序中的局部循环圈内插入喂狗程序段383.7 软件抗干扰技术383.7.1 数字滤波技术383.7.2开

8、关量的软件抗干扰技术393.7.3 指令冗余技术403.7.4 软件陷阱技术411 引言11 选题背景根据调查统计,今年来全球玩具销量增幅与全球平均GDP增幅大致相当。而玩具市场的内在结构比重却发生了重大变化:传统玩具的市场比重在逐步缩水,高科技含量的电子玩具则蒸蒸日上。美国玩具市场的高科技电子玩具的年销售额2004年较2003年增长52%,而传统玩具的年销售额仅增长3%。英国玩具零售商协会选出的2001年圣诞最受欢迎的十大玩具中,有七款玩具如今高科技含量的电子互动式玩具已经成为玩具配有电子元件。从这些数据可以看出,高科技含量的电子互动式玩具已经成为玩具行业发展的主流。1.2 本设计所要实现的

9、目标本系统主要完成了:利用红外线进行远程遥控操作,利用脉冲宽度调制PWM的方法实现对小车速度的控制,利用步进电机实现转向控制,利用超声波进行前方障碍检测,利用凤鸣完成对声音报警和音乐鸣奏,使用字符型液晶显示器作为输出。2 系统设计系统采用Intel公司的8052AH单片机进行智能控制。Intel公司是第一家出产8051单片机的厂商,其他公司都死依照Intel为追基本的架构,再加上自己的一些额外的功能以显示出自己的特色,让用户能依照电路所需,选择最适合的8051单片机去做控制。为方便设计者能随时更换不同厂商的8051,各厂商的单片机引脚大都相同,而且每个引脚的定义也都相同。8052AH具有一下特

10、点:l 是一个8位的MCU,与8051完全兼容。l 4个8位的Port,共有32条双向可独立控制的I/O。l 有256*8RAM。l 有8K*8ROM。l 有3组16B计时器。l 具有全双工的UART。l 6个中断源,具有优先权中断架构。l 内部有时钟(CLOCK)振荡器电路(12MHZ)。本系统的软件相对比较简单,可以完全包含在8052AH内部的8KB Flash 片内程序存储器中,无需外部的程序存储器和数据存储器的扩展,因此可以使用所有的端口,更有利于控制操作。2.1 系统组成系统利用红外传感器进行小车遥控操作,通过单片机控制小车电机启动、停止、速度调节、转向,由超声波传感器进行障碍检测,

11、蜂鸣器发出报警声音并能演奏简单音乐,字符型液晶显示模块显示遥控信息和报警。系统组成如图2.1所示。遥控发遥控收显示系统看门狗控制MCU速度控制系统转向控制系统语音系统检测系统图 2.1 系统组成框图2.1.1 速度控制系统智能玩具小车采用直流电机驱动的方式为其提供动力。直流电机具有体积小、价格低等优势,常用于各种机械玩具。采用脉冲宽度调制(PWM)速度实现对直流电机速度的控制,该方式是通过改变加载在电机上的脉冲宽度来进行直流调速。PWM是通过控制固定电压的直流电源开关频率(实质是改变加载在电机上的脉冲宽度),从而改变负载两端的电压,进而达到控制要求的一种电压调整的方法。PWM可以应用在许多方面

12、,如电机调速、温度控制、压力控制等。在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上的电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。因此,PWM又被称作“开关驱动装置”。如图2.2所示,在脉冲作用下,当电机通电时,速度增加;点击断电时,速度逐渐减少。只要按一定规律,改变通、断电的时间,即可让电机转速得到控制。M图 2.2 脉宽调速原理由于PWM调速系统的开关频率较高,仅靠电枢电感的滤波作用就可以获得脉冲很小的直流电流,电枢电流容易连续,系统的低速运行平稳,调速范围较宽,可达1:10000左

13、右。这种调速方式还具有调速特性优良、调整平稳、调速范围广、过载能力大,能承受频繁的负载冲击,可以实现频繁的无极快速启动、制动和反转等有点。基于以上PWM调速的优点,以及PWM可以较方便采用单片机实现,因此本实例采用PWM脉宽调制的方法控制直流电机。2.1.2 转向控制系统小车采用的是步进电机转向控制,用它控制转向的优点是转向算法易实现,且能实现精确的转向。步进电动机是纯粹的数字控制电动机,它将电脉冲信号转变为角位移,即给一个脉冲,步进电机就转一个角度,因此非常适合单片机控制,在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而受负载变化的影响,电机则转过一个步距角,同时步

14、进电机只有周期性的无累积误差,精度高。步进电动机有如下特点:l 步进电动机的角位移与输入脉冲数严格成正比。因此,当它转一圈后,没有累积误差,具有良好的跟随性。l 由步进电动机与驱动电路组成的开环数控系统,即简单、廉价,又非常可靠,同时,它也可以与角度反馈环节组成高性能的闭环数控系统。l 步进电动机的动态响应快,易于启停、正反转及变速。l 速度可在相当宽的范围内平稳调整,低速下仍能获得较大的转距,因此一般可以不用减速器而直接驱动负载。l 步进电机只能通过脉冲电源个供电才能运行,不能直接使用交流电源和直流电源。l 步进电机存在振荡和失步现象,必须对控制系统和机械负载采取相应措施。步进电机有两种工作

15、方式:整步方式和半步方式。以步进角1.8四相混合式步进电机为例,在整步方式下,步进电机每接收一个脉冲旋转1.8,旋转一周则需要200个脉冲;在半步方式下,步进电机每接收一个脉冲旋转0.9,旋转一周则需要400个脉冲。控制步进电机旋转必须按一定时序对步进电机引线输入脉冲,具体的时序可查看步进电机的相关资料。步进电机在低频工作时,会有振动大,噪声大的缺点。如果使用细分方式,就能很好的解决这个问题,步进电机的细分控制,从本质上讲是通过对步进电机励磁绕组中电流的控制,使步进电机内部的合成磁场为均匀的圆形旋转磁场,从而实现步进电机步距角的细分。一般情况下,合成磁场矢量的幅度决定了步进电机旋转力矩的大小,

16、相邻两合成磁场适量之间的夹角大小决定了步距角的大小,步进电机半步工作方式就蕴涵了细分的工作原理。实现细分方式有多种方法,最常用的是脉宽调制式斩波驱动方式,大多数专用的步进电机驱动芯片都采用这种驱动方式,TA8435就是其中一种芯片。为简化单片机对步进电机的控制,我们选用TA8435作为步进电机驱动芯片。TA8435是东芝公司生产的单片正弦细分二相步进电机驱动专用芯片,该芯片具有一下特点:l 工作电压范围宽(1040V)。l 输出电流可达1.5A(平均)和2.5A(峰值)。l 具有整步、半步、1/4细分、1/8细分运行方式可供选择。l 采用脉宽调试式斩波驱动方式。l 具有正/反转控制功能。l 带

17、有复位和使能引脚。l 可选择使用单时钟输入或双时钟输入。2.1.3 检测系统检测系统主要利用传感器实现对车可能发生的碰撞进行检测,并通过语音系统进行报警,并将较高利用显示模式呈现出来。由于超声波障碍检测有较强的抗干扰性能,因此选用超声波进行障碍检测。超声波是一种在弹性介质中的机械振荡,其频率超过20KHZ,分横向振荡和纵向振荡两种,超声波可以在气体、液体及固体中传播,其传播的速度不同。它有折射和反射现象,且在传播过程中有衰减。利用超声波的特性,可以做成各种超声波传感器,结合不同的电路,可以制成超声波仪器及装置,在通信、医疗及家电中获得广泛应用。超声波传感器的材料主要为压电晶体。压电晶体组成的超

18、声波传感器是一种可逆传感器,它可以将电能转变成机械振荡而产生超声波;同时它接收到超声波时,也能转变成电能,故它分为发送器和接收器。超声波传感器有透射型和反射型两种类型常用于防盗警报器、接受开关、测距及材料探伤、测算等。超声波系统测量距离较远,且环境适应力强,因此选用超声波传感器作为障碍物检测系统。将超声波传感器不知在车体前部,用于规避正前方障碍物,为电动小汽车躲避障碍物提供安全规避参数。超声波换能器是超生比探测器的核心部件,换能器按其工作介质可分为气相、液相和固相换能器;按其发射波束宽度可分为宽波束和窄波束换能器;按其工作频率又可分为38KHZ、40KHZ等不同等级。超声波探测器的测距常用二种

19、方法:强度法和反射时间法。而本实例利用的是强度法。强度法是利用声波在空气中的传输损耗值来测量被测物体的距离,被测物越远其反射信号越弱,根据反射信号的强弱就可以知道被测物的远近,但在使用这种方法时由于换能器之间直接耦合信号很难消除,在放大器增益较高时这一直接耦合信号就可使放大器宝盒从而使整套系统失效。由于直接耦合信号的影响,强度法测距只适合较短距且精度要求不高的场合。2.1.4 语音系统这里的语音系统主要实现报警等姜丹的发生功能,因此采用蜂鸣器作为发声器件。蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子

20、产品中作为发声器件。蜂鸣器只要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.515V直流工作电压),多谐振荡器起振,输出1.52.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜

21、片在电磁线圈和磁铁的相互作用下,周期性地振动发声。蜂鸣器在电路中常用字母“H”或“HA”表示。在旧标准中,可以看到用“FM”、“LB”、 “JD”等表示的蜂鸣器。2.1.5 显示系统显示系统主要实现对接收的遥控命令以及检测系统的报警信息进行显示。本例采用小型的字符型液晶显示器作为显示输出。液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧等诸多优点,在袖珍仪表和低功耗应用系统中得到越来越广泛的应用。显示系统采用的字符型液晶模块是一种用5*7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等,这里以常用的2行16个字的BM-162液晶模块来介绍它的

22、编程方法。DM-162液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号和日文假名等,每一个字符都有一个固定的代码,例如大写的英文字母“A”的代码是01000000B(41H),显示时模块把地址41H中的点阵字符图形显示出来,就能看到字母“A”。DM-162液晶模块内部的控制器共有11条控制指令,它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。下列为常用指令及其功能。l 指令1:清显示,指令码01H,光标复位到地址00H位置。l 指令2:光标复位,光标返回到地址00H。l 指令3:光标和显示模式设置。l

23、指令4:显示开关控制。l 指令5:光标或显示移位。l 指令6:功能设置命令。l 指令7:字符发生器RAM地址设置。l 指令8:DDRAM地址设置。l 指令9:读忙信号和光标地址。l 指令10:写数据。l 指令11:读数据。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志位为低电平(表示不忙),否则此指令失效。2.1.6 遥控系统红外线遥控是目前使用最广泛的一种遥控手段。由于红外遥控装置具有体积小、功耗低、功能强、成本低等特点,因而继彩电、录像机之后,在录音机、音响设备、空调机以及玩具等其他小型电器装置上也纷纷采用红外遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境

24、下,采用红外遥控不仅完全可靠而且能有效地隔离电气干扰。2.1.6.1 红外遥控系统通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。2.1.6.2 遥控发射器及其编码遥控发射器专用芯片很多,这里以运用比较广泛、解码相对容易的HT6221专用芯片为例说明编码原理。遥控器将不同的按键编成不同的遥控编码,当发射器的按键按下后,发射器即发出一遥控码,其遥控码具有以下特征。采用脉宽调制的串行码:以脉宽为0.56ms、间隔0.56ms、周期1.12ms组合表示二进制的“0”;

25、 以脉宽为0.56ms、间隔1.68ms、周期2.24ms组合表示二进制的“1”。其波形如图2.3所示。0.56ms0.56ms1.12ms2.24msBit “0”Bit “1”图 2.3 脉宽调制串行码的0/1表示上述“0”和“1”组成的32位二进制码(4个字节)经38kHZ的载频进行二次调制以提高发射效率,然后通过红外发射二极管产生红外线向空间发射。HT6221产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电气设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。遥控器在按键按下后,周期性地发出同

26、一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在4563ms之间,图2.4为发射波形图。当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms18ms),高8位地址码(9ms18ms),8位的数据码(9ms18ms)和这8位数据码的反码(9ms18ms)组成。如果键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成。图2.4 遥控编码发射波形图2.1.6.3 接收解调接收解调部分采用183

27、8红外集成接收头。它将红外接受管与放大电路集成在一体,具有体积小(大小与一只中功率三极管相当)、密封性好、灵敏度高、价格低廉等优点。它仅有三条管脚,分别是电源正极、电源负极以及信号输出端。其工作电压在5V左右。只要给它接上电源即是一个完整的红外接收放大器,使用方便。其主要功能有放大、选频和解调,要求输入信号是已经被调制的信号。经过它的接收放大和解调会在输出端直接输出原始的信号,而且灵敏度和抗干扰性都非常好。2.1.7 “看门狗”设计PC收到干扰而时空,引起程序乱飞,也可能使程序陷入“死循环”。指令技术、软件陷阱技术不能使时空的程序摆脱“死循环”的困境,这时系统完全瘫痪。如果操作者在场,就可以按

28、下人工复位按钮,强制系统复位。但操作者不能一只监视着系统,通常是在引起不良后果之后才进行人工复位。为使程序脱离“死循环”,通常采用“看门狗技术”。“看门狗”技术就是不断监视程序循环运行时间,若发现时间超过已知的循环设置时间,则认为系统陷入了“死循环”,然后强迫程序返回到0000H入口,在0000H处安排一段出错处理程序,使系统运行纳入正规。“看门狗”技术可由硬件实现,可由软件实现,以可由两者结合实现。实现硬件“看门狗”电路方案较多,目前采用较多的方案有以下几种:l 采用微处理器监控器。l 采用单稳态电路来实现“看门狗”,单稳态电路可采用74LS123。l 采用内带震荡器的计数芯片。本设计采用第

29、三种方案实现“看门狗”电路,具体的电路见硬件设计。2.2 硬件设计一个单片机应用系统的硬件电路设计包含有两部分内容:一是系统扩展,即单片机内部的功能单元,如 ROM、RAM、I/O口、定时/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统外设,既按照系统功能要求配置外围设备,如键盘、显示器、A/D、D/A转换器以及各种驱动电路等,要设计合适的接口电路。2.2.1 直流电机驱动本系统采用软件产生PWM信号,图3.1是直流电机驱动的电路图。P1.0、P1.1控制电机进退,二者不能同时为低电平,其输出周期为80ms的调宽方波。三极管的功率视点击

30、电流而定。图 3.1 直流电机驱动电路图2.2.2 转向控制系统转向控制系统电路图如图3.2所示。TA8435为步进电机的控制芯片,引脚M1和M2决定电机的转动方式:M1=0、M2=0,电机按整步方式运转;M1=1、M2=0.电机按半步方式运转;M1=0、M2=1,电机按1/4细分方式运转;M1=1、M2=1,电机按1/8步细分方式运转。CW/CWW控制电机转动方向。CK1、CK2时钟时钟输入的最大频率不能超过5kHZ,控制时钟的频率,即可控制 电机转动速率。REFIN为高电平时,NFA和NFB的输出电压为0.8V,REFIN为低电平时,NFA和NFB输出电压为0.5V,这2个引脚控制步进电机

31、输入电流,电流大小与NF端外接电阻关系式为:IO=Vref/Rnf。R1,R2选用0.8、2W的大功率电阻。步进电机按二相双极性使用,四相按二相使用时可以提高步进电机的输出转矩,D200-D203快回复二极管用来泄放绕组电流。图 3.2 转向控制系统电路原理图2.2.3 检测系统硬件设计超声波障碍检测如图3.3所示。本设计采用T/R-40-12小型超声波传感器作为探测前方障碍物体的检测元件,其中心频率为40kHZ脉冲信号驱动超声波传感器发送器发出40kHZ的脉冲超声波,如电动车前方遇到有障碍物时,此超声波信号被障碍物反射回来,由接收器接收,经LM318两级放大,再经带有锁相环的音频解码芯片LM

32、567解码,当LM567的输入信号大于25mV时,输出端由高电平变为低电平,送8052AH单片机处理。图 3.3 超声波检测电路原理图2.2.4 语音系统语音系统采用蜂鸣器作为发声器件,其连接电路图如图3.4所示。图3.4 语音系统电路原理图2.2.5 显示系统显示系统电路原理图如图3.5所示。DM-162采用标准的14脚接口,其中VSS为地电源,VDD接5V正电源,V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高会产生“鬼影”,使用时可以通过一个10KB的电位器调整对比度。RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。RW为读写信号线,

33、高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。D0D7为8位双向数据线。图3.5 显示系统电路原理图2.2.6 遥控系统2.2.6.1 遥控系统发射硬件设计遥控系统发射部分被放置在遥控器中,其电路原理图如图3.6所示。图 3.6 遥控系统发射电路原理图2.2.6.2 遥控系统接收硬件设计遥控系统接收码部分被放置在小车中,其电路原理图如图3.7所示。注意经过红外集成接收头后,信号被反相,即与发送时的高低电平颠

34、倒。图 3.7 遥控系统接收原理图2.2.7 “看门狗”硬件设计我们采用内带震荡器的记数芯片CD4060实现看门狗,CD4060是带震荡器的14位计数器,由该芯片构成的看门狗电路如图3.8所示,由14位二进制计数器CD4060和三极管Q700、Q701等组成。单片机8052AH的P3.6口设计成输出口,由8052AH的CPU向看门狗电路发送喂狗信号(正脉冲),在两个正脉冲间隔内,P3.6保持为低电平(此功能要结合软件才能实现)。单片机8052AH的I/O口带灌电流负载能力比较大,每个引脚低电平时的吸入电流为20mA,带拉电流负载能力却很小,实测情况是,每个引脚低电平时的输出电流仅25A,实现P

35、3.6口被设计成带拉电流负载的方式,为了提高P3.6口带拉电流负载的能力,所以电路中设置了上拉电阻R700。14位二进制计数器CD4060的计数脉冲由其内部振荡器和外接阻容元件R702、R704、C700的电路产生,震荡周期为:T0SC=2.2*R702*C700=0.22ms振荡器产生的计数脉冲(矩形波)可以直接引出,同时还可以从CD4060的10个输入端Q4Q10和Q12Q14得到不同分频系数的方波输出。这样,如果CD4060得不到CPU通过P3.6口发送来的喂狗信号(正脉冲),则CD4060的输出端Q14在1.8s内将产生一个完整周期的方波信号,而且低电平在前,高电平在后,其高电平经三极

36、管Q700、Q701处理后形成单片机8052AH的复位信号,使单片机8052AH复位。由此可见,单片机8052AH正常工作时,只要在0.9s内从P3.6口送出一个正脉冲,便可及时清零看门狗,输出端Q14就不会产生定时溢出信号,从而使看门狗电路对单片机系统不起作用。并且,从CD4060的10个输出端Q4Q10和Q12Q14可以得到不同周期的方波信号,经三极管Q700、Q701处理后形成单片机系统的复位信号,可以适应不同用户应用程序,从而该硬件看门狗电路可以适应不同的单片机应用系统。对MCS-51系统的单片机而言,它所需要的复位信号是高电平宽度大于2个机器周期的正脉冲,例如,单片机的时钟脉冲频率为

37、12MHZ时,则需要的抚慰信号高电平宽度为2s以上就可以了,而由此可知,CD4060的Q14输出的是高电平宽度为0.9s的方波,如果让它直接作为单片机的复位信号,则单片机的复位时间势必在0.9s以上,这样尽管可以使程序跑飞的单片机复位,但是显然没有做到尽快地引导跑飞的程序到正确的轨道来,如果这样做的话,对于某些单片机应用系统而言可能带来非常严重的后果。图3.8中的三极管Q700、Q701及其周围阻容构成波形转换电路,把较宽的正脉冲变换为较窄的正脉冲,从而较好地解决了上述的问题。三极管Q700、Q701构成的2级直接耦合放大器作为缓冲期使用,它是CD4060的输出端Q14的灌电流负载,C701、

38、R705是微分电路。经分析后不难看出,电路中的R707、R705、C701还具有单片机上电复位的功能。图 3.8 看门狗电路图CPU必须在正确完成所有工作后才能发扫描输入信号,且程序中发扫描信号的地方不能太多。否则,在哪里有死循环,看门狗就不产生记满输出信号,不能重新启动CPU。CD4060的记满输出信号不但要接到单片机的RET脚,而且还应接到其他芯片的RET脚,因为程序乱飞后,其他具有RET脚的芯片也混乱了,必须全部复位。3 软件设计在进行单片机控制系统设计时除了系统硬件外,大量的工作就是如何设计和调试应用程序。因此,软件设计在单片机控制系统设计中占重要地位。在单片机控制系统中,大体上可分为

39、数据处理、过程控制两个基本类型。数据处理包括:数据的采集、数据的滤波、标度变换等。过程控制程序主要是单片机按一定的方法进行计算,然后再输出,以便控制生产。为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。所谓“模块”,实质上就是所完成一定功能,相对独立的程序段,这种程序设计方法叫模块程序设计法。模块程序设计法的主要优点是:单个模块比起一个完整的程序易编写及调试;模块可以共存,一个模块可以被多个任务在不同条件下调用;模块程序允许分割任务和利用已有程序,为设计者提供方便。本系统软件采用模块化结构,由主程序、电机控制软件、转向控制软件、检测软件、语音软件、显示软

40、件、红外接收软件构成。在最后介绍了一些常用的软件抗干扰技术,这些技术在一些干扰很强的工业环境中是非常有用的。3.1 软件框图软件由命令队列模块、命令执行模块、红外接收模块、障碍检测模块、速度控制模块、转向控制模块、语音软件、显示软件组成。各部分组成关系如图4.1所示。红外接收模块将接收到的信息以及障碍检测将检测到的报警信号组装成命令的形式,加入到命令队列中,主程序由命令队列取出一命令并调用解释执行命令,解释执行模块根据命令的需要调用对应的速度控制模块、转向控制模块、语音软件、显示软件。下面我们对红外接收模块、速度控制模块、语音软件、显示软件进行详细设计。红外接收障碍检测命令队列命令解释执行速度

41、控制转向控制语音软件显示系统图 4.1 软件组成框图3.2 电机控制软件由软件产生脉冲宽度调制(PWM),周期为80ms,每个周期内0与1的占空比被分成8档。具体设计为:将T0设计为10ms的定时中断,变量cPWM_Time记录一个PWM周期(80ms)内所需要的定时中断个数,变量cPWM_1记录80ms内高电平所需要的定时中断个数,每中断一次,当cPWM_1非零时,输出高电平;当cPWM_为零时,输出低电平;且cPWM_Time与cPWM_1减一,cPWM_Time为零时,cPWM_Time与cPWM_1重新置为初值。对电机的速度和方向控制只需调用函数SetMotionSpeed()和Set

42、MotionDirection()。具体的程序如下:sbit cPWM_RunForword =P10;sbit cPWM_Runback =P11;unsigned char data cPWM_Time;unsigned char data cPWM_1;unsigned char data cPWM_Speed;bit bMotionRunForword;/T0计数周期为10ms#define T0T1MERH 0xD8#define T0T1MERL 0xF0#define PWM_TimeInit 0x08/初始化直流电机控制void InitialMotionCtrl(void)

43、cPWM_Time=PWM_TimeInit; cPWM_1=0; cPWM_Speed=0; bMotionRunForword=1; TR0=0; TH0=T0T1MERH;/重装初值 TL0=TOT1MERL; TR0=1; ET0=1; void SetMotionSpeed(unsigned char cSpeed) cPWM_Speed=cSpeed; void SetMotionDirection(bit bForword); bMotionRunForword=bForword; void MotionDrive(bit bStop) if(bStop) /全部输出1,则停止电

44、机转动 cPWM_RunForword=1; cPWM_RunBback=1; else if(bMotionRunForword) cPWM_RunBack=1; cPWM_RunForword=0; else cPWM_RunForword=1; cPWM_RunBack=0; void T0CountInt(void)iterrupt 1 TR0=0; TH0=T0T1MERH; TL0=T0T1MERL; if(cPWM_1) MotionDrive(1); cPWM_1-; else MotionDrive(0); cPWM_Time-; if(cPWM_Time=0) cPWM_T

45、ime=PWM_TimeInit; cPWM_1=cPWM_Speed; TR0=1; 3.3语音软件该语音软件的功能是播放两首简单的音乐:生日快乐和三轮车,播放时只需调用函数Music()。具体的程序如下:/number=1为生日快乐,number=2为三轮车void Music(unsigned char number) unsigned int k,n; unsigned int SoundLong,SongTone; unsigned int i,j,m; for(k=0;k=57)i=0; for(k=0;k=57)j=0: do if(i=57)i=0; if(j=57)j=0;

46、SoundLong=SOUNDLONGi; SoundTone=SOUNDTONEj; i+; j+; for(n=0;nSoundLong;n+) for(k=0;k12;k+) P3_4=0; for(m=0;mSoundTone/2;m+) ; P3_4=1; for(m=0;mSoundTone/2;m+) ; delay50us(6); while(SOUNDLONGi!=0)|(SOUNDTONEj!=0); ) /延时程序 void delay10ms(unsigned char time) unsigned char a,b,c; for(a=0;atime;a+) for(b

47、=0;b10;b+) for(c=0;c120;c+) ; void delay50us(unsigned char time) unsigned char a,b: for(a=0;atime;a+) for(b=0;b6;b+) ; unsigned char code SOUNDLONG= 9,3,12,12,12,24, 9,3,12,12,12,24, 9,3,12,12,12,12,12, 9,3,12,12,12,24, 0,/生日快乐end 6,6,9,3,6,6,12, 6,6,6,6,6,6,12, 6,6,9,3,6,6,9,3, 6,3,3,6,3,3,6,6,9, 0

48、/三轮车end ; unsigned char code SOUNEDTONE= 212,212,190,212,159,169, 212,212,190,212,142,159, 212,212,106,126,159,169,190, 119,119,126,159,142,159, 0,/生日快乐end 239,239,212,189,159,159,189, 159,159,142,126,120,120,159, 120,120,142,159,189,142,159,189, 239,212,189,159,142,159,189,212,239, 0/三轮车end ;3.4显示软

49、件液晶模块内部控制器的读写操作、屏幕和光标的操作都是通过指令编程来实现的。以下为显示函数:/Port Definitionssbit LcdRs=P30;sbit LcdRw =P31;sbit LcdEn =P37;sfr DBPort =0x80; /P0=0x80数据端口/内部等待函数unsigned char LCD_Wait(void) LcdRs=0; LcdRs=1;_nop_(); LcdEn=1;_nop_(); while(DBPort&0x80); LcdEn=0; return DBPort;/向LCD写入命令或数据#define LCD_COMMAND 0 /Comm

50、and#define LCD_DATA 1 /Data#define LCD_CLEAR_SCREEN 0x01 /清屏#define LCD_HOMING 0x02 /光标返回原点void LCD_Write(bit style,unsigned char input) LcdEn=0; LcdRs=style; LcdRw=0; _nop_(); DBPort=input; _nop_();/注意顺序 LcdEn=1; _nop_();/注意顺序 LcdEn=0; _nop_(); LCD_Wait();/设置显示模式#define LCD_SHOW 0x04 /显示开#define LC

51、D_HIDE 0x00 /显示关#define LCD_CURSOR 0x02 /显示光标#define LCD_NO_CURSOR 0x00 /无光标#define LCD_FLASH 0x01 /光标闪动#define LCD_NO_FLASH 0x00 /光标不闪动void LCD_SetDisplay(unsigned char DisplayMode) LCD_Write(LCD_COMMAND,0x08|DisplayMode);/设置输入模式#define LCD_AC_UP 0x02#define LCD_AC_DOWN 0x00 /default#define LCD_MOV

52、E 0x01 /画面可平移#define LCD_NO_MOVE 0x00 /defaultvoid LCD_SetInput(unsigned char InputMode) LCD_Write(LCD_COMMAND,0x04|InputMode);/移动光标或屏幕#define LCD_CURSOR 0x02#define LCD_SCREEN 0x08#define LCD_LEFT 0x00#define LCD_RIGHT 0x04void LCD_Move(unsigned char object,unsigned char direction) if(object=LCD_CU

53、RSOR) LCD_Write(LCD_COMMAND,0x10|direction); if(object=LCD_SCREEN) LCD_Write(LCD_COMMAND,0x18|direction);/初始化LCDvoid LCD_Initial() LcdEn=0; LCD_Write(LCD_COMMAND,0x38); /8位数据端口,2行显示,5*7点阵 LCD_Write(LCD_COMMAND,0x38); LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); /开启显示,无光标 LCD_Write(LCD_COMMAND,LCD_CLEAR_S

54、CREEN); /清屏 LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); /AC递增,画面不懂void GotoXY(unsigned char x,unsigned char y) if(y=0) LCD_Write(LCD_COMMAND,0x80|x); if(y=1) LCD_Write(LCD_COMMAND,0x80|(x-0x40); void Print(unsigned char *str) while(*str=0 ) LCD_Write(LCD_DATA,*str); str+; 3.5 红外接收软件解码的关键是如何识别0和1,从位的定义可以发现0

55、、1均以0.56ms的低电平开始,不同的是高电平的宽度不同,0为0.56ms,1为1.68ms,所以必须根据高电平的宽度区别0和1,如果从0.56ms低电平过后开始延时0.56ms,以后若读到的电平为低,说明该位为0,反之则为1。为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否则如果该位为0,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右均可。根据码的格式,应该等待9ms的起始码和4.5ms的结果码完成后才能读码。#define UINT8 usigned char#define UINT16 unsign

56、ed int#define UINT32 unsigned longUINT8 CommandDataUINT8 da4=0,0,0,0;UINT8 table18=0x28,0x7e,0xa2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60,0x30,0x25,0xa7,0x26,0xa1,0xb1,0x34,0xab;sbit IR=P33;void delay(UINT16 cnt)while(-cnt);void d870us(void)delay(108);/12Mvoid d1000us(void)delay(125);/12Mvoid d4740us(void)delay(593);/12M/-/ ht6221 解码程序/-UINT8 IRDecode(void) UINT8 i,m,n; for(i=0;i10:i+) d870us(); if(IR)goto exit; while(!IR); d4740us(); /开始解码 for(m=0;m4;m+) for(n=0;n1; dam=dam|0x80; else dam=dam1; dam=dam|0; /while(IR); /while(!IR); if(da0=0x0)&(da1=0xFF) if(da2=(da3) return da2

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!