单片机串行通信及应用.ppt_第1页
单片机串行通信及应用.ppt_第2页
单片机串行通信及应用.ppt_第3页
单片机串行通信及应用.ppt_第4页
单片机串行通信及应用.ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第五章 串行通信及其接口,5-1 概 述,5-2 MCS-51的串行口,5-3 双机通信,本章要点: 串行口的工作方式;MCS-51单片机的串口工作原理及控制;波特率的概念;重点掌握双机通信的通信过程及相应的软硬件设计。,5-4 多机通信,5.1 概 述,1、按数据传输方向分类 1)单工方式数据只能向一个方向传输。 2)半双工方式允许数据分时两个方向传输。,3)全双工方式数据可以同时往两个相反的方向传输。,2)同步方式:每个数据位占用的时间都相等,发送机每一个基本的时间单位发送一位,接收机与发送机的时钟必须严格同步。其格式如图。,2、按传输数据格式分类:异步和同步通信方式 1)异步方式:用一个

2、起始位表示字符的开始,停止位表示字符的结束。数据位则在起始位之后,停止位之前,这样构成一帧,其格式如图。,3常用串行接口标准,RS-232 RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯. 0:+5+15V, 1:在-5-15V 传送距离最大为约15米 最高速率为20kb/s 点对点,RS-422/485,RS-422、RS-485与RS-232不一样,数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B。 1:A、B电压差在+2

3、+6V 0:A、B电压差在-26V 在RS-485中还有一“使能”端,而在RS-422中这是可用可不用的,RS-422/485,RS-422的最大传输距离为4000英尺(约1219米),最大传输速率为10Mb/s。其平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能达到最大传输距离。 一般100米长的双绞线上所能获得的最大传输速率仅为1Mb/s。 RS-485比RS-422有改进, 总线上可多32个设备。,通用串行总线USB,USB接口特点 1. 接口类型一致 2. 速度快目前USB2.0速度达480MbpsM 3. 接口数量无限 一个设备上如果有USB接口,那其它USB设备接

4、到此口上和接到主机的USB接口上是一样的。USB可连接127个周边设备,所以说是“无限的”。 4. 提供外设电源 5. 具有即插即用的功能 6. 具有热插拔功能 USB外设 可以带电插拔功能。 7. 传输距离5m,IEEE1394,使用方便,支持热插拔,即插即用,无需设置设备ID号,从Win98 SE以上版本的操作系统开始内置IEEE1394支持核心,无需驱动程序。数据传输速度快,IEEE1394a高达400Mbps,后续的IEEE1394b标准可将速度提升到800Mbps、1.6Gbps甚至3.2Gbps。自带供电线路,能提供840V可变电压,允许通过最大电流也达到1.5A左右,因此它能为耗

5、电量要求小的设备进行供电。真正点对点连接(peertopeer),设备间不分主从,可直接实现两台DV间的数据传输或是多台电脑共享一台DV机,而且从理论上讲我们可以直接将IEEE1394接口DV机中的图像数据保存到IEEE1394接口的硬盘中。,5.2MCS-51的串行口,5.2MCS-51的串行口,1、数据缓冲器SBUF 发送SBUF和接收SBUF共用一个地址99H。 2、串行口控制寄存器SCON 寄存器的字节地址为98H,可位寻址。SCON格式如图。,SM0、SM1:控制串行口的工作方式 00 01 10 11 SM2:多机控制位,用于多机通讯。 REN:允许接收控制位,REN=1,允许接收

6、;REN=0,禁止接收。 TB8:发送的第9位数据位,可用作校验位和地址/数据标识位 RB8:接收的第9位数据位或停止位 TI: 发送中断标志,发送一帧结束,TI=1,必须软件清零 RI: 接收中断标志,接收一帧结束,RI=1,必须软件清零,3特殊功能寄存器PCON 其字节地址为87H,没有位寻址功能,其中与串行接口有关的只有D7位。 SMOD (PCON.7) :波特率倍增位。当SMOD=1时,波特率加倍;当SMOD=0时,波特率不加倍。,3、串行口的工作方式,(1) 方式0:同步移位寄存器方式。用于扩展并行I/O接口。 1.一帧8位,无起始位和停止位。 2.RXD:数据输入/输出端。 TX

7、D:同步脉冲输出端,每个脉冲对应一个数据位。 3.波特率B = fosc/12 如: fosc=12MHz,B=1MHz,每位数据占1s。 4.发送过程:写入SBUF,启动发送,一帧发送结束,TI=1。 接收过程:REN=1且RI=0,启动接收,一帧接收完毕,RI=1。,(2) 方式1:8位数据异步通讯方式。,1.一帧10位:8位数据位,1个起始位(0),1个停止位(1)。 2.RXD:接收数据端。 TXD:发送数据端。 3.波特率:用T1作为波特率发生器,B=(2SMOD/32)T1溢出率。 4.发送:写入SBUF,同时启动发送,一帧发送结束,TI=1。 接收:REN=1,允许接收。接收完一

8、帧,若RI=0且停止位为1 (或SM2=0),将接收数据装入SBUF,停止位装入RB8,并使RI=1;否则丢弃接收数据,不置位RI。,当REN=1,CPU开始采样RXD引脚负跳变信号,若出现负跳变,才进入数据接收状态,先检测起始位,若第一位为0,继续接收其余位;否则,停止接收,重新采样负跳变。 数据采样速率为波特率16倍频,在数据位中间,用第7、8、9个脉冲采样3次数据位,并3中取2保留采样值。,方式1串行发送接收时序图,(3) 方式2和方式3 9位数据异步通讯方式。,1.一帧为11位:9位数据位,1个起始位(0),1个停止位(1)。第9位数据位在TB8/RB8中,常用作校验位和多机通讯标识位

9、。 2.RXD:接收数据端,TXD:发送数据端。 3.波特率:方式2:BR=(2SMOD/64)fosc 。 方式3:BR=(2SMOD/32)T1溢出率 。 4.发送:先装入TB8,写入SBUF并启动发送,发送结束,TI=1。 接收:REN=1,允许接收。接收完一帧,若RI=0且第9位为1 (或SM2=0),将接收数据装入接收SBUF,第9位装入RB8,使RI=1;否则丢弃接收数据,不置位RI。,(4)计算波特率,方式0为固定波特率:BR=fosc/12 方式2可选两种波特率: BR=(2SMOD /64)fosc 方式1、3为可变波特率,用T1作波特率发生器。 BR=(2SMOD/32)T

10、1溢出率 T1溢出率= fosc/(12 (256-x)) 串行口方式1、3,根据波特率选择T1工作方式,计算时间常数。 T1选方式2: TH1=X= 28-(2SMOD fosc)/(1232BR) T1选方式1用于低波特率,需考虑T1重装时间常数时间。,简单示例,设波特率为1200bps,求定时器初值X大小并进行初始化(设SMOD=0,fosc=12MHz) 1200=(1/32)*(fosc/(12*(256-x)) X=E6H MOV TMOD,#20H MOV TH1,#0E6H MOV TL1,#0E6H MOV PCON,#00H MOV SCON,#50H,5.3 双机通信,5

11、-3-1 主从机间的通信 1 双机串行异步通信 (1)单片机与单片机间的串行异步通信接口设计 两台8031直接通信如图:,两台8031采用RS232C总线通信如图:,()单片机与PC系列微机间的异步串行通信接口设计,8031单片机与PC系列微机是两种不同类型的机种,它们的硬件结构不同,具有的电气特性也不一样,因此它们之间不能用导线直接连接,而要通过电平转换电路。 8031单片机和PC机通过RS232C总线通信接口图如下:,双机通信实验,项目1: A机循环发送0、1、2给B机,B机收到0,对P1.0口线的LED取反,收到1对P1.1口线的LED取反,类推。 项目2: 利用8279的键盘、显示管理

12、功能,A机按下8279管理的5个键,B机通过8279管理的数码管分别显示A、B、C、D、E。,项目1:发送机程序,;发送机程序 ORG 0000H LJMP MAIN ORG 0010H MAIN: LCALL DELAY LCALL INITSYS MOV 20H,#00H LOOP: LCALL SEND LCALL DELAY INC 20H CJNE 20H,#03H,LOOP MOV 20H,#00H AJMP LOOP SJMP $ ;发送子程序 SEND:MOV A,20H CLR TI MOV SBUF,A JNB TI,$ RET,; 串口初始化程序 INITSYS:MOV

13、SCON,#50H MOV TMOD,#20H MOV TH1,#0F3H MOV TL1,#0F3H MOV PCON,#00H ;SMOD=0 SETB TR1 CLR EA RET ;延时子程序 DELAY: MOV R6,#00H LOOP1: MOV R7,#00H DJNZ R7,$ DJNZ R6,LOOP1 RET,项目1:接收机程序,ORG 0000H LJMP MAIN ORG 0023H RECEIVE:CLR RI MOV A,SBUF P10: CJNE A,#00H,P11 CPL P1.0 AJMP BACK P11: CJNE A,#01H,P12 CPL P1

14、.1 AJMP BACK P12: CPL P1.2 BACK:RETI ORG 0200H MAIN:MOV R0,#0FFH DJNZ R0,$ LCALL INITSYS SJMP $ INITSYS:MOV SCON,#50H MOV TMOD,#20H MOV TH1,#0F3H MOV TL1,#0F3H MOV PCON,#00H ;SMOD=0 SET TR1 SETB EA SETB ES RET,项目2:发送机实验程序,含8279,;发送机程序 DISCHAR EQU 3EH KEYVALUE EQU 3FH KEYA EQU 00H KEYB EQU 01H KEYC E

15、QU 02H KEYD EQU 03H KEYE EQU 04H COM8279 EQU 4001H DAT8279 EQU 4000H KEYFLAG BIT 20H ORG 0000H MAIN :MOV R0,#0FFH DJNZ R0,$ ;开机延时 LCALL INITSYS ; 系统初始化 MOV 40H,#00H ;程序运行初始显示008279 MOV 41H,#00H ; MOV 42H,#08H MOV 43H,#02H MOV 44H,#07H MOV 45H,#09H LLOOP:LCALL KEY ;调键处理子程序 LCALL DISPLAY ;调显示子程序 JNB K

16、EYFLAG ,LLOOP CLR KEYFLAG LCALL SOLVEKEY LCALL SEND ;调用发送子程序 AJMP LLOOP,;发送子程序 SEND :PUSH ACC CLR TI MOV A,DISCHAR MOV SBUF ,A JNB TI ,$ POP ACC RET ;系统初始化子程序 INITSYS:MOV TMOD,#20H ;设定时器工作方式 MOV TH1 ,#0F3H MOV Tl1 ,#0F3H ; MOV PCON,#80H ;设置波特率=2.4Kbps MOV SCON,#50h ;允许接收,10位异步通讯 CLR EA SETB TR1 LCAL

17、L INIT8279 ;8279初始化 RET ;8279初始化子程序 INIT8279: MOV DPTR,#COM8279 ;8279控制口 MOV A,#0DFH ;清除显示RAM及FIFO RAM MOVX DPTR,A LOOP0:MOVX A,DPTR JB ACC.7,LOOP0 ;直到DU=0 MOV A,#00H MOVX DPTR,A ;8*8左边输入,编码扫描键盘 MOV A,#32H MOVX DPTR,A ;分频系数18 RET,;显示子程序 DISPLAY:PUSH DPH PUSH DPL PUSH ACC MOV 30H,#80H MOV R7,#06H MOV

18、 R0,#40H DIS1 : MOV DPTR,#COM8279 MOV A,30H MOVX DPTR,A ;准备对第0个显示RAM写数据据 MOV A,R0 MOV DPTR,#ZIXING MOVC A,A+DPTR ;取字形码 MOV DPTR,#DAT8279 MOVX DPTR,A ;送字形码 INC R0 ;修改显示缓冲区单元地址 INC 30H ;修改显示RAM地址 DJNZ R7,DIS1 POP ACC POP DPL POP DPH RET ZIXING: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB 80H,90H,88H,83

19、H,0C6H,0A1H,86H,8EH,0FFH,;键值处理子程序 KEY:PUSH DPH PUSH DPL PUSH ACC MOV DPTR,#COM8279 ; MOVX A,DPTR ; ANL A,#07H ;检查FIFO中有无键值 JZ KEYBACK ;无键值,转KEYBACK MOV A,#40H MOVX DPTR,A ;写指令,要读FIFO RAM MOV DPTR,#DAT8279 ; MOVX A,DPTR ;读数据口,取键值 ANL A,#3FH SETB KEYFLAG MOV KEYVALUE,A ;送键值入键值缓冲区 KEYBACK:POP ACC POP D

20、PL POP DPH RET,;键功能处理子程序 SOLVEKEY:PUSH ACC MOV A,KEYVALUE PKEYA: CJNE A,#KEYA,PKEYB MOV DISCHAR,#0AH MOV 40H,#0AH AJMP SKEYBACK PKEYB: CJNE A,#KEYB,PKEYC MOV DISCHAR,#0BH MOV 41H,#0BH AJMP SKEYBACK PKEYC: CJNE A,#KEYC,PKEYD MOV DISCHAR,#0CH MOV 42H,#0CH AJMP SKEYBACK PKEYD: CJNE A,#KEYD,SKEYBACK MOV

21、 DISCHAR,#0DH MOV 43H,#0DH AJMP SKEYBACK SKEYBACK: CLR KEYFLAG MOV KEYVALUE,#0FFH POP ACC RET,项目2:接收机实验程序,含8279,;接收机程序 DISCHAR EQU 3EH COM8279 EQU 4001H DAT8279 EQU 4000H COMFLAG BIT 20H ORG 0000H LJMP MAIN ORG 0023H RECEIVE:CLR RI MOV A,SBUF MOV DISCHAR,A SETB COMFLAG RETI ORG 0100H MAIN :MOV R0,#0

22、FFH DJNZ R0,$ ;开机延时 LCALL INITSYS ; 系统初始化 MOV 40H,#00H ;程序运行初始显示008279 MOV 41H,#00H ; MOV 42H,#08H MOV 43H,#02H MOV 44H,#07H MOV 45H,#09H LLOOP:LCALL DISPLAY ;调显示子程序 JNB COMFLAG,LLOOP CLR COMFLAG MOV 40H,DISCHAR AJMP LLOOP,;系统初始化子程序 INITSYS:MOV TMOD,#20H ;设定时器工作方式 MOV TH1 ,#0F3H MOV Tl1 ,#0F3H ; MOV

23、 PCON,#80H ;设置波特率=2.4Kbps MOV SCON,#50h ;允许接收,10位异步通讯 SETB EA SETB ES ;允许串口中断 SETB TR1 LCALL INIT8279 ;8279初始化 RET ;8279初始化子程序 INIT8279: MOV DPTR,#COM8279 ;8279控制口 MOV A,#0DFH ;清除显示RAM及FIFO RAM MOVX DPTR,A LOOP0:MOVX A,DPTR JB ACC.7,LOOP0 ;直到DU=0 MOV A,#00H MOVX DPTR,A ;8*8左边输入,编码扫描键盘 MOV A,#32H MOV

24、X DPTR,A ;分频系数18 RET,;显示子程序 DISPLAY:PUSH DPH PUSH DPL PUSH ACC MOV 30H,#80H MOV R7,#06H MOV R0,#40H DIS1 : MOV DPTR,#COM8279 MOV A,30H MOVX DPTR,A ;准备对第0个显示RAM写数据据 MOV A,R0 MOV DPTR,#ZIXING MOVC A,A+DPTR ;取字形码 MOV DPTR,#DAT8279 MOVX DPTR,A ;送字形码 INC R0 ;修改显示缓冲区单元地址 INC 30H ;修改显示RAM地址 DJNZ R7,DIS1 PO

25、P ACC POP DPL POP DPH RET ZIXING: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH,5-3-2 多机通信接口,教学目标 教学要求:掌握多机通信的原理及实现过程,能设计简单的多机通信系统及程序。 本节重点:多机通信原理 本节难点:SM2、TB8、RB8在通信过程中的作用,多机通信的应用领域,典型应用:校园卡系统、智能楼宇、自动温控蔬菜大棚、大型粮库、工厂自动化;,1打卡机 2打卡机 3打卡机 n打卡机,1MCS-51多机通信原理,串行口控制寄存器SC

26、ON中的SM2为多机通信接口控制位。串行口工作于方式2或3。 SM2多机通信位; TB8/RB8地址/数据区分位; 若SM2为1,则仅当接收到的第9位数据RB8为1时,数据才装入SBUF,置位RI,请求CPU对数据进行处理;如果接收到的第9位数据RB8为0,则不产生中断标志RI,信息丢失,CPU不做任何处理。 当SM2为0时,则接收到一个数据后,不管第9位数据RB8是0还是1,都将数据装入接收缓冲器SBUF并置位中断标志RI,请求CPU处理。,关键是SM2与TB8、RB8的关系!,SM2、RB8与从机动作关系,通信过程,所有从机的SM2=1,处于只接收地址帧状态 所有同学坐着听讲,主机发地址信息,以第9位TB8=1表示发送的是地址 老师喊同学名字,从机接收到地址帧后与本机地址比较 所有同学听到名字与自己的名字比较,被

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论