书签 分享 收藏 举报 版权申诉 / 177

类型《单片机原理及应用》课件第5章.ppt

  • 文档编号:2347796
  • 上传时间:2024-11-29
  • 格式:PPT
  • 页数:177
  • 大小:2MB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    单片机原理及应用 单片机 原理 应用 课件
    资源描述:

    1、第第5章单片机串行口功能扩展章单片机串行口功能扩展5.1 串行口的功能扩展概述串行口的功能扩展概述5.2 51系列单片机与异步串行通信总线接口系列单片机与异步串行通信总线接口5.3 51系列单片机与同系列单片机与同 步串行总线接口步串行总线接口习题五习题五5.1串行口功能扩展概述串行口功能扩展概述随着单片机应用技术的发展,单片机的应用模式也在不断更新。一方面,单片机应用系统的规模越来越大,在其外围连接了种类繁多的外设;另一方面,单片机进入了计算机网络系统,工业控制系统多采用多机分布式系统。同时,单片机的嵌入式系统应用模式又使其体积越来越小,且器件引脚数目越来越少。近年来,串行接口设备凭借其控制

    2、灵活、接口简单、占用资源少等优点在工业测控、仪器仪表等领域被广泛应用。这些发展趋势加强了单片机串行通信的功能,使串行通信技术成为了单片机应用技术的重要组成部分。51系列单片机内部仅有一个可编程的全双工串行通信口,具有UART的全部功能。在单片机应用系统开发中,开发人员常面临单片机串行通信口不足的问题,需要对串行通信口进行扩展。在进行串行通信接口扩展设计时,必须根据需要选择标准接口,同时要考虑传输介质、电平转换、通信协议等问题。采用标准接口后,能够方便地把单片机与外设、测量仪器等有机地连接起来,构成一个测控系统。5.251系列单片机与异步串行通信总线接口系列单片机与异步串行通信总线接口51系列单

    3、片机与异步串行通信接口简单,只要解决电平转换与驱动问题,就可方便地实现串行通信。异步串行通信接口主要有三类:RS 232接口;RS 449、RS 422、RS 423接口;20 mA电流环接口。5.2.1RS 232接口接口RS-232C是使用最早、应用最多的一种异步串行通信总线标准,它是美国电子工业协会EIA(Electronic Industry Association)于1962年公布、1969年最后修订而成的。RS表示 Recommended Standard,232是该标准的标识,C表示最后一次修订。RS-232C主要用于定义计算机系统的一些数据终端设备(DTE)和数据通信设备(DC

    4、E)之间接口的电气特性。CRT、打印机与CPU的通信大都采用RS-232C总线。1.RS-232C接口的电平转换接口的电平转换RS-232C标准是在TTL电路之前研制的,它的电平不是+5 V和地,而是采用负逻辑,其逻辑电平为:逻辑“0”:+3 V+15 V逻辑“1”:-3 V-15 V因此,RS-232C不能和计算机的TTL电平直接相连,使用时必须加上适当的电平转换电路芯片,否则将使TTL电路烧坏。常用的电平转换接口芯片是传输驱动器MC1488和传输接收器MC1489,它们是用于计算机(终端)与RS 232C总线间进行电平转换的接口芯片。MC1488:输入TTL电平,输出与RS 232C兼容,

    5、电源电压为15 V或12 V;MC1489:输入与RS 232C兼容,输出为TTL电平,电源电压为5 V。MC1488和MC1489的原理电路如图5.1所示。图 5.1MC1488、MC1489电平转换原理图另一种常用的电平转换芯片是MAX232,该芯片有两个传输驱动器和两个传输接收器。MAX232系列收发器的引脚及原理如图5.2所示。图 5.2MAX系列收发器的引脚及原理电路从图5.2可看出,MAX232系列收发器由电压倍增器、电压反相器、RS-232发送器和RS 232接收器四部分组成。电压倍增器利用电荷充电泵原理,用电容C1把+5 V电压变换成+10 V电压,并存放在C3上。第二个电容充

    6、电泵用C2将+10 V电压转换成-10 V电压,存储在滤波电容C4上。因此,RS-232只需+5 V单电源即可。这些芯片的收发性能与MC1488、MC1489基本相同,只是收发器路数不同。2.RS-232C总线标准接口总线标准接口RS-232C标准规定的数据传输率为50 b/s、75 b/s、100 b/s、150 b/s、300 b/s、600 b/s、1200 b/s、2400 b/s、4800 b/s、9600 b/s、19 200 b/s。驱动器允许有2500 pF的电容负载,通信距离将受此电容限制。例如,采用150 pF/m的通信电缆时,最大通信距离为 15 m,若每米电缆的电容量减

    7、小,则通信距离可以增加。传输距离短的另一原因是RS-232C 属单端信号传送,存在共地噪声和不能抑制共模干扰等问题。因此,它一般用于 20 m 以内的通信。RS-232C总线标准规定了21个信号,有25条引脚线,常采用25芯D型插头座,提供一个主信道和一个辅助信道,在多数情况下主要使用主信道。对于一般异步双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。RS-232C也有9芯标准D型插头座。RS-232C引脚排列如图5.3所示。图 5.3RS-232C总线引脚排列(a)25芯排列;(b)9芯排列 25芯RS-232C引脚信号定义如表5.1所示。9芯RS-232C引脚信号定义

    8、如表5.2所示。表表5.1 25芯芯RS-232C引脚说明引脚说明表表5.2 9芯芯RS-232C引脚说明引脚说明RS-232C定义了计算机系统的一些数据终端设备(DTE)和数据通信设备(DCE)之间接口的电气特性。RS-232C提供的两个信道中,辅助串行信道提供数据控制和第二信道,但其传输速率比主信道要低得多。除了速率低之外两信道无异,但辅助信道通常很少使用。这里对主信道的信号再做详细说明。信号分为两类:一类是DTE与DCE交换的信息TxD和RxD;另一类是为了正确无误地传输上述信息而设计的联络信号。3.RS-232C接口连线方式接口连线方式RS-232C标准规定有25条连接线,虽然其中大部

    9、分引脚线有信号定义,可以使用,但在一般的计算机串行通信系统中,仅9个信号(不包括保护地)经常使用。计算机与终端设备之间的连接方法如图5.4所示。最简单的RS-232C连接方式,只需交叉连接2条数据线以及信号地线即可,如图 5.5 所示。图 5.4RS-232C直接与终端设备连接图 5.5RS-232C三线连接(a)三线连接;(b)简化的三线连接在图5.5(a)中,将各自的RTS和DTR分别接到自己的CTS和DSR端,只要一方使自己的RTS和DTR为1,那么它的CTS、DSR也就为1,从而进入了发送和接收的就绪状态。这种接法常用于一方为主动设备,而另一方为被动设备的通信中,如计算机与打印机或绘图

    10、仪之间的通信。这样,被动的一方RTS与DTR常置1,因而CTS、DSR也常置1,使其常处于接收就绪状态。只要主动一方令线路就绪(DTR=1),并发出发送请求(RST=1),即可立即向被动的一方传送信息。图5.5(b)所示为更简单的连接方法。如果说图5.5(a)所示的连接方法在软件设计上还需要检测“清除发送(CTS)”和“数据设备就绪(DSR)”的话,那么图5.5(b)所示的连接方法则完全不需要检测这些信号,随时可进行数据发送和接收。5.2.251单片机与单片机与PC机间的通信接口机间的通信接口利用PC机配置的异步通信适配器,可以方便地完成PC机与51单片机的数据通信。1.接口电路接口电路采用M

    11、AX232芯片接口的PC机与51单片机串行通信接口电路如图5.6所示。MAX232芯片中有两路发送/接收器,与51单片机接口时,只选其中一路即可。连接时,应注意其发送与接收引脚的对应关系,否则可能造成器件或计算机串口的永久性损坏。图 5.6PC机与51单片机串行通信接口示例电路2.PC机端通信软件设计机端通信软件设计1)通信协议波特率:1200 b/s;信息格式:8位数据位,1位停止位,无奇偶检验;传送方式:PC机采用查询方式收发数据,51单片机采用中断方式接收数据,查询方式发送数据;校验方式:累加和校验;握手信号:采用软件握手。发送方在发送之前先发一联络信号(用“?”号的ASCII码,接收方

    12、接到“?”号后,回送一个“”号作为应答信号),随后依次发送数据块长度(字节数),发送数据,最后发送校验和。接收方在收到发送方发过来的校验和后,与自己所累加的校验和相比较。若相同,则回送一个“0”,表示正确传送并结束本次通信过程;若不相同,则回送一个“F”,并使发送方重新发送数据,直到接收正确为止。为了给出一个完整的通信程序,下面分别给出C语言PC机端和汇编语言单片机端的通信程序。2)PC机发送文件子程序首先介绍通过串口发送一个文件的函数Sendf(),规定欲发送的这个文件存在当前盘上。为了便于说明问题,只传送总字节小于256个字符的文件。Sendf()函数的程序流程图如图5.7所示。图 5.7

    13、PC机发送文件子函数流程PC机发送文件子函数Sendf()的程序清单如下:Void sendf(char *fname)FIlE *fp;char ch;int handle,count,sum=0;if(fpfopen(fname,r)=NULL)printf(不能打开输入文件!n);exit(1);Handle=fileno(fp);*取得文件句柄*count=filelength(handle):*取得文件总字节数*printf(准备发送文件.n);do ch=?;*发送联络信号*sport(ch);while(rport()!);*直到接到应答信号为止*sport(count);*发送

    14、总字节数*rep:for(;count;count-)ch=getc(fp);*从文件中取一个字符*sum=sum+ch;*累加校验和*if(ferror(fp)printf(读文件有错误n);Break;sport(ch);*从串口发一个字符*sport(sum);*发送累加校验和*if(rport()=F)count=filelength(handle);*发送错误则重发*Sum=0;fseek(fp,count,1);*文件指针回退COUNT字节*goto rep;elsefclose(fp);printf(发送文件结束n);3)PC机接收文件子程序接收函数Receivef()采用查询方

    15、式从串口接收一个总字节数小于256个字符的文件,接收的文件也存于当前盘上。接收文件子函数Receivef()的程序流程图如图5.8所示。图 5.8PC机接收文件子函数流程图PC机接收文件子函数Receivef()的程序清单如下:void receivef(char *fname)FILE *fp;char ch;int count,temp,sum=0;remove(fname);*盘上有同名文件将被删掉*if(fpfopen(fname,w)=NULL)printf(不能打开输出文件n);exit(1);printf(接收文件名:sn,fname);while(rport()!?);*收到联

    16、络信号?*sport($);ch:;sport(ch);*发应答信号*temprport();*收总字节数*count=temp;rep:for(;count;count-)chrport();*从串口接收一个字符*putc(ch,fp);*将一个字符写入文件*samsum+ch;*累加校验和*if(ferror(fp)printf(写文件有错误n);exit(1);if(rport()!sum)ch=F;sport(ch);*校验和有错误,发F*count=temp;sum=0;fseek(fp,count,1);*文件指针回退COUNT个字节*goto rep;elsech=0;sport(ch);*校验和正确,发0*fclose(fp);printf(接收文件结束n);4)PC机主程序(函数)有了上述发送和接收文件两个子函数之后,就可以在主函数中使用它们了。主函数的工作是在完成串口初始化后,根据键入的命令来决定是发送文件还是接收文件。主函数流程图如图5.9所示。图 5.9PC机主函数流程图PC机主函数清单如下:main(int argc,char *argv )while(arg

    展开阅读全文
    提示  兔兜文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《单片机原理及应用》课件第5章.ppt
    链接地址:https://www.tudouwenku.com/doc/2347796.html

    若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理!

    copyright@2008-2024 兔兜文库 版权所有

    鲁公网安备37072502000182号  ICP备案号:鲁ICP备2021021588号-1  百度保障

    兔兜文库
    收起
    展开