版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本章要求:本章要求:熟悉熟悉MCSMCS5151串行口的基本结构和工作串行口的基本结构和工作原理,掌握原理,掌握MCSMCS5151串行口的四种工作方式及其串行口的四种工作方式及其应用,熟练掌握串行口控制寄存器各位的含义及应用,熟练掌握串行口控制寄存器各位的含义及使用方法,了解单片机多机通信的工作原理,熟使用方法,了解单片机多机通信的工作原理,熟悉和掌握单片机通信程序的设计方法。悉和掌握单片机通信程序的设计方法。一、通信的基本方式一、通信的基本方式 并行通信:并行通信:数据的各位同时传送。传送距离小于数据的各位同时传送。传送距离小于30米。米。并行通信并行通信串行通信串行通信串行通信:串行通信
2、:数据的各位逐位送出,只需一对传送线即数据的各位逐位送出,只需一对传送线即可完成传送。传送距离:几米可完成传送。传送距离:几米几千公里。几千公里。二、串行通信的工作方式二、串行通信的工作方式异步通信异步通信同步通信同步通信1、异步通信:、异步通信:数据按字符传送,每一个字符均按固定的字符格式传送,又数据按字符传送,每一个字符均按固定的字符格式传送,又被称为帧。被称为帧。字符的帧格式字符的帧格式每一个字符帧包含每一个字符帧包含起始位:起始位:数据位:数据位:校验位:校验位:停止位:停止位:数据位、数据位、 校验位、校验位、 停止位四部分。停止位四部分。起始位、起始位、用用“0” 表示,表示,1位
3、位58位,位,低位在前,高位在后低位在前,高位在后1位或无位或无用用“1”表示,表示,1位、位、1.5位或位或2位位串行通信的波特率串行通信的波特率传送数据位的速率,一般指每秒种传送二进制代码的位数。传送数据位的速率,一般指每秒种传送二进制代码的位数。单位:单位:bps(波特)。(波特)。例:要求每秒传送例:要求每秒传送120120个字符帧,每帧为个字符帧,每帧为1010位。(位。(1 18 81 1)解:解: 波特率波特率=120=12010=120010=1200波特波特每位数据传送时间每位数据传送时间 有效数据位传输速率有效数据位传输速率1/12001/1200 0.83ms0.83ms
4、2、同步通信:、同步通信:数据按块传送,包括同步字符、数据块。数据按块传送,包括同步字符、数据块。1201208 8960960位位/ /秒秒三、串行通信的制式三、串行通信的制式单工单工半双工半双工全双工全双工数据流数据流(c)全双工方式)全双工方式(a)单工方式)单工方式数据流数据流接收器接收器接收器接收器接收器接收器发送器发送器发送器发送器发送器发送器(b)半双工方式)半双工方式数据流数据流接收器接收器接收器接收器发送器发送器发送器发送器图图92 串行通信传输方式串行通信传输方式四、四、通用异步接收通用异步接收/发送器(发送器(UART)用于数据串、并转换的串行接口电路。用于数据串、并转换
5、的串行接口电路。发送器发送器接收器接收器控制器控制器 主要功能主要功能 数据串行化数据串行化/反串行化反串行化 格式信息的插入和滤除格式信息的插入和滤除 错误校验错误校验数据反串行化数据反串行化数据串行化数据串行化全双工的串行口全双工的串行口P3.0(RXD)、)、P3.1 (TXD) 能同时进行发送和接收。既可能同时进行发送和接收。既可作作UART用用,也可,也可作同步移位寄存器作同步移位寄存器使用,其使用,其帧格式可有帧格式可有8位、位、10位位和和11位位,并能设置各种波特率。,并能设置各种波特率。MCS-51单片机的串行口主要由单片机的串行口主要由2个物理上独立的串个物理上独立的串行数
6、据缓冲器行数据缓冲器SBUF(接收缓冲器和发送缓冲器)、(接收缓冲器和发送缓冲器)、输入移位寄存器和控制器输入移位寄存器和控制器等组成。等组成。一、串行口结构一、串行口结构一、串行口结构一、串行口结构图图97 串行口内部结构示意简图串行口内部结构示意简图MCS-51单片机的串行口主要由单片机的串行口主要由2个物理上独立的串行数据缓冲器个物理上独立的串行数据缓冲器SBUF、输、输入移位寄存器和控制器入移位寄存器和控制器等组成等组成。 串行口的发送和接收是对串行口的发送和接收是对SBUF进行进行读或写读或写操作完成的,操作完成的,它它们共用一个地址们共用一个地址99H(SBUF)。发送:发送:对于
7、对于发送发送缓冲器,缓冲器, 只能写不能读只能写不能读,MOV SBUF,A对于对于接收接收缓冲器,缓冲器, 只能读不能写,只能读不能写, MOV A ,SBUF执行执行写发送缓冲器写发送缓冲器命令:命令:MOV SBUF,A即启动发送即启动发送,接收:接收: 当当RI=“0 ”时,置允许接收位时,置允许接收位 REN “1”时,时,即启动接收即启动接收,执行读命令执行读命令MOV A,SBUF时,即可从接收时,即可从接收SBUF取出信息取出信息并由内部总线送并由内部总线送CPU。发送完一帧,使中断标志发送完一帧,使中断标志TI置置“1”。接收完一帧,使中断标志接收完一帧,使中断标志RI置置“
8、1”。当当 TI“0”时时二、串行接口控制寄存器二、串行接口控制寄存器1、串行控制寄存器、串行控制寄存器SCON 98H见表格见表格7-1位地址位地址9F9E9D9C9B9A9998SCONSM1SM2RENTB8RB8TIRI接收中断标志接收中断标志发送中断标志发送中断标志接收数据第接收数据第9位位发送数据第发送数据第9位位接收控制接收控制0:禁止接收:禁止接收1:允许接收:允许接收多机通信多机通信0:单机对单:单机对单机机1:多机通信:多机通信位地址位地址9F9E9D9C9B9A9998SCONSM1SM2RENTB8RB8TIRISM0SM0SMl工作方式工作方式方式简单描述方式简单描述
9、波特率波特率000同步移位寄存器同步移位寄存器I/Ofosc/1201110位位UART可变可变10211位位UART fosc/32 或或 fosc/6411311位位UART可变可变1、串行控制寄存器、串行控制寄存器SCON 98H(1 1)SM0SM0,SM1SM1:串行口工作方式选择位:串行口工作方式选择位(2 2)SM2SM2:多机通信控制位,用于方式:多机通信控制位,用于方式2 2,3 3SM2 =0 不允许多机通信不允许多机通信1 允许多机通信允许多机通信(在方式(在方式0,SM20 )SM0SM1SM2RENTB8RB8TIRISCON(3)REN:允许接收控制位允许接收控制位
10、REN =0 禁止禁止接收接收1 允许允许接收接收(4)TB8:发送的第发送的第9位数据位位数据位 可用作校验位或地址可用作校验位或地址/数据标识位数据标识位 (多机通信时)(多机通信时)TB8 =0 数据帧数据帧1 地址帧地址帧(5)RB8:接收的第接收的第9位数据位位数据位 可以是约定的校验位或地址可以是约定的校验位或地址/数据标识位数据标识位 (多机通信时)(多机通信时)在方式在方式1,若,若SM2=1,RB8中是收到的停止位中是收到的停止位在方式在方式0,RB8不用不用串行接收开关串行接收开关SM0 SM1 SM2 REN TB8RB8TIRISCON(6)TI:串行口发送中断请求标志
11、位串行口发送中断请求标志位(7)RI:串行口接收中断请求标志位串行口接收中断请求标志位 硬件置硬件置 1 (发送或接收完一帧数据(发送或接收完一帧数据) 软件清软件清 0 (中断方式,查询方式(中断方式,查询方式 ) 2、电源控制寄存器、电源控制寄存器 PCON 87H3、中断允许控制寄存器、中断允许控制寄存器 IE A8HSMOD 波特率波特率选择位选择位SMOD=1时,方时,方式式1、2和和3的波特的波特率加倍率加倍PCONEAES IESM0 SM1 SM2 REN TB8RB8TIRI三、串行口的工作方式三、串行口的工作方式(1 1)SM0 SM1SM0 SM10 00 0(2 2)数
12、据帧格式:)数据帧格式:一帧一帧8 8位,无起始位和停止位。位,无起始位和停止位。(3 3)波特率)波特率 B B = fosc/12 = fosc/12(4 4)RXDRXD(P3.0P3.0):):数据输入数据输入/ /输出端。输出端。 TXDTXD(P3.1P3.1):):同步脉冲输出端同步脉冲输出端,每个脉冲对应一个数据位。,每个脉冲对应一个数据位。(5 5)发送过程:)发送过程: TI=0TI=0,1 1、 方式方式0 0:同步移位寄存器同步移位寄存器I/OI/O方式,方式, 用于扩展并行用于扩展并行I/I/O接口接口。MOV SBUFMOV SBUF,A A 指令启动发送,指令启动
13、发送, 一帧发送结束,一帧发送结束,TITI置置1 1。接收过程:接收过程:REN = 1REN = 1且且 RI = 0RI = 0,启动接收,启动接收,一帧接收完毕,一帧接收完毕,(RXDRXD)(RXDRXD)将将接收数据装入接收数据装入SBUFSBUF ,RIRI置置1 1。 发送时序发送时序写入写入SBUFRXD输出输出TXDTID0D1D2D3D4D5D6D7写写REN=1RI=0RXD输入输入RI 接收时序接收时序(a)(b) 数据从数据从RXD(P3.0)引脚串行输出)引脚串行输出/输入输入, 低位低位在在先先,高位高位在在后后; TXD(P3.1)引脚输出移位脉冲,其频率为)
14、引脚输出移位脉冲,其频率为foc/12; 发送发送/接收完一帧后,相应的中断请求标志位接收完一帧后,相应的中断请求标志位TI/RI置置1。 串行口方式串行口方式0的应用的应用 在串行方式在串行方式0时,通过外接串入并出或并入串出的移位时,通过外接串入并出或并入串出的移位寄存器芯片(如寄存器芯片(如74LS164、74LS165 )将串行口转换成)将串行口转换成并行口使用。并行口使用。并行并行I/O口的一种扩展方式口的一种扩展方式P3.0P3.1P1.08031D1RXDTXDD2CP74LS164CLR 1 2 8 9并行输出并行输出P3.0P3.1P1.08031QRXDTXDCP74LS1
15、659 152 1图图(b) 方式方式0扩展并行输入口扩展并行输入口并行输入并行输入P1.1图图(a) 方式方式0扩展并行输出口扩展并行输出口方式方式0扩展并行输出口扩展并行输出口RXD +5V 8031TXD 74LS1649999fedcbagfbagdce8888cpcpcpcpDSADSBQ0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 g f e d c b a 74LS164DSADSBQ0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 74LS164DSADSBQ0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 74LS164DSADSBQ0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 g
16、f e d c b a g f e d c b a g f e d c b a 2 2、 方式方式1 1:(1 1)SM0 SM1SM0 SM10 10 1(2 2)数据帧格式:)数据帧格式:一帧一帧1010位,位,1 1位起始位位起始位8 8位数据位位数据位1 1位停止位。位停止位。(3 3)波特率)波特率 B=(2B=(2SMOD/32)/32)T1T1溢出率溢出率(4 4) RXDRXD:接收数据端。接收数据端。 TXDTXD:发送数据端。发送数据端。(5 5)发送过程:)发送过程: TI=0 TI=0,1010位异步收位异步收/ /发发MOV SBUFMOV SBUF,A A 指令启动
17、发送,指令启动发送, 一帧发送结束,一帧发送结束,TITI置置1 1。接收过程:接收过程:REN = 1REN = 1且且 RI = 0RI = 0,启动接收,启动接收,一帧接收完毕,一帧接收完毕, 若满足若满足 RI RI0 0 SM2 SM20 0 或或 接收到的停止位为接收到的停止位为1 1则则本次接收有效本次接收有效,将,将接收数据装入接收数据装入SBUFSBUF,停止位装入,停止位装入RB8RB8,并并使使RIRI置置1 1;否则丢弃接收数据,不置位;否则丢弃接收数据,不置位RIRI。(TXDTXD)(RXDRXD)写入写入SBUF采样采样(a) 发送时序图发送时序图TXD数据输出数
18、据输出TID0D1D2D3D4D5D6D7停止位停止位起始位起始位RXD输入数据输入数据(b) 接收时序图接收时序图D0D1D2D3D4D5D6D7停止位停止位起始位起始位RI检测检测负跳变负跳变当当REN=1REN=1,CPUCPU开始采样开始采样RXDRXD引脚负跳变信号,若出现负跳变,才引脚负跳变信号,若出现负跳变,才进入数据接收状态,在接收移位脉冲同步下,开始接收一帧数据。进入数据接收状态,在接收移位脉冲同步下,开始接收一帧数据。数据采样在每个数据位中间数据采样在每个数据位中间, ,连续采样连续采样3 3次次, ,并并3 3中取中取2 2保留采样值。保留采样值。方式方式1发送、接收时序
19、图发送、接收时序图(2 2)波特率)波特率 方式方式2 2:B=(2B=(2SMOD/64)/64)fosc fosc 。 方式方式3 3:B=(2B=(2SMOD/32)/32)T1T1溢出率溢出率(3 3) RXDRXD:接收数据端。接收数据端。 TXDTXD:发送数据端。发送数据端。(4 4)发送过程:)发送过程:TI=0TI=0, 3 3、 方式方式2 2和方式和方式3 3:(1 1)数据帧格式:)数据帧格式:一帧一帧1111位,位,1 1位起始位位起始位9 9位数据位位数据位1 1位停止位。位停止位。 1111位异步收位异步收/ /发发先装待发送数据第先装待发送数据第9 9位至位至T
20、B8,TB8,一帧发送结束,一帧发送结束,TITI置置1 1。接收过程:接收过程:REN = 1REN = 1且且 RI = 0RI = 0,启动接收,启动接收,一帧接收完毕,一帧接收完毕, 若满足若满足 RI RI0 0 SM2 SM20 0 或或 接收到的第接收到的第9 9位数据为位数据为1 1则则本次接收有效本次接收有效,将,将接收数据装入接收数据装入SBUFSBUF,第,第9 9位数据装入位数据装入RB8RB8,并使并使RI=1RI=1;否则丢弃接收数据,不置位;否则丢弃接收数据,不置位RIRI。第第9 9位数据位在位数据位在TB8/RB8TB8/RB8中,常用作校验位和多机通讯标识位
21、。中,常用作校验位和多机通讯标识位。 由由MOV SBUFMOV SBUF,A A 指令启动发送,指令启动发送,(TXDTXD)(RXDRXD)方式方式2、3发送发送/接收时序图接收时序图发发送送时时序序写入写入SBUFTXD输出输出TIRXD输入输入接接收收时时序序RID0D1D2D3D4D5D6TB8停止位停止位起始位起始位D7D0D1D2D3D4D5D6RB8停止位停止位起始位起始位D7检测检测负跳变负跳变串行口四种工作方式中断条件串行口四种工作方式中断条件在在TI0时时,发送完一帧数据,发送完一帧数据,TI置置1,响应后,响应后软件清软件清0接收:接收:发送:发送:在在 RENREN1
22、 1,同时,同时 RIRI0 0 时时方式方式0方式方式1方式方式2、3接收完一帧数据接收完一帧数据RI 置置 1响应后软件清响应后软件清0 RI RI0 0 SM2 SM20 0 或接收或接收到的停止位为到的停止位为1 1接收有效,接收有效,RIRI置置1 1响应后软件清响应后软件清0 RI RI0 0 SM2 SM20 0 或接收或接收到的第到的第9 9位数据为位数据为1 1接收有效,接收有效,RIRI置置1 1响应后软件清响应后软件清0四、四、串行口波特率的设定串行口波特率的设定波特率固定,波特率固定,方式方式2 2:方式方式0 0:B B fosc/12fosc/12可选的两种波特率,
23、可选的两种波特率, B B (2(2SMOD /64)/64)fosc fosc 方式方式1 1、3 3:波特率可变波特率可变,用定时器用定时器T1T1作波特率发生器。作波特率发生器。B = (2B = (2SMOD/32) /32) T1 T1溢出率。溢出率。T1T1溢出率溢出率 即即T1T1每秒钟溢出几次每秒钟溢出几次1/T11/T1的溢出周期的溢出周期T1T1的溢出周期的溢出周期 T1T1的定时时间的定时时间设设T1T1工作在方式工作在方式2 2,计数器初值为,计数器初值为X;X;(2 - 初值)初值)TPnB =B =2 2SMOD3232(2 - 初值)初值)TPn1 1= =2 2
24、SMOD3232foscfosc1212(256256X X)四、四、串行口波特率的设定串行口波特率的设定(方式(方式1 1、3 3 )= =2 2SMOD3232foscfosc1212(256256X X)B B在方式在方式1 1、3 3,根据波特率选择,根据波特率选择T1T1工作方式,计算时间常数。工作方式,计算时间常数。例、要求通信波特率例、要求通信波特率1200 bit/s1200 bit/s,求计数器初值,求计数器初值TH1TH1设设SMODSMOD0 0, foscfosc11.059 MHZ11.059 MHZ= =1 1323211.05911.0591212(256256T
25、H1TH1)12001200TH1TH1232232E8HE8H当波特率很低时,当波特率很低时,T1T1选方式选方式1 1,需考虑,需考虑T1T1重装时间常数时间。重装时间常数时间。= =2 2SMOD32321 1T1T1定时时间定时时间B B(2(2SMOD/32) /32) T1 T1溢出溢出率率波特率波特率(方式方式1、3)fosc=6Mfosc=12M fosc = 11.059MSMODT1方式方式初值初值SMODT1方式方式初值初值SMODT1方式方式初值初值62.5k 12FFH 19.2k 1 2 FEH 12FDH9.6k 1 2 FDH 02FDH4.8k 0 2 FDH
26、12F3H02FAH2.4k 02FAH12F3H02F4H1.2k02F3H02E6H02E8H60002E6H02CCH02D0H30002CCH0298H02A0H1100272H01FEEBH01FEFFH55H01FFEBH 表格表格 7-2 常用波特率和定时器常用波特率和定时器T1初值关系表初值关系表五、单片机的多机通讯TXDRXD80310#从机TXDRXD主机TXDRXD80311#从机TXDRXD8031n#从机单片机的多机通信(方式单片机的多机通信(方式2、方式、方式3)(1)主机)主机SM20;所有从机;所有从机SM21,以便接收主机发来的地址。,以便接收主机发来的地址。
27、(2)主机给从机发送地址时,第)主机给从机发送地址时,第9位上发位上发1(TB81),以指示从),以指示从机接收地址。机接收地址。(3)所有从机在)所有从机在SM2=1,RB81,RI0时接收主机发来的从机地时接收主机发来的从机地址,进入相应的中断服务程序,并和本机地址比较,确认是否为址,进入相应的中断服务程序,并和本机地址比较,确认是否为被寻址从机。被寻址从机。(4)被寻址从机通过指令清除)被寻址从机通过指令清除SM2,以正常接收数据,并向主机发,以正常接收数据,并向主机发回接收到的从机地址,供主机核对。未被寻址的从机保持回接收到的从机地址,供主机核对。未被寻址的从机保持SM21,并退出各自
28、中断。,并退出各自中断。(5)完成主机和被寻址从机之间的数据通信,被寻址从机在通信完)完成主机和被寻址从机之间的数据通信,被寻址从机在通信完成后重新使成后重新使SM21,并退出中断服务程序,等待下次通信。,并退出中断服务程序,等待下次通信。MOV THx,#X MOV TLx,#X 写写PCON,设置波特率倍数关系,设置波特率倍数关系 串行口初始化步骤:串行口初始化步骤:写写TMOD,设定定时器工作方式,设定定时器工作方式设置计数器初值,选定串口波特率设置计数器初值,选定串口波特率写写IE,开放相应中断,开放相应中断写写TCON,启动定时器,启动定时器MOV TMOD,# 方式字方式字 SET
29、B EASETB ESSETB TRx写写SCON,设定串口工作方式,设定串口工作方式MOV SCON,# 方式字方式字 MOV PCON,# 00(80H) 例例1 1、串行口方式、串行口方式0 0的应用的应用RXD +5V 8031TXD 74LS1649999fedcbagfbagdce8888cpcpcpcpDSADSBQ0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 g f e d c b a 74LS164DSADSBQ0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 74LS164DSADSBQ0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 74LS164DSADSBQ0 Q1 Q2 Q
30、3 Q4 Q5 Q6 Q7 g f e d c b a g f e d c b a g f e d c b aORG0200HDIR: MOVR7,04HMOVR0,50HMOVSCON,00HDL0: MOVA,R0MOVDPTR,DTABMOVC A,ADPTRMOVSBUF,ADL1: JNBTI,DL1CLRTIINCR0DJNZR7,DL0SJMPDTAB:DB3FH,06H;”0”,”1”DB5BH,4FH;”2”,”3”DB66H,6DH;”4”,”5”DB7DH,07H;”6”,”7”DBFH,67H;”8”,”9”DB77H,7CH;”A”,”B”DB39H,5EH;”C”,
31、”D”DB79H,71H;”E”,”F”END(1 1)查询方式:)查询方式:ORG0000HAJMPMNORG0023HAJMPSINTMN:MOVR0,50HMOVSCON,00H MOVIE,90HMOVDPTR,DTABMOVA,R0MOVC A,ADPTRMOVSBUF,ADL1: CJNER0,53H,DL1CLRESSJMPSINT: CLRTIINCR0MOVA,R0MOVC A,ADPTRMOVSBUF,ARETI(1 1) 中断方式:中断方式:DTAB:DB3FH,06H;”0”,”1”DB5BH,4FH;”2”,”3”DB66H,6DH;”4”,”5”DB7DH,07H;
32、”6”,”7”DBFH,67H;”8”,”9”DB77H,7CH;”A”,”B”DB39H,5EH;”C”,”D”DB79H,71H;”E”,”F”END例例2、串行口自发自收程序(实验四)、串行口自发自收程序(实验四) 直接将直接将80318031的发送端的发送端TXDTXD与接收端相连接,并采用方与接收端相连接,并采用方式式3 3进行串行数据传送,共发送进行串行数据传送,共发送1616个数据个数据00000F0F,接收端,接收端接收数据置于接收数据置于40404FH4FH单元内。单元内。TXD/P3.1RXD/P3.0 80311.若将若将TMODTMOD中内容设置为中内容设置为#23H
33、#23H (MOV MOV TMODTMOD,#23H#23H),将),将SETB TR1 SETB TR1 用两用两个空指令取代,定时器能否正常工个空指令取代,定时器能否正常工作?作?2.计算波特率值。计算波特率值。3.修改修改SCONSCON值为值为#0F8H#0F8H,#0F0H#0F0H,结果如何?能否成功?结果如何?能否成功?思考题:思考题: ORG 0000HSTART: LJMP MAIN ORG 0023H LJMP TRNT ORG 003FHMAIN: MOV SP,60H MOV R0,40H MOV TL1,0F0H MOV TH1,0F0H MOV TMOD,20H
34、SETB TR1 MOV IE,90H MOV SCON,0D0H MOV A,00H MOV SBUF,A CJNE A,10H, CLR ES SJMP ORG0070HTRNT: JBTI,TRANS JBRI,RECIE RETITRANS: INC A MOV SBUF,A CLR TI RETIRECIE: MOV R0,SBUF INC R0 CLR RI RETI END 89C5189C51串行口按双工方式收发串行口按双工方式收发ASCIIASCII字符,最高位用来作奇偶校验位字符,最高位用来作奇偶校验位, ,采用奇校验方式,要求传送的波特率为采用奇校验方式,要求传送的波特率
35、为1200bps1200bps,并设发送数据区的首地址为,并设发送数据区的首地址为20H20H,接收数据区的首地址为,接收数据区的首地址为40H40H。编写有关通信程序(串口采用方式。编写有关通信程序(串口采用方式1 1)。)。 例例7-4ORG0000HAJMPMAINORG0023HAJMPSBRIORG0100HMAIN: MOV TMOD,#20H;定时器;定时器1设为方式设为方式2MOV TL, #0F4H;定时器初值;定时器初值MOV TH1, #0F4HSETB TR1;启动定时器;启动定时器1MOV SCON,#50H;串行口设为方式;串行口设为方式1,REN1MOV R0,
36、#20H;发送数据区首址;发送数据区首址MOV R1, #40H;接收数据区首址;接收数据区首址ACALL SOUT;输出一个字符;输出一个字符SETBES;开中断;开中断SETBEASJMP $;等待中断;等待中断ORG 0200HSBRI:JNB RI,SENDACALL SINSJMP NEXTSEND: ACALL SOUTNEXT: RETICJNECJNER0,#30H,$R0,#30H,$CLRCLRESES发送子程序:发送子程序: SOUTSOUT: CLRCLRTITIMOVMOVA A,R0R0;取发送数据到;取发送数据到A AMOVMOVC C,P P;奇偶标志位送;奇偶
37、标志位送C CCPLCPLC C;奇校验;奇校验MOVMOVAcc.7Acc.7,C C;加到;加到ASCIIASCII码高位码高位INCINCR0R0;修改发送数据指针;修改发送数据指针MOVMOVSBUFSBUF,A A;发送;发送ASCIIASCII码码RETRET接收子程序:接收子程序: SINSIN:CLRCLRRIRIMOVMOVA A,SBUFSBUF;读出接收缓冲区内容;读出接收缓冲区内容MOVMOVC C,P P;奇偶标志位送;奇偶标志位送C CCPLCPLC C;奇校验;奇校验ANLANLA A,#7FH#7FH;删去校验位;删去校验位MOVMOVR1R1,A A;读入接收缓冲区;读入接收缓冲区INCINCR1R1;修改接收数据指针;修改接收数据指针RETRETJCJCERRERR 编制一个发送程序,将片内编制一个发送程序,将片内RAMRAM中中50H50H5FH5FH的数据串行发送,串行口的数据串行发送,串行口设定为工作方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论