《《单片机原理及应用》7.docx》由会员分享,可在线阅读,更多相关《《单片机原理及应用》7.docx(11页珍藏版)》请在第一文库网上搜索。
1、第七章:51单片机的串行通信模块知识点思维导图+思政线串行接口数据一位一位从低位到高位按序传送:遵守社会秩序RS232SBUFSCONPCON寄存器K应用掌握的重点:抓重要矛盾UART单片机原理及应用课程教案第七章:51单片机的串行通信模块时间:时间:项目目的:1、了解单片机串行通信模块的组成;2、掌握单片机串行通信模块的工作方式;3、掌握单片机的串行通信模块的应用。思政目标:通过了解计算机网络的通信结构,延仰并引导学生思考如何有效的使用网络。重点难点:1、单片机串行通信模块的组成;2、单片机串行通信模块的工作方式。实训设备:天煌单片机实验台,KE11C软件,PRoTUES软件项目内容与步骤(
2、教学时数:12学时)7.151单片机串行通信的一些术语同步通信方式;一种基于位(bit)数据的通信方式,要求发收双方具有同频同相的同步时钟信号,只需在传送数据的最前面附加特定的同步字符使发收双方建立同步即可在同步时钟的控制下逐位发送/接收,在通信过程中数据的收发必须是连续的。异步通信方式:也是一种基于位(bit)的数据通信方式,不需要收发双方具有相同的时钟信号,但是需要有相同的数据帧结构和波特率,并且在通信过程中数据的收发不需要连续。全双工通信:参与通信的双方可以同时进行数据发送和接收操作的通信方式。半双工通信:参与通信的双方可以切换进行数据发送和接收操作但是不备注:课程思政元素:社会责任融入
3、时机:计算机网络采用的就是串行通信的结构:引导学生思考,在这个信息化的时能同时进行的通信方式。单工通信:参与通信的双方只能进行单向数据发送或者接收操作的通信方式。波特率:每秒钟传送的二进制位数,通常用bit/s作为单位,其中b=bito通信协议:通信双方为了完成通信所必须遵循的规则和约定。7.251单片机串行通信模块的组成和定时计数器类似,51单片机的串行通信模块也由内部寄存器和外部引脚组成,如下图所示,外部引脚TXD(P3.1)和RXD(P3.0)分别用于串行数据的发送和接收。15_431_199PTP10P11P12P13P14P15P16P17INr1INro1oEAx1xRESRD7.
4、351单片机串行通信模块的寄存器代,如果沉迷于网络、沉迷于手机,如何能肩负起大学生的社会责任。融入方式和手段:专题嵌入:课后撰写一篇关于我与网络的小论文。本章学习的哲学思维:硬件结构的学习要抓主要矛盾;电路设计要注意软、硬件的辩证关系。7.3.1串行通信模块控制寄存器(SCON)位名眼雕.SMO.串行口工作方我触.00工作方丈Q10工作方式2-Oi工作方输价工作方式小&SMhSM2.多机醐通信他,mrr后启动多机遹馥式,翔徽泮r后禁止多机脑模式。多机前模式仅仅虹作方式2和工作方出下有效;在使用工作方式OFJ,应该使核仪为0,在工作方丈1中,段常设置该位为1.*REN.接收允淞.mrr凭湃行口触
5、,wo*嘴止接收.*TB8.存触工杨式2貂工作方丈3歌下等熊走的第9mRBS.就在工作方式2或者工作方式3中接悯的第9位嫄,在工作方式1下为接收身的停止依工作方式。中不使用如.1R戏版标志也当SBuF中的雕戏完皮后由硬件即,且当单版件中酬使能后做斛行中龌件,熊竭由软件清0,耿有在该豌才0后推物行下一个和犍的戏.即程完成!南4,当SBUF跳到一个科的懿驰薪系髓,并且当单片耕中瞰殿后助串行械事件,蜘嬷由翱清0,并且财在蜘麟,C后推睨行下一个字节雕糠收.7.3.2串行通信模块数据寄存器(SBUF)串行通信模块的数据寄存器SBUF用于存放在串行通信中发送和接收的相关数据,其由发送缓冲寄存器和接收缓冲寄
6、存器两部分组成,这两个寄存器占用同一个51寄存器地址(0x99),允许同时访问,其中发送缓冲寄存器只能够写入不能够读出,接收缓冲寄存器只能够读出不能够写入,所以这两个寄存器在同时访问过程中并不会发生冲突。SBUF寄存器是单字节(Byte)寄存器,当将一个数据写入后,51单片机立刻根据选择的工作方式和波特率将写入的字节数据进行相应的处理后从TXD(P3.1)引脚串行发送出去,发送完成后置位相应寄存器里的标志位,只有当相应的标志位被清除之后才能够进行下一次数据的发送。当RXD(P3.0)引脚根据工作方式和波特率接收到一个完整的数据字节后51单片机将把该数据字节放入接收缓冲寄存器中,并且置位串行通信
7、模块控制寄存器SCON中的相应位。由于接收缓冲数据寄存器在物理结构上是双字节的(用户的实际操作还是单字节,其中一个字节的空间仅仅用于存放临时数据,不能被用户访问),这样就可以在51单片机读取接收缓冲数据寄存器中的数据时候同时进行下一个字节的数据接收,不会发生前后两个字节的数据冲突。S1BF寄存器只能按字节进行读写操作,不能按位访问。7. 3.3电源管理寄存器(PCON)PCON是51单片机电源管理的相应寄存器,其中和串口管理相关的只有其中的第7位SMoD,该位参与控制了单片机串行口在工作方式1、2、3下的波特率的设置,其具体的设置方法将在7.4的相应小节中进行详细介绍,PCON寄存器不能够按位
8、寻址,在51单片机复位后被清零。7.451单片机串行通信模块的工作方式和使用7.4.1 工作方式051单片机的串行模块一共有4种工作方式,其中工作方式0为同步通信方式,其余3种为异步通信方式,本小节将介绍如何使用串行通信模块的这些工作方式及其中断。串行通信模块的工作方式。适用于外扩应用器件或者两片51单片机进行高速数据通信的场合,例7.1是一个两块51单片机使用串行口进行高速数据交换的应用,单片机A使用串行模块在工作方式0下将12字节的数据写入单片机B中,然后单片机B再将12字节的数据写入单片机A,其应用电路如图7.2所示,单片机A(U1)和单片机B(U2)的串行模块数据引脚TXD(P3.1)
9、和RXD(P3.0)交叉连接,并且P2.0引脚都连接到另外一块单片机的外部中断0引脚INTO(P3.2)上,实例的电路图如下图所示。7.4.2 工作方式1当SMO、SM1设定为“01”时,串行通信模块工作方式1该工作方式是波特率可变的8位异步通信方式,使用定时计数器TI作为波特率发生器,其波特率由以下公式决定:其中,SMOD为PCON控制器的最高位(有1和0两种取值可能),片,为单片机的工作频率,4为TI的初始化值,当定时计数器TI使用工作方式2时,可以得到初始化值为。表7.3(详见教材)给出了51单片机在不同的工作频率下常用波特率所对应的T1初始值。当一个字节的数据写入SBUF寄存器后,51
10、单片机在下一个机器开始时把数据从TXD(P3.1)引脚发出。每个数据帧包括一个起始位、低位在前高位在后的8位数据位和一个停止位。当一个数据帧发送完成之后标志位被置“1”,如果此时串行中断被使能会触发串行中断事件,只有在用户使用软件清除了TI标志位之后51单片机才能够进行下一次的数据发送。当满足下列条件时候,51单片机允许串行接收。没有串行中断事件或者上一次中断数据已被取走,此时R1标志位为“0”。允许接收,REN标志位为“1”。SM2位置为“0”或者是接收到停止位。在接收状态中,外部数据被送入51单片机的外部引脚RXD(P3.0)上,单片机16倍于波特率的频率来采集该引脚上的数据,当检测到引脚
11、上的负跳变时,启动串行接收,当数据接收完成之后,8位数据被存放到数据寄存器SBUF中,停止位被放入RB8位,同时置位R1标志位,如果此时串行中断模块的中断被使能则会触发串行中断事件。7.4.3工作方式2、3当SMO、SMI设定为“01”时,串行通信模块使用工作方式2/3,这两种工作方式都是9位数据的异步通信工作方式,其区别仅仅在于波特率的计算方法不同,多用于多机通讯的场合。在工作方式2、3下,串行模块的数据接收除了受到REN和R1位控制之外,还受到SM2位的控制.在下列情况下,R1标志位被置位,完成一帧数据的接收。当SM2=0,只要接收到停止位,不管第9位是0或者1的均置位R1标志位;当SM2
12、=1接收到停止位,且第9位为1时候置位R1标志位:当第9位为0时候不置位RI位,也即不申请串行中断。在上述情况下,数据帧中的第9位数据均将被放入RB8位中。采用串行口工作方式2、3的多机通信操作步骤如下。(1)把所有的从机SM2位均置“1”。(2)主机发送地址包。(3)所有的从机接收到数据包,判断是否和自己通信,然后对自己的SM2位进行相应的操作(被选中的从机SM2被清“0”)。(4)主机和从机进行通信。(5)通信完成,从机重新置自己的SM2为1,等待下一次地址包。7.4.4串行通信模块的中断当51单片机的的中断控制寄存器IE中的EA位和ES位都被置“1”的时候,串行模块的中断被使能,在这种状
13、态下,如果R1或者T1被置位,则会触发串行模块中断事件。由第2章可知,串行模块的中断优先级别默认是最低的,但是可以通过修改中断优先级寄存器IP中的PS位来提高串行模块的中断优先级。串行模块的中断处理函数的结构如下:void函数名(Void)interrupt4using寄存器编号(中断函数代码;)7.5串行通信模块的特殊应用除了利用定时计数器中断来扩展外部中断之外,还可以利用串行口中断来扩展外部中断,把需要检测的外部信号加在RXD外部引脚上,设置串行口为工作方式1,设置REN=1来允许串行接收,并且设置SM2二Oo在串行口检测到由冏到低的电平跳变之后,会认为是接收到一个起始位,进入接收模式,当
14、完成8位数据的接收后,单片机将申请一个串行中断,可以利用这个串行中断来扩充外部中断。利用串行口来扩展外部中断同样有一定的缺点如下。 首先,这个信号也必须是负跳变触发。 其次,这个信号的负电平保持时间必须使得单片机的串行口确认这个起始位。 最后,串行口在检测到这个跳变之后会有9个位传输时间的延迟,其具体时间和波特率有关系。例7.2是利用串行通信模块扩展外部中断的C51语言实现。 例7.2】串行通信模块扩展外部中断7.6应用案例7.1-51单片机和PC通信系统的实现7.6.1 RS-232接口标准和MAX232芯片基础由于51单片机的串行通信模块的外部引脚的输出和输入信号均为TT1电平,而PC的串
15、口输出和输入电平为RS-232电平(其通信符合RS-232标准),所以需要使用RS-232电平转换芯片进行电平转换,在实际应用中最常用RS-232芯片是MX232oRS-232接口标准是目前应用最为广泛的标准串行总线接口标准之一,其有多个版本,应用最为广泛的是RS-232-C,其中的“C”代表修订版本号,目前该版本号已经到了F,这些修订版本都包括了RS232接口的的电气和机械等几个方面的定义。一个标准的RS-232接口包括一个25针的D型插座,分为公头和母头两种,包括主信道和辅助信道两个通信信道且主信道的通信速率高于辅助信道。在实际使用中,常常只使用一个主信道,此时RS-232接口只需要9根连接线,使用一个简化为9针的D型插座,同样也分为公头和母头,表7.4(详见教材)给出了RS-232接口的引脚定义。MAX232使用5V供电,其内部有两套发送接收驱动器,可以同时进行两路TT1到RS-232接口电平的转化,还有里两套电源变换电路,其中一个升压泵将5V电源提升