




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业设计说明书(论文) 第II页共II页目 录第1章 引 言31.1 RS-485通信技术的发展31.2 设计任务与方案31.2.1 设计任务31.2.2 系统总体设计方案4第2章 系统硬件设计52.1 硬件系统的结构52.2 系统部件功能描述52.2.1 AT89C51单片机52.2.2 单片机最小应用系统72.2.3 红外接收102.2.4 MAX485接口电路112.3 RS-485串口标准13第3章 系统的软件设计153.1 MCS-51汇编语言简介153.2 串行通信原理153.2.1 数据通信的基本概念153.2.2 串行通信的过程163.2.3 串行通信协议163.3 串行通信程序设计173.3.1 串行口的结构和功能173.3.2 选择串行口工作方式183.3.3 串行口波特率的设置183.3.4 初始化串口193.3.5 程序的编制193.4 红外通信原理203.4.1 红外发送原理213.4.2 红外解码原理223.5 红外解码程序设计223.5.1 延时子程序223.5.2 解码子程序233.6 RS-485程序设计流程图253.6.1 数据接收部分253.6.2 命令执行部分253.6.3 数据发送部分26第4章 系统的调试284.1 WAVE6000软件简介284.2 程序调试284.3 系统硬件的调试30总 结31致 谢32参 考 文 献33附 录 一34附 录 二35本科毕业设计说明书(论文) 第45页共45页第1章 引 言1.1 RS-485通信技术的发展单片机技术和PC机技术在现实生活中都起着不可取代的作用,而结合这两种技术的应用有着极大的发展前景。单片机和PC机串行通信技术有着其特有的魅力,现已经在工业、农业、科研等各个领域广泛地应用。它凭着成本低、实现简单等特点,在单片机与PC机的通信中占着一席之地。如今形成了RS-232总线标准、RS-485总线标准、总线、CAN总线、无线通信、USB总线等并行发展的趋势。可以预测单片机和PC机串行通信技术的应用将更为广泛,并随着其他新技术的发展而发展。单片机与微机之间以RS-232通信最为常见,微机对外的两个串口COM1、COM2都是专门为RS-232通信而设置的。虽然RS-232的通信方式方便,但它也有一些缺点。例如,RS-232只能实现短距离通信,通常只有十余米,要实现长距离通信还得依赖于调制解调器。另外,RS-232对地而言是共模传输方式,而各种电气干扰大多也是对地共模方式,它的抗干扰能力不理想。RS-485通信方式与RS-232相比有很多优点,首先它的通信距离比RS-232要远得多,通常可以做到数百米甚至千米以上,而且还可以实现多点通信方式,从而可以建立一个小范围内的局域网,因而更有实用价值。RS-485采用差分信号传输方式,它的抗干扰能力比RS-232强的多,即便在信号电压比较小的情况下也能获得稳定的传输。所以RS-485通信方式比RS-232应用要广泛。近年来,红外遥控技术在工业生产、家用电器、安全保卫以及人们的日常生活中的使用越来越广泛,特别是在家庭生活中,如电视、空调的遥控器,智能开关,电梯等。利用红外遥控技术具有的控制简单、实施方便、传输可靠性高的特点,将红外遥控技术和RS-485通信技术结合起来,实现基于红外控制的RS-485通信系统。这个通信系统将更加实用,也更容易实现。研究这个课题对于了解RS-485通信系统、红外遥控技术都会有帮助。1.2 设计任务与方案1.2.1 设计任务 采用51单片机作为微处理器,设计出红外控制的RS-485通信系统。要能过实现基于红外控制的,可靠的RS-485串行通信。1.2.2 系统总体设计方案本次设计采用AT89C51单片机作为微处理器,51系列单片机以其优良的性价比,得到了广泛的应用。其特点主要有以下几点:1.可靠性高因为芯片是按工业测控环境要求设计的,故抗干扰的能力优于PC 机。系统软件(如:程序指令,常数,表格)固化在ROM 中,不易受病毒破坏。许多信号的通道均在一个芯片内,所以运作时系统稳定可靠。2.便于扩展片内具有计算机正常运行所必需的部件,片外有很多供扩展用的(总线、并行和串行的输入/输出)管脚,很容易组成一定规模的计算机应用系统。3.控制功能强具有丰富的控制指令。如:条件分支转移指令,I/O 口的逻辑操作指令,位处理指令。4.实用性好体积小,功耗低,价格便宜,易于产品化。整个系统分为两大部分,第一部分是红外发射(红外遥控器),第二部分是红外接收电路。本次设计所采用的红外遥控器是现成的,里面的发射芯片是LC7461。红外接收电路包括红外接收和MAX485接口两部分。当红外遥控器有键按下时,红外接收器接收到来自遥控发射器的红外信号,将收到的红外遥控信号转为电信号,经放大、调解、滤波后,经红外接收器将原编码输入到AT89C51的外部中断0的引脚,然后由AT89C51对接收到的原编码信号进行判断、识别,然后做出相应判断。PC机通过MAX485芯片实现和单片机的通信,红外信号经过解码以后,按遥控器不同的键,在串口调试助手窗口会有不同的数字显示。第2章 系统硬件设计2.1 硬件系统的结构整个硬件系统是由红外接收模块和MAX485接口电路两大部分组成,红外接收模块的作用是将接收的红外信号转换为电信号,经放大、调解、滤波后,输入到AT89C51,然后由AT89C51对所接收的原编码信号进行判断、识别、然后做出相应的处理。MAX485接口电路负责传送数据。2.2 系统部件功能描述2.2.1 AT89C51单片机AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图2.1所示为AT89C51的引脚图,它的主要功能引脚有:1) 电源引脚Vcc和VssVcc(40脚):电源端,为+5V。Vss(20脚):接地端。2) 外接晶体引脚XTAL1和XTAL2XTAL2(18脚):接外部晶体和微调电容的一端。在89C51片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体的固有频率。若须采用外部时钟电路,则该引脚悬空。要检查89C51的振荡电路是否正常工作,可用示波器查看XTAL2端是否有脉冲信号输出。XTAL1(19脚):接外部晶体和微调电容的另一端。在片内,它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚输入外部时钟脉冲。3) 控制信号引脚RST RST(9脚):RST是复位信号输入端,高电平有效。当此输入端保持两个机器周期(24个时钟振荡周期)的高电平时,该引脚输入外部时钟脉冲。4) 输入/输出端口P0、P1、P2和P3P0端口(P0.0P0.7,3932 脚):P0口是一个漏极开路的8位准双向I/O端口。作为漏极开路的八路输出端口,每次能驱动8个LS型TTL负载。当P0口作为输入口使用时,应先向口锁存器(地址80H)写入全1,此时P0口的全部引脚悬空,可作为高阻抗输入。P1端口(P1.0P1.7,18 脚):P1口是一个带有内部上拉电阻的8位双向I/O端口。P1的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P1作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流()。P2端口(P2.0P2.7,2128 脚):P2口是一个带有内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P2作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流()。P3端口(2128 脚):P3口是一个带有内部上拉电阻的8位双向I/O端口。P3口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。P3口与其它的I/O口有很大区别,它除作为般准双向I/O口外,每个引脚还具有专门的功能,见表2.1。图2.1 AT89C51引脚图 表2.1 端口引脚功能端口引脚第二功能P3.0 (串行输入口)P3.1 (串行输出口)P3.2 (外中断0)P3.3 (外中断1)P3.4 (定时/计数器0)P3.5 (定时/计数器1)P3.6 (外部数据存储器写选通)P3.7 (外部数据存储器读选通)2.2.2 单片机最小应用系统单片机最小应用系统是指仅使用单片机内部资源辅以必需的外围电路所构建的简单的应用系统。它包括:单片机的选择和单片机最小应用系统的设计。通过单片机的选择,最大限度满足应用系统对硬件资源的要求,本次课程设计选用AT89C51单片机。最小应用系统设计则是指单片机最基本的、最常用的外围电路设计。时钟电路和复位电路就可以构成一个最小系统。1) 时钟电路 时钟电路是单片机的心脏,它控制着单片机的工作节奏。单片机工作时,是在统一的时钟脉冲控制下一拍一拍地进行着,这个脉冲是由时序电路发出的。时钟信号可以由两种方式产生:一种是内部方式,利用芯片内部的振荡电路产生时钟信号;另一种为外部方式,时钟信号由外部引入。AT89C51单片机有一个用于构成内部振荡器的反相放大器,引脚XTAL1和XTAL2分别是放大器的输入、输出端。外接石英晶体和陶瓷晶体构成自激振荡器。这种方式称为内部时钟方式,如图2.2所示。如果振荡器已启振,则在XTAL2引脚上输出3V左右的正弦波。振荡器的频率取决于晶振的频率。电容C1和C2主要作用是帮助启振(谐振),其值的大小对振荡频率也有影响。因此常用调节C1或C2的容量大小对频率进行微调,电容容量通常在20pF100pF之间选择,当时钟频率为12MHz时其典型值为30pF。本次设计就是采用内部时钟方式。图2.2 内部振荡电路如果从外部时钟频率驱动器件,XTAL2可以不接,而从XTAL1接入,如图2.3所示。对外部振荡器的信号没有特殊的要求,一般为0.512MHz的方波,方波的波形应尽量规范。 图2.3 外部振荡电路2) 复位电路复位是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为了摆脱困境,也须按复位键重新启动。除PC之外,复位操作还对其他一些寄存器有影响。复位是由外部复位电路来实现的,可分为上电自动复位和按键手动复位两种方式。a) 上电自动复位上电自动复位电路只需在RST端接一个电容至Vcc和一个电阻至Vss即可,如图2.4所示。上电复位的工作过程是在加电时,复位电路通过电容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。电路中,时间常数RC越大,上电时保持高电平的时间越长,当震荡频率为12MHz时,典型值C=10, R=8.2,当时钟频率选用6MHz时,C=22, R=1。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就完成了系统的复位初始化。在图2.4的上电复位电路中,当Vcc掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。本次设计就是采用上电自动复位电路。若上电复位失效,用户上电后CPU从一个随机状态开始工作,系统则不能正常工作。上电复位后,RAM单元数据是随机的。图2.4 上电复位电路b) 手动复位除了上电复位外,有时还需要手动复位。所谓手动复位,是指通过接通一按钮开关,使单片机进入复位状态。其电路图如图2.5所示。按一下开关就会在RST端出现一段时间的高电平,使单片机复位。图2.5 手动复位电路2.2.3 红外接收接收电路可以使用红外接收器,一般不需要任何外接元件就能完成从红外接收到输出TTL电平兼容信号的所有工作,注意选择接收器件时要保证接收器件的中心频率与发射信号的中心频率相匹配。本次设计红外接收芯片采用LT0038。LT0038是塑封一体化红外线接收器,它是一种集红外线接收、放大、整形于一体的集成电路,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,没有红外遥控信号时为高电平,收到红外信号时为低电平,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。接收器对外只有3个引脚:Vcc、GND和1个脉冲信号输出OUT,与单片机接口非常方便。脉冲信号输出接AT89C51芯片的外部中断0引脚,数据由红外接收头接收后,经过单片机AT89C51进行解码,数据由P1口输出,因为P1口通常做通用的I/O口使用,所以在结构上有其自身的特点;另外电路的内部有上拉电阻,这些电阻与场效应管共同组成输出驱动。为此,P1口作为输出使用时,已能向外提供推拉电流负载,而无需再接上拉电阻。P1口出来的数据经电阻分压后直接接到发光二极管上,8个发光二极管对应8位的数据码,当数据码为“1”时亮,为“0”时暗,图2.6所示是一个红外遥控器的接收电路。采用这种连接方法,软件解码既可以工作于查询方式,也可以工作于中断方式。在实际应用中,还可以进一步增加抑制干扰电路和提高驱动能力电路,增强系统稳定性。例如将遥控器的数字“1”按下时,则图2.6中的红外接收器接收来自遥控发射器的红外信号,将接收的红外信号转换为电信号,经放大、调解、滤波后,经红外接收器的第2脚(OUT)将原编码输入到AT89C51的12脚(外部中断0),然后由AT89C51对所接收的原编码信号进行判断、识别、然后做出相应的处理。图2.6 红外接收电路2.2.4 MAX485接口电路 MAX485芯片是用于RS-485通信的低功率收发器,芯片中包含有一个驱动器和一个收发器,它的电气特性如表2.2所示。表2.2 MAX485芯片的电气特性通信方式数据率/Mbps转换率限制低功耗关机接收器/驱动器使能静态电流/mA总线上收发器数目管脚数半双工2.5NONOYES300328 MAX485芯片由八个引脚组成,图2.7为其引脚图,芯片各个引脚功能如下所示。1)脚(接收器输出端):若比大200 mV,为高;若比小200 mV,为低。2)脚(接收器输出使能端):为低时,有效;为高时,成高阻状态。3)脚(驱动器输出使能端):若为高,驱动输出和有效;若为低,它们成高阻状态,若驱动器输出有效,器件作为线驱动器用;若为高阻状态时,为低,它们作线接收器用。4)脚 (驱动器输入):为低,将迫使输出为低,为高;若为高,将迫使输出为高,为低。5)脚:接地。6)脚:反相接收器输入和反相驱动器输出。7)脚:同相接收器输入和同相驱动器输出。8):电源正极4.755.25V。图2.7 MAX485芯片引脚图MAX485芯片的引脚的逻辑关系如表2.3、表2.4所示。表2.3 MAX485发送逻辑关系输入端输出端X1101X101000X高阻抗高阻抗10X关闭关闭表2.4 MAX485接收逻辑关系输入端输出端00100000输入端开路110高阻抗由于PC机的接口采用的是RS-232串行通信标准接口,所以MAX485芯片不可以直接与PC机串口相连,需要一个RS232-485转换器,把RS-232信号电平转换成RS-485的信号电平,然后再将RS-485电平转换成TTL电平,并在合适的通信协议和合理的通信程序支持下,完成PC机与单片机的长距离、抗干扰能力强的串行数据通信任务。MAX485芯片与PC机和AT89C51的接口电路如图2.8所示。图2.8 PC机与单片机接口电路2.3 RS-485串口标准单片机串行口的输入输出为TTL电平,抗干扰性较差,只能在几米的范围之内传输数据。为了提高串行通信的可靠性,增强抗干扰性,增加传输距离,必须采用标准串行总线接口将串行口的输入输出电平进行转换。目前流行的标准串行总线接口有RS-232C, RS-422A、RS-485等,它们各有优缺点。RS-232C是最早的串行接口标准,在短距离(15m),较低波特率串行通信当中得到了广泛应用。RS-422A接口是对RS-232C接口的改进,它采用平衡传输电气标准,输入/输出均采用差分驱动,因此具有更强的抗干扰能力,传送速率也大大提高,它向外部的连接器采用9针“D”型插头。RS-232C和RS-422A虽然应用广泛,但有明显的不足,主要体现为:接口的信号电平值较高,易损坏接口的电路芯片;必须经过电平转换电路方能与TTL电路相连;传输速率较低;对噪声的抗干扰性弱;传输距离有限。RS-485以良好的抗干扰性、长距离传输特性和多站能力等优点成为用户首选的串行接口。1) 性能特点a) RS-485的电气特性:逻辑“1”以两线间的电压差为+(26)V表示;逻辑“0”以两线间的电压差为-(26)V表示。接口信号电平比RS-232C降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。 b) RS-485的数据最高传输速率为10Mbps。 c) RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。 d) RS-485接口的最大传输距离标准值为4000英尺,实际上可达到3000米,另外RS-232C接口在总线上只允许连接1个收发器,即单站能力。而RS-485接口在总线上是允许连接多达128个收发器,即具有多站能力。RS-485接口所组成的半双工网络一般只需要两根连线, RS-485接口均采用屏蔽双绞线传输。RS-485接口连接器采用DB9插头座。2) 与其他标准接口的对照表2.5是RS-485与其他标准接口的对照表。表2.5 标准串行接口的对照表RS-232CRS-422ARS-485工作方式逻辑“0”电平逻辑“1”电平节点数最大传输距离最大传输速率驱动器加载输出电压接收器输入电阻抗干扰能力单端315V-15-3V1发1收50英尺20Kb/s5 15V37弱差分26V-6-2V1发10收400英尺10Mb/s2V4(最小)强差分-(26)V+(26)V1发32收400英尺10Mb/s1.5V12强所以时至今日,虽然工业以太网、CAN等现场总线,ZIGBEE等传感器网络,USB等接口,IEEE802等无线网络等都提供全面的配置,但是由于RS-485串行通信兼容性好,简单易用,成本低,在工业通信上使用最广泛的仍然是RS-485串行通信。第3章 系统的软件设计3.1 MCS-51汇编语言简介汇编语言是面向机器的程序设计语言。在汇编语合中,用助记符代替操作码,用地址符号或标号代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。3.2 串行通信原理3.2.1 数据通信的基本概念在实际工作中,计算机的CPU与外部设备之间常常要进行信息交换,一些计算机与其他计算机之间也往往要交换信息,所有这些信息交换均可称为通信。基本的通信方法有并行通信和串行通信两种。一组信息(通常是字节)的各位数据被同时传送的通信方法称为并行通信。并行通信依靠并行I/O接口实现。并行通信速度快,但传输线根数多,只适用于近距离(相距数公尺)的通信。一组信息的各位数据被逐位顺序传送的通信方式称为串行通信。串行通信可通过串行接口来实现。它的突出优点是只需一对传输线,这样就大大降低了传送成本,特别适合远距离通信,其缺点是传送速度较低。串行通信的传送方式通常有3种:单向(或单工)配置,只允许数据向一个方向传送;半双工(或半双工)配置,允许数据向两个方向中的任一方向传送,但每次只能有一个站点发送;全双向(全双工)配置,允许同时双向传送数据,因此,全双工配置是一对单向配置,它要求两端的通信设备都具有完整和独立的发送和接收能力。3.2.2 串行通信的过程两个通信设备在串行线路上成功地实现通信必须解决两个问题:一是串并转换,即如何把要发送的并行数据串行化;二是设备同步,即同步发送设备和接收设备的工作节拍,以确保发送数据在接收端被正确读出。1) 串并转换串行通信是将计算机内部的并行数据转换成串行数据,将其通过一根通信线传送,并将接收的串行数据再转换成并行数据送到计算机中。在计算机串行发送数据之前,计算机内部的并行数据被送入移位寄存器,并一位一位地移出,将并行数据转换成串行数据。在接收数据时,来自通信线路的串行数据被送入移位寄存器,满8位后并行送到计算机内部。在串行通信控制电路中,串并、并串转换逻辑被集成在串行异步通信控制器芯片中。89C51单片机的串行口和IBM-PC机中的8250芯片都可实现这一功能。2) 设备同步进行串行通信的两台设备必须同步工作,才能有效的检测通信线路上的信号变化,从而采样传送数据脉冲。设备同步对通信双方有两个共同要求:一是通信双方必须采用统一的编码方法;二是通信双方必须能产生相同的传送速率。采用统一的编码方法确定了一个字符二进制表示值的位发送顺序和位串长度,当然还包括统一的逻辑电平规定,即电平信号高低与逻辑1和逻辑0的固定对应关系。通信双方只有产生相同的传送速率,才能确保设备同步,这就要求发送设备和接收设备采用相同频率的时钟。发送设备在统一的时钟脉冲上发送数据,接收设备才能正确检测出与时钟脉冲同步的数据信息。3.2.3 串行通信协议通信协议是对数据传送方式的规定,包括数据格式定义和数据位定义等。通信双方必须遵守统一的通信协议。串行通信协议包括同步协议和异步协议两种,在此只讨论异步串行通信协议和异步串行协议规定的字符数据的传送格式。1) 起始位通信线上没有数据被传送时处于逻辑1状态。当发送设备要发送一个字符数据时,首先发送一个逻辑0信号,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。起始位所起的作用就是设备同步,通信双方必须在传送数据位前协调同步。2) 数据位当接收设备收到起始位后,紧接着就会收到数据位。数据位的个数可以是5、6、7或8.IBM-PC中经常采用7位或8位数据传送,89C51串行口采用8位或9位数据传送。这些数据位被接收到移位寄存器中,构成传送数据字符。在字符数据传送过程中,数据位从最低有效位开始发送,依次顺序在接收设备中被转换为并行数据。3) 奇偶校验位数据位发送完之后,可以发送奇偶校验位。奇偶校验用于有限差错检测,通信双方须约定一致的奇偶校验方式。如果选择偶校验,那么组成数据位和奇偶位的逻辑1的个数必须是偶数;如果选择奇校验,那么逻辑1的个数必须是奇数。4) 停止位在奇偶校验位位或数据位(当无奇偶校验时)之后发送的是停止位。停止位是一个字符数据的结束标志,可以是1位、1.5位或2位的高电平。接收设备收到停止位之后,通信线路上便又恢复逻辑1状态,直至下一个字符数据的起始位到来。5) 波特率设置通信线上传送的所有位信号都保持一致的信号持续时间,每一位的信号持续时间都由数据传送速度确定,而传送速度是以每秒多少个二进制位来衡量的,这个速度叫波特率。如果数据以每秒300个二进制位在通信线上传送,那么传送速度为300波特,通常记为300b/s。3.3 串行通信程序设计3.3.1 串行口的结构和功能AT89C51单片机有一个全双工异步串行I/O口,占P3.0(串行数据接收端RXD)和P3.1(串行数据发送端TXD)两个引脚,是P3口的第二个功能。该接口不仅能同时进行数据的发送和接收,也可以作为一个同步移位寄存器使用。串行口的工作过程可概括为如下。1)用户通过串行口的初始化操作规定串行口的工作方式。2)串行口自动完成发送和接收。a发送:将待发送的数据由A送入SBUF(以指令“MOV SBUF,A”实现),在发送控制器的控制下组成帧结构,并自动以串行方式发送到TXD端。在发送完毕后自动将TI置1,向CPU申请中断。b接收:先用指令(SETB REN)置位接收允许才能开始串行接收操作。在接收控制器的控制下,通过移位寄存器将串行数据送入SBUF中。在接收完毕后自动将RI置1,向CPU申请中断。3.3.2 选择串行口工作方式AT89C51单片机串行口有四种工作方式,用特殊功能寄存器SCON中的SM0、SM1两位进行设定,如表3.1所示。表3.1 串行口的工作方式SM0 SM1 工作方式说明波特率0 0方式0同步移位寄存器 0 1方式110位异步收发由定时器控制 1 0方式211位异步收发或 1 1方式311位异步收发由定时器控制本次设计采用串行口工作方式1。方式1真正用于串行发送或接收,为10位通用异步接口。TXD与RXD分别用于发送与接收数据。收发一帧数据的格式为1位起始位、8位数据位(低位在前)、1位停止位,共10位。在接收时,停止位进入SCON的RB8,此方式的波特率可调。3.3.3 串行口波特率的设置波特率(Baud rate),即数据传送速率,表示每秒传送二进制代码的位数,它的单位是b/s。波特率对于CPU与外界的通信是很重要的。假设数据传送率是120字符/s,而每个字符格式包括包含10个代码位(1个起始位、1个终止位、8个数据位)。这时,传送的波特率为:10b/字符120字符/s=1200b/s每一位代码的传送时间为波特率的倒数。=1/1200=0.833ms国际上规定了一个标准波特率系列,标准波特率系列为110、300、600、1200、1800、2400、4800、9600和19200。标准波特率也是最常用的波特率,大多数CRT终端都能够按1109600b/s范围中的任何一种波特率工作。大多数接口的接收波特率和发送波特率可以分别设置,而且可通过编写程序来指定。由上表可以看出串行通信的波特率取决于串行口的工作方式,其中方式0和方式2的波特率是固定的;而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。本设计选择串行口工作方式1,波特率由下式确定:波特率=(T1溢出速率)定时器T1用作波特率发生器时,通常选用定时器模式2(自动重装初值定时器)比较实用,此时,T1溢出速率为(X为TH1和TL1定时计数初值):T1溢出速率=波特率=本次设计中波特率取4800b/s。3.3.4 初始化串口串行口初始化应该包括对SCON、PCON和T1的初始化,也包括TMOD寄存器初始化(将T1设置为波特率发生器)、根据波特率求解时间常数,并对TH1和TL1赋值、启动T1等过程。已知本次设计中,波特率为4800b/s,SMOD=0, =11.059MHz,于是可得出定时器T1模式2的初始值X:该串行口初始化格式如下:ORG 0000HMOV SCON,#50H ; 设置串行口工作于方式1MOV TMOD,#20H ; 波特率发生器T1工作在模式2上MOV PCON,#00H ; 波特率不翻倍 MOV TH1,#0FAH ; 预置初值(按照波特率4800bps预置初值)MOV TL1,#0FAH ; 预置初值(按照波特率4800bps预置初值)SETB TR1 ; 启动定时器T13.3.5 程序的编制图3.1所示为串口通信流程图。图3.1 串口通信流程图以下为串口通信部分程序:WAIT1: JB P3.6,$ ;判断K1是否按下,如果没有按下就等待ACALL DELAY10;延时10毫秒消触点抖动JB P3.6,WRIT1;去除干扰信号JNB P3.6,$ ;等待按键松开MOV A,#0A5H ;将16进制的字符A5发送到串口去MOV SBUF,A ;将A5通过串口发送出去WAIT2: JBC TI, WAIT1AJMP WAIT2;10毫秒延时子程序DELAY10:MOV R4, #20D2: MOV R5, #248 DJNZ R5, $ DJNZ R4, D23.4 红外通信原理红外遥控系统一般由发射系统和接收系统组成。发射系统由专用芯片产生指令代码,经载波调制后驱动红外发射器件,发射红外控制信号。红外信号的指令代码均为二进制码,编码调制由专用芯片完成,编码的方法有多种,不同芯片的编码方法和代码长度有所不同。指令信号常用的编码调制方法有脉冲宽度调制和脉冲位置调制两种。红外遥控信号被红外接收头接收后,经放大、检波、整形,得到TTL电平的代码信号,再送给编码电路,经译码并执行,实现遥控功能。3.4.1 红外发送原理红外遥控发射的整体过程如图3.2所示,当不同的指令键被按下时,指令信号电路产生不同的脉冲编码的指令信号,然后经调制电路调制,变成编码脉冲调制信号,再由驱动电路驱动红外发射器发射红外信号。图3.2 红外发射流程图本次设计所用的红外遥控器是现成的,里面的发射芯片用的是LC7461。当发射器按键按下后,即有遥控码发出,所按的键不同,遥控编码也不同。这种遥控码采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”。上述“0”和“1”组成的42位二进制码经38KHz的载频进行二次调制后可提高发射效率,从而达到降低电源功耗的目的。LC7461产生的遥控编码是连续的42位二进制码组。其中前26位为客户识别码,也可以称为客户码和客户反码,能区别不同的红外遥控设备,防止不同机种遥控码互相干扰,后16位为8位的数据码和8位的数据反码用于核对数据是否接收准确。当遥控器上任意一个按键按下超过36ms时,LC7461芯片的振荡器使芯片激活,将发射一个特定的同步码头,对于接收端而言就是一个9ms的低电平,和一个4.5ms的高电平,这个同步码头以后可以开始接收数据。3.4.2 红外解码原理脉冲波形进入一体化接收头(这里红外接收器采用芯片LT0038)以后,因为接收头要进行解调、信号放大和整形,所以要注意在没有红外信号时,其输出端为高电平,有信号时为低电平,故其输出信号正好和发射端相反。解码的关键是如何识别“0”和“1”,“0”、“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左右即可。3.5 红外解码程序设计3.5.1 延时子程序以下为红外解码的延时子程序。YS1: MOV R4,#20 ;延时子程序1,精确延时882微秒D1: MOV R5,#20 DJNZ R5,$ DJNZ R4,D1RETYS2: MOV R4,#10 ;延时子程序2,精确延时4740微秒D2: MOV R5,#235 DJNZ R5,$ DJNZ R4,D2RETYS3: MOV R4,#2 ;延时程序3,精确延时1000微秒D3: MOV R5,#248 DJNZ R5,$ DJNZ R4,D3RET3.5.2 解码子程序图3.3为红外遥控解码流程图,以下程序为红外解码的子程序。图3.3 红外遥控流程图INT: CLR EA ;暂时关闭CPU的所有中断请求 MOV R6,#10SB: ACALL YS1; JB P3.2,EXIT; DJNZ R6, SB;JNB P3.2, $ ; ACALL YS2 ;延时4.74毫秒避开4.5毫秒的结果码MOV R7,#26 ;忽略前26位系统识别码JJJJA: JNB P3.2,$ ;等待地址码第一位的高电平信号 LCALL YS1 ;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态 MOV C,P3.2 ;将P3.2引脚此时的电平状态0或1存入C中 JNC UUUA ;如果为0就跳转到UUUA LCALL YS3 ;检测到高电平1的话延时1毫秒等待脉冲高电平结束UUUA: DJNZ R7,JJJJA MOV R1,#1AH ;设定1AH为起始RAM区 MOV R2,#2 ;接收从1AH到1BH的2个内存,用于存放操作码和操作反码PP: MOV R3,#8 ;每组数据为8位JJJJ: JNB P3.2,$ ;等待地址码第一位的高电平信号 LCALL YS1; MOV C,P3.2; JNC UUU ;如果为0就跳转到UUU LCALL YS3 ;检测到高电平1的话延时1毫秒等待脉冲高电平结束UUU: MOV A,R1 ;将R1中地址的给A RRC A; MOV R1,A; DJNZ R3,JJJJ; INC R1 ;对R1中的值加1,换下一个RAM DJNZ R2,PP MOV A,1AH CPL A ;对1AH取反后和1BH比较 CJNE A,1BH,EXIT;如果不等表示接收数据发生错误,放弃MOV P1,1AH; CLR P2.5; LCALL YS2 LCALL YS2 LCALL YS2 SETB P2.5 ;蜂鸣器停止EXIT: SETB EA ;允许中断 RETI ;退出解码子程序3.6 RS-485程序设计流程图整个通讯程序分为3 个部分:数据接收部分、命令执行部分、数据发送部分。3.6.1 数据接收部分数据接收程序主要接收一帧正确的数据,数据帧错误的判断符合以下原则:1) 有一个字节偶校验错误,数据帧错误。2) 数据帧格式不正确,数据帧错误。3) 数据帧校验码不正确,数据帧错误。整个程序是在接收中断服务程序中执行的。图 3.4 接收程序流程图3.6.2 命令执行部分这一部分是主程序执行部分,是从机接收一帧正确数据后,通过地址域判断RS-485 总线中主控器是否呼叫本从机,如果是则所有接收到的从机都应响应命令,同时通过密码的方式,可以设置权限,密码和地址是保存在E2PROM 中。在地址和密码判断正确的时候,程序进行命令译码,对要求的命令执行相应的操作,同时如果要通过总线发送数据,应准备好发送数据缓存器的内容,启动发送程序,发送完毕时清除接收事件发生标志。图 3.5 命令执行流程图3.6.3 数据发送部分本程序的数据发送部分是在主程序中执行的。图 3.6 发送程序流程图第4章 系统的调试4.1 WAVE6000软件简介本次软件调试可以采用WAVE6000软件(keil51也可),WAVE6000是一款功能强大的优秀的单片机程序编辑、调试、仿真中文Windows软件。该软件可以配合硬件进行单片机的硬件仿真,也可以单独进行单片机的软件仿真。利用该软件进行单片机软件的编辑调试和模拟仿真,结合一台写码器,就可进行低投入的单片机的开发工作。WAVE6000编译软件,采用中文界面。用户源程序大小不受限制,有丰富的窗口显示方式,能够多方位、动态地展示程序的执行过程。其项目管理功能强大,可使单片机程序化大为小,化繁为简,便于管理。另外,其书签、断点管理功能以及外设管理功能等为51单片机的仿真带来极大的便利。图4.1为WAVE6000的调试软件界面。图4.1 wave 调试软件界面4.2 程序调试1)打开WAVE编译软件,打开“文件”菜单,选择“新建文件”,在出现的文本编辑区,编写相应的实验程序。注意程序编写时,输入法必须切换成英文模式。2)打开“文件”菜单,选择“新建项目”。依次加入模块文件,加入包含文件(如果没有包含文件,按取消键),保存项目。3)打开“仿真器”菜单,选择“仿真器设置”。对各个选项进行设置。4)点击“项目”菜单选择“编译”或点击快捷键“F9”。打开“窗口”菜单选择“信息窗口”观察程序编译是否出错。如有出错“X”号提示,鼠标双击信息窗口中“”号行找到对应指令,进行修改,直至编译正确为止。5)单步调试程序以及全速执行程序。观察分析程序执行过程中各个窗口数据变化,如有错误,修改程序重新执行。程序调试结果如图4-2、4-3所示。 按照上面所示步骤进行调试,图4.2为红外遥控解码程序的调试结果,图4.3为串口通信程序的调试结果。图4.2 红外遥控解码程序调试结果图4.3 串口通信程序调试结果4.3 系统硬件的调试将调试好的程序载入各自对应的芯片中,按下遥控器不同的按键,在串口调试助手页面中就会显示不同的数字。图4.4所示为串口调试的窗口。图4.4 串口调试窗口 总结在整个毕业设计过程中,我对大学所学的知识有了一个系统的认识和理解,尤其是对本课题所用到串行通信系统和红外控制技术相关知识有了进一步的掌握,对单片机串口通信编程、红外解码以及对整个系统的分析和问题的解决有了深刻的认识和切身的体会。正所谓学以致用,在此实践过程中我增长了知识、丰富了经验,提高了解决实际问题的能力。对整个系统的分析与设计过程是对学习的总结过程,更是进一步学习和探索的过程。在实际操作中必须严格按照系统的分析、设计、系统的实施、系统的运行与调试的过程来进行。系统的分析和设计是项很重要的工作,同时也充满了难度。在设计过程中,要边学习,边实践,遇到问题就要不断探索,努力找到问题的解决方法。另外也要细心,坚决避免一些低级的错误的发生。在设计初期,结合理论知识,提出不同的设计方案,经过对比,找到一个最方便最适合的解决方案。设计中还要广泛收集资料,多翻阅一些相关书籍,对所用知识要做到心中有数。和指导老师要保持联系,遇到自己解决不了的问题或者一些疑问,要及时向老师
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业园区综合管廊工程可行性研究报告
- 夫妻自律忠诚协议书
- 外卖餐馆转让协议书
- 委托监管处理协议书
- 婚约解除和解协议书
- 山场林地征地协议书
- 宾馆团队预订协议书
- 学校家长手机协议书
- 夫妻房屋公正协议书
- 外聘老师培训协议书
- 2023北京朝阳区初三一模英语试题及参考答案
- 2024年浙江省中考社会试卷真题(含标准答案及评分标准)
- 2025届高考作文复习:读写结合型作文审题立意
- 你好疯子剧本-你好疯子话剧
- RPA制造行业常见场景
- 云南省曲靖市马龙区通泉中学2025年初三毕业考试英语试题含答案
- 社区戒毒(康复)工作规范
- 设备损坏赔偿协议书范本
- 大国脊梁智慧树知到期末考试答案章节答案2024年中北大学
- 近五年重庆中考物理试题及答案2024
- CJT396-2012 鸭嘴式橡胶止回阀
评论
0/150
提交评论