




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南昌航空大学电子信息工程学院专业课程设计报告 RS-485串行通信前言随着信息技术的和互连网的发展,以及计算机,通讯,数码产品等领域的高速增长,数字化时代和信息化世界已经来临,数据通信在通讯领域起着举足轻重的作用,数据通信系统是指通过通信线路和通信控制处理设备将分布在各处的数据终端设备连接起来,执行数据传输功能的系统。典型的数据通信系统可用下面的等式描述,即数据通信数据处理数据传输。信息世界和计算机技术的飞速发展和普及,数据通信在信息通讯起着举足轻重的作用,当前的电子科学技术日新月异,采用PC机与单片机进行串口通信,从而构成的工业控制系统、数据传输系统、分布式系统等越来越受到广泛的运用。在这些系统中稳定可靠、方便快捷的数据通讯是最显著的优点。微型计算机与外界的通信分为并行和串行两种方式。并行接口在控制和仪器领域中应用很广泛,而串行接口在数据通信系统中占有特别重要的地位。串行通信是在单根导线上将二进制数一位一位的顺利传送。它与并行通信相比,虽然速度低,但对远距离传送来说,可节省大量的线路成本。串行通信适合远距离数据传输。而且它具有的良好的抗噪声干扰性,长的传输距离等优点使其成为首选的串行接口。此外,计算机的发展对通信起了巨大的推动作用.计算机和通信紧密结合构成了灵活多样的通信控制系统,也可以构成强有力的信息处理系统,这样对社会的发展产生了深远的影响。数据通信是计算机广泛应用的必然产物。第一章 系统组成及工作原理1.1、设计内容与要求:本系统的具体的设计要求为:(1)利用RS485 串行芯片实现双向通讯(2)传送的数据在显示器上显示出来1.2 传送的数据来源的方案选择 方案一:ADC0809芯片,ADC0809是TI公司生产的8位逐次逼近式模数转换器,包括一个8位的逼近型的ADC部分,并提供一个8通道的模拟多路开关和联合寻址逻辑,为模拟通道的设计提供了很大的方便,用它可直接将输入的模拟信号,分时进行A/D转换。方案二:7279接口芯片。7279可编程键盘显示器接口芯片具有动态显示驱动电路简单 、不占用 CPU的时间、可自动进行键盘扫描、与计算机接口方便、编程容易、系统灵活等特点。 该系统采用方案二,电路比较简单,软件编程也比较顺畅,HD7279是一片具有串行接口的,可同时驱动8段共阴式数码管的智能显示驱动芯片,该芯片同时还可以连接多达64键的键盘矩阵,单片即可完成LED显示。1.3系统组成及原理串行通信分为同步通信和异步通信2种方式。同步通信是指通过在每个数据块开始时的同步字符来实现收发双方同步的一种数据传输方法,常用于信息量大,速度要求高的场合;异步通信则规定了标准的字符数据传输格式,即每一帧信息由起始位、数据位、奇偶校验位和停止位组成。由于有冗余位,所以传送效率不高,常用于信息量不大,速度较低的场合。在计算机测控系统中,由于串行接口的标准化,一般采用异步串行通信方式,以提高其通用性。由于各种接口的机械和电器特性有所差异,串行通信分为近程通信和远程通信。该系统主要采用上位机(主机)和下位机(从机),RS-485做为串行通信协议和显示三模块组成,上位机和下位机采用AT89C52单片机来,RS-485协议通过MAX485芯片,显示采用HD7279可编程数码管来实现。其系统原理工作结构图如图1.1所示。其中单片机1(2)和HD7279实现数据采集和显示的功能,然后通过RS-485通信协议实现数据的传送,并在单片机2(1)显示送传送的键号。图1.1 系统原理结构图S STC89C52单片机内部有一个全双工的串行接收和发射缓冲器(SBUF),这两个在物理上独立的接收发射器,即可以接收也可以发射数据,但接收缓冲器只可以读出不能写入,而发送缓冲器只能写入不能读出,它们的地址是99H。这个通信口即可以用于网络通信,亦可以实现串行异步通信,还可以构成同步移位寄存器使用。STC89C52(与AT89C52兼容)单片机的串行口在方式0工作状态下,使用移位寄存器芯片可以扩展多个8位并行I/O口。在LED点阵显示屏应用系统中,一般都采用数据同步移位输出方式,并使用移位寄存器芯片扩展并行I/O口驱动LED点阵显示。LED点阵显示采用扫描方式,为不产生闪烁感,每秒需要传送50屏点阵显示数据,因此有大量的数据要通过同步移位的方式送到显示驱动电路部分,这就要求单片机能够快速地输出数据。AT89C52单片机的串行口在方式0工作状态下,数据以fosc/12的波特率输出,1个字节数据写入SBUF后,需检查中断标志位TI是否为“1”并清“0”TI或延时几个机器周期后才能继续写入了一个数据,输出速度慢。在LED点阵显示屏应用系统中,系统与PC机之间的通讯需要使用单片机的串行口,显示数据的同步移位输出口只有另外扩展。PC机与单片机之间通常采用2种通信方式:并行通信和串行通信。并行通信是指将待发送数据的各位同时传送,串行通信则将数据一位一位地按顺序传送。并行通信虽然传输效率高,由于所需硬件设备复杂,不适于长距离通信,所以一般只适用于要求实时性强,传送速率较高的控制系统中,实用面较窄;相比之下,串行通信简单易实现,传输距离较长,所以已被广泛应用于各种工控系统中。1.3系统单元功能模块 本系统具有以下功能模块:(1) 数据采集单元(2) 数据发送单元(3) 数据采集单元(4) 数据显示单元第二章 软件设计2.1 系统总体流程图 本系统的软件设计主要分为:系统初始化、7279显示初始化、查询判断数据是否接收,判断有无数据采集,数据处理,发送接受,显示数据等部分,每个功能模块对整体设计都很重要,保证这些模块的整体连贯性才能使单片机AT89C52通过软件程序对数据进行显示发送和接收的功能。下面对每一个功能模块进行详细说明:(1)系统初始化:堆栈初始化SP为67,串行口工作方式一,并允许接收,MAX选通端P1.4=0,选择计数器1,工作方式2波特率设置为1200B/S,根据波特率公式 : 波特率=F/12*N*(256-Z)来设置计数器初值。其中Z就是计数器的初值。(2)HD7279初始化:HD7279A的控制指令分为二大类-纯指令和带有数据的指令。其中纯指令包括复位指令A4H,当HD7279收到该指令后 ,将所有的显示清楚,所有设置的字符消隐,闪烁等属性也被一起清除,执行该指令后,芯片所处的状态与系统所处状态一样。(3)查询:该软件设计是采用查询的方式来接收数据的,查询中断RI是否等于1,来进行数据接收。(4)判断有无数据采集:当HD7279检测到按键时,KEY(P1.3)脚从高电平变为低电平,并一直保持按键结束,P1.3的电平来判断是否有按键按下,且设置标志位10H判断是否弹起来进行判断。 (5)采集数据:在本系统中,数据采集通过两部分来完成,读取键值,并将键值转换为键号。HD7279有读取键盘数据指令15H,能够读得HD7279返回的按键代码,其范围是00H-3FH(无键按下时为FFH)。(7)显示:HD7279连接8个共阴式数码管,可以实现字型码的显示,在该系统中实现键号的显示。(8)发送和一字节程序:在该系统中,需要发送接收一字节来进行对HD7279的控制,从而实现数据的传送。总之,主机软件设计主要包括主机的初始化设计,判断串行中断,当有中断时,将接收缓冲器SBUF中内容送显缓区显示,重复执行以上过程。其流程图如图2.1所示。 图2.1 系统总体流程图2.2 初始化部分 初始化部分包括系统初始化和HD7279初始化,是为接下来的串行接受、发送,数据采集和发送接收做准备的。波特率为1200B/S,设置波特率时选择计数器1,方式2,定时器方式控制积存器的设计为:定时器方式控制寄存器TMOD的设计:定时器方式控制寄存器TMOD设置如表2-1:表2-1 定时器方式控制寄存器TMOD 00100000D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0T1方式字段T2方式字段在本系统中选择计数器1,方式2,根据设计要求选择控制字的高四位,并且将M1、M0设置为10,为常数自动装入的8位定时器/计数器计数方式。C/T是定时与计数方式选择位,本次设计采用的是晶振脉冲的12分频信号作为计数脉冲,即C/T0。GATE是门控位,在设计过程中设计计数不受外输入引脚的控制,即GATE=0,综上所诉,TMOD设置为20H。由表可知:本次设计中定时器工作于方式2,它可自动恢复初值。串行口工作方式控制寄存器方式SCON的设计:SCON控制字是用来控制MCS-51,串行口的工作方式和波特率。其波特率发生器由定时器T1承担。串行口控制寄存器SCON设置如表2-2所示: 表2-2 串行口控制寄存器SCON01010000D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8TB8TIRI其中SM0、SM1为方式选择位,本次数据通信是采用方式2,9位异步通信接口,波特率为f/64或f/32晶振,SM2是允许方式2和3的多机通信控制位,当为 SM2:允许方式2和3的多机通信控制位,在方式2/3中,当SM2=1时,则接收到的第9位数据(RB8),只有为1才会激活RIREN:允许串行接受位,由软件置位REN以允许接收,由软件清“0”已禁止接收。TB8:在方式2/3里,发送的第9位数据,由软件置位或复位。RB8:在方式2/3里,是接收到的第9位数据。在方式1时,如SM2=0,RB8是接收到的停止位;在方式0中不使用RB8。TI:发送中断标志,由硬件在发送完时置位,必须由软件清“0”RI:接受中断标志,由硬件在发送完时置位,必须由软件清“0” 表2-2 串行口控制寄存器SCON01010000D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8TB8TIRI由表可知:本次设计中串行口工作于方式1,REN为1,允许串行接收位。当串行口工作于方式1接收数据时,数据从RXD端输入。其流程图如图2.2所示。图2.2A为系统初始化,图2.2B为HD7279初始化 图2.2 初始化流程图波特率设计:串行口被定义为方式0发送接受时,其波特率为f/12,定义为方式2时,其波特率为f*2SMOD/64(32)。方式1/3的波特率和T1的溢出率有关,方式1/3的波特率设计讨论如下:1. T1的溢出率计算A. T1定时器工作于方式0:溢出率n=f/12*(213-Z+NR)-1,其中Z为初值,NR为溢出后恢复初值的周期数。B. T1定时器工作于方式1:溢出率n=f/12*(216-Z+NR)-1C. T1定时器工作于方式2:n=f/12*(28-Z)-1(自动恢复初值)D. 波特率波特率=溢出率/NPCON的SMOD=0时N=32,PCON的SMOD=1时N=162. 方式1/3波特率设计波特率设计时,先设计串行口波特率和T1的工作方式,然后计算出T1的初值。综上所述:根据定时器和串行口工作方式可计算出本次设计中波特率f=1200B/S。2.3 判断有无按键按下部分 判断有无按键按下是整个系统的为后面的键盘扫描做准备的,如果有键盘按下,就能把键号当做发送的内容,判断有无键按下的流程图如图2.3所示。图2.3 判断有无键按下的流程图在判断有无按键按下之前,该系统一直使系统处于允许接收的状态,再判断RI是否等于1,当判断串行口接收终端标志RI为“1”时,将接收缓冲器SBUF中的内容送显缓区。软件查询KEY脚(P1.3)的电平,当为低电平读取值,采用这种方式要求主循环程序时间应小于100ms,为保证按一次键只得到一个键值,在软件中应建立一个标志,设10H为标志位,标志位10H=1为键盘已经弹起。A保存按键值,如果没有键盘按下则HD7279输出A=FFH。2.4 读键值部分 读键盘数据指令15H设置如表3-3所示 表3-3 读键盘数据指令15HD7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D000010101d7d6d5d4d3d2d1d0该指令从HD7279读出当前的按键代码,前一个字节015H为指令代码,而后一个字节d0-d7则为HD7279返回的按键代码,其范围是00H-3FH(无键按下为FFH)。(1) 当HD7279检测到有效的按键时,KEY引脚(P1.3)从高电平变为低电平,并一直保持到按键结束,在此期间,如果HD7279接收到读键盘数据指令15H,则输出当前按键的键盘代码。(2) 如果在收到读键盘指令时没有有效键按下时,HD7279将输出FFH读键值程序流程图如图2.4所示,将所得到的键值放入A中。将所得到的键值放入A中,其键值与按键在键盘中的位置和硬件连接有关。 图2.4 读键值流程图2.5读键号部分在读键值部分已经得到了按键的键值,键值存于A中,求得的键号也存于A中,该程序用查表法来求键号,其具体流程图如图2.5所示。 图2.5 读键号流程图2.6 显示部分 显示部分具体流程图如图2.6所示。图2.6 数据显示程序流程图显示部分是整个系统用得最多得部分,主机显示键号,从机显示接收得数据,该系统译码方式采用软件译码方式,显示方式采用静态显示,HD7279是可以同时驱动8位共阴式数码管得智能显示驱动芯片,单片即可完成LED显示得功能。采用下载数据但不译码方式,其字形表根据需要和硬件连接来确定,指令码为90H-97H,显缓区为40H-47H,由于本系统只显示一位数据,所以指令码为97H,显缓区为41H。 2.7 发送部分串行口接收和发送在整个系统中都是采用查询得方式来进行的,但是在发送之前要选通MAX485,置选通端RE(P1.4)为高,允许发送。而且在发送之后不允许接收,并且清1.4,防止显示不稳定,产生干扰。在程序最后允许接收,置REN为1其流程图如图2.7所示。 图2.7 发送程序流程图第三章 系统调试3.1 硬件调试硬件调试主要是分模块调试,分别对89C52和MAX485工作状态进行测试,对RXD和TX端进行电平测试。检测发送端和接收端得电平来反应程序相应状态。在加入电压+5V后,对电路各节点进行电压测试,防止虚焊。3.2 软件测试 该系统中对软件测试,先对HD7279进行简单得键盘扫描和显示程序来对HD7279功能完善性进行判断。对单个单个单片机进行调试时,我们设计了7279键盘程序并编写了09,AF16个字形码,与系统板上的16个键相对应。通过调试,使得在键盘上按键时,显示其对应的字形码,这部分主要是调试键盘及显示程序。在判断功能完善后进行以下部分的调试:(1)HD7279键号得显示,起始时键盘显示得是乱码,在程序调试过程中,将字形表得内容重新编过后发现是没有注意字形码的正确编写。(2)在发送和接收部分,先实现只能一单片主机发送,另一单片主机接收和显示,在这个部分中,起始只能实现主机得显示功能,从机没有显示,即没有接收,在对程序的慢慢摸索和调试中,发现没有及时让P1.4(MAX485的RE和DE),在进行发送时将P1.4置高,选通MAX485,使其工作在发送状态,在进行接收时将P1.4置低,使其工作在接收状态。(2)双边通信部分,出现的问题比较严重,起始时不但只能是想一机发送一机接收,反过来就不能,而且接收端显示的数据在键盘弹起后就复位显示为0了,经过程序调试,发现没有在接收后没有进行延时,还没有清REN和P1.4,使程序产生干扰,不能正确完成数据接收,发送,接收的功能。(4)总体系统功能调试,在完成以上得调试后,将最后正确得程序烧入STC89C52中,整个系统没有任何显示,最后才发现在烧程序的过程中没有及时打开电源,导致不能正常工作后,后经改正后,在接上+5V得电源后整个系统都能正常工作,单片机1和单片机2都能进行发送和接收并显示得功能,系统功能比较完善。第四章 总结本次设计得是基于RS-485得数据通信系统,在设计过程中计过,首先,通过在图书馆、网络上找资料,以及找老师答疑确定系统总体框架,再根据系统要实现的功能将系统分成键盘数据显示、主机、从机等模块,并对每个模块选择实现方案,接着设计软件并一步一步的进行调试,在调试过程中发现问题并通过查找资料、找老师答疑解决问题。软件设计是以正确的硬件电路为基础的,它是一个比较麻烦的环节,需要十分细心,程序稍有点差错就出不了想要的结果,而且检查起来也比较繁琐,因此它能很好的锻炼耐心。这次实验使得作者对7279和89C52芯片有了更深刻的认识,同时也了解了串口通信的工作原理。通过这次专业课程设计不仅提高和巩固了作者所学的理论知识,更加锻炼了作者的动手能力和与同伴的协调能力,当然实验之所以能成功这也肯定离不开老师的辛勤指导,这些对作者以后的生活和学习是非常有帮助。软件编程这一环节中要正确地使用内存。在设计的过程中要注意先把程序流程图给理清,把完成不同功能的程序模块化,并画出流程图,再进行编写。在排故过程中更要求认真仔细避免工作的重复性。在本次设计中还提高了软件调试能力。在整个设计过程中,明白了光理论没有实践是不行的,要理论和实际相结合,培养动手能力,为今后得工作打下基础。参考文献1.张友徳,赵志英,涂时亮.单片微型机原理、应用与实验(第五版).复旦:复旦大学出版社,20062 徐建军主编.MCS-51系统单片机应用及接口技术.北京:人民邮电出版社,20033 苏凯,刘庆国,陈国平主编.MCS-51系统单片机系统原理与设计.北京:冶金工业出版社,20034 张毅刚,彭喜元,孟升卫,刘兆庆.MCS-51单片机实用子程序设计(第二版).哈尔滨:哈尔滨工业大学出版社,20035 高峰编著.单片微机应用系统设计及应用技术.哈尔滨:机械工业出版社,2004年6 邬宽明.单片机外围器件实用手册(数据传输接口器件分册).北京:北京航空航天大学出版社,1998附录附录一 芯片的介绍(1)7279可编程数码管/键盘串行接口芯片 HD7279是一种较强的有键盘显示接口电路的集成块,它是单片机应用系统中常用的具串行接口的一种外围接口电路。我们用的是从单板机上接出,它管理64个键和能同时驱动8个共阴式数码管,其功能为:把CPU处理后的结果送到数码管显示。从而完成整个实验的要求。(2)89C52芯片AT89C52单片机属低电压,高性能CMOS8位单片机,片内含8K字节的可反复檫写的只读程序存储器(EPROM)和256字节的随机存取数据存储器(RAM),32个I/O输出端口,面向控制的8位CPU;3个16位定时器/计数器;1个全双工的异步串行口;8个中断源、1个六向量中断结构;1个全双工的串行通信口,片内振荡器及时钟电路。同时,AT89C52可以降到0HZ的静态逻辑操作并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。(3)MAX485芯片MAX485接口芯片是Maxim公司的一种RS485芯片。采用单一电源+5 V工作,额定电流为300 A,采用半双工通讯方式。它完成将TTL电平转换为RS485电平的功能。MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。在与单片机连接时接线非常简单。只需要一个信号控制MAX485的接收和发送即可。同时将A和B端之间加匹配电阻,一般可选100的电阻。附录二 程序清单 ORG 0000HMAIN: MOV SP,#67HLCALL chushi_7279 ;7279初始化MOV TMOD,#20H ;计数器1工作于方式2MOV TH1,#0E8HMOV TL1,#0E8H ;设波特率为1200b/sSETB TR1MOV SCON,#50H ;串行口方式1,REN=1允许接收CLR P1.4 ;485使能端,允许接收M0:JNB RI,M1 ;判断是否接收完MOV A,SBUF;接收完送入ACLR RI ;清接收标志LCALL DISP ;显示接收数值M1:MOV C,P1.3 ;未接收完,判断键是否按下JC M2 ;无键按下JB 10H,M3 ;有键按下且未弹起LCALL KEY ;把键值存于A中LCALL JH;把键值变为键号存于A中SETB P1.4 ;允许发送PUSH ACCLCALL SENT ;调用发送子程序POP ACCLCALL DISP ;显示发送按键SETB 10H ;按键是否弹起标志,0为弹起,1未弹起LJMP M0M2:CLR 10H ;按键弹起M3:MOV A,#0FFHLJMP M0KEY:CLR P1.0 ;CS置低,选中7279MOV R6,18HK1:DJNZ R6,K1MOV A,#15HLCALL STFS ;调用7279发送子程序MOV R6,#0CHK2:DJNZ R6,K2LCALL STJS ;调用7279接收子程序SETB P1.0RETchushi_7279: ;初始化7279CLR P1.0 ;CS=0,选中7279MOV R6,#18HLI0:DJNZ R6,LI0MOV A,#0A4H ;7279复位,清楚所有显示ACALL STFSMOV R6,#02HLI1:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于移动互联网的政务服务模式创新研究
- 在线教育平台的安全防护与技术支持研究
- 乡镇通三级及以上公路改建工程实施方案(模板范文)
- 生态治理项目规划设计方案(范文)
- 绿色建材产业园建设项目实施方案(范文)
- 废旧塑料资源化项目实施方案(范文参考)
- 环保人造板制造技术考核试卷
- 腈纶纤维在智能家居产品的应用考核试卷
- 畜牧业绿色发展模式探索考核试卷
- 石油化工产品的特性危害及防范措施考核试卷
- 《结构式家庭疗法提升“丧偶式育儿”家庭亲密度的个案研究》
- 化学实验室废物处理管理制度
- 2024年六西格玛黄带认证考试练习题库(含答案)
- 第三章-足球-基本技术 足球运球绕杆 教学设计 人教版初中体育与健康七年级全一册
- 2024年同等学力英语考试真题及详解
- 会展活动场地布置与搭建技术规范手册
- “非遗”之首-昆曲经典艺术欣赏智慧树知到期末考试答案章节答案2024年北京大学
- 《药事管理学》习题库
- 水文地质技术员技能鉴定理论考试题库-下(多选、判断题)
- DZ∕T 0054-2014 定向钻探技术规程(正式版)
- 草籽播撒劳务合同
评论
0/150
提交评论