《80C51单片机的串行口.ppt》由会员分享,可在线阅读,更多相关《80C51单片机的串行口.ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2023/1/261第第6 6章章 80C5180C51单片机的串行口单片机的串行口计算机计算机串行通信基础串行通信基础6.180C5180C51单片机的单片机的串行口串行口6.280C5180C51单片机的单片机的串行口应用串行口应用6.32023/1/2626.1 计算机串行通信基础计算机串行通信基础通信:并行通信与串行通信通信:并行通信与串行通信 并行通信并行通信特点特点:传送控制简单、速度快,但传输线较多,成本高。:传送控制简单、速度快,但传输线较多,成本高。2023/1/263 串行通信串行通信特点特点:传送控制复杂、速度慢,传输线少,成本低。:传送控制复杂、速度慢,传输线少,成本低
2、。2023/1/264 异步通信与同步通信异步通信与同步通信收、发设备时钟独立,以字符收、发设备时钟独立,以字符(帧帧)为单位传输。为单位传输。6.1.1 6.1.1 串行通信的基本概念串行通信的基本概念异步通信异步通信 2023/1/265 异步通信帧格式异步通信帧格式起始位(位);起始位(位);数据位(位);数据位(位);奇偶校验位(位,可无校验位);奇偶校验位(位,可无校验位);停止位(位)。停止位(位)。特点特点v易于实现易于实现v效率不高效率不高 同步通信同步通信(发、收时钟直接连接,效率高。板内元件间的(发、收时钟直接连接,效率高。板内元件间的SPI接口)接口)2023/1/266
3、 串行通信的传输方向串行通信的传输方向单工单工 半双工半双工 全双工全双工 80C5180C51有有1 1个全双工个全双工串行口串行口 2023/1/267 信号的调制与解调信号的调制与解调DTEDTE:数据:数据终端终端设备设备DCEDCE:数据:数据通信通信设备设备 调制解调器调制解调器v调制调制v解调解调 2023/1/268 串行通信的错误校验串行通信的错误校验奇偶校验奇偶校验 发送字符:发送字符:数据位尾随数据位尾随1 1位奇偶校验位(位奇偶校验位(1 1或或0 0)。)。奇校验时奇校验时,数据中,数据中“1 1”的个数与校验位的个数与校验位“1 1”的个的个数之和应为奇数;数之和应
4、为奇数;偶校验时偶校验时,数据中,数据中“1 1”的个数的个数与校验位与校验位“1 1”的个数之和应为偶数。的个数之和应为偶数。接收字符:接收字符:对对“1 1”的个数进行校验,若发现不一的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。致,则说明传输数据过程中出现了差错。2023/1/269代码和校验代码和校验 发送方发送方将所发数据块求和(或各字节异或),产将所发数据块求和(或各字节异或),产生的生的校验和字节校验和字节附加到数据块的末尾。附加到数据块的末尾。接收方接收方在接收数据时要对在接收数据时要对数据块(除校验字节外)数据块(除校验字节外)求和(或各字节异或),求和(或各
5、字节异或),将所得的结果与收到的将所得的结果与收到的“校验和校验和”进行比较,相符则无差错,否则就认进行比较,相符则无差错,否则就认为传送过程出现了差错。为传送过程出现了差错。2023/1/2610 传输速率与传输距离传输速率与传输距离传输速率传输速率比特率比特率:每秒钟传送的信息量。单位:位秒(:每秒钟传送的信息量。单位:位秒(bpsbps)波特率波特率:每秒钟传送码元数目,单位:波特(:每秒钟传送码元数目,单位:波特(Baud)基带传输基带传输(每个码元带有(每个码元带有“1 1”或或“0 0”这这1 bit1 bit信息,信息,传码率与传信率相同),传码率与传信率相同),波特率和比特率是
6、相同的波特率和比特率是相同的。常用波特率为:常用波特率为:24002400、48004800、96009600、14.4K14.4K、19.2K19.2K等等 传输距离与传输速率的关系传输距离与传输速率的关系传输距离随波特率的增加而减小。传输距离随波特率的增加而减小。2023/1/26116.1.2 6.1.2 串行通信接口标准串行通信接口标准RS-232CRS-232C定义的是定义的是DTEDTE与与DCEDCE间的接口标准。间的接口标准。机械特性机械特性DB-25 DB-25 连接器连接器 DB-9 DB-9 连接器连接器 2023/1/2612 功能特性功能特性插针序号插针序号信号名称信
7、号名称功能功能信号方向信号方向 1 PGND保护接地保护接地 2(3)TXD发送数据(串行输出)发送数据(串行输出)DTEDCE 3(2)RXD接收数据(串行输入)接收数据(串行输入)DTEDCE 4(7)RTS请求发送请求发送DTEDCE 5(8)CTS允许发送允许发送DTEDCE 6(6)DSRDCE就绪(数据建立就绪)就绪(数据建立就绪)DTEDCE 7(5)SGND信号接地信号接地 8(1)DCD载波检测载波检测DTEDCE 20(4)DTRDTE就绪(数据终端准备就绪)就绪(数据终端准备就绪)DTEDCE 22(9)RI振铃指示振铃指示DTEDCE2023/1/2613 电气特性电气
8、特性 RS-232C RS-232C采用负逻辑电平,规定(采用负逻辑电平,规定(-3-3-25V-25V)为逻辑)为逻辑“1 1”,(+3+3+25V+25V)为逻辑)为逻辑“0 0”。-3V-3V+3V+3V是未定义的过渡区。试比较:是未定义的过渡区。试比较:电平转换电路(如电平转换电路(如MAX232MAX232)2023/1/2614 过程特性过程特性远远程通信,需要调制解调器程通信,需要调制解调器 2023/1/2615近近程通信,不需要调制解调器程通信,不需要调制解调器 无联络线方式无联络线方式 联络线短接(伪连接)方式联络线短接(伪连接)方式 2023/1/2616 RS-232C
9、RS-232C电平与电平与TTLTTL电平转换驱动电路电平转换驱动电路早期常用早期常用MC1488MC1488、MC1489MC1489 近期常用近期常用MAXM232MAXM232:片内带有自升压电路片内带有自升压电路 仅需仅需+5V+5V电源电源 内含内含2 2个发送器,个发送器,2 2个接收器个接收器 2023/1/2617 采用采用RS-232CRS-232C接口存在的问题接口存在的问题 传输距离短、速率低传输距离短、速率低 通常不超过通常不超过1515米,速率米,速率20Kbps20Kbps 有电平偏移有电平偏移 RS-232RS-232收发共地,地电流会使电平偏移出现逻辑错误。收发
10、共地,地电流会使电平偏移出现逻辑错误。抗干扰能力差抗干扰能力差 RS-232RS-232常用单端输入,易混入干扰。(常用单端输入,易混入干扰。(故用大摆幅故用大摆幅)新标准新标准RS-485RS-485改善了传输特性,应用广泛!改善了传输特性,应用广泛!2023/1/26186.2 80C51单片机的串行口单片机的串行口6.2.1 80C516.2.1 80C51串行口的结构串行口的结构 1 1个个全双工全双工串口:通信串口:通信或或接口扩展接口扩展 接收发送缓冲器接收发送缓冲器逻辑同名、物理分开;逻辑同名、物理分开;接收双缓冲。接收双缓冲。2023/1/26196.2.2 80C516.2.
11、2 80C51串行口的控制寄存器串行口的控制寄存器 串行口控制寄存器串行口控制寄存器SCONSCONSM0SM0和和SM1SM1:工作方式选择位:工作方式选择位76543210SCONSM0SM1SM2RENTB8RB8TIRI字节地址:字节地址:98HSM0SM1方方 式式说说 明明波特率波特率000移位寄存器移位寄存器fosc/1201110位位UART(8位数据)位数据)可变可变10211位位UART(9位数据)位数据)fosc/64或或fosc/3211311位位UART(9位数据)位数据)可变可变2023/1/2620SM2SM2:多机通信控制位:多机通信控制位SM2=1SM2=1时
12、时,接收机处于接收机处于地址帧地址帧筛选筛选状态。若状态。若RB8RB81 1,该地址帧信息可进入,该地址帧信息可进入SBUFSBUF,并使,并使RIRI为为1 1,进而在,进而在中断服务中再进行地址号比较中断服务中再进行地址号比较;若若RB8RB80 0,该帧不,该帧不是地址帧,应丢掉,且保持是地址帧,应丢掉,且保持RI=0RI=0。SM2=0SM2=0时,接收机处于时,接收机处于地址帧筛选被禁止地址帧筛选被禁止状态。不状态。不论收到的论收到的RB8RB8为为0 0或或1 1,均可以使收到的信息进入,均可以使收到的信息进入SBUFSBUF,并使,并使RI=1RI=1。此时的此时的RB8RB8
13、通常为校验位通常为校验位。RENREN:串行接收使能位,软件置:串行接收使能位,软件置1 1时,启动接收过程时,启动接收过程2023/1/2621TB8TB8:多机方式发送的第:多机方式发送的第9 9位位多机方式的地址多机方式的地址/数据帧标志。也可作为奇偶校验位。数据帧标志。也可作为奇偶校验位。RB8RB8:多机方式接收的第:多机方式接收的第9 9位位多机方式的地址多机方式的地址/数据帧标志。也可作为奇偶校验位。数据帧标志。也可作为奇偶校验位。TITI:发送中断标志位,要由软件清:发送中断标志位,要由软件清0 0RIRI:接收中断标志位,要由软件清:接收中断标志位,要由软件清0 02023/
14、1/2622 电源控制寄存器电源控制寄存器PCON PCON SMODSMOD:波波特特率率倍倍增增位位。在在串串行行口口方方式式1 1、方方式式2 2、方方式式3 3时时,波波特特率率与与SMODSMOD有有关关,当当SMOD=1SMOD=1时时,波波特特率率提提高高一一倍倍。复位时,复位时,SMOD=0SMOD=0。76543210PCONSMOD字节地址:字节地址:97H2023/1/26236.2.3 80C516.2.3 80C51串行口的工作方式串行口的工作方式 方式方式0 0:同步移位寄存器,用于扩展并行口:同步移位寄存器,用于扩展并行口 RXDRXD:输入:输入或或输出引脚输出
15、引脚 TXDTXD:移位脉冲输出:移位脉冲输出接收和发送都为接收和发送都为8 8位位波特率固定为:波特率固定为:fosc/12fosc/122023/1/2624数据输出:数据输出:CLRCLR用于对用于对74LS16474LS164清清0 0 2023/1/2625数据输入:数据输入:S/LS/L负负脉冲将并行数据脉冲将并行数据装入,装入,高高电电平平时时启启动单动单片机片机进进行数据行数据输输入。入。2023/1/2626 方式方式1 1:1010位帧,用于位帧,用于双双机通信机通信 起始位:起始位:1 1位位 数据位:数据位:8 8位位停止位:停止位:1 1位位2023/1/2627串行
16、串行发送发送:(写:(写SBUFSBUF启动发送过程)启动发送过程)串行串行接收接收:(置置REN=1REN=1启动接收过程启动接收过程)2023/1/2628 方式方式2 2和方式和方式3 3:1111位帧,用于位帧,用于多多机通信机通信 起始位:起始位:1 1位位 数据位:数据位:9 9位位停止位:停止位:1 1位位2023/1/2629串行串行发送发送:(写:(写SBUFSBUF启动发送过程)启动发送过程)串行串行接收接收:(置置REN=1REN=1启动接收过程启动接收过程)2023/1/26306.2.4 80C516.2.4 80C51波特率确定与初始化步骤波特率确定与初始化步骤 波
17、特率的确定波特率的确定 波特率的计算波特率的计算固定固定波特率:波特率:方式方式0 0波特率波特率=fosc/12=fosc/12 方式方式2 2波特率波特率=(2 2SMODSMOD/64/64)*foscfosc可变可变波特率:波特率:方式方式1 1波特率波特率=(2 2SMODSMOD/32/32)*(T1T1溢出率溢出率)方式方式3 3波特率波特率=(2 2SMODSMOD/32/32)*(T1T1溢出率溢出率)T1 T1 溢出率溢出率 =fosc/12256=fosc/12256(TH1TH1)2023/1/2631 波特率的选择波特率的选择 波特率要选择波特率要选择标称值标称值,由
18、于,由于TH1TH1的初值是整数,为了的初值是整数,为了减小波特率计算误差,晶振频率要选为减小波特率计算误差,晶振频率要选为11.059211.0592MHzMHz。方式方式1 1和方式和方式3 3波特率与波特率与TH1TH1初值的对应关系:初值的对应关系:波特率波特率/(b/s)19.2 k9600480024001200TH1初值初值FDHFDHFAHF4HE8HSMOD100002023/1/2632 串行口初始化步骤串行口初始化步骤 确定确定T1T1的工作方式(的工作方式(TMODTMOD)计算计算T1T1的初值,的初值,装载装载TH1TH1、TL1TL1启动启动T1T1(置位置位TR
19、1TR1)确定串行口工作方式(确定串行口工作方式(SCONSCON)串口中断设置(串口中断设置(IEIE、IPIP)2023/1/26336.3 80C51单片机的串行口应用单片机的串行口应用6.3.1 6.3.1 利用单片机串口的并行利用单片机串口的并行I/OI/O扩展扩展 串口无通信需求时!串口无通信需求时!2023/1/2634显示子程序:显示子程序:DIR:SETB P3.3 DIR:SETB P3.3 ;允许同步移位脉冲输出;允许同步移位脉冲输出 MOV R7,#02H MOV R7,#02H ;送出的段码个数;送出的段码个数 MOV R0,#79H MOV R0,#79H ;显示数
20、据缓冲区;显示数据缓冲区DL0:MOV A,R0 DL0:MOV A,R0 ;待显示数据送;待显示数据送A A ADD A,#0DH ADD A,#0DH ;加偏移量;加偏移量 MOVC A,A+PC MOVC A,A+PC ;获得段码值;获得段码值 MOV SBUF,A MOV SBUF,A ;将段码送;将段码送SBUFSBUFDL1:JNB TI,DL1 DL1:JNB TI,DL1 ;输出段码,查询;输出段码,查询TITI状态状态 CLR TI CLR TI ;1 1个字节的段码输出完,清个字节的段码输出完,清TITI标志标志 DEC R0 DEC R0 ;指向下一个显示数据单元;指向下
21、一个显示数据单元 DJNZ R7,DL0 DJNZ R7,DL0 ;判断;判断2 2个段码显示完个段码显示完 CLR P3.3 CLR P3.3 ;2 2个段码显示完,关闭显示输出个段码显示完,关闭显示输出 RET RET ;返回;返回SEGTAB:DB SEGTAB:DB 共阳极七段码表共阳极七段码表2023/1/2635键盘扫描子程序:键盘扫描子程序:KEYI:MOV A,#00H ;KEYI:MOV A,#00H ;判断有无键按下,使所有列线为判断有无键按下,使所有列线为0 0的编码送的编码送A A MOV SBUF,A ;MOV SBUF,A ;扫描键盘输出为扫描键盘输出为00H00H
22、,使所有列线为,使所有列线为0 0KL0:JNB TI,KL0 ;KL0:JNB TI,KL0 ;串行输出完?串行输出完?CLR TI ;CLR TI ;串行输出完,清串行输出完,清TITI KL1:JNB P3.4,PK1 ;KL1:JNB P3.4,PK1 ;第一行有闭合键吗,如有,转第一行有闭合键吗,如有,转PK1PK1 JB P3.5,PL1 ;JB P3.5,PL1 ;第二行有闭合键吗,无闭合键跳第二行有闭合键吗,无闭合键跳KL1KL1 PK1:ACALL DL10 ;PK1:ACALL DL10 ;调调10ms10ms延时子程序延时子程序,放抖动放抖动 JNB P3.4,PK2 ;
23、JNB P3.4,PK2 ;判断是否抖动,否转判断是否抖动,否转PK2PK2 JB P3.5,KL1 ;JB P3.5,KL1 ;PK2:MOV R7,#08H ;PK2:MOV R7,#08H ;MOV R6,#0FEH ;MOV R6,#0FEH ;判断是哪一个键按下判断是哪一个键按下 MOV R3,#00H ;R3 MOV R3,#00H ;R3为列号寄存器为列号寄存器 MOV A,R6 ;MOV A,R6 ;KL5:MOV SBUF,AKL5:MOV SBUF,A ;列扫描码从串行口输出列扫描码从串行口输出2023/1/2636KL2:JNB TI,KL2 KL2:JNB TI,KL2
24、 ;等待串行口输出;等待串行口输出 CLR TI CLR TI ;串行口发送完,清;串行口发送完,清TITI JNB P3.4,PKONE JNB P3.4,PKONE;读第一行线状态,有闭合,转;读第一行线状态,有闭合,转PKONEPKONE JB P3.5,NEXT JB P3.5,NEXT ;读第二行线状态,是第二行键?;读第二行线状态,是第二行键?MOV R4,#08H MOV R4,#08H ;第二行有键按下,行首键号;第二行有键按下,行首键号08H08H送送R4R4 AJMP PK3 AJMP PK3 PKONE:MOV R4,#00H PKONE:MOV R4,#00H ;第一行
25、键中键按下,行首键号;第一行键中键按下,行首键号00H00H送送R4R4 PK3:MOV SBUF,#00H PK3:MOV SBUF,#00H ;等按键释放,发送;等按键释放,发送00H00H使所有列线为低使所有列线为低KL3:JNB TI,KL3 KL3:JNB TI,KL3 CLR TI CLR TI ;发送完毕,清;发送完毕,清TITIKL4:JNB P3.4,KL4 KL4:JNB P3.4,KL4 ;判行线状态;判行线状态 JNB P3.5 JNB P3.5 MOV A,R4 MOV A,R4 ;两行线均为高,说明键已释放;两行线均为高,说明键已释放2023/1/2637 ADD
26、A,R3 ADD A,R3 ;计算的键码送;计算的键码送A A RET RET ;列扫描码左移一位,判下一键是否按下;列扫描码左移一位,判下一键是否按下NXT:MOV A,R6 NXT:MOV A,R6 RL A RL A MOV R6,A MOV R6,A ;存列扫描码于;存列扫描码于R6R6中中 INC R3 INC R3 ;列号加;列号加1 1 DJNZ R7,KL5 DJNZ R7,KL5 ;列计数器;列计数器R7R7减减1 1;8 8列均检查完?列均检查完?AJMP KEYI AJMP KEYI ;8 8列键扫描完毕,开始下一个键扫描周期列键扫描完毕,开始下一个键扫描周期DL10:M
27、OV R7,#0AH DL10:MOV R7,#0AH ;延时;延时10ms10ms子程序子程序DL:NOV R6,#0EFHDL:NOV R6,#0EFHDL6:DJNZ R6,DL6DL6:DJNZ R6,DL6 DJNZ R7,DLDJNZ R7,DL RET RET2023/1/2638硬件连接硬件连接近程连接近程连接(直连)(直连)6.3.2 6.3.2 单片机单片机与与单片机间的通信单片机间的通信 远程连接远程连接(电平转换电平转换)2023/1/2639电平转换器件与接线电平转换器件与接线2023/1/2640通信协议通信协议串口方式串口方式1 1,2400 Baud2400 B
28、aud,T1T1定时方式定时方式2 2,晶振选晶振选11.059211.0592MHzMHz,查表知:,查表知:TH1TH1 =TL1TL1 =F4HF4H,SMODSMOD =0 0A A机机发发“E1E1”联络,联络,B B机机同意接收发同意接收发“E2E2”响应响应A A机收到机收到“E2E2”后,发数据块及校验字节。后,发数据块及校验字节。B B机机接收数据块及校验字节,判传输是否正确接收数据块及校验字节,判传输是否正确正确时向正确时向A A机发送机发送“00H00H”,否则发送,否则发送“FFHFFH”。A A机机接收到接收到“00H00H”则本次传输结束,否则重新传输数据。则本次传
29、输结束,否则重新传输数据。2023/1/2641流程图流程图2023/1/26426.3.3 6.3.3 单片机与单片机与PCPC机间的通信机间的通信硬件连接硬件连接 直接连接直接连接交叉连接交叉连接2023/1/2643通信协议通信协议 串口方式串口方式1 1,1200 Baud1200 Baud,T1T1定时方式定时方式2 2,晶振选晶振选11.059211.0592MHzMHz,查表知:,查表知:TH1=TL1=TH1=TL1=E8HE8H,SMOD=SMOD=0 0PCPC机机发发“E1E1”联络,联络,单片机单片机响应后向响应后向PCPC机发送数据。机发送数据。PCPC机机再发再发“E1E1”联络,联络,单片机单片机会再一次发送数据。会再一次发送数据。2023/1/2644程序流程程序流程