




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第6章 单片机串行通信及接口,6.1 串行通信基础,6.2 MCS-51的串行接口,6.3 串行口应用举例,6.1 串行通信基础,通信:计算机和外部设备之间的信息交换。,通信的基本方式,1.并行通信:数据各位同时送出。 优点:通信速度快; 缺点:传输线根数多,只适用近距离的通信。,2.串行通信:数据一位一位地传送 。 优点:占有传输线少,适合于远距离通信; 缺点:通信速度慢。,6.1.1 串行通信方式,1.异步通信:,1帧指1字符代码或1字节数据,(2)每帧的格式:起始位、数据位、奇偶校验位和停止位。 有时,帧之间还有空闲位。,间断传送时,则两帧间插入若干空闲位“1” ,表等待状态。,(1)什
2、么是异步通信?数据是一帧一帧传送的,优点:发送端和接收的时钟源可不同步,硬件比较简单; 缺点:数据是一个一个字符发送,而且每个字符都有起始位和停止位(有时字符之间还有空闲位),故传送速率较低。,(3)异步通信的优缺点,2.同步通信,(1)什么是同步通信?数据是多个字符连续传送的。,多个连续字符叫数据块,优点:数据是多个字符连续发送,故传送速率较较高。 缺点:发送端和接收的时钟源必须同步,硬件比较复杂;,(3)同步通信的优缺点,(2)同步通信格式:12个同步字符+多个连续数据字符,无间隙,无起停位,6.1.2 串行通信的传送方向,1.单工传输:数据只能单方向传送的通信方式; 2.双工传输:数据可
3、以双向传送的通信方式 (1)半双工传输方式:双工通信中,只一根传输线,两个方向上的数据不能同时传送。,(2)全双工传输方式:有两根传输线,允许数据同时双向传送。,6.1.3 串行通信的传送速率(波特率),波特率(Band Rate):每秒钟传送二进制数码的位数, 单位:bps(bit per second),即位/秒(b/s)。,例6-1 在同步通信中信息传送速度为360字符/s,每个字符又包含10位,试求此同步通信中的波特率及一位二进制数的传送时间。,解:波特率是 360字符/s10位/字符=3600 bps 一位二进制数传送的时间即为波特率的倒数: Tb=1/3600 s=0.278 s,
4、6.1.4 信号的调制与解调(用于远程异步通信),1. 近程异步通信,适用范围:通信距离30 m以内。,通信方法:数字信号直接传送。 参见6.3.4的RS-232。,不改变信号波形和频率,2. 远程异步通信,(1)通信距离在30 m以上时,信号衰减很严重,可以利用调制解调器(MODEN)解决这个问题。 (2)工作原理,数字信号 发送端高频正弦信号 接收端模拟信号 数字信号,电话线,MODEN,MODEN,频率取决于数字信号“0”和“1”,6.2 MCS-51的串行接口,6.2.1 串行接口构成,1.发送电路:发送缓冲寄存器SBUF,输出门电路 作用: SBUF:并行 串行;门电路:输出控制 2
5、.接收电路:接收缓冲寄存器SBUF,移位寄存器 作用:移位寄存器:输入控制,串行并行;SBUF:缓冲作用 3.控制电路:主要是串行控制寄存器SCON,电源控制寄存器PCON。 其他:有时还要用到与定时器和中断相关的寄存器(5章已学过)。,单缓冲(SBUF),双缓冲(SBUF,移位寄存器),6.2.2 与串行口有关的寄存器,1.串行口缓冲寄存器SBUF,(1)物理结构上:可分为接收和发送2个缓冲寄存器。 (2)软件上:同一个字节地址99H。 这时从指令上区分: 例: MOV SBUF,A ; SBUF表示发送缓冲寄存器 MOV A,SBUF ; SBUF表示接收缓冲寄存器,(不能位寻址,复位后为
6、00H),2.串行口控制寄存器SCON,(可按位寻址,复位后为00H),(1)SM0、SM1:工作方式选择位 4种组合4 种工作方式(详见6.2.3节),(2)SM2:多机通信控制位 (详见6.2.3节和6.3.3节) 方式2或方式3:接收时,只有SM2=0或接收的第9位为1时才向CPU申请中断。 方式1:接收时,只有SM2=0或接收的停止位为1时才向CPU申请中断。 方式0:必须有SM2=0。,(3)REN:串行允许接收位 REN =1时,允许接收; REN =0时,禁止接收。,(4)TB8和RB8:发送和接收的第9位 TB8 方式2和3中,TB8是发送的第9位数据。 方式0和1中,TB8不
7、用。 RB8 方式2和3中,RB8是接收的第9位数据。 方式1中,RB8是接收的停止位。 方式0中,不用RB8。 (5)TI和RI :中断标志位(教材P90已介绍) TI:发送标志位。发送结束硬件置位;但必须软件清零。 RI:接收标志位。接收结束硬件置位;但必须软件清零。,3. 电源控制寄存器PCON,CHMOS型单片机的电源控制(见P34的2.5.2),(不能位寻址,复位后为00H),SMOD:波特率选择位。 在工作方式1、2、3中: 若SMOD=1,则波特率提高一倍; 若SMOD=0,则波特率不变。,波特率选择位,6.2.3 串行口的工作方式,1. 方式0同步移位寄存器方式(SM0SM10
8、0),传输8位数据:低位在前,高位在后,(1)特点 波特率:固定,为fOSC/12。不论是输出还是输入数据: TXD:输出移位脉冲, RXD:输入/输出数据。 作用:用于I/O口扩展(如上图)。,(2)发送操作启动条件: TI=0前提下,用指令MOV SBUF,A 启动。 发送过程:TXD输出移位脉冲,RXD发送SBUF中的数据。中断:发完8位数据,TI自动置1,请求中断。 中断服务程序:如要继续发送,重复启动条件内容(TI=0, MOV SBUF,A ),(3)接收操作启动条件:RI=0和REN=1条件下启动。 接收过程:TXD输出脉冲,RXD接收数据到SBUF。 中断:接收完8位数据,RI
9、自动置1,请求中断。 中断服务程序:(a)用指令MOV A,SBUF 保存数据。 (b)如要继续接收,必须使RI=0。,2. 方式18位异步通信接口(SM0SM101),(1)特点 每帧为10位:数据位(8位)+起始停止位(2位)。 波特率由T1 的溢出率决定,而溢出率可由软件设置。,溢出率就是溢出的频率即1s内溢出的次数,由于溢出1次的时间为一次定时时间T 。 故溢出率=1s/T= 1/T 。,作用:两单片机之间或单片机与外设间的通信。,(2)发送操作启动条件: TI=0前提下,用指令MOV SBUF,A 启动。 发送过程: (a)电路自动添加起始位和停止位; (b)TXD发送SBUF中的数
10、据。 中断:发完一帧数据,TI自动置1,请求中断。 中断服务程序:如要继续发送,重复启动条件内容(TI=0, MOV SBUF,A ),(3)接收操作,启动:REN=1时,就对RXD采样。 当出现1至0跳变时,则启动接收。 接收过程:(a)RXD接收数据和起始停止位到移位寄存器。 (b) 当RI=0,且SM2=0(或停止位为1) 时: 8位数据装入SBUF,第9位(停止位)进入RB8。 中断:执行完 ,RI自动置1,请求中断。 中断服务程序:(a)用指令MOV A,SBUF保存数据。 (b)如要继续接收,必须使TI=0。,3. 方式2和方式3,(1)特点 方式2和方式3的差异:仅在于波特率不同
11、。 方式2:由fOSC决定;方式3:由T1溢出率决定; 方式2、3和方式1的差异:主要在于每帧数据位数不同。 方式1:每帧为10位,数据位(8位)+起始停止位(2位)。 方式2,3:每帧11位,数据位(8位)+起始停止位(2位)+编程位(1位),(2)发送操作方式2、3类似于方式1。 不同的是:方式2和方式3有9位有效数据位。发送时,CPU除要把发送字符装入SBUF外,还要把第9位程控位先送入TB8。,接收过程也和方式1类似。 不同的是: (a) RB8中存放的内容不一样 方式1:存放停止位;方式2、3:存放第9数据位(编程位)。 (b)数据进入SBUF和发生中断的条件不一样。 方式1:RI=
12、0,且SM2=0(或停止位为1) 方式2:RI=0,且SM2=0(或编程位为1),(3)接收操作,6.2.4 串行口的通信波特率的设定,1. 方式0的波特率,在方式0中,每个机器周期Tcy产生一个移位时钟,发送或接收一位数据。 方式0的波特率=1/Tcy=1/12Tosc=fosc/12,2. 方式2的波特率,方式2的波特率与SMOD,fosc都有关。,当SMOD=1时,波特率为fosc/32; 当SMOD=0时,波特率为fosc/64。,方式0的波特率只与fosc都有关。,3. 方式1或方式3的波特率(方式1、3波特率完全相同),由T1溢出率与SMOD同时决定:,T1溢出率即为一次定时时间的
13、倒数,式中:X定时初值,2M最大计数值(取决于T1工作方式)。,T1作为波特率发生器时,一般是使T1工作在方式2。,此时,波特率,则初值计算公式为:,表 6.2 常用波特率与T1参数的关系,6.3 串行口应用举例,串行口初始化:,(1)设置SCON:SM0、SM1:根据工作方式设置。 SM2:方式0、1中,SM2=0; 方式2、3中,根据需要设置SM2; REN:如接收数据,REN=1; TB8:方式2、3中,把发送的第9位写入TB8; TI、RI :TI=RI=0。,(2)设置PCON:在方式1、2、3中,根据实际需要设置SMOD的值,以控制 波特率是否加倍。,(3)设置T1:在方式1、3中
14、,必须通过设置T1设定波特率。 设定T1为工作方式2; 根据波特率算出T1初值,再给TH1,TL1送相同初值; 启动T1。,(4)对串口中断进行设置(IE,IP):如是中断方式发送接收,则需要设置IP、IE;如是查询方式发送接收,则不需要设置IP、IE。,6.3.1 串行口方式0的应用,应用:外接移位寄存器可以扩展一个或多个8位并行I/O口。,优点:不占用片外RAM地址,电路简单。 缺点:操作速度较慢。,(2)控制端 S/L(移位/置入端):为0时,并行输入(AH)进入芯片; 为1时,并行输入被阻断,数据可以沿AH方向移动; CLK INH(时钟禁止端): 为1时钟输入端CLK不起作用;为0时
15、CLK起作用。 CLK( 时钟输入端): 在CLK上升沿处,数据可以沿AH方向移动,74LS165介绍: 并入串出移位寄存器,(1)数据端: AH:并行输入端; SIN :串行数据输入端; QH:串行输出端; QH :串行互补输出端(与QH输出相反) 。,1. 用74LS165扩展并行输入口,例6-2 从16位扩展口读入10组数据(每组2个字节),并把它们转存到内部RAM中以30H开始的单元,试编写程序。,硬件分析:(1)P1.0=0(S/L=0) 时:并行输入。 (2) P1.0=1(S/L=1) 时:关闭并行输入,等待从右向左的串行移位. 启动:在方式0时,只要RI=0和REN=1,就启动
16、接收操作。 接收过程:P3.1输出移位脉冲,在脉冲作用下,数据就从右向左的串行移位。同时P3.0输入串行数据到SBUF。 中断或查询:每接收完1字节,RI=1。此时可通过查询或中断程序把SBUF的内容转存到内部RAM中。同时使RI=0。,串行口初始化:,(1)设置SCON:方式0:SM0SM1=00, SM2=0; 接收数据:REN=1; 此时TB8和RB8不起作用:取复位值TB8 =RB8=0; 中断标志位必须清零: TI=RI=0。 故SCON初值为:0001 0000B=10H,SCON (98H),(2)设置PCON和T1:方式0,不需要设置,(3) 中断设置:本例采用查询方式接收数据
17、, 不需要设置。,MOV R6,#0AH ;设置读入组数10 MOV R0,#30H ;设接收数据首地址 BXR0:CLR P1.0 ;P1.0为低电平,输入并行口数据 SETB P1.0 ;P1.0为高电平,关并行输入,允许串行移位 MOV R1,#02H ;设置每组字节数2 RXDD:MOV SCON,#10H ;设工作方式为0,且启动输入 WAIT: JNB RI,WAIT ;如RI=0,反复执行本程序 ;(未接收完一帧数据,等待) CLR RI ;清除接收中断标志,准备下次接收 MOV A,SBUF ;读入接收数据 MOV R0,A ;送内部RAM区 INC R0 ;指向下一地址 DJ
18、NZ R1,RXDD ;如(R1)-00,一组数据未读完,转RXDD DJNZ R6,BXR0 ;如(R6)-00,10组数据未读完,转BXR0 RET,程序:,(2)控制端 CLEAR:清零端 CLEAR =0时, QAQH 全为0;CLEAR =1时, 不影响输出 ; CP: 时钟输入端 在CP上升沿处,串行输入AB进入QA,同时QAQH向右移动一位。,74LS164介绍: 串入并出移位寄存器,2. 用74LS164扩展并行输出口,(1)数据端: A,B:串行输入端, 输入数据为C=AB QAQH :并行数据输出端,例6-3 将片内RAM的30H和31H单元中的数据经串行口由74LS164
19、并行输出,试编写程序。,硬件分析:(1)P1.0=0 时:清零输出。 (2) P1.0=1 时:CLEAR不影响输出。,启动: TI=0前提下,用指令MOV SBUF,A 启动。 发送过程: P3.1输出移位脉冲,在脉冲作用下,P3.0输出数据到QA,其他各位从左向右串行移位。 中断或查询:每发送完1字节,TI=1。此时可通过查询或中断程序使TI=0,并用指令MOV SBUF,A 再次输出。,串行口初始化:,(1)设置SCON:方式0:SM0SM1=00, SM2=0; 不接收数据:REN=0; 此时TB8和RB8不起作用:取复位值TB8 =RB8=0; 中断标志位必须清零: TI=RI=0。
20、 故SCON初值为:0000 0000B=00H,SCON (98H),(2)同例6-2不需要设置PCON、T1和中断。,MOV R6,#02H ;设置发送字节数 MOV R0,#30H ;设置地址指针 MOV SCON,#00H ;设置串行口方式0 SEND: MOV A,R0 ;数据字节A MOV SBUF,A ;发送数据 WAIT:JNB TI,WAIT ;查询是否发送完一帧,如没有,则等待 CLR TI ;清发送中断标志 INC R0 ;取下一个数 DJNZ R6,SEND ;发送数据未完,继续 RET,程序:,6.3.2 串行口方式1的应用(双机通信),例6-4 1号和2号两台805
21、1单片机,1号机中有一个数据块,40H为数据块首地址,数据块长度是16 B,现要通过串行口发送到2号机,2号机存放起始地址仍是40H,两机晶振频率为11.0592 MHz,波特率为2400 bps。,通信协议: (1)1帧为10位(1个起始位和停止位,8个数据位)。 (2)发送数据前要问答:1号机先发送 “E1” (16进制),2号机收到后回答 “E2” 。当1号机收到应答信号“E2”后才发送。 (3)发送完数据后要比较1号机和2号机的校验和: 1号和2号机的校验和:分别是发送和接收的16字节数之和. 若两者相等:说明接收正确, 2号机回答00H; 1号机收到后结束发送。 若两者不相等:说明接
22、收不正确,2号机回答0FFH,请求重发。 1号机若收到的答复非零,则重新发送数据。,串行口初始化:,(1)设置SCON:方式1:SM0SM1=01, SM2=0; 接收数据:REN=1; 此时TB8和RB8不起作用:取复位值TB8 =RB8=0; 中断标志位必须清零: TI=RI=0。 故SCON初值为:0101 0000B=50H,SCON (98H),(2) 设置T1和PCON T1工作在定时器方式2:TMOD=20H,GATE C / T M1 M0 GATE C / T M1 M0,TMOD (89H),T0,T1,INT1不控制,则GATE=0,定时模式C/T=0,方式2, M1M0
23、=10,T0不参与,值任取,不妨取0000B,两机晶振频率为11.0592 MHz,波特率为2400 bps,查表6-2得 TH1=TL1=0F4H,SMOD=0(即PCON=0)。,(3) 中断设置:本例采用查询方式发送和接收数据, 不需设置。,(2)接受操作: 要启动接收并能把数据接收到SBUF的条件:REN=1, RI=0,SM2=0。 SBUF接受完一帧数据, RI自动置1。 通过查询指令如查询到RI=1,说明一帧数据已到SBUF,此时: (a)必须用指令MOV A,SBUF才能保存数据到内部RAM。 (b)如要继续接收,必须使TI=0。,注意:在设置SCON时,已经使SM0SM1=0
24、1(方式1),REN=1; SM2=TI=RI=0,可见: 只要设置好SCON,就完全做好了把数据接收到SBUF的准备;而对于发送数据,还需指令MOV SBUF,A才能启动。,方式1的复习:,(1)发送操作: TI=0前提下,用指令MOV SBUF,A 启动。 发完一帧数据,TI自动置1。 如要继续发送,必须使RI=0。,(a) 发送程序流程图,(b) 接收程序流程图,ORG 0000H ASTART: CLR EA;关中断 MOV TMOD,#20H;T1定时方式2 MOV TL1,#0F4H;波特率为2400bps MOV TH1,#0F4H MOV PCON,#00H SETB TR1
25、;启动T1 MOV SCON,#50H;串口方式1,且准备好接收数据 ALOOP1: MOV SBUF,#0E1H;发联络信号 JNB TI,$;等待一帧发送完毕 CLR TI;允许再发送 JNB RI,$;等待2号机的应答信号 CLR RI;允许再接收 MOV A,SBUF;把2号机应答信号读至A XRL A,#0E2H;(AE2H) A,如应答信号为E2H异或后为00H JNZ ALOOP1;如(A) 0(应答错误),转ALOOP1 ALOOP2: MOV R0,#40H;R0指向数据块首址 MOV R7,#10H;数据块长度为16 MOV R6,#00H;清校验和单元,1号机程序:,2号机程序:略,6.3.4 PC机与单片机间的串行通信,(1)单片机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 修理厂试用期合同样本
- 公司运营投资合同样本
- 2025微型工厂租赁合同样本
- 专业分包总价合同样本
- 买卖公司车合同样本
- 2025年土地买卖合同无效案例分析
- 代理车辆贷款合同范例
- kv制作合同标准文本
- 不签用人合同标准文本
- 丝网合同样本
- 行政村村委会主任补选主持词
- FZ/T 50009.1-1998三维卷曲涤纶短纤维线密度试验方法单纤维长度测量法
- ManagementInformationSystem管理信息系统双语教学课件
- 气候类型气温降水分布图
- 小学生飞机知识科普课件
- 交通运输有限责任公司安全生产费用提取使用制度
- 德阳巴蜀文化介绍
- 三年级下册数学课件-4.1 整体与部分 ▏沪教版 (23张PPT)
- 住 用 房 屋 租 金 计 算 表
- 7.4.2超几何分布 课件(共14张PPT)
- 晶状体相关的继发性青光眼进展课件
评论
0/150
提交评论