汽车行驶信息发送与接收器的设计毕业设计_第1页
汽车行驶信息发送与接收器的设计毕业设计_第2页
汽车行驶信息发送与接收器的设计毕业设计_第3页
汽车行驶信息发送与接收器的设计毕业设计_第4页
汽车行驶信息发送与接收器的设计毕业设计_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业设计说明书(论文)汽车行驶信息发送与接收器的设计序 言现代社会,汽车越来越多,行车安全成为司机和司机家人关注的首要问题。在现代交通中,汽车超车及转弯时经常容易出交通意外,特别是雨雾天气,转向及刹车指示灯能见度减小,使驾驶员不能及时了解前后车的行驶意向。在汽车上设计一种汽车间行驶信息红外线自动接收发送电路,能自动显示前后车的转向、刹车情况并用声响提醒,对提高汽车行驶安全具有一定的意义。单片机的英文名称是micro controller unit,缩写为mcu,又称为微控制器,它是一种面向控制的大规模集成电路芯片。它应用简单灵活,使用非常广泛,但存在无法实时保存大量的数据、实时更新数据等缺点,

2、因此经常需要把单片机和pc机的优势相结合组成系统。pc和单片机之间的通信方式有有线和无线通信技术之分,同时通讯连接方式有多种,如利用微机的串口、并口或专门的i/o板进行数据传送,单片机通过共享通道的方法挂在上述总线上。采用红外线通讯方案具有廉价、近距离、无线、低功耗、保密性强等优点。应用时应根据实际需要进行选择。因此,本文设计了一个将单片机at89c51与红外线发送接收进行结合的系统电路。选择了汽车左转弯、右转弯和刹车3种汽车行驶状态作为发送信息,接受信息有前车左转弯、前车右转弯、前车刹车和后车超车4种显示信息。在汽车行驶中,当前车转弯、刹车或后车超车时都能在本汽车上显示并发出声响提醒。第1章

3、 系统总体设计系统总体设计汽车超车及转弯时经常容易出交通意外,特别是雨雾天气,转向及刹车指示灯能见度减小,使驾驶员不能及时了解前后车的行驶意向。在汽车上设计一种汽车间行驶信息红外线自动接收发送电路,能自动显示前后车的转向、刹车情况并用声响提醒。因此,本设计是一个简单的将单片机at89c51与红外线发送接收进行结合的系统电路。系统可以实现前车左转弯、右转弯、刹车,以及后车超车时进行显示并发出声响提醒。1.1 硬件设计思路本系统通过触发开关来实现电路的“发送”和“接收”功能,前车转弯、刹车时,按下发送按钮,后车就能接收到信息,后车超车时,按下按钮,前车就能收到信号,并发车声响提醒。系统具体工作方框

4、图如下图1-1: 图1-1 系统电路的工作框图1.2 软件设计思路图1-1 系统主程序流程图红外接收器为三引脚结构,安装用方便,其信号脚可直接接单片机p0.1、p1.1及中断输入端口(如图附录1)。p0.1用于接收后车的行驶信息信号,p1.1用于接收前车的行驶信息信号。电平转换接口电路采用9013三极管。当转向开关或刹车开关闲合时,其p0.0、p0.1、p0.2 三端口相应的电平变为零。p0.0为左转弯输入,p0.1为右转弯输入,p0.2为刹车。单片机从p0.3p0.6输出前后车的行驶信息提示信号,其中p0.3用于前车左转弯指示及提醒,p0.4用于前车右转弯指示及提醒,p0.5用于后车超车指示

5、及提醒,p0.6用于前车刹车指示及提醒。当某一输出端口为低电平时,相应的字符灯点亮并发出声响提醒。本车行驶信息的发送是从p3.5输出,是一组调制频率为40khz的方波脉冲,通过三极管放大,由安装在汽车前后位置的红外线发射管发出。第2章 硬件系统各部分电路具体介绍与分析 2.1 系统硬件电路的设计2.1.1 输入系统接口电路输入接口电路有处理红外线接收的红外线接收器及用于转向,刹车信号输入的电平转换电路。红外接收器采用通用远红外接收解调一体成品,其器件为三引脚结构,安装用方便,其信号脚可直接接单片机p0.1、p1.1及中断输入端口。p0.1用于接收后车的行驶信息信号,p1.1用于接收前车的行驶信

6、息信号。电平转换接口电路采用9013三极管。当转向开关或刹车开关闲合时,其p0.0、p0.1、p0.2三端口相应的电平变为零。p0.0为左转弯输入,p0.1为右转弯输入,p0.2为刹车。2.1.2 输出电路单片机从p0.3p0.6输出前后车的行驶信息提示信号,其中p0.3用于前车左转弯指示及提醒,p0.4用于前车右转弯指示及提醒,p0.5用于后车超车指示及提醒,p0.6用于前车刹车指示及提醒。当某一输出端口为低电平时,相应的字符灯点亮并发出声响提醒。本车行驶信息的发送是从p3.5(t1)输出,是一组调制频率为40khz的方波脉冲(见图2-1),通过三极管放大,由安装在汽车前后位置的红外线发射管

7、发出1。图2-1 p3.5端口输出的编码波形图2.1.3 基本系统组成本系统采用12mhz晶振时钟频率,30pf的瓷片负载或匹配电容(校准晶振),上电复位采用最简单的rc电路,片外储存器选择脚(31脚)接正电源。2.2 数据帧的编码格式及发送/接收过程1 编码的格式本系统采用脉冲个数编码,分别代表左转弯、右转弯、刹车3种状态,其中左转弯为2个脉冲,右转弯为5个脉冲,刹车为8个脉冲。为了增加接收的可靠性,第一位码宽为3ms,其余为1ms,数据帧间隔大于10ms,如图2-2 图2-2 红外线接收器输出的一帧数据波形2 数据帧的发送过程当单片机检测到p0.0p0.2端口为低电平时,先设置发送标志,然

8、后依次发送数据帧。发送数据时,中断将被禁止。当刹车(转向)开关闭合时,数据帧将被重复连续地发射,直到开关松开为止。3 据帧的接收过程当红外线接收器输出数据帧脉冲时,第一位码的低电平将启动中断程序,实时接收数据帧。在数据帧接收时,中断将被关闭,并且对第一位(起始位)码的码宽进行验证。若第一位低电平码的脉宽小于2ms,将作误帧处理。当间隔位的高电平脉宽大于3ms时,结束接收,然后根据累加器a中的脉冲个数,使相应的输出口(p0.3p0.6)为低电平,驱动显示及信响电路2。2.3 单片机外围连接电路具体介绍与测试分析2.3.1 单片机芯片的选择mcs-51单片机是美国intel公司于1980年推出的产

9、品,由于它将8位cpu和闪速存储器组合在单个芯片中,为很多嵌入式控制应用系统提供了一个高度灵活且价格低廉的解决方案。内核系列兼容的单片机仍是应用的主流产品。例如:目前流行的at89s51和89c51。本次设计中选用了单片机at89c51,两者相比之下,现有的设备支持at89c51,现有的大量资料也是有关于at89c51多。atmel 89系列单片机是以8031为结构的,所以,它和8051系列单片机是兼容的系列。89系列单片机对于一般的用户来说,存在下面很明显的优点:1. 含有flash存储器因此在系统的开发过程中可以十分容易进行修改,这就大大缩短了系统的开发周期。同时,在系统工作过程中,能有效

10、地保持一些数据信息,即使外界损坏也不影响到信息的保持。2. 和80c51插座兼容89系列单片机的引脚是和80c51一样的,所以,当89系列单片机取代80c51时,可以进行代换。(1)静态时钟方式89系列单片机采用静态时钟方式,所以可以节省电能,这对于降低便携式产品的功耗十分有用。(2)错误编程亦无废品产生一般的opt产品,一旦错误编程就成了废品。而89系列单片机内部采用了flash存储器,所以,错误编程后可以重新编程,直到正确为止,故不存在废品。(3)可进行反复系统试验用89系列单片机设计的系统,可以反复进行系统试验;每次试验可以不同的程序,这样可以保证用户的系统设计达到最优。而且随用户的需要

11、和发展,还可以进行修改,使系统不断能追随用户的最新要求。3. 89系列单片机内部结构89系列的内部结构和89c51相近,它主要含有如下一些部件。(1)8031cpu(2)振荡电路(3)总线控制部件(4)重点控制部件(5)片内flash存储器(6)片内ram(7)并行i/o接口(8)定时器(9)串行i/o接口atmel89系列单片机的分类:atmel89系列单片机可分成标准型号、低档型号和高档型号三类。89系列单片机的标准型有at89c51等4种型号,它们基本结构和89c51是类似的,是80c51的兼容产品,89系列单片机的低档型有at89c1051等2种型号,它们的cpu和89c51是相同的,

12、但是并行i/o口较少。高档型的有at89s8252,这是一种可下载flash单片机,它和ibm微机通信进地程序是十分方便的3。i/o口的功能:在at89c51中有四个双向i/o端口p0p3口,每个端口都是由锁存器、输出驱动器、输入缓冲器组成。当cpu控制系统与外部设备交换信息时,都是通过端口锁存器进行的。四个i/o端口都可作输出输入使用,其中p0和p2口通常用于对外部存储器的访问。接通锁存器时,p0口作为双向i/o使用,如p0口的锁存器的值为1,使输出驱动器中的场效应管截止,引脚空,此时端口可作高阻输入。锁存器的值为0时,下面的场效应管导通,输出为0。p0口作为地址/数据总线口使用时,由“控制

13、”线控制将电子开关接通至“地址/数据”端,分别输出扩展外存的低8位地址a0a7和数据d0d7。一般情况下,当p0口作输入输出线使用时,都要外接拉高电阻。在at89c51和at89c52中,i/o端口复位值均为1。写端口操作:当执行指令来改变端口锁存器的值时,新的值在最后一个指令s6p2被写入锁存器的。在每一个时钟周期的s1p1,锁存器的值由输出缓冲器采样并保存至下一个机器周期的s1p1才到引脚。当锁存器的状态发生变化时,这个变化不会立即出现在输出端,至少经过一个时钟周期后,才把新的值输出。在p1、p2、p3端口内,都接有内部上拉电阻,此上拉电阻分为固定部分和附加部分,当端口的状态要从0变为1时

14、,在发生变化的哪个机器周期的s1p1和s1p2接通附加的拉高电路以增加变化的速度,否则这个状态的变化将十分缓慢。附加的拉高电路允许通过的电流比普通的上拉电阻大100倍。读端口及接口操作:p1p3口的输出缓冲器每个都能取代4个lsttl输入。cmos型的芯片引脚可由集电极开路电路的漏极开路电路驱动,但在状态从0变1时,边化的速度很慢,输入0时,tp3截止,仅靠tp2非常微弱的上拉来驱动状态的变化。在外部总线方式下,p0口的输出缓冲器能驱动8个lsttl输入,但p0口用作输入输出口时需外接上拉电路驱动输入。1. at89c51芯片的介绍有优异的性能价格比。集成度高、体积小、有很高的可靠性、控制功能

15、强、低功耗、低电压,便于生产便携式产品。外部总线增加了ic及spi等串行总线方式,进一步缩小了体积,简化了结构。单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。 2. at89c51主要功能特性数据保留时间10年;全静态工作:0 hz 24mhz;三级程序存储器锁定;1288位内部ram;32 可编程i/o线;可编程串行通道;低功耗闲置和掉电模式;片内振荡器和时钟电路。两个16位可编程定时/计数器1个串行中断可直接驱动led;4k可反复擦写(1000次)rom;共6个中断源;软件设置睡眠和唤醒功能;片内振荡器和时钟电路。at89c51具有下列主要性能:1. 4kb可改编程序

16、flash存储器(可经受1,000次的写入/擦除周期)2. 全静态工作:0hz 24mhz3. 三级程序存储器保密4. 128*8字节内部ram5. 32条可编程i/o线6. 2个16位定时器/计数器7. 6个中断源8. 可编程串行通道9. 片内时钟振荡器另外,at89c51是静态逻辑来设计,其工作可下降到0hz并提供可用软件来选择的省电方式空闲方式(idle mode)和掉电方式(power down mode)。在空闲方式中,cpu停止工作,而ram、定时器/计数器、串行口和中断系统都继续工作。在掉电方式中,单片机振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,只保存片内ram中的内

17、容,直到下一次硬件复位为止。结构框图如图2-3 图2-3结构框图3. at89c51的引脚说明at89c51采用40pin封装的双列直接dip结构, 40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个i/o口,中断口线与p3口线为复用。如图2-4所示:图2-4 at89c51的管脚图图2-5 at89c51的内部结构框图at89c51有40 条引脚,分为端口线、电源线和控制线三类1.端口线(4*8=32条)8051有四个并行i/o端口,每个端口有8条口线,用于传送数据和地址。(1)p0.0p0.7:这组引脚共有8条,为p0口所专用,其中p0.7为最高位,p0.0为最低

18、位。这8条引脚口有两种不同的功能,分别使用于两种不同的功能。第一种情况是89c51不带片外存储器,p0口可以作为通用i/o使用,p0.0p0.7用于传送cpu的输入/输出数据。这时,输出数据可以得到锁存,不需外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性;第二种情况是89c51带片外存储器,p0.0p0.7在cpu访问片外存储器时用于传送片外存储器的第8位地址,然后传送cpu对片外存储器的读写数据。(2)p1.0p1.7:这8条引脚和p0口的8条引脚类似,p1.7为最高位,p1.0为最低位,当p1口作为通用i/o使用时,p1.0p1.7的功能和p0口的第一功能相同,也用于传送用户

19、的输入和输出数据。(3)p2.0p2.7:这组引脚的第一功能和上述两组引脚的第一功能相同,即它可以作为通用i/o口使用。它的第二功能和p0口的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但并不能像p0口那样是可以传送存储器的读写数据。(4)p3.0p3.7:这组引脚的第一功能和其余端口的第一功能相同。第二功能作控制用,每个引脚并不完全相同,如表2-1所列。表2-1 p3口第二功能2.电源线(2条) vcc为+5v电源线,vss为接地线。3.控制线(6)条(1)外接晶体引脚xtal1和xtal2mcs-51的时钟可以利用它内部的振荡器产生,只要在xtal1、xtal2

20、引脚上外接这时反馈电路,内部振荡器便自激振荡,产生时钟输出到内部的定时控制逻辑。定时反馈电路一般为石英晶振和电容组成的并联回路。这种方式称为内部方式,这种方式的外部元件连接如图2-6所示。如果振荡器已起振,则在xtal2引脚上输出3v左右的正弦波。(2)ale/prog:地址锁存允许/编程线,配合p0口引脚的第二功能使用,在访问片外存储器时,89c51cpu在p0.0p0.7引脚线上输出片外存储器低8位地址的同时还在ale/prog线上输出一个高电位脉冲,用于把这个片外存储器低8位地址锁存到外部专用地址锁存器读写数据。在不访问片外存储器时,89c51自动在ale/prog线上输出频率为f0sc

21、/6的脉冲。 图2-6 晶振电路(3)ea/vpp:允许访问片外存储器编程电源线,可以控制89c51使用片内rom还是使用片外rom。若ea=1,则允许使用rom;若ea=0,则允许使用片外rom。(4)psen:片外rom选通线,在执行访问片外rom的指令movc时,8051自动在psen线上产生一个负脉冲,用于为片外rom芯片的选通。其他情况下,psen线均为高电平封锁状态。(5)rst/vpd:复位电源线,可以使89c51处于复位工作状态。通常,89c51的复位有自动上电复位和12按钮复位两种,如图2-7所示。 图2-7 复位电路管脚功能 vcc供电电压gnd接地p0口p0口为一个8位漏

22、级开路双向i/o口,每脚可吸收8ttl门电流。p1口p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流p2口p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流p3口p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流rst复位输入ale/prog当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节psen外部程序存储器的选通信号ea/vpp当/ea保持低电平时,则在此期间外部程序存储器(0000hffffh)xtal1反向振荡放大器的输入及内部时钟工作电路的输入。xtal2来自反向振荡器的输出。

23、表2-2 at89c51的管脚功能2.3.2 单片机外围连接电路具体介绍图2-8 系统单片机外围连接电路图1. 单片机的复位电路当mcs-5l系列单片机的复位引脚rst(全称reset)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果rst持续为高电平,单片机就处于循环复位状态。复位电路的作用是对单片机系统进行抗干扰保护。根据应用的要求,复位操作通常有两种基本形式:上电复位和外部开关手动复位。本设计选用开关复位。如图2-9所示:图2-9 单片机的复位电路复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号

24、,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。图2-9所示的复位电路可以实现上述基本功能,图2-10为其输入-输出特性。但解决不了电源毛刺(a 点)和电源缓慢下降(电源电压不足)等问题 而且调整电路常数改变延时会令驱动能力变差。左边为低电平 rst为手动复位开关。图2-10复位电路输入-输出特性 2. 单片机的时钟电路单片机的时钟信号用来提供单片机片内各种微操作的时间基准,复位操作则使单片机的片内电路初始化,使单片机从一种确定的初态开始运行。在引脚xtal1和xtal2外接晶体振荡器(简称晶振),就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激

25、振荡器并产生振荡时钟脉冲。单片机的时钟电路如图2-11:图2-11 单片机的时钟电路图2-11中电容器c4、c5叫晶振的负载电容,分别接在晶振的两个脚上和对地的电容,起稳定振荡频率、快速起振的作用,其电容值一般在530pf,本设计中选用22pf的电容。需要注意的是: 这两个电容串联的值是并联在谐振回路上的, 会影响振荡频率. 当两个电容量相等时, 反馈系数是0.5, 一般是可以满足振荡条件的。如果不易起振或振荡不稳定可以减小输入端对地电容量, 而增加输出端的值以提高反馈量。电容的大小可起频率微调作用。晶振12mhz的作用:单片机使用12mhz晶振,可以以500hz的采样率,内部振荡方式所得的时

26、钟信号比较稳定。如果采用更高的晶振频率,或采用较少的通道数,这一采样率还可以进一步提高。图2-12 时序描述时钟波形图3. 单片机与红外的接口电路单片机无论完成什么工作,都需要与外部进行信息交换,这种信息交换主要由单片机的i/o完成。单片机选择p0、p2、p1与红外装置的地址脚连接。如图2-13。图2-13 hs0038与单片机接口电路2.3.3 单片机外围连接电路的测试与分析单片机at89c51的外围电路按照图2-8进行焊接无误后。在不接交流电压220v的情况下,将万用表打到电阻档r1或r10档,红表笔接at89c51的20脚,黑表笔分别接电阻r1的接地端、电容(c4、c5)的接地端,观察表

27、头的指针指示值应该为零。用同样的档位,将红表笔接rst的a点(如图2-9所示),黑表笔接at89c51的40脚和31脚,观察表头指正指示值应为零。然后,将两个表笔分别接at89c51的连接端口,观察指针的指示值都应该为零值。如果有阻值说明电路的连接有错误,需要修改,修改后需要重新检测,才能正式通电。在以上的基础之上,接通220v交流电压,将万用表打到直流电压档10v档,红表笔接rst复位键的a端(如图2-9所示),黑表笔接at89c51的20脚,观察表头指针指示在5v左右,表明rst和20脚地的接法无误。用同样的档位测试at89c51的40脚和31脚分别与20脚之间的直流电压,其测试电压值应为

28、5v左右,否则说明电路有故障,需要排故障。按照以上步骤进行测试与分析后,才能证明单片机电路基本可以正常工作。2.4 红外发送接收电路具体介绍与测试分析1 红外系统的介绍人的眼睛能看到的可见光,若按波长排列,依次(从长到短)为红、橙、黄、绿、青、蓝、紫,红光的波长范围为0.62m0.76m,比红光波长还长的光叫红外线。人们见到的红外遥控系统分为发射和接收两部分。发射部分的发射元件为红外发光二极管,它发出的是红外线而不是可见光。常用的红外发光二极管发出的红外线波长为940nm左右,外形与普通5mm发光二极管相同,只是颜色不同。一般有透明、黑色和深蓝色等三种。接收电路的红外接收管是一种光敏二极管,使

29、用时要给红外接收二极管加反向偏压,它才能正常工作而获得高的灵敏度。红外接收二极管一般有圆形和方形两种。由于红外发光二极管的发射功率较小,红外接收二极管收到的信号较弱,所以接收端就要增加高增益放大电路。然而现在不论是业余制作或正式的产品,大都采用成品的一体化接收头。红外线一体化接收头是集红外接收、放大、滤波和比较器输出等的模块,性能稳定、可靠。所以,有了一体化接收头,人们不再制作接收放大电路,这样红外接收电路不仅简单而且可靠性大大提高。2 红外发送接收装置的选择红外接收电路通常由红外接收二极管与放大电路组成,放大电路通常又由一个集成块及若干电阻电容等元件组成,并且需要封装在一个金属屏蔽盒里,因而

30、电路比较复杂,体积却很小,还不及一个7805体积大!hs0038(如图2-14)是一种特殊的红外接收电路,它将红外接收管与放大电路集成在一体,体积小(大小与一只中功率三极管相当),密封性好,灵敏度高,并且价格低廉,市场售价只有几元钱。它仅有三条管脚,分别是电源正极、电源负极以及信号输出端,其工作电压在5v左右.只要给它接上电源即是一个完整的红外接收放大器,使用十分方便。 图2-14 hs00383 hs0038功能介绍hs0038的主要功能包括放大,选频,解调几大部分,要求输入信号需是已经被调制的信号。经过它的接收放大和解调会在输出端直接输出原始的信号。从而使电路达到最简化!灵敏度和抗干扰性都

31、非常好,可以说是一个接收红外信号的理想装置。红外接收电路框图如图2-15 图2-16 红外接收电路框图hs0038 一体化红外接收头,接收频率为38khz1khz管脚依次为: 凸面向自已,从左向右数: 1gnd 2vcc 3out 连接时,在vcc与gnd之间并入一个0.1f的电容有助于改进信号质量。其可以用于遥控编码接收,也可以用于低码率的数据通讯。hs0038 信号电平: 38khz 红外发射接收到时: out低电平输出 38khz 红外发射接收不到时:out高电平输出hs0038的使用注意事项: 1:38khz红外发射信号在hs0038接收角度范围边沿区域时,接收信号不断振荡无法稳定,因

32、此为保证信号质量,使用时发射接收尽力正对为好; 2:hs0038用于数据通讯时,在标准rs232下,波特率设置不要大于2400bps,否则hs0038无法区分到接收的信号(2400bps接近其带宽极限了)。 红外接收头的主要参数如表2-3: 表2-3 hs0038主要参数指标总 结在确定元件芯片后,进行焊接。完成电源电路、单片机外围电路和红外发送接收电路的检测后,并且进行一定的分析。第3章 系统软件设计3.1 系统程序编写思想程序采用c语言来设计,可以编写的单片机程序无须懂得单片机的具体硬件, 也能够编出符合硬件实际的专业水平的程序。 为了完成系统设计要求的功能,需根据需求对at89c51进行

33、编程。编程前,须按:1. at89c51说明设置好地址、数据及控制信号; 2. 在地址线上加上要编程单元的地址信号; 3. 在数据线上加上要写入的数据字节; 4. 激活相应的控制信号; 每对at89c51的flash存储阵列写入一个字节,加上一个ale/prog编程脉冲。重复1-4步骤,改变编程单元的地址和写入的数据,直到全部文件编程结束。3.2 系统主要程序的设计3.2.1 初始化程序 将p0p3端口置输入状态,在堆栈指针设于70h处,定时器t1设为8位自动重装初值模式,定时时间为13s,用于40khz的红外线信号调制。初始化程序:clearmemio:clr a dec a mov p1,

34、a mov p2,a mov p3,a clr p3.5clearmem: mov sp,#70h mov ie,#00h mov ip,#01h mov tmod,#22h mov th1,#0f3h mov tl1,#0f3h setb ex0 setb ex1 clr et1 setb ea ret/*t1中断服务程序*/intt1:cpl p3.5 reti3.2.2 主程序顺序检测p0.1p0.2端口,若某端口为低电平,则转发送程序。结束后延时60ms,再转检测程序循环。主程序流程图如图3-1所示。 图3-1 系统主程序流程图扫键程序(主程序):keywork: setb p1.2

35、;置输入状态 setb p1.1 ;置输入状态 setb p1.0 ;置输入状态 clr 00h ;清00h刹车标志位 clr p1.3/*关蜂鸣器*/ jnb p1.2,key3 ;查刹车输入,为0转key3key4: jnb p1.0,key0 ;查左转输入,为0转key0 jnb p1.1,key1 ;查右转输入,为0转key1key5: jb 00h,key2 ;标志为1转key2 setb ea ;标志为0,开总中断允许 setb ex1 ;开外中断1 setb ex0 ;开外中断0 lcall dl10ms ;延时60ms lcall dl10ms ; lcall dl10ms ;

36、 lcall dl10ms ; lcall dl10ms ; lcall dl10ms ;key6: setb p0.0 ;关前车左转提示输出 setb p0.1 ;关前车右转提示输出 setb p0.2 ;关后车超车提示输出 setb p0.3 ;关前车刹车提示输出 ljmp keywork ;跳回keywork循环key3: lcall delay ;延时消抖动 jb p1.2,key5 ;是干扰转key5 setb 00h ;刹车标志1 ljmp key4 ;转key4查左右转弯按键key0: lcall delay ;延时消抖动 jb p1.0,key5 ;是干扰转key5 mov a

37、,#02h ;发2个脉冲 ljmp remote ;跳到发射程序 key1: lcall delay ;延时消抖动 jb p1.1,key5 ;是干扰转key5 mov a,#05h ;发5个脉冲 ljmp remote ;跳到发射程序key2: clr 00h ;清00h标志 mov a,#0bh ;发8个脉冲 ljmp remote ;跳到发射程序3.2.3 中断接收程序外中断0接收前车信息码,外中断1接收后车信息码。当外中断允许并且红外线接收头输出脉冲编码时,中断程序实时接收编码并且对脉冲个数进行计数,根据接收脉冲个数分别控制p0.3p0.6显示端口。中断接收程序流程图如图3-2所示 图

38、3-2 中断接收程序流程图前车信息接受程序(外中断0):intex0: push acc ;现场保护 push psw ; clr ex0 ;关外中断0 clr ex1 ;关外中断1 clr ea ;关总中断允许 jnb p3.1,read1 ;p1.1为0转read1readout0:pop psw ;是干扰,中断退出 pop acc ; reti ;read1: clr a ;清a mov dph,a ;清dptr mov dpl,a ;hard1: jb p3.1,hard11 ;8*255=2.04ms,2.04ms判定是起始位 inc dptr ;低电平计数(周期为8s) nop ;

39、 nop ajmp hard1 ;低电平循环计数hard11:mov a,dph ; jz readout0 ;高8位为0,小于2.04ms,退出 clr a ;2.04ms判定是起始位read11:inc a ;脉冲数加1read12:jnb p3.1,read12 ;低电平等待 mov r1,#0ah ;高电平脉宽判断用read13:jnb p3.1,read11 ;变低电平转read11 lcall delay ;延时512s djnz r1,read13 ;延时小于10次转read13循环 dec a ;高电平宽大于5ms停止接收,a减1 dec a ;再减1 jz flt ;是2个脉

40、冲,执行flt dec a ; dec a ; dec a ; jz frt ;是5个脉冲,执行frt dec a ; dec a ; dec a ; dec a ; dec a ; dec a ; jz stop ;是8个脉冲,执行stop clr px0 ;外中断0置低优先级 setb px1 ;外中断1置高优先级 ljmp readout0 ;转中断退出后车接受程序(外中断1): intex1: push acc ; push psw ; clr ex1 ; clr ex0 ; clr ea ; jnb p3.4,read2 ;readout1:pop psw ; pop acc ; r

41、eti ;read2: clr a ; mov dph,a ; mov dpl,a ; hard2: jb p3.4,hard21 ; inc dptr ; nop ; nop ; ajmp hard2 ; hard21:mov a,dph ; jz readout1 ; clr a ;read21:inc a ;read22:jnb p3.4,read22 ; mov r1,#0ah ;read23:jnb p3.4,read21 ; lcall delay ; djnz r1,read23 ; dec a ; dec a ; jz blt ;是2个脉冲,执行blt clr px1 ;外中断

42、0于外中断1交换中断优先级 setb px0 ; ljmp readout1 ;转中断退出;flt: clr p0.0 setb p1.3/*开蜂鸣器*/ ljmp readout0 frt: clr p0.1 setb p1.3/*开蜂鸣器*/ ljmp readout0blt: clr p0.2 setb p1.3/*开蜂鸣器*/ ljmp readout1stop:clr p0.3 setb p1.3/*开蜂鸣器*/ ljmp readout03.2.4 信息码发送程序 将扫键程序中的脉冲个数设定值调入寄存器,控制发射脉冲个数,其中第一个脉冲宽度为3ms,其余为1ms,发送完成后延时10

43、ms作为结束标志。当发送编码时,开启定时中断t1,以实现40khz的编码调制。载波发送程序:remote: clr ex0 clr ex1 mov r1,a ljmp out3out: mov r0,#02hout1: setb et1 setb tr1 lcall delay djnz r0, out1 mov r0,#02hout2: clr tr1 clr et1 clr p3.5 lcall delay djnz r0,out2 djnz r1,out lcall dl10ms ljmp key5out3: mov r0,#06h ljmp out1 /*延时249us*2+3=501us*/ delay:mov r7,#0f9h delay1:djnz r7,delay1 ret /*延时10ms*/ dl10ms: mov r6,#14h dl10ms1:lcall delay djnz r6,dl10ms1 ret end 总 结系统程序的编写决定系统的设计成功。程序的运用可以根据系统自身所能实现的功能要求进行编写,同时,用何种语言编写也是对语言的掌握能力而决定

温馨提示

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

评论

0/150

提交评论