51单片机 MCS-51串行接口

上传人:woxinch****an2018 文档编号:44741309 上传时间:2018-06-14 格式:PPT 页数:27 大小:389KB
返回 下载 相关 举报
51单片机 MCS-51串行接口_第1页
第1页 / 共27页
51单片机 MCS-51串行接口_第2页
第2页 / 共27页
51单片机 MCS-51串行接口_第3页
第3页 / 共27页
51单片机 MCS-51串行接口_第4页
第4页 / 共27页
51单片机 MCS-51串行接口_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《51单片机 MCS-51串行接口》由会员分享,可在线阅读,更多相关《51单片机 MCS-51串行接口(27页珍藏版)》请在金锄头文库上搜索。

1、第九章 串行接口9.1 串行口与串行通信9.2 MCS-51单片机的串行接口9.3 51单片机串行口的工作方式9.1串行口与串行通信串行通信的格式及约定(如:同步方式、通讯速率 、数据块格式、信号电平等)不同,形成了多 种串行通信的协议与接口标准。 常见的有: 通用异步收发器(UART)本课程介绍的串口 通用串行总线(USB) I2C总线 CAN总线 SPI总线 RS-485,RS-232C,RS422A标准等等一、串行通信的基本特征 串行通信的基本特征是数据逐位顺序进行传送 二、串行通信的协议与接口标准三、全双工串行接口(UART)数据通信的几个术语:并行:数据各位同时进行传送串行:数据逐位

2、顺序进行传送 全双工:(串行通信)收/发可同时进行半双工:(串行通信)收/发不可同时进行异步串行通信:以字符为单位进行传送同步串行通信:以数据块为单位进行传送波特率(bps.):单位时间传送的位数9.2 MCS-51单片机的串行接口SBUF( 发)SBUF( 收)发送控制器 TI接收控制器 RI移位寄存器波 特 率 发 生 器 T11A 累 加 器(门)移位寄存器RxDTxD去申请中断引脚引脚一、51单片机的串行接口结构图二、串行口的结构两个同名的接收/发送缓冲寄存器SBUF指令 MOV SBUF,A 启动一次数据发送,可 向SBUF再发送下一个数指令 MOV A,SBUF 完成一次数据接收

3、,SBUF可再接收下一个数接收/发送数据,无论是否采用中断方式工作,每接收/发送一个数据都必须用指令对 RI/TI 清0,以备下一次收/发。串行口相关的SFR(SCON,PCON)SM0 SM1 SM2 REN TB8 RB8 TI R1SCON SM0,SM1:串行口4种工作方式的选择位。0 0 方式0:8位移位寄存器I/O,波特率固定为 fosc/120 1 方式1:8位UART(1+8+1位),波特率可变,按公 式计算1 0 方式2:9位UART(1+8+1+1位),波特率固定 =fosc x1/32或1/641 1 方式3:9位UART(1+8+1+1位),波特率可变, 按公式计算 S

4、M2:串行口多机通信控制位(作为方式2、方式3的附加控制位)三、串行口控制寄存器SCON(98H) RI,TI:串行口收/发数据申请中断标志位1 申请中断; 0 不申请中断 TB8:方式2、3中,是要发送的第9位数据。多机通信中,TB8=0 表示发送的是数据;TB8=1 表示发送的是地址。(奇偶校验) RB8:在方式2、3中,是收到的第9位数据。在多机通信中,用作区别地址帧/数据帧的标志。(奇偶校验)SM0 SM1 SM2 REN TB8 RB8 TI R1 REN:串行口接收允许控制位= 1 表示允许接收; = 0 禁止接收。SCONSMOD GF1 GF0 PD 1DL四、电源控制寄存器

5、PCON(97H) 特殊功能寄存器PCON不能按位寻址 SMOD:在串行口工作方式 1、2、3 中,是波特率加倍位=1 时,波特率加倍=0 时,波特率不加倍。 (在PCON中只有这一个位与串口有关) GF1,GF0:用户可自行定义使用的通用标志位PCON PD:掉电方式控制位=0:常规工作方式。 =1:进入掉电方式:振荡器停振片内RAM和SRF的值保持不变P0P3口维持原状。程序停止只有复位能使之退出掉电方式。 SMOD GF1 GF0 PD IDLPCON IDL:待机方式(空闲方式)控制位=0:常规工作方式。 =1:进入待机方式:振荡器继续振荡中断、定时器、串口功能继续有效片内RAM和SR

6、F保持不变CPU状态保持、P0P3口维持原状程序停顿。中断和复位能退出待机,继续后面的程序。SMOD GF1 GF0 PD 1DLPCON PD:掉电控制位=0:常规方式。 =1:掉电方式: 振荡器停振 片内RAM和SRF不变 P0P3口维持原状 程序停止 只有复位能退出掉电 IDL:待机控制位=0:常规方式。 =1:待机方式: 振荡器继续振荡 中断,定时器,串口有效 片内RAM和SRF不变 CPU状态,P0P3维持原状 程序停顿。 中断和复位能退出待机,继续 后面的程序。SMOD GF1 GF0 PD 1DLPCON一、工作方式0:8位移位寄存器I/O方式发送:SBUF中的串行数据由RxD逐

7、位移出;TxD输出移位时钟,频率=fosc1/12;每送出8位数据 TI就自动置1;需要用软件清零 TI。 接收:串行数据由RxD逐位移入SBUF中;TxD输出移位时钟,频率=fosc1/12 ;每接收 8位数据RI就自动置1;需要用软件清零 RI。9.3 51单片机串行口的工作方式经常配合“串入并出”“并入串出”移位寄存器一起使用扩展接口(第六章)。方式0工作时,多用查询方式编程:发送:MOV SBUF,A 接收:JNB RI,$JNB TI,$ CLR RI CLR TI MOV A, SBUF工作方式0:8位移位寄存器I/O方式(续)复位时,SCON 已经被清零,缺省值: 方式0。接收前

8、,务必先置位 REN=1 允许接收数据。串行口方式0的扩展应用经常用到串行口常用工作方式0扩展出并行I/O口, 工作方式1、2、3则常用于串行通信A BCLKh g f e d c b aCLRA BCLKCLRA BCLKCLR+5V74LS16474LS16474LS16474LS164是串入并出芯片;74LS165是并入串出 芯片h g f e d c b ah g f e d c b a+5V共阳LED 数码管VCCTxD RxD51单片机共阳极h g f e d c b aabcdgefh共阳LED数码管 公共端(字位) 接高电平, 笔划(字段) 置为低电平 就被点亮了h g f e

9、 d c b a累加器 A0C0H = “0”比如要显示“0”须令a b c d e f 为“0”电平,g h为“1”电平。再比如要显示“3”须令a b c d g 为“0”电平,e f h为“1”电平。0B0H = “3”例:利用串行口工作方式0扩展出8位并行I/O 口,驱动共阳LED数码管显示09。A BCLKh g f e d c b aCLR+5V VCC TxD RxD51单片机74LS164共阳LED 数码管根据上图编写的通过串行口和 74LS164 驱动共阳LED数码管 (查表)显示0-9数字的子程序: DSPLY:MOV DPTR, #TABLEMOVC A, A+DPTRMO

10、V SBUF, AJNB TI, $CLR TIRET TABLE:DB 0C0H,0F9H,0A4HDB 0B0H,99H,92HDB 82H,0F8H,80H,90Hh g f e d c b a累加器 A1 1 0 0 0 0 0 00C0H = “0”1 0 1 1 0 0 0 00B0H = “3”共阳极h g f e d c b aabcdgefh常用于串行通讯。除发/收8位数据外,还在D0位前有一个起始位“0”;在D7位后有一个停止位“1”。方式1工作时:发送端自动添加一个起始位和一个停止位;接收端自动去掉一个起始位和一个停止位。二、工作方式1:8位UART(1+8+1位)波特率

11、可变波特率可变用定时器T1作波特率发生器:公式:波特率 =(2SMOD/32)T1的溢出率波特率=(2SMOD/32)T1的溢出率 溢出率:T1溢出的频繁程度即:T1溢出一次所需时间的倒数。 初值 X = 2n - 2SMOD fosc32 波特率 12 波特率 =2SMOD fosc32 12(2n - X)其中:X 是定时器初值表格有多种, 晶振也不止一种串口波特率 (方式1,3)foscSMOD位 (PCON中 )定时时器T1C/T方式初值值192006MHz1020FEH96006MHz1020FDH48006MHz0020FDH24006MHz0020FAH12006MHz0020F

12、4H6006MHz0020E8H1106MHz00272H常用波特率和T1初值查表RxD引脚为接收端,TxD引脚为发送端,由波特率发生器T1控制发送速度,不同于方式0:收/发都需要由TxD送出移位时钟。T1作波特率发生器时初始化包括:选定时器工作方式2(TMOD选8位自动重装);将计算(或查表)出的初值X赋给TH1,TL1;启动T1 (SETB TR1);对T1不要开中断 !工作方式1的接收/发送串行口的初始化包括:对SCON选工作方式对PCON设波特率加倍位“SMOD”(缺省值=0)如果是接收数据,仍要先置“1”REN位 SM0 SM1 SM2 REN TB8 RB8 TI R1SCON S

13、M0,SM1:串行口工作方式选择位。0 1 :方式1,8位UART(1+8+1位) REN:串行口接收允许位。 REN=1 允许接收串行口控制寄存器SCON0 1 0 1 0 0 0 0 TB8,RB8,TI,RI等位由运行中间的情况决定,可先写成 “0” SM2:串行口多机通信控制位,作为方式2、3的附加控制位,此处不用,可写成“0”由于波特率固定,常用于单片机间通讯。数据由8+1位组成,通常附加的一位(TB8/RB8)用于“奇偶校验”。 三、工作方式2:9位UART(1+8+1+1位)两种波特率 方式2的波特率 = fosc 2SMOD/64 即: fosc 1/32 或 fosc 1/6

14、4 两种奇偶校验是检验串行通信双方传输的数据正确与 否的一个措施,并不能保证通信数据的传输一定正 确。换言之:如果奇偶校验发生错误,表明数据传输 一定出错了;如果奇偶校验没有出错,绝不等于数 据传输完全正确。奇校验:8位有效数据连同1位附加位中,二进制“1”的个数为奇数偶校验:8位有效数据连同1位附加位中,二进制“1”的个数为偶数约定接收采用奇校验若接收到的9位数据中“1”的个数为奇数,则表明接收正确,取出8位有效数据即可;若接收到的9位数据中“1”的个数为偶数,则表明接收出错!应当进行出错处理。约定发送采用奇校验若发送的8位有效数据中“1”的个数为偶数,则要人为添加一个附加位“1”一起发送;若发送的8位有效数据中“1”的个数为奇数,则要人为添加一个附加位“0”一起发送。采用偶校验时,处理方法与奇校验相反 回顾:程序状态字寄存器PSW中有一个奇偶状态位 PCYACF0RS0OVPRS1PSW.7PSW.0P (PSW.0):奇偶状态位。P=1 表示目前累加器中 “1”的个数为奇数P=0 表示目前累加器中 “1

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 高中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号