无线红外多路遥控发射接收系统设计与实现软件设计毕业设计.doc_第1页
无线红外多路遥控发射接收系统设计与实现软件设计毕业设计.doc_第2页
无线红外多路遥控发射接收系统设计与实现软件设计毕业设计.doc_第3页
无线红外多路遥控发射接收系统设计与实现软件设计毕业设计.doc_第4页
无线红外多路遥控发射接收系统设计与实现软件设计毕业设计.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

无线红外多路遥控发射/接收系统设计与实现软件设计毕业设计无线红外多路遥控发射接收系统设计与实现软件设计1 绪 论1.3本课题的主要任务本课题的核心是设计出一个无线红外多路遥控发射/接收系统的软件。本设计要求掌握无线红外多路遥控发射/接收系统的工作原理,本红外多路遥控发射接收是以红外线为传递信息媒体的短距离无线控制系统,可对8个受控对象的工作状态进行遥控,适用于工业,医疗,家用电器等设备的开启或关闭控制,也可以对一种设备八种工作状态进行控制或2种设备的4种工作状态进行控制 。具体要求如下:(1) 遥控距离 不小于3m,即红外遥控发射机与红外接收机之间的距离不小于3m; (2) 遥控路数 8路,即可对8个受控设备进行开关控制; (3) 工作频率 40khz,即红外发射和接收的载频为40khz; (4) 发射端可显示控制路数,接收端可显示受控状态 。2 红外遥控系统简介红外遥控是目前家用电器中用得较多的遥控方式,在讲红外线遥控之前,首先讲一讲什么是红外线。我们知道,人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫。其中红光的波长范围为0.620.76m;紫光的波长范围为0.380.46m。比紫光波长还短的光叫紫外线,比红光波长还长的光叫红外线。红外线遥控就是利用波长为0.761.5m之间的近红外线来传送控制信号的。 2.1 系统组成框图通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、编码调制、led红外发送器;接收部分包括光、电转换放大器、解调、解码电路。 发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管,由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它便发出的是红外线而不是可见光。目前大量使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通发光二极管相同(见图2),只是颜色不同。红外发光二极管一般有黑色、深蓝、透明三种颜色。判断红外发光二极管好坏的办法与判断普通二极管一样:用万用表电阻挡量一下红外发光二极管的正、反向电阻即可。红外发光二极管的发光效率要用专门的仪器才能精确测定,而业余条件下只能用拉距法来粗略判定。接收部分的红外接收管是一种光敏二极管。在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度。红外接收二极管一般有圆形和方形两种。由于红外发光二极管的发射功率一般都较小(100mw左右),所以红外接收二极管接收到的信号比较微弱,因此就要增加高增益放大电路。前些年常用pc1373h、cx20106a等红外接收专用放大电路。最近几年不论是业余制作还是正式产品,大多都采用成品红外接收头。成品红外接收头的封装大致有两种:一种采用铁皮屏蔽;一种是塑料封装。均有三只引脚,即电源正(vdd)、电源负(gnd)和数据输出(vo或out)。图3给出一些成品红外接收头的外形。红外接收头的引脚排列因型号不同而不尽相同,可参考厂家的使用说明。成品红外接收头的优点是不需要复杂的调试和外壳屏蔽,使用起来如同一只三极管,非常方便。但在使用时注意成品红外接收头的载波频率。红外遥控常用的载波频率为38khz,这是由发射端所使用的455khz晶振来决定的。在发射端对晶振进行整数分频,分频系数一般取12,所以455khz1237.9 khz38khz。也有一些遥控系统采用36khz、40khz、56khz等,一般由发射端晶振的振荡频率来决定。此次遥控系统的设计要求载波频率为40khz。 2.2 多路控制的红外遥控系统多路控制的红外发射部分一般有许多按键,代表不同的控制功能。当发射端按下某一按键时,相应地在接收端有不同的输出状态。接收端的输出状态大致可分为脉冲、电平、自锁、互锁、数据五种形式。“脉冲”输出是当按发射端按键时,接收端对应输出端输出一个“有效脉冲”,宽度一般在100ms左右。“电平”输出是指发射端按下键时,接收端对应输出端输出“有效电平”,发射端松开键时,接收端“有效电平”消失。此处的“有效脉冲”和“有效电平”,可能是高、也可能是低,取决于相应输出脚的静态状况,如静态时为低,则“高”为有效;如静态时为高,则“低”为有效。大多数情况下“高”为有效。“自锁”输出是指发射端每按一次某一个键,接收端对应输出端改变一次状态,即原来为高电平变为低电平,原来为低电平变为高电平。此种输出适合用作电源开关、静音控制等。有时亦称这种输出形式为“反相”。“互锁”输出是指多个输出互相清除,在同一时间内只有一个输出有效。电视机的选台就属此种情况,其它如调光、调速、音响的输入选择等。“数据”输出是指把一些发射键编上号码,利用接收端的几个输出形成一个二进制数,来代表不同的按键输入。一般情况下,接收端除了几位数据输出外,还应有一位“数据有效”输出端,以便后级适时地来取数据。这种输出形式一般用于与单片机或微机接口。 除以上输出形式外,还有“锁存”和“暂存”两种形式。所谓“锁存”输出是指对发射端每次发的信号,接收端对应输出予以“储存”,直至收到新的信号为止;“暂存”输出与上述介绍的“电平”输出类似。3 红外遥控系统的总体设计3.1 发射控制系统设计此部分设计要求:用数码管显示所控制路数,即 按下“1”键显示数字“1”,表示对设备“1”进行控制; 按下“8”键显示数字“8”,表示对设备“8”进行控制。 在所有被控制对象处于停止状态时,数码管熄灭。3.1.1 电路设计 发射控制部分电路主要分为:按键及控制电路,显示电路,编码电路,脉码调制振荡电路,红外发射电路这5部分。(1)按键及控制电路按键及控制电路由at89c51与键盘组成,根据设计要求,此系统要求对八路信号进行遥控,因此电路采用最简单的独立式按键输入方式。八个按键表示八个控制设备。按键的一端接89c51的p1(p1.0p1.7)口,另一端直接接地。这种方式的优点是编程简单,当有按键按下时p1口由高电平变为低电平,说明有信号输入,89c51测试到此低电平时,将其对应的bcd码与键值送到相应的端口并行输出。按键接口电路见附图1。(2)显示电路 在显示电路部分用到八段led显示器。八段led显示器由8个发光二极管组成。其中7个长形条的发光管排列成”日”字形,另一个贺点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部分英文字母。led显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称为共阳极led显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极led显示器。如下图4所示。 图4 数码管电路图共阴和共阳结构的led显示器各笔划段名和安排位置时相同的。当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8个笔划段hgfedcba对应于一个字节(8位)的d7 d6 d5 d4 d3 d2 d1 d0,于是用8位二进制就可以表示欲显示字符的字形代码。例如,对于共阴led显示器,当公共阴极接地(为零电平),而阴极hgfedcba 各段为01110011时,显示器显示“p”字符,即对于共阴led显示器,“p”字符的字形码是73h。如果是共阳led显示器,公共阳极接高电平,显示“p”字符的字形代码应为10001100(8ch)。设计要求用数字显示所控制的路数,即将发送的键值转换成与数码管显示相对应的字符码。选89c51的p2口作为字符码输出端口。因为51单片机i/o口输出低电平时输出的电流很小,数码管不会太亮,所以用锁存器74hc373来驱动数码管发光,显示接口电路见附图1。数码管显示18数字时,p2口应送出的字符值分别为:f9h、a4h、b0h、99h、92h、83h、f8h、80h。并用89c51的p3.4、p3.5口分别控制74hc373允许输入g与输出控制/oe。(3)编码电路编码电路有集成电路vd5026组成,它将进行的4位bcd码变换成串行的编码信号。其功能是将并行的4位bcd码转换成串行输出信号,经调制以后发射。将89c51单片机p3口的p3.3p3.0直接接到vd5026的数据输入d3d0端,另外用p3.5接发射指令,vd5026的工作原理与性能见器件介绍。具体电路见附图1。(4)脉冲调制振荡电路为了提高传输信号的抗干扰能力,还需要将编码信号调制在较高频率的载波上发射。本课题要求载波频率为40khz,故可采用cmos门电路构成的脉冲调制电路。当编码信号a为高电平时,振荡器工作,输出为载频信号;当编码信号为低电平时,振荡器不工作,输出为低电平。输出的编码调制信号波形如下图5中的b所示。 a b图5 编码调制波形图脉码调制振荡电路见下图6所示。 图6 脉码调制振荡电路图(5)红外发射电路红外发射电路有放大电路和红外发射管组成。g3、g4为隔离级,其作用是减少发射时的大电流对振荡级的影响;三极管对发射信号进行电流放大。当g4输出为高电平是,三极管导通,红外管工作,当g4输出为低电平时,三极管截止,红外管不工作。 图7 红外发射电路图3.1.2软件设计 软件设计有两种方法:一种是自上而下,逐步细化;一种是自下而上,先设计出每一个具体的模块(子程序),然后再慢慢扩大,最后组成一个系统。在本设计中我用自下而上的设计方法。首先设计出一个延时子程序,再设计显示子程序,最后组成一个按键查询程序。当然在编程之前要先画程序流程图。画程序流程图是程序设计的一个重要组成部分,而且决定成败的关键部分。画程序流程图的过程就是进行程序的逻辑设计过程,这中间的任何错误或忽视均将导致程序出错或可靠性下降。因此,真正的程序设计过程是流程图设计,而上机编程是将设计好的程序流程图转换成程序设计语言而已。正确的流程图画法是先粗后细、一步一个足印,只考虑逻辑结构和算法,不考虑或少考虑具体指令。这样画流程图就可以集中精力考虑程序的结构,从根本上保证程序的合理性和可靠性。接下来就是进行指令代换,这时只要消除语法错误,一般就能顺利编出源程序。发射部分的软件设计有两种方案。第一种方案是在发射部分从编码程序的设计着手,从而设计出整个发射部分。下面是两种方案的比较。(1)方案一:编码程序的设计课题要求用数字显示所遥控的路数,即将发送的键值与数码管显示相对应的字符码。键盘的每一键均表示一种控制,并赋予了键值,因此,编码程序的作用是控制单片机读键盘,然后生成与键值一致的编码,并用串行数据方式发送编码,编码程序流程图如图8所示。 图8 编码流程图其中,置波特率子程序用于设定数据传送速率。当选择串行发送方式1时,其波特率由定时器t1的溢出率和smod的位状态确定。串行数据发送子程序用来设定数据发送程序。串行发送方式1是由10位异步通信方式,其中1个起始位,8个数据位和1个停止位。发送时,首先送出起始位,而后发送数据位d0d7(由低位到高位),最后为停止位。当10位发送完毕后,89c51的t1自动跳变为1,产生中断,串行发送结束。注意:在进行多次发送数据时,必须在程序中有清零命令。按键子程序用来判断有无按键按下。判断时可先将p1口中对应行的口全置“1”,即p1输出为0fh,然后用读引脚的办法将p1口值读入,读入值与0fh 一致,则无键按下,否则就有键按下。10ms延时程序是为了消除按键瞬间按下的抖动。(2)方案二的程序框图下面是程序框图的一部分,是通用的独立式按键查询程序框图。此程序基本功能:查询有无按键按下,没有转下一次查询,有则调用延时子程序,作用是消除按键的抖动,确定此键确实按下。然后调用显示子程序将此键值送显示电路,其四位bcd码送编码电路进行编码。最后判断此按键是否释放,调用延时子程序直到按键被释放。 图9 独立式按键查询程序框图 图10 延时程序框图 (3)方案二的程序设计主控程序的设计思想:发射控制程序主要用到了独立式按键查询程序、延时程序和查表显示程序。用89c51单片机的p1口作为按键的输入,p2口作为显示输出,p3口作为键值的bcd码输出和控制输出。用寄存器r0作为计数器,初值为零,在每次测试有无按键按下之前加1,直到加到7为止,然后又从零开始加,是为了显示查表子程序中查表的目的。由于此系统要求是对8路信号的遥控,在编程时没有用到八位二进制数到四位bcd码的转换。只判断输入健值,然后将其对应的四位bcd码送p3口的低四位输出。p5用做锁存器74hc373和编码器vd5026的输出控制,当有信号要发射时此端口为低电平。p3.4用做控制74hc373的允许输入端,高电平有效。显示电路的程序设计思想:当测试到是哪一路信号输入时,将其对应值的是十六进制数送p2口输出。其对应情况为:信号通道 p2口输出(十六进制) p3口输出(十六进制)按键“1” 0f9h 0d1h按键“2” 0a4h 0d2h按键“3” 0b0h 0d3h按键“4” 99h 0d4h按键“5” 92h 0d5h按键“6” 83h 0d6h按键“7” 0f8h 0d7h按键“8” 80h 0d8h查表显示电路的程序如下:disp: ;显示子程序push sp push psw mov dptr,#tab mov a,r0 movc a,a+dptr ;查表mov p2,a ;将测试到的信号的十六进制送p2口,显示输出pop psw pop sp ret ;返回tab: db 0f9h,0a4h,0b0h,99h,92h,83h,0f8h,80hend如下是延时子程序:delay: ;延时子程序mov r7, #01h d1:mov r6, #0ffhd2:djnz r6,$ ;r6减于1不等于零则转移djnz r7,d1 ;r7减于1不等于零则转移ret ;返回方案一更适合工作状态数比较大的情况下,如对8路受控对象进行8种工作状态的控制,即工作状态总数为8*8种。由于本课题只要求对8个受控设备进行开关控制。而方案一的读入键值子程序是确定被按下的键。当确定有键被按下时,可先对4根列线轮流置“0”,4根行线全部置“1”,由此产生置位值。再读p1口,读入值与置位值一致,则无键按下,否则就有键按下,读入值即为键值。将键值作为发射码送串行发送口。显然方案二更适用于本次设计,一方面编程比较简单,需要的芯片数比较少,可以节约实验室的器材。方案二程序设计时,在汇编语言的环境下进行编程,在伟福仿真器上运行和调试。3.2接收控制设计 接收控制部分的设计要求:用8个led的亮、灭表示相应设备的开关状态 某个led亮该被控对象处于开启状态 某个led灭该被控对象处于停止状态3.2.1电路设计接收控制部分主要有:红外接收、解调电路,解码电路,控制电路三部分。(1)红外接收、解调电路红外接收电路通常由一片专用集成电路和少量外围器件组成。我们采用了应用最为广泛的芯片cx20106,图11是由cx20106组成的红外接收、解调电路。红外接收管将光信号转换为电信号,从cx20106的1脚输入,经前置放大器、限幅放大器放大后送至带通滤波器,带通滤波器的中心频率与红外发射载波频率相同。检波器、积分器组成解调电路,对接收信号进行解调。施密特触发器对解调输出信号进行整形,从7脚输出,该输出为集电极开路电路,因此要接上拉电阻。所有红外遥控器的输出都是用编码后串行数据对3840khz的方波进行脉冲幅度调制而产生的。如果直接对已调波进行测量,由于单片机的指令周期是微秒(s)级,而已调波的脉宽只有20多s,会产生很大的误差。因此先要对已调波进行解调,对解调后的波形进行测量。 图11 红外接收解调电路(2)解码电路解码电路的功能是将解调后的串行数据进行解调,使其成为bcd控制代码,并使控制代码进行输出。vd5027是与vd5026配对使用的通用接收解码器。收到的串行数据从vd5027的14脚输入,经数据提取电路判断后与序列发生器产生的本地地址码亿比特一比特地进行校验。如果第一次接收到的地址码和本地地址码相符,则将紧接着收到的4位数据马储存在内部4bit移位寄存器中(不移到输出锁存器)。当第二次收到的地址码仍与本地地址码相符,则将新收到的数据码于上一次储存的数据码加以比较,若两次相同则控制逻辑电路使有效传输输出端vt为高电平,4比特移位积存器中的数据码转移到输出锁锁存器,并且在输出锁存器保留,直到新的数据代替它。保留在锁存器的数据经缓冲器后输出,同时有效传输输出端vt保持高电平。若两次不相同或4个数据周期内没收到信号,则vt为低电平。电路连接见附图2。(3)控制电路控制电路有89c51与八个发光二极管组成,二极管的亮、灭表示设备的工作状态:亮说明受控设备开启,灭说明受控设备停止。二极管连接在89c51的p2口,在编程时,89c51将收到的四位bcd码转换二极管的控制信号来使二极管发光或熄灭,证明设备的受控情况。p2.7p2.0分别控制18路信号,每次只有一路信号输出,所以二极管每次只有一只发光。3.2.2软件设计 同样的在接收部分主要有译码即解码程序设计和控制程序设计。(1)程序框图译码的工作过程是,由89c51将解调后的编码读入,再由内部程序将读入的编码译成相应的路控制信号,由于编码的就是键值,因此可用查表程序将键值转换成相应的控制信号并用识别标志位的方法,识别键值所对应的控制方式,译码程序流程如图12所示。 图12 译码程序流程图接收控制程序的目的是测试接收到的控制信号,从而控制p2口的输出,使其为高电平或低电平,达到控制受控设备的要求。考虑到接收的只是四位bcd码,所以测试时只判断p1口的低四位(p1.3p1.0)是否为0或1。例如:当测试到p1.3p1.0为0011时,说明接收到的是第三路信号,则选择p2.5口作为信号的输出端,也就是将p2.5清零,使第三个二极管发亮,说明接收到了第三路信号。测试过程为:先检测p1.3是否为0,为0;再检测p1.1是否为0,不为0。说明是1;最后检测p1.0,为1,证明接收到的是0011,即可控制p2.5为0,使第3只led 发光。下面是接收部分的程序框图:图13 接收控制程序框图(2)程序设计设计思想:接收控制的输入用89c51的p1口低四位(p1.3p1.0),当有信号输入p3.2也有中断输入,此时测试p1.3p1.0为0或1,判断是哪路信号,再选择相应的端口输出控制信号。其对应情况:p1.3p1.0 p2端口(p2.7p2.0) 受控设备0001 01111111 led“1” 0010 10111111 led“2” 0011 11011111 led“3”0100 11101111 led“4” 0101 11110111 led“5” 0110 11111011 led“6” 0111 11111101 led“7” 1000 11111110 led“8”首先测试p1.3,是1则说明收到的是第八路信号,因为八路信号的bcd码中,只有第八路的bcd码的最高位为1,而其余的都为0,所以将p2.0清零,说明接收到了第八路信号;是0则有7种可能性,因为其它7个数字的bcd码最高位都为0,此时要测试下一位即p1.1位,依次类推测试出其它几路信号。4 器件介绍4.1 at89c51单片机简介 at89c51是一种带4k字节闪烁可编程可擦除只读存储器(fperomfalsh programmable and erasable read only memory)的低电压,高性能cmos8位微处理器,俗称单片机。at89c2051是一种带2k字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89c51是一种高效微控制器,at89c2051是它的一种精简版本。at89c单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 图14 at89c51管脚图 图15 at89c2051管脚图4.1.1主要特性与mcs-51 兼容 4k字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0hz-24hz三级程序存储器锁定128*8位内部ram32可编程i/o线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 4.1.2 管脚说明vcc:供电电压。gnd:接地。 p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须被拉高。 p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。 p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。 p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。 p3口也可作为at89c51的一些特殊功能口,如下所示:p3口管脚 备选功能p3.0 rxd(串行输入口)p3.1 txd(串行输出口)p3.2 /int0(外部中断0)p3.3 /int1(外部中断1)p3.4 t0(记时器0外部输入)p3.5 t1(记时器1外部输入)p3.6 /wr(外部数据存储器写选通)p3.7 /rd(外部数据存储器读选通)p3口同时为闪烁编程和编程校验接收一些控制信号。 rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。/psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。/ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。xtal2:来自反向振荡器的输出。4.1.3 振荡器特性xtal1和xtal2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,xtal2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。4.1.4芯片擦除整个perom阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ale管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,at89c51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,cpu停止工作。但ram,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存ram的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 将cx20106解调出的遥控编码脉冲直接连入8751单片机的int0和t0脚,定时器t)和t1都初始化为定时器工作方式1,t0的gate位置位。每次外部中断首先停止定时,记录t0、t1的计数值,然后将t0、t1的计数值清零,并重新启动定时。t0的值即为高电平脉宽,t1-t0的值为低电平脉宽,如图2所示。4.2 编译码集成电路vd5026/5027简介 vd5026与vd5027是cmos大规模数字集成电路。前者是编码器,后者是译码器。他们组合应用起来构成一个发射接收数字编译码系统。vd5026编码器是一种8位编码发射器。它的第18脚是编码的输入端,每个输入端可以有3种状态,即“0”、“1”或“开路”,其中“0”表示为低电平,“1”表示为高电平,因此8个脚可以组成38=6561个不同的编码。如果需要更多的编码,可将输入端改为4态连接方式,这时第1脚是第4种状态的公共连接脚,第2脚第8脚与第1脚连接时为第4种状态。所以第2脚第8脚都可以有4种状态,即“0”、“1”、“开路”、“接1脚”。在这种情况下可以组成47=16384个编码。第10脚第13脚也可作为编码地址线,与第1第8脚联合起来组成12位编码地址线,这时编码数可高达411=4194304个。本文要介绍的是vd5026与vd5027配合应用,vd5026的第10第13脚用作数据输入线,根据需要这几个脚可以置“0”或置“1”。第14脚是发射指令端,当此脚接地时,vd5026输出端则发出一组编码脉冲。第15脚、第16脚是一个内置振荡器,外接几十到几百千欧的电阻即可产生振荡,振荡频率为fosc=1600/r(khz),式中r为外接电阻,单位为千欧。第17脚是编码输出端,第18脚、第9脚分别是电源的正、负极。 vd5027接收解码器有相应于vd5026的12位信息。第1脚第8脚是地址线。当vd5026发出的地址编码与vd5027预置的编码相同时,则在vd5027的第10脚13脚有数据输出,该输出信息与vd5026的第10第13脚所置的数据相同。第14脚为输入端,第15脚、第16脚是振荡器,外接电阻值应与vd5026完全相同。第17脚是输出端。编码器vd5026发射时,如果密码相同,vd5027就会输出高电平。vd5026、vd5027的管脚排列见图16。 vd5026 vd5027 图16 编译码器附表1列出了他们的电气特性参数,以供参考。附表 1 (vdd=5v)特性符号最小值典型值最大值单位工作电压vdd256v静态电流istb-110a流出电流ioh-2.0-ma流入电流iol2.0-ma输入电流iin-25a该编译码集成电路工作电压范围较宽,可以在26v范围内正常工作,而且耗电极小,静态电流仅有1a。集成电路内部含有振荡电路,不用再外加晶振。它的外围电路也很简单,也容易与射频、红外线、超声等方式结合起来,组成遥控发射、接收系统。因此这种电路应用非常广泛。如保安、消防、有线对讲、bp机等多用户系统。4.3 八d锁存器74hc3734.3.1特性 74hc373管脚图如图17所示。 图17 74hc373 管脚图 图18 74ls273 管脚图74hc373内含八个带三态输出的八d透明锁存器,每个锁存器有一个数据输入(d)和数据输出(q)。其主要电特性的典型值如下:(1)宽的电源电压范围:26v(2)低的输入电流:1a(3)高的负载能力:15个ls-ttl负载(4)高的工作速度(典型值):tpd =18ns(vcc=5v,cl=45pf)(5)低的电源电流:80a(6)可同总线式系统的数据线接口。设计中用锁存器74hc373来驱动数码管,而没有用74ls273。74ls273的管脚图如图18所示。真值表:如表2所列。表2 74hc373真值表输入输出enledqlhhhlhllllxq0hxxz注:h:高电平、l:低电平、 x:任意、z:高阻、 q0:规定的稳态输入条件 建立前q的电平管脚排列:有双列直插和片装载体两种形式。引脚功能定义: 1d8d:数据输入端;en:三态允许控制端(低电平有效); gnd:地; le:锁存器允许控制端;1q8q:数据输出端。 vcc:电源极限参数:电源电压-0.57v输入电压vi-0.5vcc+0.5v输出电压-0.5vcc+0.5v钳位二极管电流20ma输出电流-35ma电源端/地端电流- -70ma贮存温度-4085工作环境温度070推荐工作条件:如表3所示。 表3 推荐工作条件表参数最小额定最大单位电源电压 vcc2v输入高电平电压 vih3.15v输入低电平电压 vil0.9v输入上升/下降时间 tr、tf500ns静态特性:如表4所示。表4 静态特性表参数测试条件最小最大单位电源电流 iccvcc=6v,ii=6v或0,i0=0 80a输出高电平电压 vohvcc=4.5v,vi=3.15v或0.9v,i0=-20a4.4v输出高电平电压 vohvcc=4.5v,vi=3.15v或0.9v,i0=-6a3.84v输出低电平电压 vilvcc=4.5v,vi=3.15v或0.9v,i0=20a0.1v输出低电平电压 vilvcc=4.75v,vi=3.15v或0.9v,i0=6a0.33v输入电流 iivcc=6v,vi=6v或01a输出高阻态电流iozvi=3.15v或0.9v,vcc=6v,v0=6v或05a注:n表示静态特性测试方法n。5 伟福仿真器简介5.1 e6000l/e6000t/e6000s型 仿真器介绍5.1.1功能 表5 e6000系列的功能表仿真器型号功能e6000/s通用仿真器(1-16位,15m总线速度)硬件测试仪运行时间统计逻辑笔(选配件)windows版本、dos版本双平台、支持keil uvision开发环境e6000/t含e6000/s所有功能事件断点、断点记数跟踪器影子存储器全空间程序/数据时效分析器 e6000/l 含e6000/t所有功能逻辑分析仪 (测试钩为选配件)可编程波形发生器5.1.2 配置仿真头 表6 仿真头功能表仿真头型号可仿真cpupod8x5x8x5x系列(p0口和p2口作为总线或io口用)pod520dalas310/320/510/520/华邦77e58pod51 8x5x系列cpu(p0口和p2口作为总线用)pod20512051、1051系列cpu(需与pod8x5x配合使用)pod552philips 80c552pod438华邦438 cpupodlpc philips lpc76x pod196kc196kc/kbpod196mc196mc/md/mhpod16c5xpic16c52/54/55/56/57/58、pic12c508/509pod16c6x/7xpic16c61/62/63/64/65/67、pic16c71/72/73/74pod16c71x pic16c71x全系列pod16c8xpic16c83/84新仿真头 伟福公司将为e6000系列开发新的仿真头5.1.3 外形示意图9芯串口插座 座 主机伟福e6000/l型逻辑测试钩插座 j1 j234芯仿真插座电源指示灯电源插座20芯仿真插座 图 19 伟福e6000/l外形示意图说明: 1. 仿真器使用9针串行口,与pc机用两头为孔的串行电缆连接。对于一些只有usb口而没有串口的计算机,可以使用usb转串口电缆将usb转成串行口。 2. 根据仿真器型号不同,逻辑测试钩插座只有一个。 3. 根据仿真器型号不同,可能会没有20芯仿真电缆插座。 4. 电源为直流5v/1a(最小),电源插孔的极性为内“正”“外”“负”。5.2 pod8x5x仿真头介绍pod8x5x仿真头可配e2000系列,e6000系列,k51系列仿真器,用于仿真intel8031/51系列及兼容单片机,可仿真cpu种类为8031/32, 8051/52, 8751/52/54/55/58,89c51/52/55/58,89c1051/2051/405。华邦的78e51/52/54/58, lg的97c51/52/1051/2051。 配有40脚dip封装的转接座,可选配44脚plcc封装的转接座。选配2051转接可仿真20脚dip封装的xxc1051/2051/4051cpu。5.3 windows版本软件安装1.将1号安装盘插入a:驱动器2.有几种方法可以执行a:盘的安装程序 a.在我的电脑中打开a:驱动器,双击setup文件b.打开dos窗口,dos窗口命令行中输入a:setup3.按照安装程序的提示,输入相应内容。4.按照提示插入下一张软盘。5.继续安装,直至结束。也可以将安装盘全部复制到硬盘的一个目录(文件夹)中,执行相应目录下的setup进行安装。注意:在安装新版本软件时,如果硬盘上已有老版本的软件,请卸载旧版本软件后,再安装新软件。在安装过程中,如果用户没有指定安装目录,安装完成后,会在c:盘建立一个c:wave目录(文件夹),结构如下: 表 7 wave目录目录 内容c:wave bin 可执行程序 help 帮助文件和使用说明 samples 样例和演示程序5.3.1 编译器安装 伟福仿真系统已内嵌汇编编译器(伟福汇编器),同时留有第三方的编译器的接口,方便用户使用高级语言调试程序。编译器请用户自备。5.3.2安装51系列cpu的编译器1.进入c:盘根目录,建立c:comp51子目录(文件夹)2.将第三方的51编译器复制到c:comp51子目录(文件夹)下。3.在 主菜单 | 仿真器 | 仿真器设置 | 语言 对话框的编译器路径 指定为c:comp51 (参见 仿真器设置) 如果用户将第三方编译器安装在硬盘的其它位置,请在编译器路径指明其位置。5.4 使用说明5.4.1 文件文件 | 打开文件 打开用户程序,进行编辑。如果文件已经在项目中,可以在项目窗口中双击相应文件名 打开文件。文件 | 保存文件 保存用户程序。用户在修改程序后,如果进行编译,则在编译前,系统会自动将修改过的文件存盘。文件 | 新建文件 建立一个新的用户程序, 在存盘的时候,系统会要求用户输入文件名。文件 | 另存为 将用户程序存成另外一个文件, 原来的文件内容不会改变文件 | 调入目标文件 装入用户已编译好目标文件。系统支持两种目标文件格式,bin,hex调入已经编译好的目标文件目标文件格式有二种:二进制(bin):由编译器生成的二进制文件,也就是程序的机器码英特尔格式(hex)。由英特尔定义的一种格式,用ascii码来存储 编译器生成的二进制代码,这种格式包括地址,数据和校验地址选择一般为缺省地址(由编译器定)。如果想在当前项目已编译好的二进制代码中插入一段其它代码,可以去掉”缺省地址”前的选择。然后填入开始插入的地址和结束地址。 用调入目标文件的方法,可以调试已有的二进制代码程序。而不需要源程序。直接调入目标文件进行仿真的方法是:1.新建项目。2.在新建的项目中,设置仿真器类型,仿真头类型,cpu类型。3.调入目标文件。(不要用加入模块方式,而是直接调入文件)4.打开cpu窗口,在cpu窗口中就可以看见目标文件反汇编生成的程序。5.程序停在与cpu相关的地址上(51系列停在0000h处,96系列停在2080h)6.这样就可以单步或全速调试程序了。文件 | 保存目标文件 将用户编译生成的目标文件存盘。对于按项目方式仿真的用户,系统将程序编译正确后,会根据用户在 仿真器|仿真器设置下目标文件 中设置的格式,将生成的二进制代码存盘。如果用户是用调入目标文件方式进行仿真,并且对目标码进行了修改。就可以用文件|保存目标文件 方式存盘。目标文件可以存成两种格式: 二进制格式(bin):由编译器生成的二进制文件,也就是程序的机器码 英特尔格式(hex):由英特尔定义的一种格式

温馨提示

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

评论

0/150

提交评论