《NO7单片机串行口应用——单片机的双机通信电子课件 单片机应用技术.ppt》由会员分享,可在线阅读,更多相关《NO7单片机串行口应用——单片机的双机通信电子课件 单片机应用技术.ppt(87页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、学习任务七 单片机串行口应用单片机的双机通信单片机应用技术学 习 目 标任任务说务说明明 通过单片机之间的双机通信设计及任务实施,学习定时器的功能和编程应用,理解串行通信方式,掌握串行通信的重要指标:字符帧和波特率。掌握51系列单片机串行口的使用方法。双机通信的过程包括发送和接收,通信软件发送机中包含发送程序,接收机中包含接收程序,异步串行通信通过查询方式来确定数据的发送和接收。通过对本学习任务的学习,学生能够进一步强化单片机的硬件设计与软件的运行与调试能力。学 习 目 标知知识识和能力要求和能力要求 知识要求 (1)掌握串行通信的基础知识;(2)熟悉并行通信与串行通信的区别;(3)了解单片机
2、的串行接口及串行口特殊功能寄存器;(4)掌握串行接口程序设计的初始化内容;(5)掌握常用的串行转换器MAX538和MAX187;(6)掌握单片机串行通信常用的标准接口。学 习 目 标知知识识和能力要求和能力要求 能力要求 (1)能够灵活设计串行口电路实现通信;(2)能够灵活针对硬件通信电路设计、编写应用程序等;(3)能够对双机通信电路进行正确接线;(4)能够对双机通信系统进行正确的调试;(5)能够灵活地应用串行转换器MAX538和MAX187实现通信;(6)能够灵活地应用通信的标准接口实现通信。51系列单片机串行通信 一、实际应用中,不但计算机与外部设备之间常常要进行信息交换,而且计算机之间也
3、需要交换信息,所有这些信息的交换均称为“通信”。任 务 准 备任 务 准 备并行通信与串行通信 并行通信是构成一组数据的各位同时进行传送,如8位数据或16位数据并行传送。其特点是传输速度快,但当距离较远、位数又多时通信线路复杂且成本高。串行通信是数据一位接一位地顺序传送。其特点是通信线路简单,只要一对传输线(如电话线)就可以实现通信,从而大大地降低了系统成本,特别适用于远距离通信。缺点是传送速度慢。任 务 准 备串行口通信方式串行口通信方式1.1 1)异步通信)异步通信任 务 准 备 异步通信中数据是以字符为单位传送的。在传送过程中每一个字符(或一个字节)数据都要加进一些识别信息位和校验位,构
4、成一帧字符信息,或称为字符格式。发送信息时,信息位的同步时钟(即发送一个信息位的定时信号)并不发送到线路上去,数据的发送端和接收端各自有独立的时钟源。异步通信的一帧数据格式由起始位、数据位、奇偶校验位和停止位四部分组成。串行通信字符帧格式任 务 准 备 (1)起始位。按照串行通信协议规定,在通信双方实行数据传输时,线路呈逻辑“1”。发送端需要发送字符时,首先发送一个起始位,即将线路置成逻辑“0”,起始位长度占1位。(2)数据位。数据位紧跟在起始位之后,数据位可以为58位,通常使用7位或8位数据位。数据位在传送时,低位(LSB)在前,高位(MSB)在后。任 务 准 备 (3)奇偶校验位。在数据位
5、之后,是一个奇偶校验位。它是根据通信双方采用何种校验方式(奇校验或偶校验)的约定而加入的。目前专用于串行通信中的IC芯片大多采用这种校验方式。在传输过程中,CPU可以根据此标志进行纠错处理。(4)停止位。它用来表示一个字符数据的结束,用逻辑“1”表示。停止位长度可以是1位、1.5位或2位。停止位之后紧接着可以是下一个字符的起始位,也可以是空闲位(逻辑“1”),意味着线路处于等待状态。任 务 准 备2 2)同步通信)同步通信 同步通信是以数据块方式传输数据。通常在面向字符的同步传输中,其帧结构(或称为帧格式)由三部分组成,即由若干字符组成的数据块,在数据块前加上12个同步字符SYN,在数据块的后
6、部根据需要加入若干校验字符CRC。任 务 准 备同步通信数据格式 同步通信方式的同步由每个数据块前面的同步字符实现。同步字符的格式和数量可以根据需要约定。接收端在检测到同步字符之后,便确认开始传送有效数据字符。与异步通信不同的是,同步方式需要提供单独的时钟信号,且要求接收器时钟和发送器时钟严格保持同步。任 务 准 备同步通信数据传输速率同步通信数据传输速率2.串行通信数据传输速率用波特率来表示。波特率就是在通信时每秒钟传送的二进制数的位数,单位为位/秒(b/s)。在异步通信中,波特率为每秒传送的字符数与每个字符的位数的乘积。假如每秒传送120个字符,而每个字符按规定包含10位(起始位、校验位、
7、停止位各1位,数据位7位),则波特率为120字符/s10 b/字符=1 200 b/s 波特率越高,数据传输的速度越快,一般异步通信的波特率为509 600 b/s。任 务 准 备任 务 准 备注意注意串串行通信的制式行通信的制式3.(1)单工(simplex)制式。在单工方式下,通信双方的一方只能发送数据,另一方只能接收数据,如图所示。通信线的A端只有发送器,B端只有接收器,信息数据只能单向传送,即只能由A端传送到B端,而不能反传。任 务 准 备单工通信方式 (2)半双工(half duplex)制式。半双工方式中,通信线路两端的设备都有一个发送器和一个接收器,即收发一体,如图75所示。数据
8、可双方向传送,但不能同时传送,即A端发送B端接收或B端发送A端接收,A、B两端的发送/接收只能通过半双工通信协议切换交替工作。任 务 准 备半双工通信方式 (3)全双工(full duplex)制式。全双工通信方式简称双工通信方式。在全双工方式下,通信线路A、B两端都有发送器和接收器,A、B之间有两个独立通信的回路,两端数据可以同时发送和接收,因此通信效率比前两种要高。该方式下所需的传输线至少要有三条,一条用于发送,一条用于接收,一条用于公用信号地。任 务 准 备全双工通信方式串行口的连接方法串行口的连接方法4.任 务 准 备 根据通信距离的不同,串行口的电路连接方式可分为三种形式。如果距离很
9、近,只要两根信号线(TXD、RXD)和一根地线(GND)就可以实现互联;为了提高通信距离,并且距离在15 m以内可采用RS-232接口实现;如果是远程通信,可通过调制解调器进行通信互联。5151系列单片机的串行接口系列单片机的串行接口5.任 务 准 备 51系列单片机内部有一个很强的可编程的全双式通信接口,可同时发送和接收数据。它有4种工作方式,可供不同场合使用。波特率由软件设置,通过片内的定时/计数器产生。接收、发送均要工作在查询方式或中断方式,使用十分灵活。51系列的串行口除了用于数据通信外,还可以非常方便地构成1个或多个并行输入/输出口,或作为串并转换,用来驱动键盘与显示器。51系列单片
10、机串行口内部结构1 1)内部结构)内部结构任 务 准 备2 2)特殊功能寄存器)特殊功能寄存器 (1)串行口数据缓冲寄存器SBUF。51系列单片机通过特殊功能寄存器SBUF实现读写操作,即实现同时对数据的串行接收和串行发送,串行接收和串行发送缓冲器寄存器在串行口内部占两个独立的存储单元,共用一个地址99H。串行口数据传送使用的是内部数据传送指令“MOV A,SBUF”或“MOV SBUF,A”。当执行写操作时,访问串行发送寄存器SBUF;当执行读操作时,访问串行接收寄存器SBUF。串行接收寄存器具有双缓冲结构,即在从接收寄存器中读出前一个已收到的字节之前,便能接收第二个字节。但如果第二个字节已
11、经接收完毕,第一个字节还没有读出,则将丢失其中一个字节,编程时应引起注意。对于发送器,因为数据是由CPU控制发送的,所以不需要双缓冲。任 务 准 备 (2)串行口控制寄存器SCON。串行口控制寄存器SCON用来控制单片机串行口的工作方式的设定、接收与发送控制的状态,是一个特殊功能寄存器,其地址为98H,可位寻址在复位时所有位被清零。SCON的格式如下。任 务 准 备 其中各位的作用定义如下。SM0、SM1。串行口工作方式选择位,单片机串行口的工作方式见表7-1。任 务 准 备 单片机中断系统基本概念及结构组成 一、中断的基本概念中断的基本概念1.在计算机执行程序的过程中,当出现某种情况时,由服
12、务对象向CPU发出请求当前程序中断的信号,要求CPU暂时停止当前程序的执行,而转去执行相应的处理程序,待处理程序执行完毕后,再返回继续执行原来被中断的程序,这样的过程称为中断过程。引起中断的原因或触发中断请求的来源称为中断源。为实现中断而设置的各种硬件和软件称为中断系统。任 务 准 备中断请求标志中断请求标志2.中断请求信号发出后,必须在相应的存储单元中设定标志,以便CPU及时查询并作出响应。与中断请求标志相关的寄存器有TCON和SCON两个特殊功能寄存器,其中对应于各中断源的标志位见表6-1。任 务 准 备 SM2。多机通信控制位。主要用于工作方式2和工作方式3。在方式2和方式3中,如SM2
13、=1时,则接收到的第9位数据(RB8)为0时不启动接收中断RI(RI=0),并且将接收到的前8位数据丢弃;RB8为1时,才将接收到的前8位数据送入SBUF,并置位RI产生中断请求。当SM2=0时,则不论第9位数据为0或1,都将前8位数据装入SBUF中,并产生中断请求。在方式0时,SM2必须为0。任 务 准 备 REN。允许接收控制位。由软件置位或清零。REN=1时,允许接收;REN=0时,禁止接收。TB8。在方式2和方式3时,存放要发送数据的第9位数据,常用作奇偶校验位。在多机通信中,可作为区别地址帧或数据帧的标识位,若为地址帧,TB8=1;若为数据帧,TB8=0。RB8。在方式2和方式3时,
14、RB8保存接收到的第9位数据。在方式0时,不用RB8;在方式1时,如果SM2=0,则RB8是接收到的停止位。任 务 准 备 TI。发送中断标志位。在方式0下,发送完第8位数据位时,由硬件置位;在其他方式下,当开始发送停止位时,由硬件将TI置位,即向CPU申请中断,CPU可以发送下一帧数据。在任何方式下,TI必须用软件清零。RI。接收中断标志位。在方式0下,当接收完1帧数据时,由硬件将该位置位,在其他方式下,当接收到停止位时RI置位,即申请请求中断,要求CPU取走数据。响应中断后,用软件清零。任 务 准 备 (3)电源控制寄存器PCON。电源控制寄存器PCON是一个特殊的功能寄存器,它主要用于电
15、源控制方面。另外,PCON中的最高位SMOD位称为波特率加倍位,用于对串行口的波特率控制,它的格式如下。其中,最高位SMOD为串行口波特率选择位。当SMOD=1时,串行口工作在方式1、方式2、方式3时的波特率加倍。任 务 准 备3 3)工作方式)工作方式 (1)工作方式0。此时串行口作为同步移位寄存器使用,相当于一个并入串出或串入并出的移位寄存器。其波特率固定,为单片机振荡频率 f osc/12。数据从RXD输入或输出(低位在先,高位在后),TXD输出同步移位时钟,发送过程从“MOV SBUF,A”开始,当8位数据传送完毕后,TI被置1。接收时,必须先使REN1,RI0。当8位数据接收完后,R
16、I会置1,此时可由“MOV A,SBUF”将数据读入累加器。若要再次发送和接收数据,必须用软件将TI、RI清零。任 务 准 备 这种方式常用于单片机外围接口电路的扩展。串行发送时,外部可扩展一片(或几片)串入并出的移位寄存器,用来扩展一个并行口。典型应用如图所示。任 务 准 备串行口方式0任 务 准 备 (2)工作方式1。此时串行口工作于异步通信方式,帧数据格式为10位(8位数据位、1位起始位、1位停止位),其波特率是可变的。AT89S51串行口的波特率由工作在方式2下的定时器T1的溢出率决定。此方式时常设置定时器T1工作在方式2下,且禁止中断。任 务 准 备 定时器的溢出率,就是定时器一秒钟
17、计满溢出的次数。若将定时器当作一个可编程的分频器来理解,则溢出率就等于定时器对系统时钟分频后的信号频率。具体计算公式为 T1溢出率=f osc/12(2n -预置初值)当串行口以方式1发送时,CPU执行一条写发送寄存器指令“MOU SBUF,A”就可将数据位逐一由TXD端送出。发送一帧数据后,将TI置1。任 务 准 备 当串行口以方式1接收时,需控制SCON中的REN为1,此时对RXD引脚进行采样,当采样到起始有效时开始。当一帧数据接收完毕,且RI=0,SM0=0或接收到RB8=1时,接收的数据有效,此时可利用接收寄存器指令“MOV A,SBUF”将数据送入CPU,同时将RI置1。若要再次发送
18、时,必须用软件将TI、RI清零。(3)工作方式2和方式3。此时串行口工作为异步通信方式,帧数据格式为11位(1位起始位、8位数据位、1位可编程数据位、1位停止位)。方式2的波特率取决于SMOD位的值。当SMOD=0时,波特率为 f osc/64;当SMOD=1时,波特率为 f osc/32。任 务 准 备 方式3的波特率是可变的,是由定时器T1的溢出率决定的。发送时,由软件设置TB8后构成第9位数据进行发送,TB8可作为多机通信中的地址/数据信息的标志位,也可作为奇偶校验位。方式2、方式3的发送过程与方式1的发送过程类似。方式2、方式3的接收过程也与方式1类似,当接收到第9位数据后,将这一位数
19、据送入RB8中。任 务 准 备任 务 准 备任 务 准 备任 务 准 备 串行通信的程序设计 二、串行口的初始化编程串行口的初始化编程1.串行口的初始化编程主要是对串行口控制寄存器SCON、电源控制寄存器PCON中的相关位的设定及串行口波特率发生器TI1的初始化。如果涉及中断系统,则还需要对中断允许控制寄存器IE及中断优先级控制寄存器IP进行设定。任 务 准 备任 务 准 备【例例7-17-1】发送和接收程序设计发送和接收程序设计2.通信过程包含发送和接收两部分,因此通信软件也包括发送程序和接收程序,它们分别位于发送机和接收机中。发送和接收程序的设计一般采用查询和中断两种设计方法。异步串行通信
20、是以帧为基本单位传送的。在每次发送或接收完一帧数据后,将由硬件使SCON中的TI或RI置1。查询方式就是根据TI或RI的状态是否有效来判断一次数据发送或接收是否完成,如图7-9所示。在发送程序中,首先将数据发送出去,然后查询是否发送完毕,再决定是否发下一帧数据,即“先发后查”。在接收程序中,首先判断是否接收到一帧数据,然后保存这一帧数据,即“先查后收”。任 务 准 备图7-9 查询方式程序流程图任 务 准 备 如果采用中断方法编程,则将TI、RI作为中断申请标志。如果设置系统允许串行口中断,则每当TI或RI产生一次中断申请,就表示一帧数据发送或接收结束。CPU响应一次中断申请,执行一次中断服务
21、程序,在中断服务程序中完成数据的发送或接收,如图7-10所示。其中,发送程序中必须有一次发送数据的操作,目的是为了启动第一次中断,之后的所有数据的发送均在中断服务程序中完成。而接收程序中,所有的数据接收操作均在中断服务程序中完成。任 务 准 备实训模块 可中断控制的循环彩灯系统的设计图7-10 中断方式程序流程图任 务 准 备【例例7-27-2】接收参考程序如下。ORG 0100HFIRST:MOV TMOD,#20H;定时器T1初始化 MOV TH1,#0F3H MOV TL1,#0F3H MOV SCON,#50H;串行口初始化,允许接收 MOV PCON,#80HSETBTR1 MOV
22、R0,#50H;置数据块首地址 MOV R1,#50H任 务 准 备软硬件联合调试软硬件联合调试3.当串行口采用方式2和方式3工作时,帧数据格式中的第9位可用作奇偶校验位,用以判断数据传送是否出错。当然第9位也可不用于奇偶校验,而由用户自行处理。AT89S51单片机在执行与累加器相关的指令时,如“MOV A,Ri”“INC A”等,将会影响程序状态字PSW中的奇偶校验位P的状态。当累加器A中1的个数为奇数时,P置为1;若为偶数时,P置为0。任 务 准 备任 务 准 备 发送时,当发送的字节数据送入累加器A后,P标志和A中的1总个数应为偶数,此时可将P值送入TB8,这样就实现了数据的补偶发送。与
23、此对应,在接收时,可在读取数据时进行偶校验,如果RB8中的位值与累加器A从SBUP读入的数据中的1加起来后,1的个数是偶数,则接收正确,否则为出错。任务 单片机双机通信工作内容及要求工作内容及要求 本任务采用AT89S51单片机组成通信系统进行数据的接收和发送。单片机A的P1口接拨位开关S0S7,当某位开关闭合时,由单片机A的CPU将P1口的开关状态以串行通信的方式由TXD传给单片机B。单片机B将接收的数据输出到它的P0口,通过P0端口外接的发光二极管发光来显示对应的闭合的开关。通过本次实训,学习串行口通信的编程设计和硬件电路设计,掌握AT89S51单片机串行通信具体的实现方法和应用,提高单片
24、机全系统调试能力及问题的解决方法。任务分析任务分析 本任务与学习任务三中的实训有相似之处,不同之处就是利用了两个单片机来实现开关状态的显示过程。单片机A的P1口外接8位拨位开关,当单片机A读取开关状态时,不是直接利用自己的其他端口输出,而是利用串行通信方式从自己的11脚(TXD)送到单片机B的串行接收端10脚(RXD),单片机B接收完成后,通过自己的发送端(TXD)发出接收成功信号给单片机A的接收端(RXD),使单片机接着发送第二个数据。单片机B接收成功后,把开关状态数据发送到自己的P0口输出,我们从发光二极管的亮灭情况就可以判断出哪个开关闭合了。任务的核心是设置好串行口控制寄存器SCON和定
25、时器方式控制寄存器TMOD,还要根据通信波特率确定定时器初始值。为了使波特率为整数,这次实训的晶振采用11.059 2 MHz,也可以采用6 MHz的,只是传输速度很慢,可选择的波特率很少。波特率选择详见表7-2。任务 单片机双机通信 常用的串行D/A转换器MAX538及接口电路 一、知 识 链 接(1)SPI串行接口。(2)12位,电压输出型。(3)单+5 V工作电源。(4)输出电压值为02.6 V。(5)芯片为8脚双列直插式封装。1.MAX5381.MAX538芯片特点芯片特点芯片特点芯片特点MAX538MAX538芯片引脚分配芯片引脚分配2.(1)DIN。串行数据输入。(2)SCLK。串
26、行时钟输入。(3)。片选输入,低电平有效。(4)DOUT。串行数据输出。(5)AGND。模拟地。(6)REFIN。基准电压输入。(7)V out。模拟电压输出。(8)VDD。工作电源。MAX538外围引脚分配图知 识 链 接 MAX538的数据输入是在 和SCLK信号的配合下完成的。首先引脚输入低电平时选中MAX538,SCLK引脚输入上升沿时DIN引脚上的数据被MAX538锁入,所以待转换数据必须在SCLK为低电平时送到。尽管MAX538是12位D/A转换器,但由于其符合SPI接口标准,在送入数据时必须先送高位后送低位,并且必须送出2字节(16位)数据,其中高4位不参与D/A转换。知 识 链
27、 接MAX538MAX538与与AT89S51AT89S51单片机的接口电路单片机的接口电路3.知 识 链 接 MAX538与AT89S51单片机的接口电路如图7-12所示,P1.0接SCLK,用于输出MAX538所需的串行时钟;P1.1接片选信号;P1.2接DIN,向MAX538提供待转换的数据,PEFIN端输入2.5 V外部基准电源,MAX538输出电压范围为02.5 V,该输出电压经运算放大器向控制对象提供模拟电压。MAX538与AT89S51的接口电路知 识 链 接【例例7-47-4】知 识 链 接 常用的串行A/D转换器MAX187及接口电路 二、A/D转换器是智能化仪器中的重要组成
28、部分。虽然并行A/D转换器转换精度高、速度快,但因其接口相对串行A/D芯片较复杂,所以在工业检测控制及智能化仪器仪表中,串行A/D转换器得到广泛应用。MAX187是美国MAXIM公司生产的一种串行A/D转换器,具有低功耗、高精度、高速度、体积小、接口简单等特点。MAX187是一种单通道12位逐次逼近型串行A/D转换器,内部设有采样保持电路,采用单一+5 V供电,接收0+5 V模拟信号输入。知 识 链 接MAX187MAX187芯片特点芯片特点1.知 识 链 接(2 2)12位分辨率。单一+5 V工作电压,工作电流 1.5 mA,关断电流2 A。内部采样/保持电路,75 kbps采样速率。内部4
29、.096 V基准电压,与SPI、QSPI及Mi2crowire兼容的3线串行接口。(1 1)(3 3)(4 4)MAX187MAX187芯片芯片引脚分配引脚分配2.(1)VDD。电源端接+5 V。(2)AIN。采样模拟信号输入端,0 V REF。(3)。关闭控制信号输入端。当 =0时,处于待命状态;当 =1时,允许使用内部基准电压。MAX187外围引脚分配图知 识 链 接 (4)VREF。用于模拟转换的基准电压端,使用外部基准电源时用作输入。(5)GND。数字地。(6)。片选信号输入端。(7)SCLK。串行时钟输入端。(8)DOUT。串行数据输入端,数据在SCLK下降沿输出。知 识 链 接【例
30、例7-57-5】知 识 链 接 单片机串行通信常用的标准接口 三、RS-232CRS-232C串行接口串行接口1.RS-232C总线接口实际上是种串行通信标准,是EIA在1969年推出的(又称EIA RS-232C)。它是目前PC与通信工业中应用最广泛的串行通信接口。如PC上的COM1、COM2接口中,它适合于数据传输速率在020 kb/s范围内的通信,最大传输距离15 m,只能实现一发一收通信方式。知 识 链 接1 1)信号接口)信号接口 由于RS-232C并未定义连接器的物理特性,因此,出现了DB-25和DB-9等各种类型的连接器,其引脚的定义也各不相同,常用的DB-25和DB-9连接器接
31、口如图所示。常用的DB-25和DB-9连接器接口知 识 链 接知 识 链 接2 2)逻辑电平)逻辑电平 (1)在TXD和RXD上。逻辑1(MARK)=-3-15 V。逻辑0(SPACE)=+315 V。(2)在RTS、CTS、DSR、DTR和DCD等控制线上。信号有效(接通,ON状态,正电压)+3+15 V。信号无效(断开,OFF状态,负电压)=-3-15 V。知 识 链 接 由以上定义可以看出,信号无效的电平低于-3 V,也就是当传输电平的绝对值大于3 V时,电路可以有效地检查出来,介于-3+3 V之间的电压无意义,低于-15 V或高于+15 V的电压也认为无意义,因此,实际工作时应保证电平
32、的绝对值范围为315 V。知 识 链 接RS-485RS-485串行接口串行接口2.RS-232C虽然使用广泛,但其出现较早,在现代网络通信中已暴露出明显的不足,主要表现为:接口的信号电平值较高,易损坏接口电路芯片;必须经过电平转换电路方能与TTL电路相连;传输效率较低;对噪声的抗干扰性弱;传输距离有限。针对RS-232C的不足,相继出现了一些新的接口技术,RS-485就是其中之一,它以良好的抗噪声干扰性、长距离传输特性和多站能力等成为用户首选的串行接口。具体表现在以下几个方面。知 识 链 接 (1)RS-485的电气特性。逻辑“1”以两线间的电压差为+2+6 V表示;逻辑“0”以两线间的电压
33、差为-2-6 V表示。接口信号电平比RS-232C降低了,不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。(2)RS-485传输数据的速度较快,最高速率达到10 Mb/s。传输距离可达1 200 m。(3)RS-485接口允许在双绞线上同时连接32个负载(收发器),即具有多站能力。(4)采用平衡驱动器和差分接收器的组合,工作于半双工方式,抗共模干扰能力强,即抗噪声干扰性能好。(5)RS-485接口所组成的半双工网络一般只需要两根连线,因此RS-485接口采用屏蔽双绞线传输。RS-485连接器采用DB-9的9芯插头座。知 识 链 接MAX485电平转换芯片电路接线图知
34、识 链 接 单片机双机通信硬件电路设计与搭建 一、控制要求控制要求1.本项目采用AT89S51单片机组成通信系统进行数据的接收和发送。单片机A的P1口接拨位开关S0S7,单片机A的CPU读取P1口的开关状态并由它的11脚(TXD)传给单片机B的10脚(RXD)。单片机B将接收的数据输出到自己的P0口,通过二极管发光以显示对应的开关状态数据。实训模块 单片机双机通信双机通信硬件电路设计双机通信硬件电路设计2.单片机双机通信的硬件参考电路实训模块 单片机双机通信系统所用元器件、设备及工具系统所用元器件、设备及工具3.实训模块 单片机双机通信 通信程序设计 二、单片机单片机A A发送程序设计发送程序
35、设计1.单片机A发送程序,主要包括堆栈指针、串行口控制寄存器、定时器方式控制寄存器、定时器初始值的设置,读取开关状态并保存,以及串行数据发送。发送参考程序如下。ORG0000HAJMPMAINTORG0100H MAINT:MOV SP,#60H ;定时器T1初始化实训模块 单片机双机通信MOV SCON,#40H;串行口以方式1工作MOV TMOD,#20HMOV TH1,#0FDH;设置波特率为9 600 b/sMOV TL1,#0FDHSETB TR1MOV P1,#0FFHMOV 30H,#0FFH;设拨码开关初始值实训模块 单片机双机通信KK0:MOV A,P1;读入拨码开关 CJN
36、E A,30H,KK1;判断与前次是否相同,不同则跳转至K1 SJMP KK0KK1:MOV 30H,A;存入拨动开关新值MOV SBUF,AWAIT:JBC TI,KK0;是否发送完毕SJMP WAITEND实训模块 单片机双机通信单片机单片机B B接收程序设计接收程序设计2.单片机B的接收程序设计与单片机A的接收程序设计略有不同,即单片机B在串行口控制寄存器SCON的设置上注意了接收位RI的置1操作。其他不同之处还有最后的接收数据成功后转送累加器A的操作和对接收位RI重新复位的操作。实训模块 单片机双机通信接收参考程序如下。ORG 0000HLJMP MAINRORG 0100HMAINR
37、:MOV SP,#60HMOV SCON,#50HMOV TMOD,#20HMOV TH1,#0FDHMOV TL1,#0FDH实训模块 单片机双机通信 SETBT R1MOV P0,#0FFHKK0:JB RI,KK1 ;是否接收到数据,有则跳到KK1SJMP KK0KK1:MOV A,SBUF;将接收到的数据保存到累加器MOV P0,ACLR RISJMP KK0END实训模块 单片机双机通信 上面两个程序都是以晶振11.059 2 MHz为单片机时钟主频率,设定波特率为9 600 b/s,定时器T1的初始值为0FDH。如果两个单片机的时钟主频率选用6 MHz,那么波特率只能选110 b/
38、s,这时定时器T1的初始值应设置为72H,其他电路和程序都不变。实训模块 单片机双机通信 系统软件仿真及系统联合调试 三、双机通信软件程序仿真双机通信软件程序仿真1.软件的程序仿真与前面任务实训中程序仿真的方法相同,此处不再赘述。单片机A双机通信发送程序仿真图如图7-18所示,单片机B双机通信接收程序仿真图如图7-19所示。实训模块 单片机双机通信图7-18 双机通信发送程序仿真图实训模块 单片机双机通信图7-19 双机通信接收程序仿真图实训模块 单片机双机通信 程序仿真时,如何设置才能观察到串行口控制寄存器SCON中的TI为“1”的情形。实训问题实训问题实训模块 单片机双机通信MAX187MAX187芯片芯片引脚分配引脚分配2.将调试好的软件程序分别下载到两个AT89S51的单片机中,注意发送程序和接收程序要下载到对应的单片机A和单片机B中。然后就进行双机通信系统的联合调试。实训模块 单片机双机通信知 识 链 接单片机双机通信电路效果图