信息工程学院计算机数据通信系统设计贾立新单片机串行通信1.串行异步通信的数据格式01010001011101000起始位数据位高低校验位停止位空闲位完整一帧单片机串行通信2.RS-232C标准RS-232C标准是美国电子工业联合会EIA(ElectronicIndustyAssociation)制定的一种串行物理接口标准,适合的数据传送速率为0~20Kbps。RS-232C对电气特性、逻辑电平和各种信号线的功能都作了规定。逻辑“1”=-3V~-15V,“0”=+3V~+15V。(1)电气特性单片机串行通信(2)机械特性11314251569脚号信号名称方向信号功能1ShieldGnd_接设备外壳,安全地2TXDPC机→对方PC机发送数据3RXDPC机←对方PC机接收数据4RTSPC机→对方PC机请求发送数据5CTSPC机←对方对方已切换到接收状态(清除发送)6DSRPC机←对方对方准备就绪7GND信号地8DCDPC机←对方PC机收到远程信号(载波检测)20DTRPC机→对方PC机准备就绪22RIPC机←对方通知PC机,线路正常(振铃指示)9-19,2123-25NC_空25针插座信号定义引脚号信号名称方向信号功能1DCDPC机←对方PC机收到远程信号(载波检测)2RXDPC机←对方PC机接收数据3TXDPC机→对方PC机发送数据4DTRPC机→对方PC机准备就绪5GND信号地6DSRPC机←对方对方准备就绪7RTSPC机→对方PC机请求发送数据8CTSPC机←对方对方已切换到接收状态(清除发送)9RIPC机←对方通知PC机,线路正常(振铃指示)9针插座信号定义(3)电平转换接口芯片及典型电路VCCGND1C1+234MAX23256789V+C1-C2+C2-V-T2OUTR2INT2INR2OUTT1INR1OUTR1INT1OUT11101213141516C1+C2C1C2+C2-T2OUTR2INVCCGNDR2OUTR1OUTC1-5V到10V倍压器+10V到-10V反相器400k400k5k5k+5V+5VT1OUTR1IN261471389121011543116+10V-10VC5C315TTL/CMOSINPUTTTL/CMOSOUTPUTRS232OUTPUTRS232INPUT+5VC4++++单片机串行通信3.RS-485标准(1)电气特性总线只有信号线A和B,当电平A-B>200mV时,线路上表示传输信号“1”;当B-A<200mV时,线路上表示传输“0”。单片机串行通信VCCBAGND1RDROREDIDE2348765DIP/SOVCCBAGND1RDROREDIDE23485RDROREDIDEMAX485管脚图及典型工作电路单片机串行通信RDABDEDIRORE120ΩRDDEDIROREDEDIROREDRDEDIROREDR120Ω半双工RS—485通信网单片机串行通信AT89S52单片机的串行口发送SBUF(99H)接收SBUF(99H)发送控制器接收控制器串行控制寄存器输入移位寄存器≥1串行口中断内部总线定时器T1TXD(P3.1)RXD(P3.0)输出控制门单片机串行通信串行控制寄存器SCON(98H)D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI单片机串行通信SM0SM1工作模式功能说明波特率00模式0同步移位寄存器方式fOSC/1201模式110位异步接收发送可变(由定时器控制)10模式211位异步接收发送fOSC/32或fOSC/6411模式311位异步接收发送可变(由定时器控制)串行口的工作方式其余各位的定义见教材P240单片机串行通信电源控制寄存器PCOND7D6D5D4D3D2D1D0SMOD———GF1GF0PDIDL单片机串行通信波特率设计120OCSf的波特率模式OCSSMOD6422f的波特率模式单片机串行通信的溢出率的波特率和模式模式1T32231SMOD)(溢出周期Xf256121TOSC)(波特率Xf25612322OSCSMOD波特率)(3841SMOD256OSCfX单片机串行通信串行通信编程举例A机发送,B机接收,采用中断方式。协议如下:(1)波特率为1200bps,晶振为11.0592MHz;(2)串行口工作方式1,T1工作模式2。(3)A机开始发送时,先发#0AAH,B机收到后回答#0BBH,表示响应。当A机收到#0BBH后,开始发送数据,每发送一次求一次“累加和”。(4)设定数据块长度为16字节,起始地址为30H,一个数据块发完再发出“累加和”。单片机串行通信(5)B机接收数据并转存到数据区,起始地址为30H。同时,每接收一次也计算一次“累加和”,当一个数据块接收完毕后,再接收从A机发来的“累加和”,并将它与B机计算的“累加和”相比较。若两者相等,说明接收正确,B机回答#00H;若两者不等,B机回答#0FFH,要求重发。(6)A机收到#00H则结束发送,否则重复发送此数据块单片机串行通信波特率计算E8H23212003841100592112563841SMOD2566OSC波特率)(fXORG0000HLJMPMAINORG0023HLJMPSSUB;转向中断服务程序ORG0050HMAIN:MOVSP,#60HMOVTMOD,#20H;设T1工作方式2MOVTH1,#0E8H;赋计数器初值MOVTL1,#0E8HMOVPCON,#00H;设SMOD=0MOVSCON,#50H;置串行口方式1,允许接收SETBTR1;启动定时器T1SETBES;允许串行口中断SETBEA;开中断CLR00H;清联机成功标志MOVA,#0AAH;发送AAH命令MOVSBUF,ASJMP$;等待中断CLRTITI=1?CLRRI已联机成功?退出YN数据已发送完?清联机成功标志发送累加和退出发送下一数据求累加和退出A←SBUFA为#00H?发送#AAH退出YA为#BBH?置联机成功标志YR0←#30HR6←#00HN发送第一个数据N退出NY地址指针加1中断入口NYA机发送中断服务程序流程图CLRTITI=1?CLRRI已联机成功?退出YN数据已接收完?清联机成功标志校验累加和发送下一数据求累加和退出正确?发送#FFH退出YA为#AAH?置联机成功标志YNNNY地址指针加1中断入口NY退出A←SBUF发送#BBHR0←#30HR6←#00H发送#00H退出退出存放接收数据B机接收中断服务程序流程图