串行口工作方式PPT课件

上传人:痛*** 文档编号:74722922 上传时间:2022-04-14 格式:PPT 页数:75 大小:1.38MB
返回 下载 相关 举报
串行口工作方式PPT课件_第1页
第1页 / 共75页
串行口工作方式PPT课件_第2页
第2页 / 共75页
串行口工作方式PPT课件_第3页
第3页 / 共75页
点击查看更多>>
资源描述
7.0 7.0 概述概述7.1 7.1 串行口的结构串行口的结构 7.2 7.2 串行口的工作方式串行口的工作方式MCS-51 MCS-51 单片机内部集成了一个全双工单片机内部集成了一个全双工异步异步通信串行口通信串行口单片机的串行通信使用的是异步串行通信单片机的串行通信使用的是异步串行通信1 1、并行通信和串行通信、并行通信和串行通信1010P1.0P1.1P1.2P1.3RXDTXD单片机单片机外设外设1外设外设20 1 0 11 0 1 0P1.70 1 0 17.0 7.0 概述概述异步方式:异步方式:双方只有数据线而没有时钟线。双方都以自己的时双方只有数据线而没有时钟线。双方都以自己的时钟源控制发送和接收的速率,钟源控制发送和接收的速率,发送端和接收端使用的不是同一发送端和接收端使用的不是同一个时钟。个时钟。以字符为单位进行数据传送,每一个字符均按固定的以字符为单位进行数据传送,每一个字符均按固定的字符格式传送,又被称为帧。字符格式传送,又被称为帧。2 2、异步方式和同步方式、异步方式和同步方式优点:优点:是不需要传送同步脉冲,可靠性高,所需设备简单;是不需要传送同步脉冲,可靠性高,所需设备简单;缺点:缺点:是传输速率低(增加起始位和停止位)。是传输速率低(增加起始位和停止位)。同步方式:同步方式:l在物理结构上,通信双方除了通信的数据线外还增加在物理结构上,通信双方除了通信的数据线外还增加了一个通信用的了一个通信用的“时钟传输线时钟传输线clock”clock”。由主控方提供。由主控方提供时钟信号时钟信号clockclock。l由于有了时钟信号来由于有了时钟信号来“同步同步”发送或接收操作,所以发送或接收操作,所以被传送的数据不再使用被传送的数据不再使用“起始位起始位”和和“停止位停止位”,因,因而提高了传送速度。因此同步通信常被用于系统内部而提高了传送速度。因此同步通信常被用于系统内部各芯片之间的接口设计。各芯片之间的接口设计。l由于同步通信多了一条由于同步通信多了一条“时钟线时钟线”,因此不太适合远,因此不太适合远距离的通信。距离的通信。优点优点是数据传输速率较高;是数据传输速率较高;缺点缺点是要求发送时钟和接收时钟保持严格同步。是要求发送时钟和接收时钟保持严格同步。主主控控方方被被控控方方dataclock主主控控方方被被控控方方dataclock 主控方发送数据主控方发送数据主控方接收数据主控方接收数据 3、串行通信工作方式、串行通信工作方式单工单工 A 发发 B 收收半双工半双工 A 发发 收收 B 收收 发发广播电台广播电台 收音机收音机对讲机对讲机全双工全双工 A 发发 收收 B 收收 发发电话机电话机例:例:异步串行通信的数据传送的速率是异步串行通信的数据传送的速率是120120字符字符/ /秒,而每个字符规秒,而每个字符规定包含定包含1010位(位( 1 1个起始位、个起始位、8 8个数据位、个数据位、1 1个停止位)数字,则传输个停止位)数字,则传输波特率为:波特率为: 120120字符字符/ /秒秒 10 10位位/ /字符字符=1200=1200位位/ /秒秒= 1200bps= 1200bps4、波特率、波特率l用于表征串行通信速率的参数称为用于表征串行通信速率的参数称为“波特率波特率”;l波特率是指波特率是指每秒钟传送二进制的位数每秒钟传送二进制的位数; ; (发送一个二进制位的时间的倒数)(发送一个二进制位的时间的倒数)l 波特率的单位为:位波特率的单位为:位/ /秒(秒(bit / sbit / s);波特();波特(BaudBaud)。)。l波特率取值范围一般为:波特率取值范围一般为: 0 0 115200 bit/s115200 bit/s。影响波特率的。影响波特率的 主要因素取决于传输线的分布电容、通信电平标准和传送距离;主要因素取决于传输线的分布电容、通信电平标准和传送距离;TTL电平、电平、RS-232、RS-485等通信标准。等通信标准。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)VMCS-51 TXD(甲)(甲) RXD RXD MCS-51 TXD (乙)(乙)单片机甲单片机甲乙之间近距离的直接通讯乙之间近距离的直接通讯RS-232RS-232或或485485RS-232RS-232或或485485单片机甲乙两地之间远距离通讯单片机甲乙两地之间远距离通讯MCS-51 TXD(甲)(甲) RXD RXD MCS-51 TXD (乙)(乙)RS-232PC机机COM1,COM2单片机与单片机与PCPC机之间的数据通讯机之间的数据通讯MCS-51 TXDRXD异步串行异步串行UART、同步串行、同步串行USRT总线接口;总线接口;SPI(Micro wire)总线接口)总线接口 -同步外设接口同步外设接口(SPI)是由摩托罗是由摩托罗 拉公司开发全双工同步串行总线。拉公司开发全双工同步串行总线。 I2C总线接口总线接口-由由PHILIPS公司开发的两线式串行总线。公司开发的两线式串行总线。 1-Wire总线接口总线接口-是是 Maxim 子公司达拉斯半导体的专利技术,采子公司达拉斯半导体的专利技术,采 用单一信号线,用单一信号线, CAN总线接口总线接口 - 1986 年德国电气商博世公司开发出面年德国电气商博世公司开发出面 向汽车的向汽车的CAN 通信协议通信协议 ;USB总线接口总线接口-是由是由Intel、 Compaq、Digital、IBM、 Microsoft、NEC、Northern Telecom等等7家家 世界著名的计算机和通信公司共同推出。世界著名的计算机和通信公司共同推出。6、当前嵌入式系统流行的串行接口、当前嵌入式系统流行的串行接口l 4种工作方式如何设置种工作方式如何设置l波特率如何设置波特率如何设置发送SBUF(99H)门发送控制器接收控制器1输入移位寄存器串行控制寄存器(98H)定时器1接收SBUF(99H)888TIRI内部总线TXD(P3.1)RXD(P3.0)串行口中断7.1 7.1 串行口的结构串行口的结构一、串行口的结构图一、串行口的结构图:l CPU如何查知已发完或已接收完数据如何查知已发完或已接收完数据l 如何发送和接收数据如何发送和接收数据4/13/202211自自然然优优先先级级矢矢量量地地址址自自然然优优先先级级矢矢量量地地址址高级中高级中断请求断请求PCPCPCPC断请求断请求低级中低级中SCONSCON中断标志中断标志IPIPPX0PX01 1PT0PT01 11 10 0PX1PX11 10 0PSPS1 10 00 0PT1PT10 0IEIEEX0EX0ET0ET0EX1EX1ET1ET1ESESTCONTCONIE0IE0TF0TF0IE1IE1TF1TF1TITIRIRIRXRXTXTXT1T11 1INT1INT10 0T0T0INT0INT01 10 0源允许源允许 总允许总允许优先级优先级硬件查询硬件查询EAEAP3.0P3.1P3.5P3.4P3.2P3.3IT0IT12、SCON:串行口控制寄存器串行口控制寄存器 98HSM0SM1SM2RENTB8RB8 TI RI3 3、PCON:波特率加倍寄存器波特率加倍寄存器 87H1、SBUF:串行发送串行发送 / 接收数据缓冲器接收数据缓冲器 99HEA -ESET1EX1ET0EX04、IE:中断允许寄存器中断允许寄存器 A8HSMOD发送发送接收接收5 5、IP: 中断优先级寄存器中断优先级寄存器- -PSPT1PX1PT0PX0B8H1、SBUF 串行发送串行发送 / / 接收接收数据缓冲器数据缓冲器 99HSBUF SBUF 串行发送串行发送 / / 接收数据缓冲器是接收数据缓冲器是两个独立的物理单元两个独立的物理单元, 共用一个地址(共用一个地址(99H99H),可同时收、发数据。),可同时收、发数据。指指注:向发送缓冲器注:向发送缓冲器SBUFSBUF写入数据即可发送数据;写入数据即可发送数据; 从接收缓冲器从接收缓冲器SBUFSBUF读出数据即可接收数据。读出数据即可接收数据。发送发送SBUFSBUF接收接收SBUFSBUFMOV SBUF,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:串行口控制寄存器:串行口控制寄存器 98HSM0SM1SM2RENTB8RB8 TI RISM0 SM1方式方式功能说明功能说明波特率波特率0 0方式方式0移位寄存器方式移位寄存器方式fosc/120 1方式方式18位位UART可变(由可变(由T1的溢的溢出率决定)出率决定)1 0方式方式29位位UARTfosc/64 或者或者fosc/321 1方式方式39位位UART可变可变4/13/202216REN:允许接收控制位,软件置位或清零允许接收控制位,软件置位或清零TB8:将要:将要发送的第九位数,发送的第九位数, 在执行在执行 MOV SBUF ,A 指令之指令之前要事先将前要事先将TB8设定好;设定好;双机通信作校验位,多机通信作地双机通信作校验位,多机通信作地址址/数据标识位。数据标识位。RB8:方式方式1中放中放停止位,方式停止位,方式2、3中放中放接收的第九位数接收的第九位数TITI发送中断标志位发送中断标志位 在方式在方式0 0时,发送完第时,发送完第8 8位数据后,该位由硬件置位。位数据后,该位由硬件置位。 在其它方式下,于发送停止位之前,由硬件置位。在其它方式下,于发送停止位之前,由硬件置位。 TITI1 1表示帧发送结束,其状态既可供软件查询使表示帧发送结束,其状态既可供软件查询使 用,也可请求中断。用,也可请求中断。TITI由软件清由软件清“0”0”。RIRI接收中断标志位接收中断标志位 在方式在方式0 0时,接收完第时,接收完第8 8位数据后,该位由硬件置位。位数据后,该位由硬件置位。 在其它方式下,接收到停止位之前,该位硬件置位。在其它方式下,接收到停止位之前,该位硬件置位。 RIRI1 1表示帧接收结束,其状态既可供软件查询使表示帧接收结束,其状态既可供软件查询使 用,也可请求中断。用,也可请求中断。 RIRI由软件清由软件清“0”0”。SMOD3、 PCON: 波特率加倍寄存器波特率加倍寄存器 87H它的它的D7D7位位SMODSMOD为串行口波特率控制位,可由软件置位或清零。若为串行口波特率控制位,可由软件置位或清零。若SMOD=1SMOD=1,则使工作在方式,则使工作在方式1 1、2 2、3 3时的波特率加倍。时的波特率加倍。系统复位时默认为系统复位时默认为SMOD=0SMOD=0。(1 1)当)当CPUCPU执行:执行:MOV SBUFMOV SBUF,A A 指令后,便发送一帧数据。指令后,便发送一帧数据。思考思考(1 1) CPUCPU如何发送数据?如何发送数据? (2 2)CPUCPU如何知道已发送完一帧数据?如何知道已发送完一帧数据?方案一:使用查询的方式对方案一:使用查询的方式对TI进行检测:进行检测: JNBTI,$;如果;如果TI1 则等待则等待 CLR TI ;清楚标志位;清楚标志位 MOV SBUF,A ;TI=1时发送下一个数据时发送下一个数据方案二:如果系统中断是开放的,则方案二:如果系统中断是开放的,则TI=1会自动引发中断。会自动引发中断。 CLR TI ;清楚标志位;清楚标志位 MOV SBUF, A ;在中断程序中发送下一个数据;在中断程序中发送下一个数据;(2 2)当完成一帧数据的发送后,)当完成一帧数据的发送后,TI=1TI=1,有两种方案可以知,有两种方案可以知 道已发完一帧数据。道已发完一帧数据。三、接收和发送操作三、接收和发送操作(1 1)当当SUBF从从RXD引脚接收完一个完整的数据帧时引脚接收完一个完整的数据帧时RI=1思考思考(1 1)CPUCPU如何知道已接收完一帧数据?如何知道已接收完一帧数据? (2 2)CPUCPU如何处理接收的数据?如何处理接收的数据?(2 2)CPUCPU可以使用两种方案来处理接收的数据:可以使用两种方案来处理接收的数据:方案一:方案一:CPU采用查询采用查询RI来控制数据的读取。来控制数据的读取。JNB RI,$;如果;如果RI1 则等待则等待 CLR RI ;清楚标志位;清楚标志位 MOV A,SBUF ;RI=1时,取时,取SBUF中数据送中数据送A。方案二:如果中断是开放的,则方案二:如果中断是开放的,则RI=1时会自动引发中断。时会自动引发中断。 CLR RI MOV A,SBUF ; 中断方式接收数据;中断方式接收数据; RXD :接收、发送的是:接收、发送的是8位数据端,低位在前,波特率固定为位数据端,低位在前,波特率固定为fosc / 12,接收接收/发送完,置位发送完,置位RI / TI ,(,(SM2 = 0) TXD :输出同步移位脉冲:输出同步移位脉冲 当数据写入当数据写入SBUFSBUF后,数据从后,数据从RXDRXD端在移位脉冲(端在移位脉冲(TXDTXD)的)的 控制下,控制下,逐位移入逐位移入74LS16474LS164,74LS16474LS164能完成数据的串并转换。当能完成数据的串并转换。当8 8位数据全部位数据全部移出后,移出后,TITI由硬件置位,发生中断请求。若由硬件置位,发生中断请求。若CPUCPU响应中断,则从响应中断,则从0023H0023H单元开始执行串行口中断服务程序,数据由单元开始执行串行口中断服务程序,数据由74LS16474LS164并行输出。并行输出。 7.2 7.2 串行口的工作方式串行口的工作方式一、方式一、方式0 0:同步移位寄存器输入输出方式:同步移位寄存器输入输出方式串行口方式串行口方式0 0的时序的时序思考:思考:1 1、如何启动发送过程?、如何启动发送过程?2 2、如何知道发送完毕?、如何知道发送完毕? 2 2、多长时间移一位?、多长时间移一位?思考:思考:1 1、如何启动接收过程?、如何启动接收过程?2 2、如何知道接收完毕?、如何知道接收完毕? 2 2、多长时间接收一位?、多长时间接收一位?接收条件:接收条件: TI=0TI=0, 置位置位 REN=1REN=1发送条件:发送条件:TI=0TI=01283456 10 11 12 13数 据 输 出移 位 脉 冲RXDTXD805174LS164D7 D6 D5 D4 D3 D2 D1 D03 3、方式、方式0 0的应用:扩展并行输入输出口的应用:扩展并行输入输出口 CB: MOV R7,#0AH MOV R0,#50H MOV SCON ,#00HSEND1: MOV A,R0 MOV SBUF ,AWAIT: JNB TI,WAIT CLR TI INC R0 DJNZ R7, SEND1 RET例:将以例:将以50H50H为首地址的为首地址的1010个单元中数据由串口送出。个单元中数据由串口送出。926543 14 13 12 11数 据 输 入移 位 脉 冲RXDTXD805174LS165D7D6D5D4D3D2D1D0 CB:MOV R7,#05H MOV R0,#30H RE1: MOV SCON ,#10HWAIT: JNB RI,WAIT CLR RI MOV A,SBUF MOV R0 ,A INC R0 DJNZ R7,RE1 RET例:从扩展口读入例:从扩展口读入5 5个数据,存到内部个数据,存到内部RAMRAM以以30H30H开始的单元中。开始的单元中。4/13/20222424*MCS-51串行口方式0驱动数码管1、LED数码管(1)结构COM:显示器位选线 adp:显示器段选线4/13/20222525发光管驱动额定电流:1040mA,静态取下限。(2)静态显示及其段码静态显示:利用8位锁存功能的I/O口线驱动一个数码管,多个数码管同时显示,需增加I/O口线。段码形成:在COM送入低电平或高电平,然后控制个各笔段引脚电平,即可形成相应段码。【例5-4】:利用P1口并行输出控制八段数码管,设小数点暗,采用共阳顺序、共阴顺序、共阴逆序确定09的显示程序为:解:1)共阳顺序显示硬件结构如图:2)共阳顺序、共阴顺序、共阴逆序的段码如下:4/13/20222626l共阳顺序段码:C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90Hl共阴顺序段码:3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH(Dpa)l共阴逆序段码:FCH,60H,DAH,F2H,66H,B6H,BEH,E0H,FEH,F6H(aDp)4/13/202227272)并行输出,循环显示09秒的显示程序:DIR: MOV R0,#0 MOV DPTR,#TABLOOP:MOVA,R0MOVCA,A+DPTRMOV P1,ALCALLDELAYINCR0CJNE R0,#0AH,LOOPAJMP DIRTAB:DB C0H,F9H,A4HDB B0H,99H,92HDB 82H,F8H,80H,90H 4/13/202228282、串行口方式0驱动数码管(1)串行口与并行口转换控制 串入并出移位寄存器74LS164 图(a) 并入串出移位寄存器74LS165 图(b)4/13/20222929(2)利用74LS164驱动共阴数码管【例】:利用8031串行口控制八段数码管,设小数点暗,采用共阴逆序,设计循环显示09秒的程序。解:1)硬件结构图(共阴逆序、小数点暗)l2)控制流程、程序4/13/20223030START: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 1、波特率:(、波特率:(2SMODT1的溢出率)的溢出率)/ 32 ,可变。,可变。 2、 数据格式:数据格式: 一帧信息一帧信息10位。位。D0D1D2D3D4D5D6D7停止位停止位起始位起始位发送发送D7D6D5D4D3D2D1D0起始位起始位停止位停止位接收接收送送 RB8当接收到数据后,必须同时满足以下当接收到数据后,必须同时满足以下两个条件两个条件,接收才真正有效:,接收才真正有效: REN = 1,RI = 0SM2 = 0 或接收到的停止位为或接收到的停止位为1。此时,数据装载此时,数据装载SBUF, RI置置1 ,停止位进入,停止位进入RB8。 二、方式二、方式1 1:波特率可变的:波特率可变的1010位异步通信方式位异步通信方式 注意:何时开始接收信息?注意:何时开始接收信息?检测到起始位的负跳变时,开始接收。检测到起始位的负跳变时,开始接收。 1 1、波特率:、波特率:(2 2SMODSMODfoscfosc)/ 64/ 64 , ,固定。固定。 2 2、一帧信息、一帧信息1111位。位。 D0D1D2D3D4D5D6D7TB8停止位停止位起始位起始位发送发送发送完数据置位发送完数据置位TI。 TB8D7D6D5D4D3D2D1D0起始位起始位停止位停止位接收接收接收到有效数据完毕,置位接收到有效数据完毕,置位RI的条件的条件: REN = 1,RI = 0 且且SM2 = 0或接收到第或接收到第9位数据为位数据为1,此时,数据装载此时,数据装载SBUF,RI置置1,第,第9位数据(位数据(TB8)送入)送入 RB8。 送送RB8三、方式三、方式2 2:固定波特率的:固定波特率的1111位异步接收位异步接收/ /发送方式发送方式串行口方式串行口方式2、3的时序的时序 1、波特率:(、波特率:(2SMODT1的溢出率)的溢出率)/ 32 ,可变,同方式可变,同方式1。 2 2、一帧信息、一帧信息1111位。位。 四、方式四、方式3 3:可变波特率的:可变波特率的1111位异步接收位异步接收/ /发送方式发送方式方式方式0 0:波特率波特率固定为固定为fosc/12fosc/12。方式方式2 2:波特率由波特率由PCONPCON中的选择位中的选择位SMODSMOD来决定,可由下式表示:来决定,可由下式表示: 波特率波特率= =(2 2SMODSMOD/64/64)foscfosc 方式方式1 1和方式和方式3 3:波特率是波特率是可变可变的,由定时器的,由定时器T1T1的溢出率控制。的溢出率控制。 波特率波特率= =(2 2SMODSMOD/32/32)定时器定时器T1T1溢出率溢出率 T1T1溢出率溢出率=T1=T1计数率计数率/ /产生溢出所需的周期产生溢出所需的周期 = =(fosc/12fosc/12)/ /(2 28 8 TCTC) 五、串行口的通信波特率五、串行口的通信波特率例例: :设晶振设晶振foscfosc为为11.0592MHz11.0592MHz,选定定时器工作方式,选定定时器工作方式2 2,SMOD=0SMOD=0求求:4800bps:4800bps、9600bps9600bps时的初值时的初值 。解:定时器方式解:定时器方式2 2的初始值的初始值X X的公式经过推导可得到的公式经过推导可得到在实际应用时,通常是先确定波特率,后根据波特率求在实际应用时,通常是先确定波特率,后根据波特率求T1定时定时初值初值.T1T1初值初值 = 256 = 256 2 2SMODSMOD3232foscfosc12 12 波特率波特率故:故: X1=256(11.05921)/(3844800)= FAH X2 =256(11.05921)/(3849600)=FDH7.3 7.3 串行口的应用串行口的应用使用串行口的步骤:使用串行口的步骤:1 1、通信双方的硬件连接、通信双方的硬件连接2 2、制定通信协议、制定通信协议 工作方式、波特率、数据格式、效验方法等。工作方式、波特率、数据格式、效验方法等。3 3、主程序、主程序 串行口中断入口处理串行口中断入口处理 串口初始化:串口初始化:SCONSCON PCON T1PCON T1工作方式及初值、工作方式及初值、IEIE、IPIP4 4、中断服务程序、中断服务程序一、串口方式一、串口方式0 0的应用的应用例:例:用用8051串行口外接串行口外接CD4094扩展扩展8位并行输出口,位并行输出口,8位并行口位并行口的各位都接一个发光二极管,要求发光二极管呈流水灯状态的各位都接一个发光二极管,要求发光二极管呈流水灯状态(轮流点亮)。(轮流点亮)。 方案一:采用查询方案一:采用查询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 RXDP3.1 TXD分析:分析: 从串口送出什么样的数据才能显示从串口送出什么样的数据才能显示 0?例:利用串并转换将数字例:利用串并转换将数字 0909输出到输出到LEDLED显示器上显示,输出显示器上显示,输出同一个数字。同一个数字。 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,99H,49H DB 41H,1FH,01H,09HDELAY: END思考:不用串行口发送数据,采用某一个输出口是否也可以思考:不用串行口发送数据,采用某一个输出口是否也可以 完成串并转换?完成串并转换? 单片机单片机P1.0P1.1P1.2P1.3RXDTXDP3.0P3.1P1.0P1.1P1.2P1.3RXDTXD单片机单片机P3.0P3.1例:采用串行口方式例:采用串行口方式1进行进行双机通信双机通信,将内部将内部RAM中以中以50H为首地址的连续为首地址的连续10个单元内容送出。个单元内容送出。硬件连接硬件连接通信协议通信协议240012/2561*322foscxSMODHFx40244 方式方式1 2400B/S定时器定时器T1 方式方式2 晶振晶振12MHZ初值:初值: 二、串口方式二、串口方式1 1的应用的应用通信距离不超过通信距离不超过1.5米米 ORG 0000H AJMP MAIN ORG 0023H AJMP SINT ORG 0100HMAIN:MOV TMOD,#00100000B MOV SCON,#40H MOV PCON,#00H MOV TL1,#0F4H MOV TH1,#0F4H SETB ES CLR ET1 SETB TR1 SETB EAL1: MOV R0,#50H MOV A,R0 MOV SBUF,AL2: CJNE R0,#5AH,L2 AJMP L1 ORG 0200HSINT:CLR TI INC R0 MOV A,R0 MOV SBUF,A RETI END发送程序发送程序 ORG 0000H AJMP MAIN ORG 0023H AJMP SINT ORG 0100HMAIN:MOV TMOD,#00100000B MOV SCON,#50H MOV PCON,#00H MOV TL1,#0F4H MOV TH1,#0F4H SETB ES CLR ET1 SETB TR1 SETB EAMOV R0,#50H SJMP $SINT:CLR RI MOV A,SBUF MOV R0,A INC R0 RETI END接收程序接收程序数据送累加器数据送累加器ATB8=PMOV SBUF,ATI=1 ?CLR TINOYES发送端程序(原始发送端程序(原始TI=0)RI=1 ?MOV A,SBUFPSW.P=RB8?出错处理出错处理CLR RIYESNO接收端程序(原始接收端程序(原始RI=0)NY数据送内存数据送内存例:采用方式例:采用方式2奇偶校验进行奇偶校验进行双机通信双机通信。三、串口方式三、串口方式2 2的应用的应用例:采用方式例:采用方式2奇偶校验进行奇偶校验进行双机通信双机通信。SE: MOV A,R0 MOV C,P MOV TB8,C MOV SBUF,AHE: JNB TI ,HE CLR TI INC R0 SJMP SE数据送累加器数据送累加器ATB8=PMOV SBUF,ATI=1 ?CLR TINOYES发送端程序(原始发送端程序(原始TI=0)例:采用方式例:采用方式2奇偶校验进行奇偶校验进行双机通信双机通信,采用偶校验。采用偶校验。RE:JNB RI,RE MOV A,SBUF MOV C,P JNC L1 JNB RB8,ERP AJMP L2L1:JB RB8,ERP CLR RIL2:MOV R0,A INC R0 SJMP RERI=1 ?MOV A,SBUFPSW.P=RB8?出错处理出错处理CLR RIYESNO接收端程序(原始接收端程序(原始RI=0)NY数据送内存数据送内存单片机系统或微型计算机系统传感器 1传感器 2传感器 3传感器 4传感器 N接口电路 机房 或 仪表室检测现场四、串口方式四、串口方式3 3的应用的应用主机主机从机从机 N从机从机 4从机从机 3从机从机 2从机从机 1RXDTXDTXDRXD TI :发送中断标志,发送一帧结束,发送中断标志,发送一帧结束,TI=1,必须软件清零,必须软件清零 RI :接收中断标志,接收一帧结束,接收中断标志,接收一帧结束,RI=1RI=1,必须软件清零,必须软件清零 RB8:方式方式1中放中放停止位,方式停止位,方式2、3中放中放接收的第九位数接收的第九位数REN:允许接收控制位,软件置位或清零允许接收控制位,软件置位或清零SM2:多机通信控制位(常与多机通信控制位(常与RB8配合,决定是否激活配合,决定是否激活RI)方式方式3 3 :1111,1111位位UARTUART,其波特率为可变,由定时器控制。,其波特率为可变,由定时器控制。多机通信多机通信SCON的设置的设置SM0SM1SM2RENTB8RB8 TI RITB8:将要:将要发送的第九位数,发送的第九位数, 在执行在执行 MOV SBUF ,A 指令之前指令之前 要事先将要事先将TB8设定好;设定好;双机通信作校验位;双机通信作校验位; 多机通信作地址多机通信作地址/数据标识位。数据标识位。接收到有效数据完毕,置位接收到有效数据完毕,置位RI的条件的条件:(1) REN = 1,RI = 0 (2)且)且SM2 = 0或接收到或接收到第第9位数据为位数据为1,此时,此时,数据装载数据装载SBUF,RI置置1,第第9位数据(位数据(TB8)送入)送入 RB8。 在方式在方式2 2、3 3中接收到的数据是否能装载中接收到的数据是否能装载SBUFSBUF的条件:的条件:1、SM2=0:RB8=1或或RB8=0 都使都使RI=1,接收,接收数据送入数据送入SBUF。2、SM2=1:RB8=1,使,使RI=1并引发中断,接收的并引发中断,接收的数据送入数据送入SBUF。 RB8=0,信息丢失,信息丢失。1、SM2=0:RB8=1或或RB8=0 都都使使RI=1,接收数据,接收数据送入送入SBUF。2、SM2=1:RB8=1,使,使RI=1并引发中断,接收的数据并引发中断,接收的数据送入送入SBUF。 RB8=0,信息丢失。,信息丢失。主机主机1、SM2=02、主机发出地址码、主机发出地址码 TB8=13、主机发出数据码、主机发出数据码 或命令码或命令码TB8=0从机从机1、SM2=12、从机接收到、从机接收到RB8=1,接收地址码,接收地址码, 判断是否和本机地址码相同,判断是否和本机地址码相同, 若相同,则若相同,则SM2=0,若不同,则,若不同,则SM2=13、被、被寻中寻中的从机,接收的从机,接收RB8=0,且,且SM2=0 将主机发出的数据码或命令码送入将主机发出的数据码或命令码送入SBUF, RI=1, 没有被寻中没有被寻中的从机,接收的从机,接收RB8=0,且,且SM2=1, 不接收任何数据。不接收任何数据。l主机的控制命令:主机的控制命令: 00H 主机发送,从机接收;主机发送,从机接收; (控制从机的操作)(控制从机的操作) 01H 主机接收,从机发送。(命令分类)主机接收,从机发送。(命令分类)l从机状态字:从机状态字:从机向主机发送的用于表征从机工作状态的信息。从机向主机发送的用于表征从机工作状态的信息。ERRTRDYRRDY0:合法命令:合法命令 0:发送未就绪:发送未就绪 0:接收未就绪:接收未就绪1:非法命令:非法命令 1:发送就绪:发送就绪 1:接收就绪:接收就绪从机返回的状态字从机返回的状态字例:串口方式例:串口方式3应用编程应用编程 (多机通信)(多机通信)T1为定时为定时,模式模式2B=1200,启动,启动T1设串口为模式设串口为模式3REN=1,SM2=0TB8=1设定程序数据:设定程序数据:R0R5停机停机MCOMMU从机应答?从机应答?地址相符?地址相符?发送命令字发送命令字(TB8=0)从机应答?从机应答?命令正确?命令正确?命令分类命令分类从机接收就绪?从机接收就绪?从机发送就绪?从机发送就绪?RET命令从命令从机复位机复位发发FFHFFHNNYYNNYYNNYY接收接收发送发送调用调用MCOMMU接收数据块接收数据块发送数据块发送数据块发送从机地址发送从机地址ORG 2000HSTART:MOV TMOD,#20H;定时器定时器T1为模式为模式2(8位自动重装)位自动重装)MOV TH1,#0F4HMOV TL1,#0F4H;波特率为波特率为1200(设外接(设外接MHz晶体)晶体)SETB TR1;启动启动T1MOV SCON,#0D8H;串口为模式串口为模式3,REN=1,SM2=0,TB8=1MOV PCON,#00H;设设PCON中的中的SMOD=0MOV R0,#40H;发送数据块首地址送发送数据块首地址送R0指针指针MOV R1,#20H;接收数据块首地址送接收数据块首地址送R1指针指针MOV R2,#SLAVE;被寻从机地址送被寻从机地址送R2MOV R3,#00H/#01H;主发、从收命令。或主收、从发命令主发、从收命令。或主收、从发命令MOV R4,#14H;发送数据块长度送发送数据块长度送R4(20)计数器)计数器MOV R5,#14H;接收数据块长度送接收数据块长度送R5(20)计数器)计数器ACALL MCOM;调用主机通讯子程序调用主机通讯子程序SJMP $ORG 2100HMCOM:MOV A,R2;取从机地址取从机地址MOV SBUF,AJNB RI,$;注意:为什么判断注意:为什么判断RI而不是而不是TI ?CLR RIMOV A,SBUF;取从机的返回地址取从机的返回地址XRL A,R2;核对两个地址核对两个地址JZ MTXD2;相符时,转相符时,转MTXD2MTXD1:MOV SBUF,#0FFH;返回地址错误时,发送从机复位信号返回地址错误时,发送从机复位信号SETB TB8;设定地址标志设定地址标志SJMP MCOM ; 重发从机地址,所有从机重新判断地址重发从机地址,所有从机重新判断地址MTXD2:CLR TB8;将将TB8=0,准备发送命令准备发送命令MOV SBUF,R3;送出命令送出命令JNB RI,$;等待从机应答等待从机应答CLR RI;从机应答后清标志从机应答后清标志MOV A,SBUF;接收从机应答命令接收从机应答命令JNB ACC.7,MTXD3;命令无错时,则命令分类命令无错时,则命令分类SJMP MTXD1;命令错返回重新联络命令错返回重新联络MTXD3:CJNE R3,#00H,MRXD ;从机发送主机接收时,转从机发送主机接收时,转MRXDJNB ACC.0,MTXD1;从机接收时,若从机未准备好转回从机接收时,若从机未准备好转回MTXD4:MOV SBUF,R0;若从机准备好,则开始发送若从机准备好,则开始发送JNB TI,$CLR TIINC R0DJNZ R4,MTXD4RETMRXD:JNB ACC.1,MTXD1;从机发送未准备好返回从机发送未准备好返回MRXD1:JNB RI,$;等待接收等待接收CLR RIMOV A,SBUFINC R1;接收数据区指针加一接收数据区指针加一DJNZ R5,MRXD1;未接收完则继续(未接收完则继续(R5接收数据计数器)接收数据计数器)RETENDERR从机返回的状态字从机返回的状态字TRDYRRDY0:合法命令:合法命令 0:发送未就绪:发送未就绪 0:接收未就绪:接收未就绪1:非法命令:非法命令 1:发送就绪:发送就绪 1:接收就绪:接收就绪T1为定时为定时,模式模式2B=1200,启动,启动T1设串口为模式设串口为模式3REN=1,SM2=1TB8=1设定程序参数:设定程序参数:R0R3开串行口中断开串行口中断动态停机动态停机等待主机发送地址码等待主机发送地址码保护现场保护现场接收地址符合本机?接收地址符合本机? 向主机回送本机地址向主机回送本机地址接收下一字符接收下一字符是命令吗?是命令吗? 命令分类命令分类 本机发送准备就绪?本机发送准备就绪? 本机接收准备就绪?本机接收准备就绪? 发发TRDY=1状态字状态字发发RRDY=1状态字状态字发送数据发送数据接收数据接收数据发送完?发送完? 接收完?接收完? 保护现场返回保护现场返回NNYY发送命令发送命令接收命令接收命令非法命令非法命令送送TRDY=0送送RRDY=0NNNY中断服务程序中断服务程序NY接收接收FFH时时ORG 0000HLJMP STARTORG 0023HLJMP 0100HORG 0040HSTART:MOV TMOD,#20H;设定定时器设定定时器T1为模式为模式2MOV TH1,#0F4H;设定波特率为设定波特率为1200MOV TL1,#0F4HSETB TR1;启动定时器启动定时器T1MOV SCON,#0F8H;设串口模式设串口模式3,REN=1,SM2=1,TB8=1MOV PCON,#00HMOV R0,#20H;R0指向发送数据块首地址指向发送数据块首地址MOV R1,#40H;R1指向接收数据块首址指向接收数据块首址MOV R2,#14H;R2赋发送数据块长度赋发送数据块长度MOV R3,#14H;R3赋接收数据块长度赋接收数据块长度SETB EASETB ES;开中断开中断CLR RI ;清标志;清标志RI准备接收数据准备接收数据SJMP $;等待中断等待中断(三)(三) 从机主程序(初始化)从机主程序(初始化)ORG 0100HSINTS: CLR RI;接收到地址后清接收到地址后清RI PUSH ACCPUSH PSW;保护现场保护现场MOV A,SBUF;接收主机送来得从机地址接收主机送来得从机地址XRL A,#SLAVE;核实从机地址核实从机地址JZ SRXD1;若是本机地址转若是本机地址转SRXD1RETU:POP PSW;返回主程序返回主程序POP ACC;恢复现场恢复现场RETI;中断返回中断返回SRXD1:CLR SM2;SM2清零,单独接收主机数据清零,单独接收主机数据/命令命令MOV SBUF,# SLAVE;向主机发回从机地址向主机发回从机地址JNB RI,$;等待主机的命令等待主机的命令CLR RI;接收到主机命令后清接收到主机命令后清RIJNB RB8,SRXD2 ;若是命令(若是命令(RB8=0)则转)则转SRXD2继续继续SJMP RETU;接收的不是命令时(接收的不是命令时(RB8=1),返回),返回SRXD2:MOV A,SBUF;将接收到的命令送将接收到的命令送ACJNE A,#02H,NEXT;命令合法(命令合法(A-02H)NEXT: JC SRXD3;若命令合法(若命令合法(A 2) Instring=MSComm1.Input End Sub Sub command2_Click()() MSComm1.PortOpen=FALSE UnLoad Me End Sub也可采用串口调试助手软件接收或发送也可采用串口调试助手软件接收或发送A、EIA RS-232C总线标准总线标准 EIA RS-232CEIA RS-232C是异步串行通信中应用最广泛的标准总线,是是异步串行通信中应用最广泛的标准总线,是美国美国EIAEIA(Electronic Industries AssociationElectronic Industries Association,电子工业联,电子工业联合会)开发公布的通信协议。合会)开发公布的通信协议。 适合于数据传输速率在适合于数据传输速率在0 020kb/s20kb/s范围内的通信,包括了范围内的通信,包括了按位串行传输的电气和机械方面的规定。按位串行传输的电气和机械方面的规定。 其特点为:其特点为: (a a)采取不平衡传输方式,是为点对点(只用一对收发设备)采取不平衡传输方式,是为点对点(只用一对收发设备) 通信而设计的;通信而设计的; (b b)采用负逻辑。)采用负逻辑。 (c c)适用于传送距离不大于)适用于传送距离不大于15m15m,速度不高于,速度不高于20kb/s20kb/s的的 本地设备之间通信的场合。本地设备之间通信的场合。B、连接器、连接器 DB-9DB-9连接器只提供异步通信的连接器只提供异步通信的9 9个信号。个信号。CMAX232引脚引脚D. MAX232CD. MAX232C与单片机系统的接口与单片机系统的接口MAX232外围的外围的4个电解电容个电解电容Cl, C2, C3, C4,是内部电源转换所,是内部电源转换所需电容,其取值均为需电容,其取值均为1 F/25V,C5为为0.1 F的去耦电容。的去耦电容。MAX232的引脚的引脚T1IN, T2IN, R1OUT, R2OUT为接为接TTL/CMOS电平的引脚,引脚电平的引脚,引脚T1OUT, T2OUT, R1IN, R2IN为接为接RS-232C电电平的引脚。平的引脚。 所以,T1IN, T2IN引脚应与MCS-51的串行发送引脚TXD相连接。R1OUT, R2OUT应与MCS-51的串行接 收 引 脚 R X D 相 连 接 。T1OUT, T2OUT应与PC机的接收端RD相连接。R1IN, R2IN应与PC的发送端TD相连接。 A、RS485标准标准 信号采用两线传输,两线间电压表示逻辑信号采用两线传输,两线间电压表示逻辑1和逻辑和逻辑0,差分传输,差分传输半双工方式半双工方式传输距离传输距离1200米米传输速率可达传输速率可达10Mb/s最多并联最多并联32台发送器和接收器台发送器和接收器B、SN75176引脚引脚C、SN75176与单片机的连接与单片机的连接CD4094CD4094工作原理工作原理CD4094CD4094是带输出锁存和三态控制的是带输出锁存和三态控制的串入并出高速转换器。具有使用简单、串入并出高速转换器。具有使用简单、功耗低、驱动能力强和控制灵活等优点。功耗低、驱动能力强和控制灵活等优点。当当CD4094CD4094电源为电源为5 5时,输出电流大于时,输出电流大于3.23.2,灌电流为。串行时钟频率可达灌电流为。串行时钟频率可达. .。 11锁存端,锁存端, 22串行数据输入端,串行数据输入端, 33串行时钟端。串行时钟端。1515并行输出状态控制端,并行输出状态控制端,9 9 、10 10 是串行数据输出端,用于级联。是串行数据输出端,用于级联。 端在第个串行时钟的上升沿开始输出,端在第个串行时钟的上升沿开始输出, 端在第个串行时钟的下降沿开始输出。端在第个串行时钟的下降沿开始输出。11脚为高电平时,位并行输出脚为高电平时,位并行输出Q1Q8Q1Q8在时钟的上升沿随串行在时钟的上升沿随串行 输入而变化;输入而变化;11脚为低电平时,输出锁定。脚为低电平时,输出锁定。 利用锁存端可方便地进行片选和级联输出控制。利用锁存端可方便地进行片选和级联输出控制。1515脚为低电平时,并行输出端处在高阻状态,脚为低电平时,并行输出端处在高阻状态,在用在用CD4094CD4094作显示输出时,可使显示数码闪烁。作显示输出时,可使显示数码闪烁。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!