单片机串行口实用版课件.ppt

上传人(卖家):晟晟文业 文档编号:4617867 上传时间:2022-12-25 格式:PPT 页数:92 大小:1.54MB
下载 相关 举报
单片机串行口实用版课件.ppt_第1页
第1页 / 共92页
单片机串行口实用版课件.ppt_第2页
第2页 / 共92页
单片机串行口实用版课件.ppt_第3页
第3页 / 共92页
单片机串行口实用版课件.ppt_第4页
第4页 / 共92页
单片机串行口实用版课件.ppt_第5页
第5页 / 共92页
点击查看更多>>
资源描述

1、单片机串行口第第7 7章章 串行接口串行接口 7.1 7.1 串行通信的基本概念串行通信的基本概念 7.2 单片机串行接口及控制寄存器单片机串行接口及控制寄存器 7.3 单片机串行口的工作方式单片机串行口的工作方式 7.4 串行口的应用串行口的应用 第7章 串行接口 MCS-51系列单片机内部有一个功能很强大的全双工异步串行通信接口,该串行口有4种工作方式,以供不同场合使用。波特率可由软件来设置,接收、发送均可工作于查询方式或中断方式,使用十分灵活。串行口除了能构成双机或多机通信系统外,还可以非常方便地构成并行输入/输出接口,用于串并转换或用于驱动键盘和显示器。本章将介绍串行通信的概念及单片机

2、串行接口的结构、原理及应用。7.1 串行通信的基本概念 7.1.1 数据通信的概念 计算机的CPU与外部设备之间、计算机与计算机之间的信息交换称为数据通信。基本的数据通信方式有两种,即并行通信和串行通信。7.1.1 数据通信的概念 1并行通信 并行通信是数据的各位同时进行传送(发送或接收)的通信方式。其优点是数据传送速度快;缺点是数据有多少位,就需要多少根传送线。7.1.1 数据通信的概念 2串行通信 串行通信是数据的各位一位一位顺序传送的通信方式。其优点是数据传送线少(利用电话线就可作为传送线),这样就大大降低了传送成本,特别适用于远距离通信;其缺点是传送速度较低。7.1.2 串行通信中数据

3、的传输方式 串行通信中数据的传输方式有单工、半双工、全双工传输方式。单工传输方式:数据只能单方向地从一端向另一端传送。半双工传输方式:允许数据向两个方向中的任一方向传送,但每次只允许向一个方向传送。全双工传输方式:允许数据同时双向传送。全双工通信效率最高,适用于计算机之间的通信。7.1.3 串行通信的两种基本通信方式 异步通信和同步通信 串行通信有两种基本通信方式,即同步通信方式和异步通信方式。1同步通信 在同步通信中,发送器和接收器由同一个时钟控制,如图7-1(a)所示。同步传送时,字符与字符之间没有间隙,也不用起始位和停止位,仅在要传送的数据块开始传送前,用同步字符SYNC来指示,其数据格

4、式如图7-1(b)示。图同步通信和同步字符 同步传送的优点是可以提高传送速率,但硬件比较复杂。2异步通信 在异步通信中,发送器和接收器均有各自时钟控制,如图7-2(a)所示。通信时,数据是一帧一帧(包含一个字符代码或一字节数据)传送的,每一串行帧的数据格式如图7-2(b)所示。图异步通信和帧数据格式图异步通信和帧数据格式 在帧格式中,一个字符由四个部分组成:起始位、数据位、奇偶校验位和停止位。即首先是一个起始位“0”,然后是数据位(规定低位在前,高位在后),接下来是奇偶校验位(可省略),最后是停止位“1”。7.1.4 串行通信的传送速率1波特率 通信线路上传送的所有位信号都保持一致的信号持续时

5、间,每一位的宽度都由数据传送速率确定,而传送速率是以每秒传送多少个二进制位来度量的,这个速率叫波特率,它的单位是位/秒(b/s或bps)。波特率对于CPU与外部的通信是很重要的。注意:波特率是衡量传输通道频宽的指标,与时钟频率有关,时钟频率越高,波特率越大。2允许的波特率误差 假设传递的数据一帧为10位,若发送和接收的波特率达到理想的一致,那么接收方对数据的采样都将发生在每位数据有效时刻的中点。如果接收一方的波特率比发送一方大或小5%,那么对10位一帧的串行数据,时钟脉冲相对数据有效时刻逐位偏移,当接收到第10位时,积累的误差达50%,则采样的数据已是第10位数据的有效与无效的临界状态,这时就

6、可能发生错位,所以5%是10位一帧串行传送的最大的波特率允许误差。当SUBF从RXD接收完一个完整的数据帧时RI=1。当SUBF从RXD接收完一个完整的数据帧时RI=1。串行口在方式1下进行发送时,数据由TXD端输出,CPU执行一条写入SBUF的指令就会启动串行口发送,发送完一帧数据信息时,发送中断标志TI置“1”;图7-3串行接口的结构原理示意图所有从机均接收主机发送的地址,并进入各自中断服务程序,与各自的地址进行比较。并行通信是数据的各位同时进行传送(发送或接收)的通信方式。(6)TI发送完成标志位。本章讲解了全双工异步串行通信接口及四种工作方式的选择与使用。JNC L1 ;C=0时转到L

7、1,即P=0时转到L1通信时,数据是一帧一帧(包含一个字符代码或一字节数据)传送的,每一串行帧的数据格式如图7-2(b)所示。其缺点是传送速度较低。SCON中的各位含义如下:需要用软件清零 RI。如果接收到第九位数据为0,则不置位中断标志RI,信息将丢失。注意:波特率是衡量传输通道频宽的指标,与时钟频率有关,时钟频率越高,波特率越大。因为PCON无位寻址功能,所以,要想改变SMOD的值,可通过执行以下指令来完成:TXD为发送端,RXD为接收端,波特率可变。【例7-3】利用串行口工作方式0扩展出8位并行输入口,指拨开关状态经并转串芯片74LS165输入到单片机,其状态并由P0口输出到发光二极管显

8、示,如图7-6所示。反之:若(P=0)则写TB8=“0”发出去。选用偶校验方式发送,如果 A 中的数的1的个数是奇数(P=1),将TB8写成“1”一起发出去;7.1.5 串行通信中的校验 在通信过程中往往要对数据传送的正确与否进行校验。校验是保证准确无误传输数据的关键。常用的校验方法有奇偶校验、和校验等。1奇偶校验 奇偶校验是检验串行通信双方传输的数据正确与否的一个措施,并不能保证通信数据的传输一定正确。换言之,如果奇偶校验发生错误,表明数据传输一定出错了;如果奇偶校验没有出错,绝不等于数据传输完全正确。奇校验:8位有效数据连同1位附加位中,二进制“1”的个数为奇数 偶校验:8位有效数据连同1

9、位附加位中,二进制“1”的个数为偶数2和校验 所谓和校验是发送方将所发数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块末尾。接收方接收数据同时对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的“校验和”进行比较,相符则无差错,否则即认为传送过程中出现了差错。7.1.6 串行通信的实现 实际上,单片机串行通信的过程是将其内部的并行数据转换成串行数据,通过串行通信线传送,接收方将接收到的串行数据再转换成并行数据送到计算机中。在MCS-51系列单片机中,串并、并串转换是由串行口的移位寄存器来自动完成的。7.2 单片机串行接口及控制寄存器7.2.1 串行接口结

10、构 MCS-51系列单片机串行口由串行控制器电路、发送电路、接收电路三部分组成。其结构如图7-3所示。接收、发送缓冲器SBUF是物理上完全独立的两个位缓冲器,发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,两个缓冲器占用同一个地址(99H)。图7-3串行接口的结构原理示意图 功能描述 串行口的发送和接收都是以特殊功能寄存器SBUF的名义进行读或写的。当向SBUF发“写”命令时,向发送缓冲器SBUF装载并开始由TXD引脚向外发送一帧数据,发送完便使发送中断标志位TI=1。指令 MOV SBUF,A 启动一次数据发送。待这个字节数据发送完成之后,可向SBUF再传送下一个数。功能描述 在接收

11、数据时,一帧数据从RXD端经接收端口进入SBUF之后,串行口发出中断请求,通知CPU接收这一数据。CPU执行一条读指令,就能将接收的数据送入累加器中。与此同时,接收端口接收下一帧数据。指令 MOV A,SBUF 完成一次数据接收,SBUF可再接收下一个数。7.2.2 串行接口控制 串行通信有关的控制寄存器有串行控制寄存器SCON、电源控制寄存器PCON及中断允许寄存器IE等。【例7-5】设号机发送,号机接收,串行接口工作于方式(每帧数据为11位,第位用于奇偶校验),将号机片内RAM中30H单元开始的32个数据发送到号机片内RAM中30H开始的单元中。工作方式3(9位UART(1+8+1+1位)

12、波特率可变)通常附加的一位(TB8/RB8)用于多机通讯,串口方式3和方式2唯一的区别是波特率机制不同。MOV TMOD,#20H;T1工作于方式2,定时MOV TMOD,#20H;T1工作于方式2,定时工作寄存器设置:(保存数据地址指针等);复位时,SCON 已经被清零,缺省值:方式0;相关工作寄存器设置:(原数据地址指针等);如果接收一方的波特率比发送一方大或小5%,那么对10位一帧的串行数据,时钟脉冲相对数据有效时刻逐位偏移,当接收到第10位时,积累的误差达50%,则采样的数据已是第10位数据的有效与无效的临界状态,这时就可能发生错位,所以5%是10位一帧串行传送的最大的波特率允许误差。

13、每送出8位数据 TI就自动置1;若P=0且RB8=1或P=1且RB8=0偶校验出错。MOV TMOD,#20H;T1工作于方式2,定时SCON中的各位含义如下:4 串行通信的传送速率INC R0;计数值调整电源控制寄存器PCON能够进行电源控制,其D7位SMOD是串行口波特率设置位。其中X是定时器的初值。其优点是数据传送速度快;例题7-3的参考源程序例题7-3的参考源程序2四种工作方式的波特率1串行控制寄存器SCON SCON寄存器的字节地址为98H,可位寻址,位地址为98H9FH。SCON用于设定串行接口工作方式、接收发送控制及设置状态标志。SCON格式如下:SCON中的各位含义如下:(1)

14、SM0,SM1串行口的工作方式选择位。其功能及编码见表7-1。SCON中的各位含义如下:(2)SM2多机通信控制位。在方式2或方式3中,如果SM2=1,则接收到的第9位数据(RB8)为0时不激活RI,接收到的数据丢失;只有当收到的第9位数据(RB8)为1时才激活RI,向CPU申请中断。如果SM2=0,则不论收到的第9位数据(RB8)为1还是为0,都会将接收的前8位数据装入SBUF中。在方式1时,如果SM2=1,则只有收到有效的停止位时才会激活RI;若没有接收到有效的停止位,则RI清零。在方式0中,SM2必须为0。SCON中的各位含义如下:(3)REN允许串行接收控制位。由软件置位以允许接收,由

15、软件清零时禁止接收。(4)TB8为发送数据位。在方式2和方式3时,为要发送的第9位数据。根据需要由软件置位和复位。在多机通信时,TB8的状态用来表示主机发送的是地址或是数据,通常协议规定“0”表示数据,“1”表示地址。SCON中的各位含义如下:(5)RB8为接收数据位。在方式2和方式3时,为接收到的第9位数据。RB8和SM2,TB8一起,常用于通信控制。在方式1时,如果SM2=0,RB8接收到的是停止位。在方式0时,不使用RB8。SCON中的各位含义如下:(6)TI发送完成标志位。由片内硬件在方式0串行发送第8位结束时置位,或在其他方式串行发送停止位的开始时置位。必须由软件清零。当SUBF发送

16、完一个完整的数据帧时TI=1。如果串口中断是开放的,则TI=1时会自动引发中断。用户可以通过中断服务程序向SBUF送下一个要发送的数据。MOV SBUF,A 中断方式发送数据;也可以使用查询的方式对TI进行检测,如果TI=1则执行:MOV SBUF,A 否则等待 查询方式发送数据。SCON中的各位含义如下:(7)RI接收完成标志。由片内硬件在方式0串行接收到第8位结束时置位,或在其他方式串行接收到停止位的中间时置位。必须由软件清零。当SUBF从RXD接收完一个完整的数据帧时RI=1。如果串口中断是开放的,则RI=1时会自动引发中断。用户可以通过中断服务程序将SBUF中的数据取出送累加器A。如果

17、串行口中断未允许,也可以使用查询的方式对RI进行检测,如果RI=1则读取SBUF中的数据,否则等待。2电源控制寄存器PCON 电源控制寄存器PCON能够进行电源控制,其D7位SMOD是串行口波特率设置位。寄存器PCON的字节地址为87H,没有位寻址功能。PCON中各位排列如下:2电源控制寄存器PCON PCON寄存器的D7位为SMOD,称为波特率倍增位。即当SMOD=1时,波特率加倍;当SMOD=0时,波特率不加倍。通过软件可设置SMOD=0或SMOD=1。因为PCON无位寻址功能,所以,要想改变SMOD的值,可通过执行以下指令来完成:ANL PCON,#7FH ;使SMOD=0 ORL PC

18、ON,#80H ;使SMOD=12电源控制寄存器PCON 顺便说明PCON中电源控制各位的功能:CF1和CF0是通用标志位,可由指令置1或清0。PD是掉电方式控制位,PD=1时进入掉电方式,单片机停止一切工作,只有硬件复位可以恢复工作。IDL=1时进入待机方式,可以由中断唤醒。如果接收到第九位数据为0,则不置位中断标志RI,信息将丢失。工作方式1、方式3的波特率可由定时器T1的溢出率确定。待这个字节数据发送完成之后,可向SBUF再传送下一个数。电源控制寄存器PCON能够进行电源控制,其D7位SMOD是串行口波特率设置位。偶校验:8位有效数据连同1位附加位中,二进制“1”的个数为偶数单工传输方式

19、:数据只能单方向地从一端向另一端传送。约定接收采用偶校验工作方式2(9位UART(1+8+1+1位)两种固定波特率)常用于单片机间通讯。全双工传输方式:允许数据同时双向传送。直到接收主机发送新的地址后。波特率对于CPU与外部的通信是很重要的。MOV TL1,#0CCH程序状态字寄存器PSW中有一个奇偶状态位 P(PSW.SJMP STARTMOV P0,A ;接收到的数据送P0口显示接收时,可编程位的信息被送入SCON的RB8中。每送出8位数据 TI就自动置1;WAIT:JNB RI,WAITORG 0100HDLY:LCALL DL3中断允许控制寄存器IE IE寄存器控制中断系统的各中断的允

20、许与否。其中与串行通信有关的位有EA和ES位,当EA=1且ES=1时,串行中断允许。有关中断允许寄存器IE的内容,请参阅第五章:5.2.2部分。7.3 单片机串行口的工作方式 串行接口的工作方式有四种,由SCON中的SM0和SM1来定义。在这四种工作方式中,异步串行通信只使用方式1、方式2、方式3。方式0是同步半双工通信,经常用于扩展并行输入/输出口。7.3.1 方式0 串行口工作于方式0下,串行口为8位同步移位寄存器输入/输出口,其波特率固定为fosc/12。数据由RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)端输出,发送、接收的是8位数据,不设起始位和停止位,低位在先,高

21、位在后。其帧格式为:D0D1D2D3D4D5D6D7 1发送 SBUF中的串行数据由RXD逐位移出;TXD输出移位时钟,频率=fosc/12;每送出8位数据 TI就自动置1;需要用软件清零 TI。方式0的发送与串入并出移位寄存器(如74LS164,CD4094等)一起使用扩展并行输出口。2接收 串行数据由RXD逐位移入SBUF中;TXD输出移位时钟,频率=fosc/12;每接收 8位数据RI就自动置1;需要用软件清零 RI。方式0的接收与并入串出移位寄存器(如74LS165,CD4014等)一起使用扩展并行输入接口。注意:在方式0中,TB8位没有用,SM2位(多机通信控制位)必须为0;复位时,

22、SCON 已经被清零,缺省值:方式0;接收前,务必先置位 REN=1 允许接收数据。3 方式0的波特率 波特率=fosc/12 方式0工作时,多用查询方式编程:发送:MOV SBUF,A JNB TI,$CLR TI 接收:JNB RI,$CLR RI MOV A,SBUF 参考仿真文件:51-74164.DSN7.3.2 方式1 方式1是10位为一帧的全双工异步串行通信方式。共包括1个起始位、8个数据位(低位在先)和一个停止位。TXD为发送端,RXD为接收端,波特率可变。其帧格式为:起 始D0D1D2D3D4D5D6D7停 止017.3.2 方式1 1发送 串行口在方式1下进行发送时,数据由

23、TXD端输出,CPU执行一条写入SBUF的指令就会启动串行口发送,发送完一帧数据信息时,发送中断标志TI置“1”;需要用软件清零 TI。2接收 接收数据时,SCON应处于允许接收状态(REN1)。接收数据有效时,装载SBUF,停止位进入RB8,RI置“1”。中断标志RI必须由软件清零。7.3.2 方式1 3方式1的波特率 使用定时器T1作为串行口方式1和方式3的波特率发生器,定时器T1常工作于方式2,波特率计算公式如下:波特率=2SMODOSC3212(256-X)f其中X是定时器的初值。7.3.2 方式1 在实际应用中,一般是先按照所要求的通信波特率设定SMOD,然后再算出定时器T1的时间常

24、数。定时器T1的时间常数 X=28-2SMODfosc/(1232波特率)RB8和SM2,TB8一起,常用于通信控制。约定接收采用偶校验启动T1(SETB TR1)1 串行通信的基本概念方式0工作时,多用查询方式编程:由片内硬件在方式0串行发送第8位结束时置位,或在其他方式串行发送停止位的开始时置位。5 串行通信中的校验IE寄存器控制中断系统的各中断的允许与否。偶校验:8位有效数据连同1位附加位中,二进制“1”的个数为偶数其缺点是传送速度较低。X=28-2SMODfosc/(384波特率)图7-6 串行口扩展8位输入口其优点是数据传送速度快;2掌握在中断方式或查询方式工作时的串行口初始化编程;

25、MOV R0,#00 ;计数到8计数器清零【例7-1】某AT89C51单片机控制系统,晶振频率为12MHz,要求串行口发送数据为8位,波特率为1200b/s,编写串行口的初始化程序。有关中断允许寄存器IE的内容,请参阅第五章:5.如果通信距离较远,通信线路必须加辅助电路,如可采用RS-232C接口、RS-485接口、调制解调器等。程序状态字寄存器PSW中有一个奇偶状态位 P(PSW.工作方式1(8位UART(1+8+1位),波特率可变)常用于串行通讯。7.3.2 方式1【例7-1】某AT89C51单片机控制系统,晶振频率为12MHz,要求串行口发送数据为8位,波特率为1200b/s,编写串行口

26、的初始化程序。设SMOD=1,则定时器T1的时间常数X的值为 X=28-2SMODfosc/(384波特率)=256-212106/(3841200)=256-52.08=203.920CCH 串行口初始化程序如下:MOV SCON,#50H;串行口工作于方式17.3.2 方式1 ORL PCON,#80H ;SMOD=1 MOV TMOD,#20H;T1工作于方式2,定时 MOV TH1,#0CCH;设置时间常数初值 MOV TL1,#0CCH SETB TR1 ;启动T1 执行上面的程序后,即可使串行口工作于方式1,波特率为1200b/s。如果允许中断需设中断允许标志位;如果是接收数据,仍

27、要先将REN位置1。7.3.3 方式2 串行口工作于方式2,为波特率固定11位异步通信口,发送和接收的一帧信息由11位组成,即1位起始位、8位数据位(低位在先)、1位可编程位(第9位)和1位停止位,TXD为发送端,RXD为接收端,发送时可编程位(TB8)根据需要设置为“0”或“1”(TB8既可作为多机通信中的地址数据标志位又可作为数据的奇偶校验位);接收时,可编程位的信息被送入SCON的RB8中。其帧格式为:7.3.3 方式2 1发送 在方式2发送时,数据由TXD端输出,附加的第9位数据为SCON中的TB8,CPU执行一条写SBUF的指令后,便立即启动发送器发送,送完一帧信息后,TI被置“1”

28、。在发送下一帧信息之前,TI必须由中断服务程序(或查询程序)清零。7.3.3 方式2 2接收 当REN=1时,允许串行口接收数据。数据由RXD端输入,接收11位信息。接收数据有效,8位数据装入SBUF,第9位数据装入RB8,并置RI为1。3方式2的波特率 方式2的波特率=(2SMOD/64)fosc7.3.4 方式3 串行口工作于方式3,为波特率可变的11位异步通信方式,除了波特率外,方式3和方式2相同。方式3的波特率和方式1的波特率计算相同。7.4 串行口的应用7.4.1 串行口扩展并行I/O口 串行口常用工作方式0扩展出并行I/O口。并行输出口可接各种设备,比如发光二极管、LED显示器等,

29、并行输入口可接开关、按钮等。1.串行口扩展并行输出口 图7-5 串行口扩展8位输出口【例【例7-27-2】利用串行口工作方式0扩展出8位并行输出口,驱动共阴LED数码管显示18,如图7-5所示。光盘提供proteus仿真文件,运行仿真文件 夹 第 七 章 串 行 输 出(1 6 4)164.DSN,观察运行结果。参考源程序:图7-5 串行口扩展8位输出口 接收时,可编程位的信息被送入SCON的RB8中。半双工传输方式:允许数据向两个方向中的任一方向传送,但每次只允许向一个方向传送。假设传递的数据一帧为10位,若发送和接收的波特率达到理想的一致,那么接收方对数据的采样都将发生在每位数据有效时刻的

30、中点。(6)TI发送完成标志位。0592MHz,通信波特率为1200bit/s。所有从机均接收主机发送的地址,并进入各自中断服务程序,与各自的地址进行比较。实际上,单片机串行通信的过程是将其内部的并行数据转换成串行数据,通过串行通信线传送,接收方将接收到的串行数据再转换成并行数据送到计算机中。INC R0;计数值调整3 单片机串行口的工作方式基本的数据通信方式有两种,即并行通信和串行通信。WAIT:JNB RI,WAITORL PCON,#80H ;SMOD=1方式0的接收与并入串出移位寄存器(如74LS165,CD4014等)一起使用扩展并行输入接口。(1)SM0,SM1串行口的工作方式选择

31、位。需要用软件清零 RI。DJNZ R5,AAIE寄存器控制中断系统的各中断的允许与否。2 单片机串行接口及控制寄存器(7)RI接收完成标志。例题7-3的参考源程序例7-2的源程序1 ORG 0000H LJMP START ORG 0100H START:CLRTI SETB P2.0 MOVR0,#00 DISPLY:MOV SCON,#00h ;串行口工作方式0例7-2的源程序2 MOV A,R0 MOV DPTR,#TABLE MOVC A,A+DPTR ;取字符编码 MOV SBUF,A ;发送数据 JNB TI,$;等待发送完成 CLR TI;清发送完成标志 MOV R2,#32H

32、;延时例7-2的源程序3 DLY:LCALL DL DJNZ R2,DLY INC R0;计数值调整 CJNE R0,#08,D1 MOV R0,#00 ;计数到8计数器清零 D1:LJMPDISPLY TABLE:DB 06H,5BH,4FH,66H,6DH,7DH DB 07H,7FH,6FH ;共阴极数码18例7-2的源程序4 DL:MOV R6,#14H ;延时子程序 DL1:MOV R7,#0FFH DL2:DJNZ R7,DL2 DJNZ R6,DL1 RET END 2.串行口扩展并行输入口【例【例7-37-3】利用串行口工作方式0扩展出8位并行输入口,指拨开关状态经并转串芯片7

33、4LS165输入到单片机,其状态并由P0口输出到发光二极管显示,如图7-6所示。光盘提供proteus仿真文件,运行仿真文件夹第七章串行输入(165)165.DSN,观察运行结果。图7-6 串行口扩展8位输入口 例题7-3的参考源程序 PL BIT P1.0 ORG 0000H LJMP START ORG 0100H例题7-3的参考源程序 START:CLR PL SETB PL;对165发送移位脉冲允许信号 MOV SCON,#10H;允许串行口接收数据,工作方式0 WAIT:JNB RI,WAIT MOV A,SBUF;读取数据 CLR RI;清除接收中断标志例题7-3的参考源程序 MO

34、V P0,A ;接收到的数据送P0口显示 ACALL DELAY;调用延时子程序 SJMP START DELAY:MOV R4,#0FFH;延时子程序 AA1:MOV R5,#0FFH AA:NOP例题7-3的参考源程序 NOP DJNZ R5,AA DJNZ R4,AA1 RET END7.4.2 串行口采用奇偶校验发送/接受数据 程序状态字寄存器PSW中有一个奇偶状态位 P(PSW.0):P=1 表示目前累加器中“1”的个数为奇数;P=0 表示目前累加器中“1”的个数为偶数。CPU随时监视着Acc的“1”的个数并自动反映在 P。约定发送采用偶校验 若发送的8位有效数据中“1”的个数为偶数

35、,则要人为添加一个附加位“0”一起发送;若发送的8位有效数据中“1”的个数为奇数,则要人为添加一个附加位“1”一起发送。选用偶校验方式发送,如果 A 中的数的1的个数是奇数(P=1),将TB8写成“1”一起发出去;反之:若(P=0)则写TB8=“0”发出去。偶校验发送程序 CLR TI ;清发送中断标志以备下次发送 MOV A,R0;取由R0所指向的单元中的数据 MOV C,P;将奇偶标志位通过C放进TB8 MOV TB8,C ;一起发送出去 MOV SBUF,A;启动发送 INC R0 ;指针指向下一个数据单元约定接收采用偶校验 若接收到的9位数据中“1”的个数为偶数,则表明接收正确,取出8

36、位有效数据即可;若接收到的9位数据中“1”的个数为奇数,则表明接收出错!应当进行出错处理。选用偶校验方式接收,若P=0,且RB8=0或P=1,且RB8=1表示偶校验没有出错。若P=0且RB8=1或P=1且RB8=0偶校验出错。偶校验接收程序 CLR RI;清发送中断标志以备下次发送 MOV A,SBUF;读进收到的数据 MOV C,P ;奇偶标志位C JNC L1 ;C=0时转到L1,即P=0时转到L1 JNB RB8,ERR;P=1时,若RB8=0转到ERR SJMP L2;若RB8=1 则表明接收正确,转L2 L1:JB RB8,ERR;P=0且RB8=1表明出错转ERR L2:MOV R

37、0,A;P=0且RB8=0表明接收正确 INC R0 ;指针指向下一个数据单元 ERR:出错处理 RET ;返回 7.4.3 串行口通信 单片机串行接口主要用于计算机之间的串行通信,包括两个单片机之间、多个单片机之间及单片机与PC机之间的串行通信。通信应考虑接口电路、通信协议、程序编写、问题处理等几方面内容。1.双机串行通信1(1).接口电路 两台单片机通信根据双方距离的远近可采取不同的接口电路。如果两台单片机应用系统相距很近,将它们的串行口直接相连,即发送方的TXD接到接收端的RXD,而接收端的TXD连接到发送端的RXD端,双方的GND线相连。如果通信距离较远,通信线路必须加辅助电路,如可采

38、用RS-232C接口、RS-485接口、调制解调器等。1.双机串行通信2 (2).通信协议 通信协议就是通信双方要遵守共同约定。协议内容包括双方采取一致的通信方式、一致的波特率设定、确认何方为收机何方为发机、设定通信开始时发机的呼叫信号和收机的应答信号以及通信结束的标志信号等。通常在设计发送与接受程序时应考虑以下问题:1.双机串行通信3 发送程序:波特率设置初始化(与接收程序设置相同);串行口初始化(允许接收);相关工作寄存器设置:(原数据地址指针等);按约定发送/接收数据;1.双机串行通信4 接收程序:波特率设置初始化(与发送程序设置相同);串行口初始化(与发送程序设置相同);工作寄存器设置

39、:(保存数据地址指针等);按约定发送/接收数据,传送状态字如正确标志,错误标志;偶校验:8位有效数据连同1位附加位中,二进制“1”的个数为偶数在MCS-51系列单片机中,串并、并串转换是由串行口的移位寄存器来自动完成的。串行口工作于方式3,为波特率可变的11位异步通信方式,除了波特率外,方式3和方式2相同。3中断允许控制寄存器IE其中与串行通信有关的位有EA和ES位,当EA=1且ES=1时,串行中断允许。偶校验:8位有效数据连同1位附加位中,二进制“1”的个数为偶数P=0 表示目前累加器中“1”的个数为偶数。通常在设计发送与接受程序时应考虑以下问题:数据由RXD端输入,接收11位信息。发送程序

40、和接收程序的编程方法;偶校验:8位有效数据连同1位附加位中,二进制“1”的个数为偶数SCON中的各位含义如下:接收方接收数据同时对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的“校验和”进行比较,相符则无差错,否则即认为传送过程中出现了差错。本章讲解了全双工异步串行通信接口及四种工作方式的选择与使用。程序状态字寄存器PSW中有一个奇偶状态位 P(PSW.4 串行通信的传送速率需要用软件清零 TI。顺便说明PCON中电源控制各位的功能:CF1和CF0是通用标志位,可由指令置1或清0。INC R0 ;指针指向下一个数据单元ANL PCON,#7FH ;使SMOD=01.双机串行

41、通信5【例【例7-47-4】两台单片机都承担“发送”和“接收”任务。将拨动开关K1K8、W1W8按顺序与各自的P1口连接,用来从P1口输入8位二进制数,将LED发光二极管按顺序与各自的P0口连接,用来显示从串行口接收的数据。电路如图7-7所示。注意:发送方的TXD接到接收端的RXD,而接收端的TXD连接到发送端的RXD端,双方的GND线相连。1.双机串行通信6 电路图和程序,参考光盘文件:串行口通信.DOC)光盘提供proteus仿真文件,运行仿真文件 夹 第 七 章 双 机 通 讯(互 动)sj7_4.DSN,观察运行结果,分析程序。1.双机串行通信7【例【例7-57-5】设号机发送,号机接

42、收,串行接口工作于方式(每帧数据为11位,第位用于奇偶校验),将号机片内RAM中30H单元开始的32个数据发送到号机片内RAM中30H开始的单元中。两机的晶振频率均为11.0592MHz,通信波特率为1200bit/s。光盘提供proteus仿真文件,运行仿真文件夹第七章双机通讯(奇偶校验)sj7_5.DSN,观察运行结果 电路图和程序,参考光盘文件:串行口通信.DOC)2多机通信 MCS-51系列单片机多机分布式系统常构成全双工通信方式,主机与从机可实现全双工通信,而各从机之间只能通过主机交换信息。设有一个多机分布式系统,1个主机,n个从机。系统如图7-11所示.。主机的RXD端与所有从机的

43、TXD端相连,主机的TXD端与所有从机的RXD端相连(为增大通信距离,各机之间还要配接RS-232C、或RS-485标准接口)。图7-11 80C51主从式多机通信系统 2多机通信-原理(1)多机通信原理 在多机通信中,为了保证主机与所选择的从机实现可靠的通信,必须保证通信接口具有识别功能,可以通过控制单片机的串行口控制寄存器SCON中的SM2位来实现多机通信的功能,其原理简述如下:2多机通信-原理 利用单片机串行口方式或方式及串行口控制寄存器SCON中的SM2和RB8的配合可完成主从式多机通信。2多机通信-原理 串行口以方式或方式接收时,若SM2为,则仅当从机接收到的第九位数据(在RB8中)

44、为时,数据装入接收缓冲器SBUF,并置RI1向CPU申请中断;如果接收到第九位数据为0,则不置位中断标志RI,信息将丢失。而SM2为0时,则接收到一个数据字节后,不管第九位数据是1还是0都产生中断标志RI,接收到的数据装入SBUF。应用这个特点,便可实现多个单片机之间的串行通信。2多机通信-协议(2)多机通信协议 多个单片机通信过程可约定如下:所有从机串行口初始化为工作方式2或方式3,SM2置位,串行中断允许。各从机均有编址。主机首先发送一帧地址信息,其中包括8位地址,第9位为地址置位,表示发送的为地址。2多机通信-协议 所有从机均接收主机发送的地址,并进入各自中断服务程序,与各自的地址进行比

45、较。被寻址的从机确认后,把自身SM2清零,并向主机返回地址供主机核对。对于地址不符的从机,仍保持SM21状态。2多机通信-协议 主机核对地址无误后,再向被寻址的从机发送命令,命令从机是进行数据接收还是数据发送,第9位清零。主从机之间进行数据传送,其他从机检测到主机发送的是数据而非地址,则不予理睬。直到接收主机发送新的地址后。2多机通信-协议 数据传输完毕后,从机将SM2重新置位。重复过程。光盘提供proteus仿真文件,运行仿真文件夹第七章多机通讯djtx.DSN,观察运行结果,并分析程序。本章小结:本章讲解了全双工异步串行通信接口及四种工作方式的选择与使用。1串行口四种工作方式的特点 工作方

46、式0(8位移位寄存器I/O方式)经常配合“串入并出”“并入串出”移位寄存器一起使用扩展I/O接口。工作方式1(8位UART(1+8+1位),波特率可变)常用于串行通讯。本章小结:工作方式2(9位UART(1+8+1+1位)两种固定波特率)常用于单片机间通讯。通常附加的一位(TB8/RB8)用于“奇偶校验”。工作方式3(9位UART(1+8+1+1位)波特率可变)通常附加的一位(TB8/RB8)用于多机通讯,串口方式3和方式2唯一的区别是波特率机制不同。工作方式13工作时:发送端自动添加一个起始位和一个停止位;接收端自动去掉一个起始位和一个停止位。本章小结:2四种工作方式的波特率 工作方式0、方

47、式2的波特率固定;工作方式1、方式3的波特率可由定时器T1的溢出率确定。定时器T1通常工作于方式2,定时器初值可根据发送/接收的波特率查表或按公式计算,定时器T1初始化包括:选定时器工作方式2(TMOD选8位自动重装);将查表(或计算)出的初值X赋给TH1,TL1;启动T1(SETB TR1)本章小结:通过学习,需了解和掌握以下几方面的内容:1了解串行口的工作原理和SBUF的含义及作用;了解SCON中每一位的含义及SMOD位的作用,并能正确使用,理解串行口的四种工作方式;2掌握在中断方式或查询方式工作时的串行口初始化编程;发送程序和接收程序的编程方法;掌握串行口的应用(扩展I/O口,双机通信);了解多机通信原理。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(单片机串行口实用版课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|