收藏 分享(赏)

单片机 第9章 AT89S52单片机串行通信.ppt

上传人:nacm35 文档编号:7942644 上传时间:2019-05-30 格式:PPT 页数:49 大小:537KB
下载 相关 举报
单片机  第9章 AT89S52单片机串行通信.ppt_第1页
第1页 / 共49页
单片机  第9章 AT89S52单片机串行通信.ppt_第2页
第2页 / 共49页
单片机  第9章 AT89S52单片机串行通信.ppt_第3页
第3页 / 共49页
单片机  第9章 AT89S52单片机串行通信.ppt_第4页
第4页 / 共49页
单片机  第9章 AT89S52单片机串行通信.ppt_第5页
第5页 / 共49页
点击查看更多>>
资源描述

1、第九章 AT89S52单片机串行通信,第九章 AT89S52单片机串行通信,9.1 串行通信概述 9.2 RS232C标准总线及通信设计 9.3 AT89S52串行通信接口 9.4 串行通信应用举例,9.1 串行通信概述,计算机之间以及计算机与其他外设之间的信息交换称为数据通信。数据通信方式有两种: 并行通信 数据的各位同时传送。优点是传送速度快;缺点是数据线位数多,在长距离传送的过程中,不经济并且抗干扰能力下降。 串行通信 数据的各位按一定的顺序逐位分时传送。其突出优点是只需一对数据线,大大降低了网络成本,特别适合于远距离通信;缺点是传送速度较低。,两个通信设备在串行线路上成功地实现通信必须

2、解决三个问题: 1.如何把要发送的并行数据串行化和把接收的串行数据并行化; 2.同步发送设备和接收设备的工作节拍,以确保发送的数据在接收端被正确接收; 3.通信双方在通信前要约定以何种方式、通过什么样的速率发送,数据的帧格式如何等。,9.1.1 串行通信的实现,1串并转换和并串转换一般通过移位寄存器来完成 串行输入并行输出:74LS164和CD4094,用以接收由单片机串行发出的数据 并行输入串行输出:74LS165和CD4014,用以向单片机发出串行数据,2设备同步通信双方必须采用统一的编码方法 确定了一个字符的表达形式以及发送顺序和位串长度等,当然还包括统一的逻辑电平规定。通信双方必须能产

3、生相同的传送速率 才能确保设备同步,这就要求发送设备和接收设备采样相同频率的时钟。发送设备在统一的时钟脉冲下发送数据,接收设备才能正确检测出与时钟脉冲同步的数据信息。,3通信协议,是对数据传送方式的规定,包括数据格式、数据位定义、发送数率等,1同步通信,同步通信的基本特征是发送和接收时钟保持严格同步。开始要有同步字符,无信息时要填上空字符,不允许有间隙分为面向字符型和面向位(比特)型两种。,9.1.2 串行通信的通信方式,面向位型:,面向字符型的数据格式又有单同步、双同步、外同步之分:,起始位每个字符开始传送的标志,起始位采用逻辑0电平,起始位,奇偶位,停止位,空闲位,数据位,低位,高位,位串

4、长度,1,0,1,1,1,数据位数据位紧跟着起始位传送。由58个二进制位组成,低位先传送,奇偶校验位根据通信双方的通信协议,可选择奇检验、偶校验或无校验位,停止位表示该字符传送结束。停止位为逻辑1电平,可选择1、1.5、2位。,空闲位传送字符之间的逻辑1电平,表示没有进行传送,波特率每秒钟传送二进制位的个数如9600bit/s,2异步通信,无需同步字符、无需保持数据块的连续性但必须按通信双方约定好的格式进行格式化。,9.1.3 串行通信的传输方式,单工通信 是指数据只能单方向传输的工作方式,因此只占用一个信道。广播、遥控、遥测、无线寻呼等 半双工通信 是指通信双方都能交替地进行双向数据传输,但

5、两个方向的数据传输不能同时进行。例如,同一载波频率的对讲机、收发报机等 全双工通信 是指通信双方可同时进行数据收发的工作方式。所以必须是双向信道。普通电话、手机、计算机之间的高速数据通信等,9.2.1 RS232C接口的引脚描述,9.2 RS232C标准总线及通信设计,9针连接器和25针连接器间的对应关系,9.2.2 RS232C接口的具体规定,1电气性能规定 (1) 在TXD和RXD线上,RS232C采用负逻辑。 逻辑正(即数字“1”)=-3V-15V 逻辑负(即数字“0”)=+3V+15V (2) 在联络控制信号线上(如RTS、CTS、DSR、DTR、RI、DCD等) ON(接通状态)=+

6、3V+15V OFF(断开状态)=-3V-15V 2传输距离,以最高速率19.2kbit/s通信时,最大传送距离在20m之内。降低波特率可以增加传输距离。,9.2.3 RS232C接口的典型应用,3,以发送方说明步骤,2,1,两个RS232C设备通信连线图,请求发送,线路检测,准备就绪,准备就绪,准许发送,发送,接收,DTE 数据终端设备,DTE 数据终端设备,单片机和PC机采用MAX232通信连线图,TTL电平与RS232C电平的转换,9.3 AT89S52串行通信接口,AT89S52具有一个全双工串行口,既可以工作在同步模式,又可以工作在异步的UART(通用异步收发器)模式,能方便地构成双

7、机、多机串行通信接口。,9.3.1 串行口的控制,1串行数据缓冲器SBUF 2串行口控制寄存器SCON 3电源控制寄存器PCON,1串行数据缓冲器SBUF,地址:99H 对应两个缓冲器串行发送缓冲器(MOV SBUF,A)单缓冲,实现最大传输速率串行接收缓冲器(MOV A,SBUF)双缓冲,避免数据重叠,2串行口控制寄存器SCON,SCON (98H),D7 D6 D5 D4 D3 D2 D1 D0,图9.3.1 控制寄存器SCON的位定义,能位寻址,位地址,多机通信控制位。,串行接收允许位。由软件置位和清0,发送数据的第9位。由软件置位和清0,即可作奇偶校验位,又可在多机通信中,作地址帧和数

8、据帧的标志位。,接收数据的第9位。,发送中断标志。在一帧数据发送完时被置位。由硬件置位软件清0。,接收中断标志。在接收完一帧有效数据后被置位。由硬件置位软件清0。,表9.3.1 串行口工作模式,3电源控制寄存器PCON,PCON (87H),不能 位寻址,波特率加倍位。在模式1、2、3时,波特率和 成正比, 当SMOD=1时,波特率提高一倍。系统复位后,SMOD=0,9.3.2 串行口的工作模式,自己看,9.3.3 多机通信,1多机通信原理 2多机通信应用举例,9.3.4 波特率的确定,在串行通信中,收发双方对发送和接收的数据速率有一定的约定,通过软件对单片机串行口编程可设定4种工作模式。其中

9、,模式0和模式2的波特率是固定的;而模式1和模式3的波特率是可变的。,1模式0的波特率,模式0每一个机器周期产生一个移位脉冲,发送或接收一位数据。因此,波特率固定为振荡器频率的1/12。模式0的波特率= 12,2模式2的波特率,模式2的波特率与PCON中的SMOD位的值有关:当SMOD=0时,波特率为振荡器频率的1/64;当SMOD=1时,波特率为振荡器频率的1/32。,3模式1和模式3的波特率,模式1和模式3的波特率由定时计数器1或定时器计数器2的溢出速率来决定。,(1)用T1产生波特率,模式1和模式3的波特率=T1溢出速率/32当T1设置为8位自动重装载的模式2 时,,表9.3.1 由T1

10、产生的常用波特率值,表9.3.2 用T2产生的常用波特率,9.4 串行通信应用举例,9.4.1 串行口模式0的应用,串行口在模式0下有两种用途: 1.把串行口设置成并入串出的输出口需外接一片8位串入并出的同步移位寄存器74LS164或CD4094。 2.把串行口设置成串入并出的输入口需外接一片8位并入串出的同步移位寄存器74LS165或CD4014。,9.4.1 串行口模式0的应用,根据线路连接,编写发光二极管自左至右以一定速度轮流显示的程序。,CD4094:串入并出 STB=0,允许串行数据从DATA输入,但8位并行数据输出关闭; STB=1, DATA输入关闭,但允许8位并行数据输出。 设

11、串行口采用中断方式发送。,主程序:ORG 2000HMOV SCON,#00H;串行口初始化方式0MOV IE, #90H ;开串行口中断CLR P1.0 ;禁止CD4094并行输出MOV A, #80H;起始显示码送AMOV SBUF,A;串行输出 LOOP:SJMP LOOP;等待串行口输出完,中断服务程序:ORG 0023HAJMP SBVORG 0100H SBV: SETB P1.0;点亮发光二极管ACALL DELAY;点亮一段时间CLR TI ;清发送中断方式RR A ;准备点亮下一位CLR P1.0 ;灭显示MOV SBUF,A;串行输出RETI DELAY: ;延时程序RET

12、END,9.4.1 串行口模式0的应用,根据线路连接,编写AT89S52串行输入开关量并把它存入20H单元的程序。要求KC合上时开始进行模拟。,CD4014:并入串出 P/S=0,允许串行数据从输出,但8位并行数据输入关闭; P/S=1,允许8位并行数据输入,但串行输出关闭。 程序采用P1.0查询KC ,再通过控制P1.1完成开关量输入。,ORG 2000H START: JB P1.0, $ ;等待KC闭合SETB P1.1;并行输入开关量CLR P1.1 ;开始串行输出MOV SCON,#10H;模式0启动接收JNB RI, $ ;等待接收结束CLR RIMOV A,SBUF ;串行输入M

13、OV 20H,ALCALL OTHPRO;转其他程序SJMP STARTEND,例9.1:AT89S52的串行接口外接74LSl64移位寄存器,每接一片74LS164可扩展一个8位并行输出口,用以连接一个LED作静态显示器或作键盘中8根列线使用。图9.4.1为串行口扩展两位LED显示器的实用电路。,9.4.1 串行口模式0的应用,第一片74LS164的最高位接入第二片74LS164的最低位,移位过程用单片机的P1.2引脚控制。下面为从内部RAM的61H和62H单元中取出要显示的数据,查表获得7段显示码,由串行口送给显示器的程序清单。,ORG 1100H DISP: SETB P1.2 ;控制端

14、打开 MOV R7, #02HMOV R0, #61HMOV SCON, #00H ;串行口模式0初始化 DL1: MOV A, R0ADD A, #0EHMOVC A, A+PC ;查7段代码表MOV SBUF, A ;发送数据 DL2: JNB TI, DL2 ;等待发送完成 CLR TIINC R0DJNZ R7, DL1CLR P1.2 LOOP: AJMP LOOP TAB: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H;7段代码表DB 92H, 82H, 0F8H, 80H, 90H, 88HDB 83H, 0C6H, 0A2H, 86H, 84H,9.4.2 串行

15、口模式1的应用,例9.2:设有两个单片机应用系统相距很近,将它们的串行口直接相连,以实现全双工的双机通信。设甲机发送乙机接收,待发送的数据是标准的ASCII码,存储在内部RAM单元20H3FH中,要求在最高位上加奇校验位后由串行口发送出去,发送的波特率为1200b/s, =11.059MHz。,解:(1)功能分析:7位ASCII码加上1位奇偶校验位共8位数据,所以可以采用串行口模式1来完成。单片机的奇偶校验位P是当累加器A中1的个数为奇数时,P=1。如果直接把P的值放入ASCII码的最高位,恰好形成偶校验,与要求不符。因此要把P取反后放入ASCII码的最高位,才是要求的奇校验。双工通信要求收、

16、发能同时进行。采用中断方式,通过检测是RI置位还是TI置位来决定CPU是进行发送操作还是进行接收操作。发送和接收都通过子程序来完成。,解:(2)波特率的计算串行口工作在模式1,定时器T1工作在模式2(8位自动装载)作波特率发生器。波特率计算公式为:,1200b/s,取SMOD=0,11.059MHz,(3)甲机发送程序 START: MOV TMOD , #20H;T1模式2MOV TL1 , #0E8H MOV TH1 , #0E8H ;装载预置常数SETB TR1 ;启动T1MOV SCON , #40H ;串行口模式1MOV R0 , #20H ;数据区首址MOV R7 , #20H ;

17、数据块长度 LOOP : MOV A , R0 ;取数据MOV C , P ;取奇偶校验位CPL CMOV ACC.7 , CMOV SBUF , A ;启动发送 DONE : JNB TI , DONE ;等待发送完成CLR TI ;软件清TIINC R0DJNZ R7 , LOOPAJMP START ;循环发送,(4)乙机接收程序 START: MOV TMOD , #20H ;T1模式2MOV TL1 , #0E8HMOV TH1 , #0E8H ;装载预置常数SETB TR1 ;启动T1MOV SCON , #50H ;串行口模式1,允许接收MOV R0 , #20H ;数据区首址M

18、OV R7 , #20H ;数据块长度 DONE : JNB RI , DONE ;等待接收结束CLR RI ;软件清除RIMOV A , SBUF ;取数据MOV C , P ;检查奇偶校验位CPL CANL A , #7FH ;去掉校验位JC ERROR ;转出错处理MOV R0 , A ;保存所接收数据INC R0DJNZ R7 , LOOP ERROR: ;出错处理程序,9.4.3 串行口模式2和模式3的应用,串行口模式2和模式3基本一样,只是波特率设置不同。与模式1相比,只是多了1位可编程控制位。,例9.3:编写串行发送程序,被发送的数据存储在内部RAM的30H4FH单元中,要求每个

19、数据要加上奇偶校验。,解(1)功能分析RAM的30H4FH单元中存储着普通的8位数据,要求把每个数据的奇偶校验位一同发送出去,则每帧数据的基本信息为9位,所以采用模式2或模式3发送。本例中,串行口设定为模式2,9位波特率固定的UART,TB8作奇偶校验位。在数据写入发送缓冲器之前,先将数据的奇偶校验位P写入TB8,单片机会在发送完基本的8位数据后,自动把TB8的数据也发送出去,接收端把接收到的第9位数据存储在自己的TB8中。,(2)采用查询方式的程序 START: MOV SCON , #80H;串行口模式2MOV PCON , #80H ;SMOD=1,波特率为振荡频率的1/32MOV R0

20、 , #30H ;数据区首址MOV R7 , #20H ;数据块长度 LOOP : MOV A , R0 ;取数据MOV C , P ;取奇偶校验位MOV TB8, C ;奇偶校验标志送TB8MOV SBUF , A ;启动发送 WAIT: JBC TI , NEXT ;查询是否一帧数据发送完毕SJMP WAIT NEXT: INC R0 DJNZ R7 , LOOP HERE: AJMP HERE,(3)采用中断方式的程序ORG 0000HAJMP STARTORG 0023HAJMP SINTORG 0100H START: MOV SP, #60HMOV SCON , #80H ;串行口

21、模式2MOV PCON , #80H ;SMOD=1,波特率为振荡频率的1/32MOV R0 , #30H ;数据区首址MOV R7 , #20H ;数据块长度 SETB ESSETB EA MOV A , R0 ;取数据MOV C , P ;取奇偶校验位MOV TB8, C ;奇偶校验标志送TB8MOV SBUF , A ;启动发送 HERE: AJMP HERE,SINT: CLR TIINC R0 MOV A, R0MOV C, PMOV TB8, C ;奇偶校验标志送TB8MOV SBUF , A ;启动发送DJNZ R7 , ENDS ;未完,则转去中断返回CLR ES ;完成,禁止串行口中断 ENDS: RETI,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报