单片机串行通信的实现.ppt_第1页
单片机串行通信的实现.ppt_第2页
单片机串行通信的实现.ppt_第3页
单片机串行通信的实现.ppt_第4页
单片机串行通信的实现.ppt_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

1、项目小结,项目导读,任务二、LED动态显示器,知识归纳,任务一、串口控制数码管电路的设计与制作,情景四 单片机串行通信的实现,练习题,项目目标导读,学习 目标,掌握使用单片机进行RS485总线通信的编程方法 掌握电平转换器件RS232的使用方法 学会Proteus VSM虚拟终端(VITUAL TERMINAL)的使用 学会使用Proteus软件设计并仿真I2C器件扩展单片机存储器的方法 掌握单片机进行I2C通信的编程方法 学会Proteus VSM虚拟I2C调试器的使用方法 学会SPI总线时钟芯片DS1302的使用方法,能编写RS485、24C01和DS1302的汇编程序 根据任务要求能构建

2、单片机最小应用系统 会使用单片机4个I/O端口连接外部设备 能够编写常见的顺序程序、循环程序、延时子程序和查表程序 设计RS485通信、I2C存储器扩展和SPI总线实时时钟控制系统,对电路中的故障进行分析判断并加以解决,1.单片机串行通信的概念 。 2.串口编程的方法及要点 。 3.复杂单片机控制系统软硬件的设计方法 。,知识教学点,项目目标导读,方法切入点,1.采用“项目引导、任务驱动”的教学方式,通过实际项目的分析和实施,了解几种串行接口的原理和实际应用。,参考学时:6学时8学时,任务一 串口控制数码管电路的设计与制作,计算机与外界的信息交换称为“通信”。通信的基本方式有两种:并行方式和串

3、行方式。并行通信(即并行数据传送)是指计算机与外界进行通信(数据传输)时,一个数据的各位同时通过并行输入/输出口进行传送,如图所示。并行通信的优点是数据传送速度快,缺点是一个并行的数据有多少位,就需要多少根传输线,在数据的位数较多、传输距离较远时不太方便。 本任务是利用51单片机的串口通信实现对LED数码管的控制。,图 并行通信方式,任务分析,用51单片机的串口通信实现对LED数码管的控制,采用串行通信方式0和串入并出移位寄存器74LS164,数码管接在74LS164的并口输出端。要求LED数码管能以2S的时间间隔循环显示09十个数字。,任务一 串口控制数码管电路的设计与制作,任务一 串口控制

4、数码管电路的设计与制作,计算机与外界的信息交换称为通信。通信的基本方式可分为并行通信和串行通信两种。 并行通信是指数据的各位同时在多根数据线上发送或接收。 串行通信是数据的各位在同一根数据线上依次逐位发送或接收。,任务一 串口控制数码管电路的设计与制作,任务一 串口控制数码管电路的设计与制作,数据是一位一位传送的,优点:传输线少,连线简单,缺点:速度慢,适用于远距离 或数据量少的通信,串行通信,任务一 串口控制数码管电路的设计与制作,计算机,网络,鼠标,扫描仪,硬盘,并行、 串行接口的应用?,I2C SPI,RS232,USB,常见的串行通信接口:,1、串行通信简介,串行通信是指一个数据的所有

5、位按一定的顺序和方式,一位一位地通过串行输入/输出口进行传送,如图所示。由于串行通信是按数据的逐位顺序传送,在进行串行通信时,只需一根传输线。在传送的数据位数多且通信距离很长时,这种传输方式的优点就显得很突出了。,串行通信方式,任务一 串口控制数码管电路的设计与制作,(1)异步通信和同步通信,串行通信是将构成数据或字符的每个二进制码位,按照一定的顺序逐位进行传送,其传送有两种基本的通信方式: 1) 同步通信方式(Synchronous Communication) 同步通信的基本特征是发送与接收保持严格的同步。由于串行传送是逐位顺序进行的,为了约定数据是由哪一位开始传送,需要设定同步字符。这种

6、方式速度快,但是硬件复杂。,任务一 串口控制数码管电路的设计与制作,任务一 串口控制数码管电路的设计与制作,同步通信是一种连续传送数据的通信方式,一次通信传送多个字符数据,称为一帧信息。数据传输速率较高,通常可达56000bps或更高。其缺点是要求发送时钟和接收时钟保持严格同步。,图 同步通信数据传送格式,同步通信的数据帧格式如图所示。,2)异步通信方式 异步通信方式规定了传送格式,数据通常是以字符或字节为单位组成数据帧进行传送的。每个数据均以相同的帧格式传送。异步通信中一帧数据的格式如图所示,每帧信息由起始位、数据位、奇偶校验位和停止位组成,帧与帧之间用高电平分隔开。,任务一 串口控制数码管

7、电路的设计与制作,异步通信的字符帧也叫数据帧,由起始位、数据位、奇偶校验位和停止位等4部分组成。 起始位:位于字符帧开头,只占一位,为逻辑0低电平,用于向接收设备表示发送端开始发送一帧信息。 数据位:紧跟起始位之后,用户根据情况可取5位、6位、7位或8位,低位在前,高位在后。 奇偶校验位:位于数据位之后,仅占一位,用来表征串行通信中采用奇校验还是偶校验,由用户决定。 停止位:位于字符帧最后,为逻辑1高电平。通常可取1位、1.5位或2位,用于向接收端表示一帧字符信息已经发送完,也为发送下一帧作准备。,任务一 串口控制数码管电路的设计与制作,在异步通信中,接收与发送之间必须有两项规定: a) 帧格

8、式的设定。即帧的字符长度、起始位、数据位、停止位,以及奇偶校验形式等的设定。例如,以ASCII码传送,7位数据位,1位起始位,1位停止位,奇校验方式。这样,一帧的字符总数是10位,而一帧的有用信息是7位。 b) 波特率的设定。波特率反映了数据通信位流的速度,波特率越高,数据信息传送越快。常用的波特率有300、600、1200、2400、4800、9600、19200和38400等。,任务一 串口控制数码管电路的设计与制作,任务一 串口控制数码管电路的设计与制作,(2)串行通信中数据的传送方向,串行通信制式:单工(a)、半双工(b)和全双工(c) (simplex half duplex ful

9、l duplex),任务一 串口控制数码管电路的设计与制作,(2)串行通信中数据的传送方向,任务一 串口控制数码管电路的设计与制作,单工:广播,双工:电话,(3)串行通信中的奇偶校验,串行通信的关键不仅是能够传送数据,更重要的是要能正确地传送;但是串行通信的距离一般较长,线路容易受到干扰,要保证完全不出错不太现实,尤其是一些干扰严重的场合。在单片机通信中,最为简单又应用广泛的就是奇偶校验的方法。,任务一 串口控制数码管电路的设计与制作,(3)串行通信中的奇偶校验,任务一 串口控制数码管电路的设计与制作,奇偶校验的特点是按字符校验,即在发送每个字符数据之后都附加一位奇偶校验位(1或0),当设置为

10、奇校验时,数据中1的个数与校验位1的个数之和应为奇数;反之则为偶校验。收、发双方应具有一致的差错检验设置,当接收1帧字符时,对1的个数进行检验,若奇偶性(收、发双方)一致则说明传输正确。奇偶校验只能检测到那种影响奇偶位数的错误,比较低级且速度慢,一般只用在异步通信中。,2、单片机的串行接口,89S52单片机内部集成有一个功能很强的全双工串行通信口,设有2个相互独立的接收、发送缓冲器,可以同时接收和发送数据。串行口内部缓冲器的结构,发送缓冲器只能写入而不能读出,接收缓冲器只能读出而不能写入,因而两个缓冲器可以共用一个地址99H。两个缓冲器统称为串行通信特殊功能寄存器SBUF。,串行口内部缓冲器的

11、结构,任务一 串口控制数码管电路的设计与制作,2、单片机的串行接口,任务一 串口控制数码管电路的设计与制作,串行数据缓冲器SBUF SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器,以便能以全双工方式进行通信。此外,在接收寄存器之前还有移位寄存器,从而构成了串行接收的双缓冲结构,这样可以避免在数据接收过程中出现帧重叠错误。发送数据时,由于CPU是主动的,不会发生帧重叠错误,因此发送电路不需要双重缓冲结构。,2、单片机的串行接口,任务一 串口控制数码管电路的设计与制作,(1)控制寄存器SCON(98H),设定工作方式、接收/发送控制以及设置状态标志,JBC RI ,rel,89S52的串行

12、口设有两个控制寄存器: 串行控制寄存器SCON和波特率选择特殊功能寄存器PCON。,任务一 串口控制数码管电路的设计与制作,任务一 串口控制数码管电路的设计与制作,1)SM0 SM1:串行口工作方式选择位。其状态组合所对应的工作方式如表所示。,表 串行口工作方式,例:设串行口工作在方式1,允许接收,则指令为: MOV SCON, #01010000B(50H),任务一 串口控制数码管电路的设计与制作,2) SM2:多机通信控制器位。在方式0中,SM2必须设成0。在方式1中,当处于接收状态时,若SM2=1,则只有接收到有效的停止位“1”时,RI才能被激活成“1”(产生中断请求)。在方式2和方式3

13、中,若SM2=0,串行口以单机发送或接收方式工作,TI和RI以正常方式被激活并产生中断请求;若SM2=1,RB8=1时,RI被激活并产生中断请求。,任务一 串口控制数码管电路的设计与制作,4) TB8:方式2和方式3中要发送的第9位数据。该位由软件置位或复位。在方式2和方式3时,TB8是发送的第9位数据。在多机通信中,以TB8位的状态表示主机发送的是地址还是数据:TB8=1表示地址,TB8=0表示数据。TB8还可用作奇偶校验位。,3) REN:串行接受允许控制位。该位由软件置位或复位。当REN=1,允许接收;当REN=0,禁止接收。,任务一 串口控制数码管电路的设计与制作,6)TI:发送中断标

14、志位。TI=1,表示已结束一帧数据发送,可由软件查询TI位标志,也可以向CPU申请中断。 注意:TI在任何工作方式下都必须由软件清0。,5) RB8:接收数据第9位。在方式2和方式3时,RB8存放接收到的第9位数据。RB8也可用作奇偶校验位。在方式1中,若SM2=0,则RB8是接收到的停止位。在方式0中,该位未用。,任务一 串口控制数码管电路的设计与制作,7)RI:接收中断标志位。RI=1,表示一帧数据接收结束。可由软件查询RI位标志,也可以向CPU申请中断。 注意:RI在任何工作方式下也都必须由软件清0。 在AT89C51中,串行发送中断TI和接收中断RI的中断入口地址是同是0023H,因此

15、在中断程序中必须由软件查询TI和RI的状态才能确定究竟是接收还是发送中断,进而作出相应的处理。单片机复位时,SCON所有位均清0。,串行通信只用该位,为SMOD=1时,波特率2; SMOD=0时,波特率不变。,(2)电源及波特率选择寄存器PCON,87H,波特率选择位,任务一 串口控制数码管电路的设计与制作,串行口四种工作方式应用比较,方式的选择由SM1、SM0实现。,3、串行口工作方式,任务一 串口控制数码管电路的设计与制作,方 式 0,在方式0下,串行口作同步移位寄存器用,其波特率固定为fosc/12。串行数据从RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)送出。这种方式

16、常用于扩展I/O口。,(a)方式0扩展输出接口,任务一 串口控制数码管电路的设计与制作,注意: 每当发送或接收完8位数据后,硬件会自动置TI或RI为1,CPU响应TI或RI中断后,必须由用户用软件清0。,(b)方式0扩展输入接口 图9-5 串行口工作方式0扩展输入输出接口,任务一 串口控制数码管电路的设计与制作,方 式 1,10位的帧格式,串行口为波特率可调的10位通用异步接口UART。每发送或接收的一帧信息中,包括1位起始位0,8位数据位和1位停止位1。,任务一 串口控制数码管电路的设计与制作,方式1输出-发送数据,方式1输入-接收数据,置REN为1时,接收器检测到RXD引脚输入电平发生负跳

17、变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。 当RI=0,且SM2=0(或接收到的停止位为1)时,将收到的9位数据的前8位装入SBUF,第9位(停止位)进入RB8,并置RI=1,向CPU请求中断。,任务一 串口控制数码管电路的设计与制作,任务一 串口控制数码管电路的设计与制作,1) 数据发送,当TI=0时,执行“MOV SBUF,A”指令后开始发送,由硬件自动加入起始位和停止位,构成一帧数据,然后由TXD端串行输出。发送完后,TXD输出线维持在“1”状态下,并将SCON中的TI置1,表示一帧数据发送完毕。,任务一 串口控制数码管电路的设计与制作,(2) 数据接

18、收,RI=0,REN=1时,接收电路以波特率的16倍速度采样RXD引脚,如出现由“1”变“0”跳变,认为有数据正在发送。,在接收到第9位数据(即停止位)时,必须同时满足以下两个条件:RI=0和SM2=0或接收到的停止位为“1”,才把接收到的数据存入SBUF中,停止位送RB8,同时置位RI。若上述条件不满足,接收到的数据不装入SBUF被舍弃。在方式1下,SM2应设定为0。,任务一 串口控制数码管电路的设计与制作,(3) 波特率,波特率=2SMOD(T1溢出率)/32,11位的帧格式,11位数据的异步通信。,起始位1位,数据9位,停止位1位 方式2的波特率固定为晶振频率的1/64或1/32 方式3

19、的波特率由定时器T1的溢出率决定,方式2和方式3,任务一 串口控制数码管电路的设计与制作,任务一 串口控制数码管电路的设计与制作,工作方式2和方式3都是11位异步收发串行通信方式,两者的差异仅在波特率上有所不同。,方式2:波特率=2SMODfosc/64(SMOD=0或1),任务一 串口控制数码管电路的设计与制作,1) 数据发送,TI=0,发送数据前,先由软件设置TB8,可使用如下指令完成: SETB TB8 ; 将TB8位置1 CLR TB8 ; 将TB8位置0 然后再向SBUF写入8位数据,并以此来启动串行发送。一帧数据发送完毕后,CPU自动将TI置1,其过程与方式1相同。,任务一 串口控

20、制数码管电路的设计与制作,2) 数据接收,REN=1,RI=0时,启动接收 若SM2=0,接收到的8位数据送SBUF,第9位数 据送RB8。 若SM2=1,接收到的第9位数据为0,数据不送SBUF;接收到的第9位数据为1,数据送SBUF,第9位送RB8。,MCS-51串行口的波特率,1.方式0和方式2的波特率是固定的,在方式0中,波特率为时钟频率的1/12,即fosc/12,固定不变,任务一 串口控制数码管电路的设计与制作,2. 方式1和方式3的波特率可变,由定时器1的溢出率决定,波特率=,任务一 串口控制数码管电路的设计与制作,任务一 串口控制数码管电路的设计与制作,多机通信,双机通信时,两

21、台单片机地位是平等的,此时,两台单片机的串行口均可工作于方式1。多机通信是指一台主机和多台从机之间的通信。而在多机通信中,有主机和从机之分,多机通信时,主机发送的信息可以传送到各个从机,而各从机发送的信息只能被主机接收,其中的主要问题是怎样识别地址和怎样维持主机与指定从机之间的通信。,任务一 串口控制数码管电路的设计与制作,1. 多机通信连接电路,在串行方式2或方式3条件下,可实现一台主机和多台从机之间的通信,其连接电路如图所示。,任务一 串口控制数码管电路的设计与制作,2. 多机通信原理,多机通信时,主机向从机发送的信息分为地址帧和数据帧两类,以第9位可编程TB8作区分标志,TB8=0,表示

22、数据;TB8=1,表示地址。多机通信充分利用了89C51串行控制寄存器SCON中的多机通信控制位SM2的特性。当SM2=1时,CPU接收的前8位数据是否送入SBUF取决于接收的第9位RB8的状态:若RB8=1,将接收到的前8位数据送入SBUF,并置位RI产生中断请求;若,任务一 串口控制数码管电路的设计与制作,RB8=0,则接收到的前8位数据丢弃。即当从机SM2=1时,从机只能接收主机发送的地址帧(RB8=1),对数据帧(RB8=0)不予理睬。当从机SM2=0时,从机可接收主机发送的所有信息。,通信开始时,主机首先发送地址帧。由于各从机的SM2=1和RB8=1,所以各从机均分别发出串行接收中断

23、请求,通过串行中断服务程序来判断主机发送的地址与本从机地址是否相符。如果相符,则把自身的SM2清0,以准备接收随后传,任务一 串口控制数码管电路的设计与制作,送来的数据帧。其余从机由于地址不符,则仍保持SM2=1状态,因而不能接收主机传送来的数据帧。这就是多机通信中主、从机一对一的通信情况。这种通信只能在主、从机之间进行,如果想在两个从机之间进行通信,则要通过主机作中介才能实现。,任务一 串口控制数码管电路的设计与制作,3. 多机通信过程,主、从机工作于方式2或方式3,主机置 SM2=0,REN=1;从机置SM2=1,REN=1。 (2) 主机置位TB8=1,向从机发送寻址地址帧,各从机因满足

24、接收条件(SM2=1,RB8=1),从而接收到主机发来的地址,并与本机地址进行比较。 (3) 地址一致的从机(被寻址机)将SM2清0,并向主机返回地址,供主机核对。地址不一致的从机(未被寻址机)保持SM2=1。,任务一 串口控制数码管电路的设计与制作,(4) 主机核对返回的地址,若与此前发出的地址一致则准备发送数据;若不一致则返回(2)重新发送地址帧。 (5) 主机向从机发送数据,此时主机的TB8=0,只有被选中的那台从机能接收到该数据。其他从机则舍弃该数据。 (6) 本次通信结束后,从机重新置SM2=1,等待下次通信。,1、确定设计方案,系统方案框图,AT89C51 单片机,电源,时钟电路,复位电路,数码管,任务一 串口控制数码管电路的设计与制作,2、硬件电路设计,电路原理图,任务一 串口控制数码管电路的设计与制作,3、源程序设计,参考代码如下: ORG 0000H MOV SCON,#00H ; 设置串行口为方式0 CLR P1.1 SETB P1.1 ;开启并行输出 MOV DPTR,#TAB LOOP2:MOV R0,#10 MOV R1,#0 LOOP1:MOV A,R1 MOVC A,A+DPTR MOV SBUF,A ;串行输出 JNB TI,$ CLR TI ;清发

温馨提示

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

评论

0/150

提交评论