基于单片机的红外通讯软件设计的毕业设计论文.docx
基于单片机的红外通讯软件设计的毕业设计论文 基于单片机的红外通讯软件设计 目 录 摘要 . I Abstract . II 1绪论 . 1 1.1课题的研究意义 . 1 1.2红外通信的国内外现状 . 2 1.3 目前红外通信技术的应用热点 . 2 1.4 系统设计思路分析 . 3 1.5 系统设计需解决的难点要点 . 3 2系统方案设计 . 5 2.1系统功能设计 . 5 2.2系统的总体方案设计 . 5 2.2.1 系统的总体设计思路 . 5 2.2.2系统总体设计流程图 . 6 2.2.3 系统总体结构图 . 6 2.2.3 系统总体结构图 . 7 2.3系统设计所需用到的主要器件 . 7 2.4系统设计技巧 . 7 3 系统硬件设计. 8 3.1 主要元器件的简单介绍和选择 . 8 ·3.1.1单片机介绍及选择 . 8 3.1.2红外通讯编码解码芯片选择 . 9 3.1.3红外发射头和接收头 . 9 3.2 红外通讯系统电路设计 . 10 3.2.1 最小系统电路 . 10 3.2.3 按键输入电路 . 11 3.2.4红外编码电路及其红外发射 . 12 3.2.5 载波信号电路 . 12 3.2.6 解码电路及其红外接 . 13 3.2.7LCD液晶显示电路和电机电路 . 13 4系统软件设计 . 16 4.1红外通讯系统软件设计的编程语言选择 . 16 4.2 开发环境,即编程软件的选择 . 17 4.3 软件设计原则 . 17 4.4系统软件设计 . 18 4.4.1主程序功能的设计及其实现 . 18 1 A 基于单片机的红外通讯软件设计 4.4.2 LCD1602液晶显示器软件设计 . 21 4.4.3矩阵键盘行列检测软件设计 . 22 4.4.4模拟编码芯片的编码程序设计 . 24 4.4.5 38KHz载波信号调制程序 . 25 4.4.6 解码程序设计 . 25 4.4.7发射端与接收端的通信协议设计 . 28 4.4.8电机控制软件设计 . 28 4.5 软件抗干扰技术 . 29 4.6系统软件设计注意事项 . 29 5 调试及其系统误差分析 . 30 5.1软件编写及调试过程 . 30 5.2调试过程中遇到的问题及其解决办法 . 32 结论 . 34 参考文献 . 35 致谢 . 37 附录 . 38 1 B 基于单片机的红外通讯软件设计 摘要 着科学技术的发展,单片机因其高可靠性和高性价比,在智能化家用电器、仪器仪表等诸多领域内得到了极为广泛的应用。当前单片机对家用电器控制呈现出外型简单化、功能多样化、性能优越化的发展趋向。红外通讯是目前使用较多的一种通讯方法。红外线通讯装置具有体积小、功耗低、功能强、成本低等特点。在家庭生活中,录音机、音响设备、空调彩电都采用了红外通讯系统。本文简述基于单片机的红外通讯设备在现代社会的推广使用情况和发展前景,而系统方面主要基于红外通讯设备的实现原理和单片机原理来设计发射即遥控器和接收端。发射端主要包含按键输入,来控制接收端的电机运转和液晶显示器的显示;并且对可行性进行细致研究,综合功能用途,做出整体设计流程。 关键字:红外通讯 发射端 接收端 系统1 I 基于单片机的红外通讯软件设计 Abstract The development of science and technology, SCM because of its high reliability and cost-effective, in the intelligent home appliances, instrumentation and many other areas has been very widely used. The SCM appliance shows the simplistic appearance, functional diversification, superior performance of the development trend. Infrared communication is a means of communication is the use of more. Infrared communication device has the advantages of small volume, low power consumption, strong function, low cost. In family life, tape recorders, audio equipment, air-conditioning color TV using infrared communication system. In this paper, the infrared communication equipment based on single chip microcomputer in modern society to promote the use of the situation and development prospects, and the system is mainly based on the realization principle and the principle of single-chip infrared communication equipment to design the emission that remote control and receiver. The transmitter includes a key input, to control the operation of the motor and the liquid crystal display the receiving end of the display; and a detailed study on the feasibility, comprehensive functions, make whole design process. Keywords: Infrared communication transmitting teminal receiving terminal system1 II 基于单片机的红外通讯软件设计 1绪论 红外通讯就是通过红外线传输数据,是目前比较常用的一种无线数据传输手段,它具有无污、信息传输稳定、信息传输安全性高以及使用方便等优点。在电脑技术发展早期,数据都是通过线缆传输的,线缆传输连线麻烦,需要特制接口,颇为不便。自红外通讯技术发明以来,去多早期用线缆传输的设备和通讯工具都改为利用外红线来进行通讯,如家电产品、工业控制、娱乐设施等领域。并且经过多年的发展,有了今天以红外通讯为核心技术的蓝牙、红外、802.11等无线数据传输技术1。 1.1课题的研究意义 信息时代,通信技术的发展总是走在各种技术的最前沿。随着各种手持式信息终端设备在我们的工作中频繁的使用出现,就标志着无线通信的时代已经到来,也意味着无线通信这种比传统的有线通信更加的让人接受。因为它方便,快捷,安全,稳定,所以无线通信的方式更加容易被人们重视,从而催促着各种无线通信技术的研发。 红外通信是一种无线的传输方式,正在被日益广泛的应用,大的应用范围从军用,医疗,超市,银行等设备,小的应用则小到家用电器,无一没有涉及到红外通信技术,所以有不断的新的红外通信产品涌进市场,重而也推动了对红外通信技术的研究和发展。红外发射装置电路简单,易于实现,并且对空气污染小。在某些应用场合,比无线电通信具有更好的综合效果。红外无线通信在我国古代已有应用,只是比较简单。在第一次世界大战中德国就研制并运用了红外通信。第二次世界大战中美国、日本、苏联也都是用过红外无线通信。但在这漫长的时间里、由于红外无线通信系统光源均为热辐射源,调制困难,接收器又是光电池,内部噪音很大,影响了通信距离和可靠性,所以发展被怠慢。近年来由于微电子技术发展,发射器件和接受器件已经被半导体器件所代替,又由于它具有无需铺设电路、保密性好、抗干扰能力强、价格低廉、设备简单等优点,再加上近年来各种市场应用设备、家用设备的自动化提高,红外通信又重新被人们重视,从而1 1 基于单片机的红外通讯软件设计 得到发展。 1.2红外通信的国内外现状 红外线是由一位叫William Herschel的天文学家于19世纪发现的,是一种点对点连接的高科技通讯方式,它要求两个通讯端之间的红外发射口对准发射连接,并且不能相隔太远,中间也不能有障碍物,即红外。自XX年发现红外线以来,人们从没停过对它的研究,以至于后人能够利用红外开发出众多应用产品,在安防监控领域,汽车夜视系统,医疗器械行业,家庭电子行业,通讯领域等范围都已经被得到广泛的应用。而 随着社会的不断发展,人们的安全防范意识愈来愈强烈,通讯的必要性也越来越突出可见,由于红外线为不可见光,具有很强的隐藏性和保密性,因此红外在安防和通讯领域大展身手,不论国内外,目前正在市场掀起一股”红外潮”。 传统的红外通讯应用主要在与家电和汽车防盗遥控器方面,由于调制技术、相关收发器技术的快速发展,红外传输应用也发生了质的飞跃。XX年国际红外线协会在美国成立,积极整合建立红外传输的标准,极大地推动了红外产品的发展。XX年全球已有17亿台配有国际红外线协会模组的电子产品进入市场,尤其在电子游戏机市场有极大的潜力。XX年,在信息收发模组方面,由于国际红外线协会模组的价格已从早期的5美元降至2美元,国际大厂纷纷在亚太地区一些劳动力相对低廉的地方寻求加工场所,估计年产值将有1亿多美元的规模,当时一些IC设计公司、系统与应用软件厂商已积极投入应用产品的研究与生产,目前已经形成一定规模。但人们对她的研究仍然延续,时不时出现的新发明新应用,带给我们惊讶与感叹,人类对这座宝藏的开发还远远不够,红外产业还有广阔的扩张空间2-7。 1.3 目前红外通信技术的应用热点 红外应用产品种类繁多,但是比较热门的应用的主要是红外热像、红外摄像、红外通讯、红外光谱仪、红外传感器等几个比较大的领域,但是我们做的是红外通讯所以这里只介绍下红外通讯应用。 红外通讯 传统的红外通讯应用主要在与家电和汽车防盗遥控器方面,由于调制技术、1 2 基于单片机的红外通讯软件设计 相关收发器技术的快速发展,红外传输应用也发生了质的飞跃。XX年国际红外线协会在美国成立,积极整合建立红外传输的标准,极大地推动了红外产品的发展。 1.4 系统设计思路分析 系统分为接收端和发射端两部分,接收端采用4*4矩阵键盘用来接受用户的输入,经过放大器放大后再通过载波信号的调制,把编码信号的有用信号传播出去;接收端接收到信号后,经过解码得到发射端用户输入的信号,最后在数码管或者LCD中显示出来。因为本系统的功能都属89C51单片机的应用范畴,所以使用89C51单片机来完成设计。 1.5 系统设计需解决的难点要点 整个系统设计中有几个部分是难点也是系统正常运行的关键核心。 键盘输入 设计一个4*4的矩阵键盘来用接受用户的输入,利用8个IO口,在程序中对矩阵键盘进行行列的高低电平的判断,并在程序中对某个按键的按下返回预先设定的数字键或者字母键,从而完成用户的输入。 红外发射电路 选择基于通用UART红外通信,是因为可以利用通用UART成熟的硬件机制,实现红外数据通信。这种设计模式实际上是红外通信原理与串口通信机制的有机结合。且有实践证明,这种红外通信模式是可行可靠的8。 载波信号电路 红外线的传播不一定准确而且不一定够远,所以利用89C51单片机定时器产生38KHz的方波输出电路,在编码信号输出端加上一个高频载波信号,通过载波信号的调制,把编码信号的有用信“携带着”传播出去,这样的红外线信号能够传得更远而且也能更有效的避免干扰 红外接受器 红外接收器部分使用红外专用接收集成电路HS0038 来完成红外信号的光电转换及接收。HS0038 是塑封一体化红外线接收器,它是一种集红外线接收、放大、整形于一体的集成电路,不需要任何外接元件,就能完成从红外线接收到1 3 基于单片机的红外通讯软件设计 输出与TTL电平信号兼容的所有工作,没有红外遥控信号时为高电平,收到红外信号时为低电平,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。 1 4 基于单片机的红外通讯软件设计 2系统方案设计 2.1系统功能设计 通用红外遥控系统由发射和接收两大部分组成9。故,系统设计应该分为两部分电路,发射和接收。 系统所带功能如下: 能通过发射端来控制接收端进行实时的控制; 接收端能够分档次的运行在大、中、小三个档次,并且能够实现定时功能,电风扇的开关。 接收端能够在LCD液晶显示器上显示风扇实时运转的转速档次,定时的时间。 2.2系统的总体方案设计 2.2.1 系统的总体设计思路 本次的系统设计是采用AT89C51作为发射电路和接受电路以及38KHz的红外信号载波调制电路的核心CPU,发射电路可以分为基本电路模块、键盘接受模块、红外发射模块三个模块,接收电路可分为基本电路模块、液晶显示模块、电机电路模块三个模块,单独的红外信号载波电路调制电路8-9。 发射电路键盘采用四乘四矩阵键盘电路,通过程序检索用户的输入,返回相应的按键值到程序中;程序使用得到的按键值,得知用户的输入后取得相应程序中预先设定的操作码发送给红外发射器;再通过红外发射器发射出去的信号经过载波电路38KHz方波调制后,由接收端的红外接收器接受到操作码后进行解码操作得操作码从而得知发射端的按键输入,从而改变接收端的电机运转情况和LCD液晶显示情况,达到红外通讯控制的目的。 ·基本电路模块 基本电路分为AT89C51正常运行所需的晶振电路和复位电路,主要由硬件来1 5 基于单片机的红外通讯软件设计 控制和实现没有采用软件的控制。 ·键盘接受模块 键盘接受模块采用四乘四的外接矩阵键盘,在程序中对矩阵键盘行和列的高低变换来得到用户在键盘的输入情况,需要用到单片机的8个管脚,系统中使用了发射端的P2口的八个管脚,若使用的是P0口的八个管脚则需要外接上拉电阻,阻值大约在5-10K之间。 ·红外发射模块 红外发射模块采用SE303红外发射装置来发送信号,发射的操作码为程序中预先设定。 ·液晶显示模块 液晶显示模块使用LM016L液晶显示器来显示电机的运转情况,如电机的运转的转速档次、电机定时时间。 ·电机电路模块 电机电路模块用一个电机模拟电风扇的运转,电机可以改变转速档次,定时运行,并且在相关的线路上接有LED指示灯,分为别为小档指示灯,中档指示灯,大档指示灯,定时指示灯,停转指示灯,用于提示用户电机的运转状态。 2.2.2系统总体设计流程图 启动发射端 启动接收端 等待用户输 入 等待发射端发送 数据 进行编码操作 电机做出相应的运行 LCD显示电机状态 通过发射器发送到接收端 电机停转 1 6 基于单片机的红外通讯软件设计 2.2.3 系统总体结构图 按键电 路 最小系统 发射电路 接收电路 最小系统 按键电路 编码电路 载波信号调制电路 解码电路 显示电路 直流电机单位 2.3系统设计所需用到的主要器件 89C51单片机作为两个电路的核心CPU,用M50462作为红外发射器,HS0038作为红外接收器,LM016L液晶显示器,一个四乘四的矩阵键盘,绿色和红色的LED指示灯,电机。 2.4系统设计技巧 在系统仿真过程中没有现成的SE303的红外发射器和HS0038红外接收器,所以本系统仿真时采用引用接收端和发射端的各自一个管脚相连通,中间装一个LED指示灯来指示信号的传递;在发射的根据uPD6121的编码发射原理,对发射端的管脚进行,低电平脉宽为0.56ms高电平脉宽为0.56ms组成一个周期为1.12ms的位“0”,而低电平脉宽为0.56ms高电平脉宽为1.685ms组成一个周期为2.24ms的位“1”,发送接收端的管脚。每16位组成一个操作码,在接收端解码操作码得到相应的改变电机运转的动作。 1 7 基于单片机的红外通讯软件设计 3 系统硬件设计 基于单片机的红外通讯硬件方面的在本章介绍,根据系统的设计方案和功能要求介绍系统总体的构成和各部分的硬件。系统两大电路模块都采用AT89C51单片机作为核心CPU,键盘部分采四乘四的矩阵键盘;显示部分使用LCD1602液晶显示器;红外发射器使用PH303红外发光二极管;红外遥控编码芯片使用M50462;红外接收器使HS003塑封一体化红外线接收器,它是一种集红外线接收、放大、整形于一体的集成电路;电机采用直流电机。 3.1 主要元器件的简单介绍和选择 ·3.1.1单片机介绍及选择 单片机是微机控制的典型代表,它在一片硅片上集成了中央处理器、存储器和各种输入输出接口,如I/O口,定时器/计数器接口,外部中断接口,串口,读/写接口等)。这样的芯片因为具有和计算机一样的功能,所以称之为单片微型计算机,简称单片机。而单片机又主要应用于实时控制,并通常作为其他系统的组成部分使用,故又称之为嵌入式控制器。自从20世纪XX年代中期美国仙童公司推出第一台F8单片机以来,单片机已经有30多年的发展历史。直至今天,单片的生产厂家和型号已经是各式各样。 红外通讯系统的单片机中,采用AT89C51单片机作为中央处理器。89C51单片机带有4K闪烁可编程可擦除只读存储器,128字节内部RAM,32个I/O接口,2个16位定时器/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU工作,但允许RAM、定时/计数器、串行通信口及中断系统继续工作,掉电方式保存RAM的数据,但振荡器停止工作并禁止其它所有部件工作指导下一个硬件复位。 1 8 基于单片机的红外通讯软件设计 3.1.2红外通讯编码解码芯片选择 红外通讯电路若要将数据通过红外发射头和红外接收头发送出去,则需要在电路的发射端先进行编码操作编码成操作码,然后通过载波电路将编码后的芯片进行38KHz的调制后,才能更远更安全稳定地发送出去;红外接受电路在接收到信号后,则需要进行解码操作,还原发射端的最原始数据,才能知道发射端是发送一个什么样的请求。由于我个人在用Proteus进行仿真时,并没有编码和解码芯片可以使用,所以程序中我全面模拟了编码和解码芯片的功能;我选定了uPD6121为编码芯片,BC7210为解码芯片;之所以选择这两个芯片分别作为发射端和接收端的编码解码芯片是因为BC7210解码芯片成本低,常见,而且BC7210的输出可以设置为并行输出或者串行输出,串行输出方式兼容SPI和UART两种接口,可以轻松完成与各种MCU、PC机的接口。可以取代SAA3049等芯片;而能够与BC7210解码芯片互相支持的多个芯片中又属Upd6121编码芯片最为合适13。 uPD6121编码芯片和BC7210解码芯片如图3-1所示 图3-1 3.1.3红外发射头和接收头 红外发射二极管是红外通信系统中用来发射信号的一个非常重要的元件,虽然它看起来比较小,不太显眼,但是没有它,红外通信就只能是一句空话。它是实现红外通信的桥梁,其重要性就好像灯泡在照明系统中的重要性一样,是整个红外通信系统的焦点。选用常用的红外发光二极管SE303,外形类似LED发光二1 9 基于单片机的红外通讯软件设计 极管,发出红外光。管压降约1.4V ,工作电流一般小于20mA。为了适应不同的工作电压,回路中常串有限流电阻。SE303实物图如图3-2所示 图3-2 红外接收器是红外发光二极管的受控装置,其里面有相应的红外光电转换电路。这里我们采用的接收器是一种红外专用接收集成电路HS0038,用它来完成红外信号的光电转换及接收。接收方一般使用HS0038 一体化红外线接收器进行接收解码,当HS0038 接收到38kHz 红外信号时,输出端输出低电平,否则为高电平。所以红外遥控器发送红外信号时,参考上面遥控串行数据编码波形图,在低电平处发送38kHz 红外信号,高电平处则不发送红外信号。HS0038实物图如图3-3所示。 图3-3 3.2 红外通讯系统电路设计 3.2.1 最小系统电路 单片机如果要能够正常工作,那么最小系统是必不可少的。而所谓的最小系统,就是单片机的XTAL1,XTAL2两个IO口外接晶振电路,RST口外接复位电路,EA、VCC接5V电源,VSS接地,这样组成的一个小系统成为最小系统。所以,红外通讯系统中的发射端和接收端都需要有如下图所示的基本电路模块: 1 10 基于单片机的红外通讯软件设计 图3-4 这里值得注意的是:仿真的时候VCC和VSS都默认地接5V电源和接地,所以不需要再添加,但是绘制原理图和制作PCB板时,不能将VCC和VSS遗漏,否则单片机无法正常工作。 3.2.3 按键输入电路 用来接收用户输入的按键模块,采用四乘四矩阵键盘与单片机的P0八个管脚相连,在程序中进行行列检测,从而得出用户对哪个按键进行的单击操作。这里值得注意的是,使用P0口时,单片机内部是没有接上拉电阻,所以我们需要外部添加上路电阻。按键输入模块电路如下图所示: 图3-5 1 11 图3-5 基于单片机的红外通讯软件设计 3.2.4红外编码电路及其红外发射 红外编码电路的编码主要是由用户码和数据码构成,用户码和数据码统称为传送码,通常为8 位或16 位的“0”“1”码,为了避免出现差错,每次发射的传送码中一般都包含两次编码:一次为原码,一次为反码;或相同的码连续发两次。本系统采用8位的传送码,并且再发送一次反补作为验证。采用uPD6121编码芯片,KL/O0至KL/O7七个管脚接受未编码的原始操作数据;也可以用KI1至KI4四个管脚与KL/O0至O7组成矩阵键盘直接接受输入数据。本系统采用第一种方案。电路模块电路图如下图所示: 图3-6 3.2.5 载波信号电路 在所有的高频通信电路中,载波信号的存在是必不可少的。为使红外信号能够正确的传送出去和传送更长的距离,我们也需要在编码信号输出的同端加上一个高频载波信号。通过这个高频载波信号的调制,把编码信号的有用信息“携带”出去,这样信号的传送距离就能更长,而且能够有效的避免其他信号的干扰,从而提高了信息传送的准确性。本系统采用89C51单片机内部定时器产生38KHz信号的方波,与编码后的传送码结合,调制后传送出去。图中的SendIO用于接1 12 基于单片机的红外通讯软件设计 收来自用户输入的数据编码后得到的传送码。载波信号调制电路如下图所示: 图3-7 3.2.6 解码电路及其红外接 图3-8 通过解码电路后,得到用户最原始的输出数据,从而控制LCD液晶显示器显示电机运转的相关信息,并且控制电机运转。 3.2.7LCD液晶显示电路和电机电路 根据解码后得到的用户原始输入数据,通过程序控制液晶显示器的显示,和电机的运转。液晶显示器使用LCD1602。RS,RW,E三个控制端口分别接单片机P01 13 基于单片机的红外通讯软件设计 口的P0.5,P0.6,P0.7,外接上路电阻,而数据传输端口接单片机的P2口,因为内部已经有上路电阻,所以不再需要外部接上拉