单片机--第9章-AT89S52单片机串行通信

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第九章AT89S52单片机串行通信9.1串行通信概述9.2RS232C标准总线及通信设计9.3AT89S52串行通信接口9.4串行通信应用举例9.1串行通信概述计算机之间以及计算机与其他外设之间的信息交换称为数据通信。数据通信方式有两种:并行通信数据的各位同时传送。优点是传送速度快;缺点是数据线位数多,在长距离传送的过程中,不经济并且抗干扰能力下降。串行通信数据的各位按一定的顺序逐位分时传送。其突出优点是只需一对数据线,大大降低了网络成本,特别适合于远距离通信;缺点是传送速度较低。两个通信设备在串行线路上成功地实现通信必须解决三个问题:1.如何把要发送的并行数据串行化和把接收的串行数据并行化;2.同步发送设备和接收设备的工作节拍,以确保发送的数据在接收端被正确接收;3.通信双方在通信前要约定以何种方式、通过什么样的速率发送,数据的帧格式如何等。9.1.1串行通信的实现1.串并转换和并串转换一般通过移位寄存器来完成串行输入并行输出:74LS164和CD4094,用以接收由单片机串行发出的数据并行输入串行输出:74LS165和CD4014,用以向单片机发出串行数据2.设备同步通信双方必须采用统一的编码方法确定了一个字符的表达形式以及发送顺序和位串长度等,当然还包括统一的逻辑电平规定。通信双方必须能产生相同的传送速率才能确保设备同步,这就要求发送设备和接收设备采样相同频率的时钟。发送设备在统一的时钟脉冲下发送数据,接收设备才能正确检测出与时钟脉冲同步的数据信息。3.通信协议是对数据传送方式的规定,包括数据格式、数据位定义、发送数率等1.同步通信同步通信的基本特征是发送和接收时钟保持严格同步。开始要有同步字符,无信息时要填上空字符,不允许有间隙分为面向字符型和面向位(比特)型两种。9.1.2串行通信的通信方式面向位型:面向字符型的数据格式又有单同步、双同步、外同步之分:起始位——每个字符开始传送的标志,起始位采用逻辑0电平起始位奇偶位停止位空闲位数据位低位高位位串长度0/10/10/10/110111…数据位——数据位紧跟着起始位传送。由5~8个二进制位组成,低位先传送奇偶校验位——根据通信双方的通信协议,可选择奇检验、偶校验或无校验位停止位——表示该字符传送结束。停止位为逻辑1电平,可选择1、1.5、2位。空闲位——传送字符之间的逻辑1电平,表示没有进行传送波特率——每秒钟传送二进制位的个数如9600bit/s2.异步通信无需同步字符、无需保持数据块的连续性但必须按通信双方约定好的格式进行格式化。9.1.3串行通信的传输方式单工通信是指数据只能单方向传输的工作方式,因此只占用一个信道。广播、遥控、遥测、无线寻呼等半双工通信是指通信双方都能交替地进行双向数据传输,但两个方向的数据传输不能同时进行。例如,同一载波频率的对讲机、收发报机等全双工通信是指通信双方可同时进行数据收发的工作方式。所以必须是双向信道。普通电话、手机、计算机之间的高速数据通信等9.2.1RS232C接口的引脚描述9.2RS232C标准总线及通信设计9针连接器和25针连接器间的对应关系引脚描述9针连接器25针连接器DCD接收线路信号检测(输入)18RXD接收数据(输入)23TXD发送数据(输出)32DTR数据终端准备就绪(输出)420GND地57DSR数据通信设备准备就绪(输入)66RTS请求发送(输出)74CTS允许发送(输入)85RI振铃检测(输入)9229.2.2RS232C接口的具体规定1.电气性能规定(1)在TXD和RXD线上,RS232C采用负逻辑。逻辑正(即数字“1”)=-3V~-15V逻辑负(即数字“0”)=+3V~+15V(2)在联络控制信号线上(如RTS、CTS、DSR、DTR、RI、DCD等)ON(接通状态)=+3V~+15VOFF(断开状态)=-3V~-15V2.传输距离以最高速率19.2kbit/s通信时,最大传送距离在20m之内。降低波特率可以增加传输距离。9.2.3RS232C接口的典型应用3以发送方说明步骤21两个RS232C设备通信连线图请求发送线路检测准备就绪准备就绪准许发送发送接收DTE数据终端设备DTE数据终端设备单片机和PC机采用MAX232通信连线图TTL电平与RS232C电平的转换9.3AT89S52串行通信接口AT89S52具有一个全双工串行口,既可以工作在同步模式,又可以工作在异步的UART(通用异步收发器)模式,能方便地构成双机、多机串行通信接口。9.3.1串行口的控制1.串行数据缓冲器SBUF2.串行口控制寄存器SCON3.电源控制寄存器PCON1.串行数据缓冲器SBUF地址:99H对应两个缓冲器串行发送缓冲器(MOVSBUF,A)单缓冲,实现最大传输速率串行接收缓冲器(MOVA,SBUF)双缓冲,避免数据重叠2.串行口控制寄存器SCONSCON(98H)SM0SM1SM2RENTB8RB8TIRID7D6D5D4D3D2D1D0图9.3.1控制寄存器SCON的位定义能位寻址工作模式选择位9FH9EH8DH9CH9BH9AH99H98H位地址多机通信控制位。串行接收允许位。由软件置位和清0发送数据的第9位。由软件置位和清0,即可作奇偶校验位,又可在多机通信中,作地址帧和数据帧的标志位。接收数据的第9位。发送中断标志。在一帧数据发送完时被置位。由硬件置位软件清0。接收中断标志。在接收完一帧有效数据后被置位。由硬件置位软件清0。表9.3.1串行口工作模式M0M1工作模式说明波特率00模式0同步移位寄存器fosc/1201模式18位UART由定时器控制10模式29位UARTfosc/32或fosc/6411模式39位UART由定时器控制3.电源控制寄存器PCONPCON(87H)不能位寻址波特率加倍位。在模式1、2、3时,波特率和成正比,当SMOD=1时,波特率提高一倍。系统复位后,SMOD=0SMOD29.3.2串行口的工作模式自己看9.3.3多机通信1.多机通信原理2.多机通信应用举例9.3.4波特率的确定在串行通信中,收发双方对发送和接收的数据速率有一定的约定,通过软件对单片机串行口编程可设定4种工作模式。其中,模式0和模式2的波特率是固定的;而模式1和模式3的波特率是可变的。1.模式0的波特率模式0每一个机器周期产生一个移位脉冲,发送或接收一位数据。因此,波特率固定为振荡器频率的1/12。模式0的波特率=/12oscf2.模式2的波特率模式2的波特率与PCON中的SMOD位的值有关:当SMOD=0时,波特率为振荡器频率的1/64;当SMOD=1时,波特率为振荡器频率的1/32。oscSMOD6422f的波特率模式3.模式1和模式3的波特率模式1和模式3的波特率由定时/计数器1或定时器/计数器2的溢出速率来决定。(1)用T1产生波特率模式1和模式3的波特率=T1溢出速率/32当T1设置为8位自动重装载的模式2时,SMOD2TH1)-(25612322OSCSMODf波特率波特率/MHzSMODT1波特率/MHzSMODT1模式重装值模式重装值480016102EFH240016002EFH240016102DDH120016002DDH120016102BBH60016002BBH6001610275H3001600275H480012102F3H240012002F3H240012102E6H120012002E6H120012102CCH60012002CCH6001210298H3001200298H3001210230H11012001FEEBH5680011.059102FFH960011.059002FDH1920011.059102FDH480011.059002FAH960011.059102FAH240011.059002F2H480011.059102F4H120011.059002E8H240011.059102E8H60011.059002D0H120011.059102D0H30011.059002A0H60011.059102A0H12006002F3H表9.3.1由T1产生的常用波特率值oscfoscfTC/TC/表9.3.2用T2产生的常用波特率oscfoscf波特率/MHzRCAP2HRCAP2L波特率/MHzRCAP2HRCAP2L3840016FFHF3H5680011.059FFHFAH1920016FFHE6H3840011.059FFHF7H960016FFHCCH1920011.059FFHEEH480016FFH98H960011.059FFHDCH240016FFH30H480011.059FFHB8H120016FEH5FH240011.059FFH70H60016FCHBFH120011.059FEHE0H30016F9H7DH60011.059FDHC0H11016EEH3FH30011.059FBH80H960012FFHD9H48006FFHD9H480012FFHB2H24006FFHB2H240012FFH64H12006FFH64H120012FEHC8H6006FEHC8H60012FDH8FH3006FDH8FH30012FBH1EH1106F9H57H9.4串行通信应用举例9.4.1串行口模式0的应用串行口在模式0下有两种用途:1.把串行口设置成并入串出的输出口需外接一片8位串入并出的同步移位寄存器74LS164或CD4094。2.把串行口设置成串入并出的输入口需外接一片8位并入串出的同步移位寄存器74LS165或CD4014。9.4.1串行口模式0的应用AT89S52RXDTXDP1.0CD4094STBCLKDATA根据线路连接,编写发光二极管自左至右以一定速度轮流显示的程序。CD4094:串入并出STB=0,允许串行数据从DATA输入,但8位并行数据输出关闭;STB=1,DATA输入关闭,但允许8位并行数据输出。设串行口采用中断方式发送。AT89S52RXDTXDP1.0CD4094STBCLKDATA主程序:ORG2000HMOVSCON,#00H;串行口初始化方式0MOVIE,#90H;开串行口中断CLRP1.0;禁止CD4094并行输出MOVA,#80H;起始显示码送AMOVSBUF,A;串行输出LOOP:SJMPLOOP;等待串行口输出完中断服务程序:ORG0023HAJMPSBVORG0100HSBV:SETBP1.0;点亮发光二极管ACALLDELAY;点亮一段时间CLRTI;清发送中断方式RRA;准备点亮下一位CLRP1.0;灭显示MOVSBUF,A;串行输出RETIDELAY:…;延时程序RETEND9.4.1串行口模式0的应用根据线路连接,编写AT89S52串行输入开关量并把它存入20H单元的程序。要求KC合上时开始进行模拟。CD4014:并入串出P/S=0,允许串行数据从输出,但8位并行数据输入关闭;P/S=1,允许8位并行数据输入,但串行输出关闭。程序采用P1.0查询KC,再通过控制P1.1完成开关量输入。AT89S52RXDTXDP1.1CD4014P/SCLKQ8P1.0VCC……KCORG2000HSTART:JBP1.0,$;等待KC闭合SETBP1.1;并行输入开关量CLRP1.1;开始串行输出MOVSCON,#10H;模式0启动接收JNBRI,$;等待接收结束CLRRIMOVA,SBUF;串行输入MOV20H,ALCALLOTHPRO;转其他程序SJMPSTARTENDAT89S52RXDTXDP1.1CD4014P/SCLKQ8P1.0VCC……KC例9.1:AT89S52的串行接口外接74LSl64移位寄存器,每接一片74LS164可扩展一个8位并行输出口,用以连接一个LED作静态显示器或作键盘中8根列线使用。图9.4.1为串行口扩展两位LED显示器的实用电路。9.4.1串行口模式0的应用第一片74LS

1 / 49
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功