[信息与通信]第08章 MCS51单片机串行接口081116.ppt

上传人:sccc 文档编号:5615411 上传时间:2023-08-02 格式:PPT 页数:51 大小:539KB
返回 下载 相关 举报
[信息与通信]第08章 MCS51单片机串行接口081116.ppt_第1页
第1页 / 共51页
[信息与通信]第08章 MCS51单片机串行接口081116.ppt_第2页
第2页 / 共51页
[信息与通信]第08章 MCS51单片机串行接口081116.ppt_第3页
第3页 / 共51页
[信息与通信]第08章 MCS51单片机串行接口081116.ppt_第4页
第4页 / 共51页
[信息与通信]第08章 MCS51单片机串行接口081116.ppt_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《[信息与通信]第08章 MCS51单片机串行接口081116.ppt》由会员分享,可在线阅读,更多相关《[信息与通信]第08章 MCS51单片机串行接口081116.ppt(51页珍藏版)》请在三一办公上搜索。

1、串行通信概述串行通信原理串行通信的控制寄存器串行通信的工作方式多机通信,第8章串行通信,本章内容,Single Chip Microcomputer,串行通信概述,单片机与外围设备的通信有并行和串行两种方式。并行通信是多位数据同时传送,速度快,效率高,但需要的数据线条数也比较多,只适合短距离通信。串行通信是按先后次序一位一位传送数据,所需的数据线条数少,特别适用长距离传送。MCS-51单片机内部有一个全双工的串行口,可以通过软件设定以4种工作模式和不同的波特率进行工作。,串行通信的通信方式,异步通信方式:单片机的串行通信使用的是异步串行通信,异步通信是指发送方和接收方采用独立的时钟,即双方没有

2、一个相同的参考时钟作为基准。在异步通信中数据一般以一个字符为单位进行传送。用一帧来表示一个字符,一帧信息由起始位(为0信号,占1位)、数据位(传输时低位在先,高位在后)、奇偶较验位(可要可不要)和停止位(为1信号,可1位、1位半或2位)组成。同步通信方式:在同步通信中,每个数据块的开头以同步字符SYN加以指示,使发送与接受双方取得同步。数据块的各字符之间没有起始位和停止位,提高了通信的速度。但为了能保持同步传送,在同步通信中须用一个时钟来协调收发器的工作,这就增加了设备的复杂性。,字符格式双方要事先约定字符的编码形式、奇偶校验形式及起始位和停止位的规定。例如用ASCII码通信,有效数据为7位,

3、加一个奇偶校验位、一个起始位和一个停止位共10位。波特率波特率就是数据的传送速率,即每秒钟传送的二进制位数,单位为位/秒。它与字符的传送速率(字符/秒)之间有以下关系:波特率=1个字符的二进制编码位数字符/秒注:在异步通信中,通信双方必须事先约定字符格式和波特率,串行通信的三种数据传输模式)单工方式:数据仅按一个固定方向传送。常用于串行口的打印数据传输与简单系统间的数据采集。)半双工方式:使用同一根传输线,数据可双向传送,但不能同时进行,实际应用中采用某种协议实现收/发开关转换。)全双工方式:数据的发送和接收可同时进行,通信双方都能在同一时刻进行发送和接收操作,但一般全双工传输方式的线路和设备

4、比较复杂。,发送端,接受端,数据线,地线,单工方式,发送/接收端,接收/发送端,数据线,地线,半双工方式,发送/接收器,接收/发送端,数据线,地线,全双工方式,串行通信工作原理,串行通信接口MCS-51单片机串行口的数据传送为全双工传送方式。接收、发送数据均可工作在查询或中断方式,能方便实现双机和多机通信。MCS-51单片机内部的串行接口,有一个发送缓冲器和一个接收缓冲器,它们在物理上是独立的。发送缓冲器只能写入信息,不能被读出,用于存储发送信息。接收缓冲器只能读出信息,不能被写入,用于存储接收到的信息。这两个缓冲器共用一个地址:99H。另外,在串行通讯时用二个特殊功能寄存器SCON、PCON

5、控制串行接口的工作方式和波特率。如下图所示。,/12,TH1,TL1,/2,/16,发送SBUF(99H),接收SBUF(99H),输入移位寄存器,/16,起始位检测,内部BUS,移位时钟,T1溢出率,fsoc,SMOD-1,SMOD-0,PXD(P3.0),TI,RI,TXD(P3.1),写SBUF,读SBUF,装载SBUF,注:接收/发送缓冲寄存器SBUF,虽然共用一个地址,但由于操作是独立的,故不会发生冲突。对接收/发送缓冲寄存器SBUF的操作,必须通过累加器A进行。指令 MOV SBUF,A 启动一次数据发送指令 MOV A,SBUF 完成一次数据接收,SBUF可再接收下一个数据接收/

6、发送数据,无论是否采用中断方式工作,每接收/发送一个数据都必须用指令对 RI/TI清0,以备下一次收/发。,串行通信控制寄存器(SCON)串行通信控制寄存器SCON的字节地址为98H,位地址为98H-9FH。可以对串行接口的工作方式、接收发送和串行接口的工作状态标志进行设置。其格式如下:,1)SM0、SM1串行口工作方式选择位 其状态组合和对应工作方式为:SM0 SM1 工作方式 0 0 方式0 0 1 方式1 1 0 方式2 1 1 方式3,2)M2多机通信控制位,主要用于方式2和方式3中 在接收状态时,当串行口工作于方式2或3,以及SM2=1时,只有当接收到的第9位数据(RB8)为1时,才

7、把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接受到的数据放弃。当SM2=0时,就不管第9位数据是0还是1,都将前8位数据送入SBUF,并发出中断申请。在方式0时,SM2必须为0。在方式1,若SM2=1,只有接收到有效的停止位时,才能置位RI。3)REN允许串行接收控制位 REN0 禁止接收数据 REN1 允许接收数据4)TB8发送数据第9位。在方式2和方式3时,TB8为所要发送的第9位数据 在多机通信中,以TB8位的状态表示主机发送的是地址还是数据:TB8=0为数据 TB8=1为地址 也可用作数据的奇偶校验位。该位由软件置位或复位。,5)RB8接收数据第9位 在方式2、3

8、时,RB8是接收的第9位数据。可作为奇偶校验位或 地址帧/数据帧的标志 在方式1时,若SM2=0,RB8是接收的停止位 在方式0时,不使用RB86)TI发送中断标志位 在方式0时,发送完第8位数据后,该位由硬件置位。在其它方式下,于发送停止位之前,由硬件置位,并向CPU申请中断 CPU在响应中断后,必须用软件清零。在非中断方式,TI也可供查询使用。7)RI接收中断标志位 在方式0时,接收完第8位数据后,该位由硬件置位。在其它方式下,于接收到停止位之前,该位由硬件置位,并向CPU申请中断 在CPU响应中断后,也必须用软件清零 在非中断方式,RI也可供查询使用。,3电源控制寄存器电源控制寄存器PC

9、ON的字节地址为87H,没有位寻址功能。主要实现对单片机电源的控制管理,但PCON的最高位SMOD是串行口波特率系数控制位。其格式如下:,)SMOD波特率倍增位在串行口工作方式1、2、3中,是波特率加倍位:SMOD=1:波特率加倍SMOD=0:表示波特率不加倍。,)GF1,GF0用户可自行定义的通用标志位)PD掉电方式控制位 PD=0:常规工作方式 PD=1:进入掉电方式 CPU处于掉电方式时,振荡器停振,片内RAM和SRF的值保持不变,P0P3口维持原状,程序停止。只有复位能退出掉电方式。4)IDL待机方式(空闲方式)控制位。IDL=0:常规工作方式 IDL=1:进入待机方式 CPU处于待机

10、方式时,振荡器继续振荡,中断、定时器、串口功能继续有效,片内RAM和SRF保持不变,CPU状态保持,P0P3口维持原状,程序停顿。中断、复位都能退出待机状态。,串行通信工作方式,串行口的工作方式由SM0和SM1确定,编码和功能如下表所示:,注:方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由T1的溢出率决定。,工作方式串行口的工作方式0为移位寄存器方式,可外接移位寄存器以扩展I/O口,也可以外接同步输入/输出设备。一帧信息有8位数据,低位在前,高位在后,没有起始位和停止位,数据从RXD输入或输出。TXD用来输出同步脉冲。波特率固定为fosc/12。数据格式如下:,1)发送数

11、据将数据写入发送缓冲器SBUF后,TXD端输出移位脉冲,串行口把SBUF中的数据依次由低到高以fosc/12的波特率从RXD端输出,一帧数据发送完毕后硬件置发送中断标志位TI为1。若要再次发送数据,必须用指令将TI清零。)接收数据在RI=0的条件下,用指令置REN=1即可开始串行接收。TXD端输出移位脉冲,数据依次由低到高以fosc/12的波特率经RXD端接收到SBUF中,一帧数据接收完成后硬件置接收中断标志位RI为1。若要再次接收一帧数据,应该用指令MOV A,SBUF将上一帧数据取走,并用指令将RI清零。,)方式0工作时,多用查询方式编程:发送:MOV SBUF,A JNB TI,$CLR

12、 TI 接收:JNB RI,$CLR RIMOV A,SBUF注)复位时,SCON被清零,工作方式的缺省值为方式0。接收前,务必先置位REN=1方允许接收数据。,工作方式串行接口工作方式1为8位异步通信接口,传送一帧数据有1O位,1位起始位(低电平信号),8位数据位(先低位后高位),1位停止位(高电平信号)。波特率可变,由定时器/计数器T1的溢出率和SMOD(PCON.7)决定。其格式如下:,1)发送数据将数据写入发送缓冲器SBUF后,在串行口由硬件自动加入起始位和停止位来构成完整的字符帧,并在移位脉冲的作用下将其通过TXD端向外串行发送,一帧数据发送完毕后硬件自动置TI=1。再次发送数据前,

13、用指令将TI清零。)接收数据在REN=1的条件下,串行口采样RXD端,当采样到从1向0的状态跳变时,就认定为已接收到起始位。随后在移位脉冲的控制下,数据从RXD端输入。在方式1接收数据时,必须同时满足以下两个条件:RI=0,SM2=0或接收到的停止位=1。若有任一条件不满足,则所接收的数据帧就会丢失。在满足上述接收条件时,接收到的8位数据位进入接收缓冲器SBUF,停止位送入RB8,并置中断标志位RI=1。再次接收数据前,需用指令将RI清零。,工作方式串行接口工作方式2为9位异步通信接口,传送一帧数据有11位,1位起始位(低电平信号),8位数据位(先低位后高位),1位可编程位,1位停止位(高电平

14、信号)。其格式如下:,1)发送数据发送数据前,由指令将TB8置位或清零,将数据写入发送缓冲器SBUF后,在串行口由硬件自动加入起始位和停止位来构成完整的字符帧,并在移位脉冲的作用下将其通过TXD端向外串行发送,发送完毕后硬件自动置TI=1。在工作方式2下,波特率只有二种:SMOD0时,波特率为f0SC/64,SMOD1时,波特率为f0SC/32。)接收数据在REN=1的条件下,串行口采样RXD端,当检测到有从1向0的状态跳变,便在移位脉冲的控制下,从RXD端接收数据。在方式2的接收中,也必须同时满足以下两个条件:RI=0,SM2=0或接收到的第9位数据位为1。若有任一条件不满足,则所接收的数据

15、帧就会丢失。在满足上述接收条件时,接收到的8位数据位进入接收缓冲器SBUF中,第9位数据位送入RB8中,并置RI=1。再次接收数据时,需用指令将RI清零。,)工作方式串行接口工作方式3也是9位异步通信接口,传送一帧数据有11位,1位起始位(低电平信号),8位数据位(先低位后高位),1位可编程位,1位停止位(高电平信号)。但波特率与工作方式1相同,由定时器/计数器T1的溢出率和SMOD(PCON.7)决定。也就是说方式3的工作机制与方式2相同,波特率与方式1相同,它是方式1和方式2的综合运用。,多机通信,MCS-51单片机工作在串行方式2、3时,具有多机通信功能,可以实现一台主机与多台从机的信息

16、交流。通信只在主从机之间进行,而从机与从机之间不可以直接通信。下图为8051单片机的主从式多机通讯系统。,RXD,TXD,主机8051,RXD TXD 8051 0#从机,RXD TXD 80511#从机,RXD TXD 8051 N#从机,主从多机通信的过程如下:)使所有的从机工作在方式2或方式3,且SM2位置1,REN=1,以便接收主机发来的地址。)主机发出要寻址的从机的一帧地址信息,其中包括8位需要与之通信的从机地址,第9位TB8=1。)所有从机接收到地址帧后,置RI=1。)各从机相应中断,进入中断服务程序,进行地址比较。对于地址相同的从机,使SM20,准备接收主机随后发来的数据信息;对

17、于地址不符合的从机,仍保持SM2=1的状态,对主机随后发来的数据不予理睬,直至发送新的地址帧。)主机给已被寻址的从机发送控制指令和数据(数据帧的第9位为0)实现主从通信。,串行通信波特率设置,四种工作方式下的波特率计算)工作方式O:波特率固定不变,它与系统的振荡频率fosc的大小有关,其值为fosc/12。)工作方式1和方式3:波特率是可变的,波特率=2SMOD/32定时器T1的溢出率)工作方式2:波特率有两种固定值。)当SM0D=1时,波特率=2SM0D/64fosc=fosc/32)当SM0D=0时,波特率=2SM0D/64fosc=fosc/64,定时器T1的溢出率计算定时器的溢出率是指

18、在1秒钟内产生溢出的次数。定时器的溢出率与定时器的工作模式有关,可以改变单片机内部的特殊功能寄存器TM0D中的T1方式字段中的M1、M0二位,即TM0D.5和TMOD.4位,选择定时器工作的四种工作模式中的一种进行工作。在串行口通信中,一般都使定时器T1工作在模式2。在工作方式2时,定时器T1的溢出一次所需要的时间为:(28N)12时钟周期=(28N)12/fosc(秒)于是,定时器每秒所溢出的次数为:定时器T1的溢出率=fosc/(12(28N)。式中的N为时间常数,即TH1的预置初值。,串行通信应用举例,用MCS-51单片机的串行接口,可以扩展单片机的输入输出端口,可以实现单片机之间的串行

19、异步通信,也可以在多个单片机之间进行串行异步通信,还可以在单片机和PC机之间进行串行通信。应用串行接口可以进行数据通信,也可以进行实时控制和信息检测。,1串行口的编程 串行口需初始化后,才能完成数据的输入、输出。初始化过程如下:)按选定串行口的工作方式设定SCON的SM0、SM1;)对于工作方式2或3,应根据需要在TB8中写入待发送的第9位数据;)若选定的工作方式不是模式0,还需设定接收/发送的波特率;)设定SMOD的状态,以控制波特率是否加倍;)若选定工作方式1或3,则应对定时器T1进行初始化操作,以设定其溢出率。,工作方式0应用举例【例】电路如图所示,试编制程序输入K1K8状态数据,并存入

20、内RAM40H。4014 是一个并入串出转换芯片,Q端为串行数据输出端,CLK为时钟脉冲输入端,P/S为操作控制端,0:锁存并行输入数据,1:允许串行移位操作。,4041,K1 K2 K3 K4 K5 K6 K7 K8,P1 P2 P3 P4 P5 P6 P7 P8,Q8,CLK,RXD,TXD,P1.0,80C51,参考程序如下:KIN:MOV SCON,#00H;串行口方式0 CLR ES;禁止串行中断 CLR P1.0;锁存并行输入数据 SETB P1.0;允许串行移位操作 SETB REN;允许并启动接收(TXD发送移位脉冲)JNB RI,$;等待接收完毕 MOV 40H,SBUF;存

21、入K1K8状态数据 SJMP$,工作方式1应用举例【例】设甲乙两机以串行方式1进行数据传送,fosc=11.0592MHz,波特率为1200b/s。甲机发送的16个字节数据存在内RAM40H4FH单元中,乙机接收后存在内RAM50H为首地址的区域中。串行方式1波特率取决于T1溢出率,设SMOD=0,T1工作在方式2。T1初值=256-11059200/(12*32*1200)=232=E8H,甲机发送子程序,TXDA:MOV TMOD,#20H;置T1定时器工作方式2MOV TL1,#0E8H;置T1计数初值MOV TH1,#0E8H;置T1计数重装值CLR ET1;禁止T1中断SETB TR

22、1;T1启动MOV SCON,#40H;置串行方式1,禁止接收MOV PCON,#00H;置SMOD=0(SMOD不能位操作)CLR ES;禁止串行中断MOV R0,#40H;置发送数据区首地址MOV R2,#16;置发送数据长度TRSA:MOV A,R0;读一个数据MOV SBUF,A;发送JNB TI,$;等待一帧数据发送完毕CLR TI;清发送中断标志INC R0;指向下一字节单元DJNZ R2,TRSA;判16个数据发完否?未完继续RET,乙机接收子程序,RXDB:MOV TMOD,#20H;置T1定时器工作方式2MOV TL1,#0E8H;置T1计数初值MOV TH1,#0E8H;置

23、T1计数重装值CLR ET1;禁止T1中断SETB TR1;T1启动MOV SCON,#40H;置串行方式1,禁止接收MOV PCON,#00H;置SMOD=0(SMOD不能位操作)CLR ES;禁止串行中断MOV R0,#50H;置接收数据区首地址MOV R2,#16;置接收数据长度SETB REN;启动接收RDSB:JNB RI,$;等待一帧数据接收完毕CLR RI;清接收中断标志MOV A,SBUF;读接收数据MOV R0,A;存接收数据INC R0;指向下一数据存储单元DJNZ R2,RDSB;判16个数据接收完否?未完继续RET,工作方式2应用举例【例】设计一个串行方式2收发程序(S

24、MOD=1,波特率固定为fosc/32),甲机串行发送片内RAM50H-5FH中的数据,第9位数据作为奇偶校验位,接到接收方核对正确的回复信号(用FFH表示)后,再发送下一字节数据,否则再重发一遍。乙机接收数据,将其存在首址为40H的内RAM中,并核对奇偶校验位,核对正确,发出回复信号FFH;发现错误,发出回复信号00H,并等待重新接收。,甲机发送参考程序如下,TRS2:MOV SCON,#80H;置串行方式2,禁止接收MOV PCON,#80H;置SMOD=1MOV R0,#50H;置发送数据区首址TRLP:MOV A,R0;读数据MOV C,PSW.0;奇偶标志送TB8MOV TB8,CM

25、OV SBUF,A;启动发送JNB TI,$;等待一帧数据发送完毕CLR TI;清发送中断标志SETB REN;允许接收CLR RI;清接收中断标志JNB RI,$;等待接收回复信号MOV A,SBUF;读回复信号CPL A;回复信号取反JNZ TRLP;非全0(回复信号FFH,错误),转重发INC R0;全0(回复信号=FFH,正确),指向下一数据存储单元CJNE R0,#60H,TRLP;判16个数据发送完否?未完继续RET,乙机接收参考程序如下,RXD2:MOV SCON,#80H;置串行方式2,禁止接收MOV PCON,#80H;置SMOD=1MOV R0,#40H;置接收数据区首址S

26、ETB REN;启动接收RWAP:JNB RI,$;等待一帧数据接收完毕CLR RI;清接收中断标志MOV A,SBUF;读接收数据,并在PSW中产生接收数据的奇偶值JB PSW.0,ONE;P=1,转另判JB RB8,ERR;P=0,RB8=1,接收有错;P=0,RB8=0,接收正确,继续接收RLOP:MOV R0,A;存接收数据INC R0;指向下一数据存储单元RIT:MOV A,#0FFH;置回复信号正确FDBK:MOV SBUF,A;发送回复信号CJNE R0,#50H,RWAP;判16个数据接收完否?未完继续CLR REN;16个数据正确接收完毕,禁止接收RET ONE:JNB RB

27、8,ERR;P=1,RB8=0,接收有错SJMP RIT;P=1,RB8=1,接收正确,继续接收ERR:CLR A;接收有错,置回复信号错误标志SJMP FDBK;转发送回复信号,工作方式3应用举例【例】某双机系统,甲乙两机的时钟频率为11.0592MHz,波特率设定为9600bps,试编写程序将甲机片外RAM50H70H的数据块通过串行口传送到乙机的片内RAM 50H70H单元中,采用奇偶校验检验差错。(1)定时器/计数器T1的初始化,即对和T1相关的特殊功能寄存器TH1、TL1、TMOD、TCON进行设定。对TH1、TL1的设定即为对计数初值的确定。本题中假设SMOD=1,则由公式:波特率

28、=2SOMDT1的溢出率/32可得初值=250=FAH,(2)串行口的初始化,即对和串行口相关的寄存器SCON、PCON进行设定。串行数据的发送内容包括数据和奇偶校验位两部分内容,若将串行口工作方式设定为方式3,允许接收。则SCON=11010000B=0D0H,PCON=80H。(3)甲机:将片外RAM50H70H的内容逐一向乙机发送,发送前奇偶校验位放在TB8中。一帧发送完毕后,如收到乙机回送“数据发送正确(00H)”的应答信号,则可以发送下一个数据;若是“数据不正确(FFH)”的应答信号,则重新发送原来的数据,直至发送正确为止。(4)乙机:接收甲机发送的数据并逐一写入片内RAM50H70

29、H。每接收一帧信息后进行奇偶校验,并与接收到的第9位数据RB8对比;对比正确则向甲机回复“数据正确(00H)”的应答信号,否则回复“数据不正确(FFH)”的应答信号,直至接收完所有数据。,甲机发送参考程序如下,ORG 0100HMOV TMOD,#20H;设定时器T1工作在方式2MOV TH1,#0FAH;设定时器T1自动重装载值MOV TL1,#0FAH;设定时器T1计数初值MOV PCON,#80H;设SMOD=1MOV SCON,#0D0H;串口设定为方式3,允许接收SETB TR1;启动定时器T1MOV R1,#50H;设数据块地址指针MOV R2,#20H;设数据块长度EX723_L

30、P1:MOVX A,R1;取数据MOV C,PMOV TB8,C;奇偶校验位送入TB8MOV SBUF,A;启动发送JNB TI,$;等待发送CLR TI;一帧发送完毕,清零TIJNB RI,$;等待接收CLR RI;一帧接收完毕,清零RIMOV A,SBUF;接收数据送入A中JNZ EX723_LP1;不为“00H”,重发INC R1;修改地址指针DJNZ R2,EX723_LP1;循环发送RET,乙机接收主程序如下,MOV TMOD,#20H;设定时器T1工作在方式2MOV TH1,#0FAH;设定时器T1自动重装载值MOV TL1,#0FAH;设定时器T1计数初值MOV PCON,#80

31、H;设SMOD=1MOV SCON,#0D0H;串口设定为方式3,允许接收SETB TR1;启动定时器T1MOV R1,#50H;设数据块地址指针MOV R2,#20H;设数据块长度EX723_LP2:JBC RI,RECIV;等待接收AJMP EX723_LP2RECIV:MOV A,SBUF;读入接收数据JB PSW.0,LZ;奇偶位为1,转移 JB RB8,ERR;PSW.00,RB81,出错SJMP RIG;正确,转RIGLZ:JNB RB8,ERR;PSW.01,RB80,出错RIG:MOV R1,A;存放数据MOV SBUF,#00H;发送数据正确标志JNB TI,$;等待发送CL

32、R TI;发送完毕,清TIINC R1DJNZ R2,EX723_LP2;继续接收RET;返回ERR:MOV SBUF,#0FFH;发送数据错误标志JNB TI,$;等待发送CLR TI;发送完毕,清TIRET;返回,主从式多机通信应用举例(1)主机向02号从机发送50H一5FH单元内的数据,串行工作方式2。ORG 2000H MAIN:MOV SCON,#98H;串行口方式2,令SM2=0、REN=1、RTB8=1 M1:MOV SBUF,#02H;呼叫02号从机 L1:JBC TI,L2 SJMP L1 L2:JBC RI,S1;等待从机应答 SJMP L2 S1:MOV A,SBUF;取

33、出应答地址,XRL A,#02H;判断是否02号机应答 JZ RIGHT;若02从机,转发送 AJMP M1;若不是,重新呼叫 RIGHT:CLR TB8;联络成功,清除地址标志 MOV R0,#50H;数据区首址送R0 MOV R7,#10H;字节数送R7LOOP:MOV A,R0;取发送数据 MOV SBUF,A;启动发送 WA:JBC TI,CON;判发送中断标志 SJMP WA CON:INC R0 DJNZ R7,LOOP AJMP MAIN END,(2)从机(02号)响应主机呼叫的联络程序ORG 2000H MOV R0,#50H;从机数据区首址 MOV R7,#10H;字节长度

34、 SI:MOV SCON,#0B0H;串行口工作方式2,SM=2,REN=1 SR1:JBC RI,SR2;等待主机发送 SJMP SR1 SR2:MOV A,SBUF;取出呼叫地址 XRL A,#02H;判断是否呼叫主机 JNZ SR1;若不是本机,继续等待 CLR SM2;是本机,清SM2 MOV SBUF,#02H;向主机发应答地址,WT:JBC TI,SR3;发完地址转 SJMP WT;未发送完继续 SR3:JBC RI,SR4;等待主机发送数据 SJMP SR3 SR4:JNB RB8,RIGHT;再判断联络成功否 SETB SM2;未联络成功,恢复等待主机发送 SJMP SR1 R

35、IGHT:MOV A,SBUF;联络成功,取主机发来的信息 MOV R0,A;数据送缓冲区 INC R0 DJNZ R7,SR3;未接收完继续 AJMP SI END,题目:双机通讯内容:单片机串行通讯,需要的数据线少,且适合远距离传送,因此,应用广泛。设计一个双机通讯系统。要求甲机将从内部RAM 40H开始的16个字节数据发送给乙机。乙机接收后将数据存放到内部RAM 60H开始的区域,采用奇校验验证数据传送的正确性。要求:用按键开关启动传送,也可以用按键开关停止传送,数据传送期间LED发光二极管闪烁,闪烁频率为1Hz。硬件:画出硬件电路原理图,考虑按键中断及双机传送数据线的连接。软件:画出程序流程图,编写源程序,考虑LED闪烁问题。调试:记录调试过程,分析调试结果。,实践,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号