串行口工作方式.ppt
《串行口工作方式.ppt》由会员分享,可在线阅读,更多相关《串行口工作方式.ppt(75页珍藏版)》请在三一办公上搜索。
1、第7章 MCS-51的串行口,7.0 概述,7.1 串行口的结构,7.2 串行口的工作方式,MCS-51 单片机内部集成了一个全双工异步通信串行口单片机的串行通信使用的是异步串行通信,1、并行通信和串行通信,7.0 概述,异步方式:双方只有数据线而没有时钟线。双方都以自己的时钟源控制发送和接收的速率,发送端和接收端使用的不是同一个时钟。以字符为单位进行数据传送,每一个字符均按固定的字符格式传送,又被称为帧。,2、异步方式和同步方式,注意:由于通讯双方系统时钟往往不同,所以在异步通信中,要想保证通信的成功必须保证两点:通信双方必须保持相同的传送、接收速率(波特率);双方必须遵守相同的数据格式(字
2、符帧)。,优点:是不需要传送同步脉冲,可靠性高,所需设备简单;缺点:是传输速率低(增加起始位和停止位)。,同步方式:,在物理结构上,通信双方除了通信的数据线外还增加了一个通信用的“时钟传输线clock”。由主控方提供时钟信号clock。由于有了时钟信号来“同步”发送或接收操作,所以被传送的数据不再使用“起始位”和“停止位”,因而提高了传送速度。因此同步通信常被用于系统内部各芯片之间的接口设计。由于同步通信多了一条“时钟线”,因此不太适合远距离的通信。,优点是数据传输速率较高;缺点是要求发送时钟和接收时钟保持严格同步。,3、串行通信工作方式,单工,A 发,B 收,半双工,A 发 收,B 收 发,
3、广播电台 收音机,对讲机,全双工,A 发 收,B 收 发,电话机,例:异步串行通信的数据传送的速率是120字符/秒,而每个字符规定包含10位(1个起始位、8个数据位、1个停止位)数字,则传输波特率为:120字符/秒 10位/字符=1200位/秒=1200bps,4、波特率,用于表征串行通信速率的参数称为“波特率”;波特率是指每秒钟传送二进制的位数;(发送一个二进制位的时间的倒数)波特率的单位为:位/秒(bit/s);波特(Baud)。波特率取值范围一般为:0 115200 bit/s。影响波特率的 主要因素取决于传输线的分布电容、通信电平标准和传送距离;,TTL电平、RS-232、RS-485
4、等通信标准。,5、串行通信的电平标准,TTL电平(05V):1.5米以内。RS-232标准(+12V-12V):15米之内。RS-485标准(差分输入输出):1200米以上。,TTL电平:逻辑1:5V 逻辑0:0VRS-232标准:逻辑1:-3-15V 逻辑0:+3V+15VRS-485标准:逻辑1:+(26)V 逻辑0:-(26)V,MCS-51单片机的异步串行通讯应用示意图,MCS-51 TXD(甲)RXD,RXD MCS-51 TXD(乙),单片机甲、乙之间近距离的直接通讯,异步串行UART、同步串行USRT总线接口;SPI(Micro wire)总线接口-同步外设接口(SPI)是由摩托
5、罗 拉公司开发全双工同步串行总线。I2C总线接口-由PHILIPS公司开发的两线式串行总线。1-Wire总线接口-是 Maxim 子公司达拉斯半导体的专利技术,采 用单一信号线,CAN总线接口-1986 年德国电气商博世公司开发出面 向汽车的CAN 通信协议;USB总线接口-是由Intel、Compaq、Digital、IBM、Microsoft、NEC、Northern Telecom等7家 世界著名的计算机和通信公司共同推出。,6、当前嵌入式系统流行的串行接口,4种工作方式如何设置波特率如何设置,7.1 串行口的结构,一、串行口的结构图:,CPU如何查知已发完或已接收完数据如何发送和接收数
6、据,2023/5/30,11,P3.0,P3.1,P3.5,P3.4,P3.2,P3.3,IT0,IT1,2、SCON:串行口控制寄存器 98H,3、PCON:波特率加倍寄存器 87H,1、SBUF:串行发送/接收数据缓冲器 99H,4、IE:中断允许寄存器 A8H,发送,接收,5、IP:中断优先级寄存器,B8H,1、SBUF 串行发送/接收数据缓冲器 99H,SBUF 串行发送/接收数据缓冲器是两个独立的物理单元,共用一个地址(99H),可同时收、发数据。,指注:向发送缓冲器SBUF写入数据即可发送数据;从接收缓冲器SBUF读出数据即可接收数据。,发送SBUF,接收SBUF,MOV SBUF
7、,A;启动一次数据发送,MOV A,SBUF;完成一次数据接收,二、特殊功能寄存器,SM2:多机通信控制位(常与RB8配合,决定是否激活RI)多机通信方式2和3中,若SM21且接收到的第九位数据(RB8)为1,才将接收到的前8位数据送入接收缓冲寄存器SBUF中,并置位RI产生中断请求;否则丢弃前8位数据。若 SM20,则不论第九位数据(RB8)为1还是为0,都将前8位送入接收SBUF中,并产生中断请求。在方式0时,SM2必须置0。,2、SCON:串行口控制寄存器 98H,2023/5/30,16,REN:允许接收控制位,软件置位或清零TB8:将要发送的第九位数,在执行 MOV SBUF,A 指
8、令之前要事先将TB8设定好;双机通信作校验位,多机通信作地址/数据标识位。RB8:方式1中放停止位,方式2、3中放接收的第九位数TI发送中断标志位 在方式0时,发送完第8位数据后,该位由硬件置位。在其它方式下,于发送停止位之前,由硬件置位。TI1表示帧发送结束,其状态既可供软件查询使 用,也可请求中断。TI由软件清“0”。RI接收中断标志位 在方式0时,接收完第8位数据后,该位由硬件置位。在其它方式下,接收到停止位之前,该位硬件置位。RI1表示帧接收结束,其状态既可供软件查询使 用,也可请求中断。RI由软件清“0”。,3、PCON:波特率加倍寄存器 87H,它的D7位SMOD为串行口波特率控制
9、位,可由软件置位或清零。若SMOD=1,则使工作在方式1、2、3时的波特率加倍。系统复位时默认为SMOD=0。,(1)当CPU执行:MOV SBUF,A 指令后,便发送一帧数据。,1、利用发送标志 TI(SCON.1)控制数据的发送操作,思考(1)CPU如何发送数据?(2)CPU如何知道已发送完一帧数据?,方案一:使用查询的方式对TI进行检测:JNBTI,$;如果TI1 则等待 CLR TI;清楚标志位 MOV SBUF,A;TI=1时发送下一个数据方案二:如果系统中断是开放的,则TI=1会自动引发中断。CLR TI;清楚标志位 MOV SBUF,A;在中断程序中发送下一个数据;,(2)当完成
10、一帧数据的发送后,TI=1,有两种方案可以知 道已发完一帧数据。,三、接收和发送操作,2、利用接收标志 RI(SCON.0)控制数据的接收操作,(1)当SUBF从RXD引脚接收完一个完整的数据帧时RI=1,思考(1)CPU如何知道已接收完一帧数据?(2)CPU如何处理接收的数据?,(2)CPU可以使用两种方案来处理接收的数据:,方案一:CPU采用查询RI来控制数据的读取。JNB RI,$;如果RI1 则等待 CLR RI;清楚标志位 MOV A,SBUF;RI=1时,取SBUF中数据送A。方案二:如果中断是开放的,则RI=1时会自动引发中断。CLR RI MOV A,SBUF;中断方式接收数据
11、;,RXD:接收、发送的是8位数据端,低位在前,波特率固定为fosc/12,接收/发送完,置位RI/TI,(SM2=0)TXD:输出同步移位脉冲 当数据写入SBUF后,数据从RXD端在移位脉冲(TXD)的 控制下,逐位移入74LS164,74LS164能完成数据的串并转换。当8位数据全部移出后,TI由硬件置位,发生中断请求。若CPU响应中断,则从0023H单元开始执行串行口中断服务程序,数据由74LS164并行输出。,7.2 串行口的工作方式,一、方式0:同步移位寄存器输入输出方式,串行口方式0的时序,思考:1、如何启动发送过程?2、如何知道发送完毕?2、多长时间移一位?,思考:1、如何启动接
12、收过程?2、如何知道接收完毕?2、多长时间接收一位?,接收条件:TI=0,置位 REN=1,发送条件:TI=0,3、方式0的应用:扩展并行输入输出口,CB:MOV R7,#0AH MOV R0,#50H MOV SCON,#00HSEND1:MOV A,R0 MOV SBUF,A,WAIT:JNB TI,WAIT CLR TI INC R0 DJNZ R7,SEND1 RET,例:将以50H为首地址的10个单元中数据由串口送出。,CB:MOV R7,#05H MOV R0,#30H RE1:MOV SCON,#10HWAIT:JNB RI,WAIT CLR RI MOV A,SBUF MOV
13、R0,A,INC R0 DJNZ R7,RE1 RET,例:从扩展口读入5个数据,存到内部RAM以30H开始的单元中。,2023/5/30,24,24,*MCS-51串行口方式0驱动数码管1、LED数码管(1)结构COM:显示器位选线 adp:显示器段选线,2023/5/30,25,25,发光管驱动额定电流:1040mA,静态取下限。(2)静态显示及其段码静态显示:利用8位锁存功能的I/O口线驱动一个数码管,多个数码管同时显示,需增加I/O口线。段码形成:在COM送入低电平或高电平,然后控制个各笔段引脚电平,即可形成相应段码。【例5-4】:利用P1口并行输出控制八段数码管,设小数点暗,采用共阳
14、顺序、共阴顺序、共阴逆序确定09的显示程序为:解:1)共阳顺序显示硬件结构如图:2)共阳顺序、共阴顺序、共阴逆序的段码如下:,2023/5/30,26,26,共阳顺序段码:C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H共阴顺序段码:3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH(Dpa)共阴逆序段码:FCH,60H,DAH,F2H,66H,B6H,BEH,E0H,FEH,F6H(aDp),2023/5/30,27,27,2)并行输出,循环显示09秒的显示程序:DIR:MOV R0,#0 MOV DPTR,#TABLOOP:MOVA
15、,R0MOVCA,A+DPTRMOVP1,ALCALLDELAYINCR0CJNER0,#0AH,LOOPAJMPDIRTAB:DB C0H,F9H,A4HDB B0H,99H,92HDB 82H,F8H,80H,90H,2023/5/30,28,28,2、串行口方式0驱动数码管(1)串行口与并行口转换控制串入并出移位寄存器74LS164 图(a)并入串出移位寄存器74LS165 图(b),2023/5/30,29,29,(2)利用74LS164驱动共阴数码管【例】:利用8031串行口控制八段数码管,设小数点暗,采用共阴逆序,设计循环显示09秒的程序。解:1)硬件结构图(共阴逆序、小数点暗)2
16、)控制流程、程序,2023/5/30,30,30,START:MOVSCON,#00HMOVR0,#00HCLRES;禁止中断MOVDPTR,#TABLELOOP:MOVA,R0MOVCA,A+DPTRCLRTIMOVSBUF,ALCALLDELAYINCR0CJNER0,#10,LOOPMOVR0,#00HAJMPLOOPTABLE:DB 0FCH,60H,0DAH,0F2H,66H DB 0B6H,0BEH,0E0H,0FEH,0F6H ORG0100H DELAY:1秒延时程序(略)RET,1、波特率:(2SMODT1的溢出率)/32,可变。2、数据格式:一帧信息10位。,发送,接收,送
17、 RB8,当接收到数据后,必须同时满足以下两个条件,接收才真正有效:REN=1,RI=0SM2=0 或接收到的停止位为1。此时,数据装载SBUF,RI置1,停止位进入RB8。,二、方式1:波特率可变的10位异步通信方式,注意:何时开始接收信息?检测到起始位的负跳变时,开始接收。,1、波特率:(2SMODfosc)/64,固定。2、一帧信息11位。,发送,发送完数据置位TI。,接收,接收到有效数据完毕,置位RI的条件:REN=1,RI=0 且SM2=0或接收到第9位数据为1,此时,数据装载SBUF,RI置1,第9位数据(TB8)送入 RB8。,送RB8,三、方式2:固定波特率的11位异步接收/发
18、送方式,串行口方式2、3的时序,1、波特率:(2SMODT1的溢出率)/32,可变,同方式1。2、一帧信息11位。,四、方式3:可变波特率的11位异步接收/发送方式,方式0:波特率固定为fosc/12。方式2:波特率由PCON中的选择位SMOD来决定,可由下式表示:波特率=(2SMOD/64)fosc 方式1和方式3:波特率是可变的,由定时器T1的溢出率控制。波特率=(2SMOD/32)定时器T1溢出率 T1溢出率=T1计数率/产生溢出所需的周期=(fosc/12)/(28TC),五、串行口的通信波特率,例:设晶振fosc为11.0592MHz,选定定时器工作方式2,SMOD=0求:4800b
19、ps、9600bps时的初值。解:定时器方式2的初始值X的公式经过推导可得到,在实际应用时,通常是先确定波特率,后根据波特率求T1定时初值.,故:X1=256(11.05921)/(3844800)=FAH X2=256(11.05921)/(3849600)=FDH,7.3 串行口的应用,使用串行口的步骤:1、通信双方的硬件连接2、制定通信协议 工作方式、波特率、数据格式、效验方法等。3、主程序 串行口中断入口处理 串口初始化:SCON PCON T1工作方式及初值、IE、IP4、中断服务程序,一、串口方式0的应用,例:用8051串行口外接CD4094扩展8位并行输出口,8位并行口的各位都接
20、一个发光二极管,要求发光二极管呈流水灯状态(轮流点亮)。方案一:采用查询TI决定是否发送下一帧数据方案二:采用中断决定是否发送下一帧数据,RR A CLR P1.0 SJMP OUT0 DELAY:MOV R7,#250 D1:MOV R6,#250 D2:DJNZ R6,D2 DJNZ R7,D1 RET END,ORG 0000H START:MOV SCON,#00H MOV A,#80H CLR P1.0 OUT0:MOV SBUF,A OUT1:JNB TI,OUT1 CLR TI SETB P1.0 ACALL DELAY,P3.0 RXD,P3.1 TXD,分析:从串口送出什么样
21、的数据才能显示 0?,例:利用串并转换将数字 09输出到LED显示器上显示,输出同一个数字。,ORG 0000H AJMP MAIN ORG 0030HMAIN:MOV SP,#60H MOV SCON,#00H MOV R1,#00H L1:MOV A,R1 MOV DPTR,#TAB MOVC A,A+DPTR MOV SBUF,A JNB TI,$CLR TI,MOV SBUF,A JNB TI,$CLR TI CALL DELAY CJNE R1,#9,L2 MOV R1,#00H AJMP MAIN L2:INC R1 AJMP L1TAB:DB 03H,9FH,25H,0DH,99
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 串行口 工作 方式

链接地址:https://www.31ppt.com/p-5027472.html