《单片机及嵌入式系统原理》单片机课件 第十章 51单片机的串行接口_第1页
《单片机及嵌入式系统原理》单片机课件 第十章 51单片机的串行接口_第2页
《单片机及嵌入式系统原理》单片机课件 第十章 51单片机的串行接口_第3页
《单片机及嵌入式系统原理》单片机课件 第十章 51单片机的串行接口_第4页
《单片机及嵌入式系统原理》单片机课件 第十章 51单片机的串行接口_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

第十章

51单片机的串行接口本章内容10.1概述(了解)

10.2单片机串行口的结构与工作原理(重点)10.3串行口的控制寄存器(重点)10.4串行口的工作方式(重点)10.5串行口的应用编程(重点)10.6利用串行口方式0扩展I/O口(掌握)

10.1概述(1)概念串行通信是指将数据的各位按时间顺序依次在一根传输线上传输。与此相对的是并行通信,并行通信至少需要8根线(一个字节的8位同时传送)(2)异步和同步异步传输是以字符(包含7-12位)为单位,该字符通常由四个部分组成:1个起始位(必须)、5~8个数据位(必须)、1个奇偶校验位(可选)以及1~2个停止位(必须)。同步通信是以数据块(很多字符)为基本信息单位传送,它要求由时钟来实现发送端及接收端之间的同步。异步通信是本章的重点。10.1概述(3)通信方向单工传送:一方发送数据,一方接收数据,如呼机半双工传送:在通信时,双方都能接收或发送,但不能同时接收和发送的通信方式.如对讲机全双工传送:全双工传送方式是指可以同时在两个站之间进行发送和接收的通信方式。如手机(4)串行接口的任务

1)实现数据格式化:CPU的数据是并行数据,接口电路应实现不同串行通信方式下的数据格式化任务,如自动生成起止方式的帧数据格式(异步方式)或在待传送的数据块前加上同步字符等。2)进行串、并转换:在发送端,接口将CPU送来的并行信号转换成串行数据进行传送;而在接收端,接口要将接收到串行数据变成并行数据送往CPU,由CPU进行处理。3)控制数据的传输速率:接口应具备对数据传输率—波特率的控制选择能力,即具有波特率发生器。4)进行传送错误检测:在发送时,对传送的数据自动生成校验位或校验码,在接收端能检查校验位或校验码,以确定传送中是否有误码。

10.1概述从串行接口电路的功能可以得出:1)单片机CPU芯片里面集成了串行接口电路,那么串-并转换是CPU芯片自动完成的,而且对串行通信而言是必不可少的;2)同样滴,异步通信电路里面的起始位、停止位,同步通信里面的同步位等,都是CPU芯片自动完成的,而且这些位对串行通信而言是必不可少的;3)通信的速度(波特率)产生电路,也是CPU芯片自动自动产生的,对串行通信而言是必不可少的,不过用户可以变成设置波特率的大小;4)传送错误检测也是CPU芯片自动具备的,但在串行通信里面不是必须的,用户可以编程选择使用与否。

10.1概述(5)波特率

波特率是指每秒传输的符号数,若每个符号所含的信息量为1比特,则波特率等于比特率。在计算机中,一个符号的含义为高低电平,它们分别代表逻辑“1”和逻辑“0”,所以每个符号所含的信息量刚好为1比特,因此在计算机通信中,常将比特率称为波特率,即:1波特(B)=1比特(bit)=1位/秒(1bps)如果单片机串行通信时的数据传送速率是960字符/秒,而每一个字符格式规定包含10个数据位(1起始位、1停止位和8个数据位),则这时传送的波特率为:10×960=9600(位/秒)=9600波特发送和接收时钟以及调制解调,像看小说那样阅读即可。10.1概述(6)RS232注意,RS232是串行数据在导线上的传输规范,不是串行接口的功能。在RS232规范中采用EIA电平,在TxD和RxD上:逻辑1(传号,MARK)=-3V~-15V,逻辑0(空号,SPACE)=+3~+15V。在RTS、CTS、DSR、DTR和DCD等控制线上:信号有效(接通,ON状态,正电压)=+3V~+15V,信号无效(断开,OFF状态,负电压)=-3V~-15V。这种情况即数电里面的负逻辑。由于RS232是负逻辑,故单片机在接收到经过RS232传输来的数据后,必须转换成单片机CPU能处理的正逻辑,即逻辑1=5V;逻辑0=0V(CMOS/TTL电平)。转换芯片典型的是Max232.10.1概述(7)RS232的处理由于在PC机主板上有串行处理接口电路,同时PC机主板上有RS232转换电路,也即,从PC机主板输出的是负逻辑。请认真分析下图:

两个PC机可以直接用RS232电缆连接起来进行通信,因为双方PC机主板上具有将负逻辑(EIA)转换为正逻辑(TTL)的电路。

10.1概述(7)RS232的处理由于单片机CPU里面没有EIA转TTL电路,如果用RS232电缆将单片机与PC机连接起来,那么必须要在单片机板子上加Max232芯片。

10.1概述(7)RS232的处理

两个单片机之间如果需要进行串行通信,如果用RS232电缆连接,那么2个单片机板子上必须加Max232芯片;如果不用RS232电缆连接,直接用普通导线连接,甚至将两个CPU芯片焊接在一个电路板上,2个CPU的串口用PCB印刷线连接起来,那么此时可以直接相连,不必加Max232。

10.2结构与工作原理

51单片机的串行口结构组成如图所示。其主要由一个数据缓冲寄存器SBUF(SerialBuffer)和一个输入移位寄存器,一个串行控制寄存器SCON,以及波特率发生器(由T1或内部时钟和分频器构成)等组成。其中接收和发送数据缓冲寄存器共用一个地址99H,共享SBUF这个寄存器名称。

10.2结构与工作原理甲、乙两个单片机串行通信,甲方发送时,CPU执行MOVSBUF,A启动发送过程,数据并行送入SBUF,在发送时钟shift的控制下由低位到高位,一位一位发送;乙方在接收时钟shift的控制下由低位到高位顺序进入移位寄存器,再进入SBUF,甲方一帧数据发送完毕,置位发送中断标志TI,该位可作为查询标志(或引起中断),CPU可再发送下一帧数据。乙方一帧数据收齐后,接收缓冲器满,同时置位接收中断标志RI,该位可作为查询标志(或引起接收中断),乙方通过执行指令MOVA,SBUF将这帧数据由CPU并行读取。读取完毕后,再读取下一帧数据。10.3串行口的控制寄存器SCONPCON10.4工作方式

方式0为同步寄存器方式,多用于并行接口的扩展,当用单片机构成系统时,往往感到并行口不够用,此时可通过外接串入并出移位寄存器扩展输出接口;通过外接并入串出移位寄存器扩展输入接口.(偶尔用扩展I/O口)方式1为10位异步通信方式,每帧数据由1个起始位“0”。8个数据位和1个停止位“1”共10位构成。其中起始位和停止位在发送时是自动插入的.以TXD为串行数据的发送端,RXD为数据的接收端。(用得最多,是重点)方式2是11位异步发送/接收方式,每帧数据由有一个起始位“0”,9个数据位和1个停止位“1”组成。发送时,第九数据位由SCON寄存器的TB8位提供,接收到的第九位数据存在SCON寄存器的RB8位。第九位数据可作为检验位,也可用于多机通信中识别传送的是地址还是数据的特征位。(偶尔用奇偶校验,多机通信,基本不用)方式3同方式2,不同的是波特率可变。(多机通信,基本不用)10.5应用举例:嵌入式打标机中的单片串口通信

串行通信的编程方式有两种:(流程图见下页)(1)查询方式:查TI或RI是否为“1”。查询方式发送程序的流程如下:

发送一个数据→查询TI→发送下一个数据。即先发后查TI。查询方式接收程序的流程如下:

查询RI→读入一个数据→查询RI→读下一个数据。即先查RI后收。(2)中断方式:如果预先开了中断,当TI、RI为“1”,会自动产生中断。中断方式发送程序的流程如下

发送一个数据→等待中断,在中断中再发送下一个数据。中断方式接收程序的流程如下:

等待中断,在中断中再接收一个数据。不管试查询方式还是中断方式,当发送或接收数据后都要注意清TI或RI。注意,串行口的波特率有两种方式:固定波特率、可变波特率。在使用可变波特率时,应先确定T1的计数初值,并对T1进行初始化。嵌入式打标机中的单片串口通信嵌入式打标机中的单片串口通信10.5应用举例【例10-2】设fosc=11.059MHz,试编写一段程序,其功能为对串行口初始化,使之工作与方式1,波特率为1200b/s;并用查询串行口状态的方法,读出接收缓冲器的数据并回送到发送缓冲器。 START: MOVSCON,#40H;串行接口工作于方式1 MOVTMOD,#20H;定时器T1工作于模式2 MOVTH1,#0E8H;赋定时器计数初值 MOVTL1,#0E8H SETBTR1;启动定时器T1 MOVA,SBUF;读出接收缓冲器数据 MOVSBUF,A;启动发送过程 JNBTI,$;等待发送完 CLRTI;清TI标志 SJMP$;结束10.5应用举例【例10-3】当89C51串行口按工作方式1进行自己与自己串行数据通信时。假定波特率为1200b/s,以中断方式传送数据。请编写全双工通信程序。设系统时钟频率fosc=6.0MHZ。取SMOD=0,T1的计数初值为F3H:ORG0000HAJMPMAIN;上电,转向主程序ORG0023H;串行口的中断入口地址AJMPSERVE;转向中断服务程序ORG0040H;主程序MAIN:MOVSP,#60H;设置堆栈指针MOVSCON,#50HMOVPCON,#00HMOVTMOD,#20HMOVTH1,#0F3HMOVTL1,#0F3HSETBTR1MOVR0,#20H;置发送数据区首地址MOVR1,#40H;置接收数据区首地址MOVR7,#10H;置发送字节长度MOVR6,#10H;置接收字节长度SETBES;允许串行口中断SETBEA;CPU允许中断MOVSBUF,A;发送第一个数据SJMP$;等待中断;接收中断服务程序SERVE: JNBRI,SEND;TI=1,为发送中断CLRRIMOVA,SBUF;读出接收缓冲区内容MOV@R1,A;读入接收缓冲区DJNZR6,L1;判断数据块发送完否SJMPL2;数据块接收完,转L2L1:INCR1;修改数据区指针L2:RETI;中断返回;发送中断服务程序SEND: CLRTI;清除发送中断标志DJNZR7,L3;判断数据块发送完否SJMPL4;数据块接收完,转L4L3:MOVA,@R0;取数据发送MOVSBUF,A;发送数据INCR0;修改数据地址L4:RETI;中断返回END10.6方式0扩展I/O口10.6方式0扩展I/O口ORG 0050HSETBP3.3;允许移位寄存器工作MOVSCON,#0;选串行通

温馨提示

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

评论

0/150

提交评论