当前位置:首页 > 单片机 > 单片机
[导读]A、B两机之间串行通讯(方式1),用‘检验和’校验波特率为2400,发送缓冲区和接收缓冲区都为片内30H开始的16个字节单元。已知:fosc=11.0592MHz。设计A发送,B接收的双方协议如下:1、首先A发送‘AA’信号,B接收到

A、B两机之间串行通讯(方式1),用‘检验和’校验波特率为2400,发送缓冲区和接收缓冲区都为片内30H开始的16个字节单元。已知:fosc=11.0592MHz。

设计A发送,B接收的双方协议如下:

1、首先A发送‘AA’信号,B接收到后发送‘BB’应答;

2、A方最多只发送20次‘AA’,若无应答,置错误标志,退出。

3、A收到‘BB’后,开始发送缓冲区的数据,同时求检验和,共16个字节。

4、B接收数据,存入缓冲区,并同时求检验和。

5、当一个数据块发送完后,A再发送检验和(一个字节)。

6、B接收到A的检验和后,再与本身的检验和比较。

7、若接收正确,B方发送‘00’,否则发送‘EE‘,请求重发。

8、若A方接收到‘00’,结束发送,接收到‘EE’则重发。

A机的通讯程序:

ASTA: MOV TMOD,#20H ;设T1方式2

MOV TH1,#0F4H ;计数初值,波特率=2400

MOV PCON,#0 ;SMOD=0

SETB TR1 ;启动T1

MOV SCON,#50H ;串口方式1,REN=1

ATT0: MOV R6,#200

MOV R7,#20

CLR F0 ;线路故障标志=0

ATT1:MOV SBUF,#0AAH ;发‘AA’联络

AWA1:JBC TI,ARR1 ;查询发送中断标志位

SJMP AWA1

ARR1:JBC RI,ARR2 ;等待接收

DJNZ R6,ARR1

DJNZ R7,ATT1 ;

SETB F0 ;线路故障

QUIT: AJMP EXIT ;退出

ARR2:MOV A,SBUF ;接收对方回应‘BB’

XRL A,#0BBH ;比较应答信号是否正确?

JNZ QUIT ;不正确,退出

ATT2:MOV R0,#30H ;准备发送数据

MOV R7,#16

MOV R6,#0 ;检验和单元

ATT3:MOV SBUF,@R0 ;发送一个字节

MOV A,R6

ADD A,@R0 ;求检验和

MOV R6,A

INC R0

AWA2:JBC TI,ATT4

SJMP AWA2 ;查询发送中断标志

ATT4:DJNZ R7,ATT3 ;计数循环

MOV SBUF,R6 ;数据块发送完,发送检验和

AWA3:JBC TI,ARR3

SJMP AWA3

ARR3:JBC RI,ARR4 ;等待接收对方回应

SJMP ARR3

ARR4:MOV A,SBUF ;接收到对方回应

JNZ ATT2 ;若是‘00’则成功,否则重发。

EXIT: RET



B机通讯程序:(用中断方式开始)

ORG 0000H

LJMP MAIN

ORG 0023H

LJMP BRR1 ;串行中断入口

ORG 0030H

MAIN: 。。。。。 ;主程序



BSTA: MOV TMOD,#20H ;设T2方式2

MOV TH1,#0F4H ;计数初值,波特率=2400

MOV PCON,#0 ;SMOD=0

SETB TR1 ;启动T1

MOV SCON,#50H ;串口方式1,REN=1

SETB ES

SETB EA ;允许中断

。。。。。。。。

BRR1: CLR ES ;串行口中断服务程序

JBC RI,BRR2 ;

SJMP BRR1

BRR2: MOV A,SBUF ;接收A机联络信号

XRL A,#0AAH

JZ BTT1 ;正确

AJMP EXIT ;错误,退出

BTT1: MOV SBUF,#0BBH ;发送应答

BWA1:JBC TI,BRR3

SJMP BWA1

BRR3: MOV R0,#30H ;准备接收数据

MOV R7,#10H

MOV R6,#0

BRR4:JBC RI,BRR5

SJMP BRR4

BRR5:MOV A,SBUF ;接收一个字节

MOV @R0,A ;存入缓冲区

INC R0

ADD A,R6 ;

MOV R6,A ;求检验和

DJNZ R7,BRR4 ;数据块计数

BWA2:JBC RI,BRR6

SJMP BWA2

BRR6:MOV A,SBUF ;接收对方检验和

XRL A,R6 ;与本机的比较

JZ BTT2

MOV SBUF,#0FFH ;不同,发送‘FF’

BWA3:JBC TI,BRR3 ;准备接收重发

SJMP BWA3

BTT2:MOV SBUF,#0 ;正确,发送‘00’

EXIT: SETB ES

RETI



例3、 两机通讯在方式2或3,用第9位作奇偶校验。

发送方:

,,,,,,

TTT: MOV SCON,#80H ;方式2

MOV A,#data ;data为一字节数据

MOV C,PSW.0 ;取奇偶位

MOV TB8,C ;奇偶位送到TB8位

MOV SBUF,A ;发送一个字节

LOOP:JBC TI,NEXT内容来自单片机之家www.dpj100.com

SJMP LOOP

NEXT: ,,,,



接收方:

,,,,,,

RRR: MOV SCON,#90H ;方式2,允许接收

LOOP: JBC RI,RECE

SJMP LOOP

RECE: MOV A,SBUF ;取出接收到的字节

JB PSW。0,ONE ;判断接收方的奇偶值

JB RB8,ERR ;判断发送方的奇偶值

SJMP RIGHT

ONE : JNB RB8,ERR

RIGHT: ,,,,,, ;接收正确



ERR: ,,,,,,, ;接收有错

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭