版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本章要求:本章要求:熟悉熟悉MCSMCS5151串行口的基本结构和工作串行口的基本结构和工作原理,掌握原理,掌握MCSMCS5151串行口的四种工作方式及其串行口的四种工作方式及其应用,熟练掌握串行口控制寄存器各位的含义及应用,熟练掌握串行口控制寄存器各位的含义及使用方法,了解单片机多机通信的工作原理,熟使用方法,了解单片机多机通信的工作原理,熟悉和掌握单片机通信程序的设计方法。悉和掌握单片机通信程序的设计方法。7.3 7.3 80518051串行口的编程和应用串行口的编程和应用7.2 7.2 串行口的结构和控制串行口的结构和控制7.1 7.1 串行通信的基本概念串行通信的基本概念 7.1.1
2、 数据通信数据通信7.1 串行通信的基本概念串行通信的基本概念(a)并行传输(b)串行传输图7.1 两种通信方式一、通信的基本方式一、通信的基本方式 并行通信:并行通信:数据的各位同时传送。传送距离:小于数据的各位同时传送。传送距离:小于30米。米。并行通信并行通信串行通信串行通信串行通信:串行通信:数据的各位逐位送出,只需一对传送线即可完成传送。数据的各位逐位送出,只需一对传送线即可完成传送。传送距离:几米传送距离:几米几千公里。几千公里。7.1.2 串行通信的传输方式串行通信的传输方式 (a)单工方式 (c)全双工方式单工单工半双工半双工全双工全双工(b)半双工方式图7.2 串行通信的传输
3、方式7.1.3串行通信的工作方式串行通信的工作方式 数据位 停止位 起始位 D0 D1 D2 D3 D4 D5 D6 D7 校验位 停止位 空闲位 起始位 数据位 1 0 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 1 1 1 1 0 第 N 个字符 第 N+1 个字符 图7.3 串行异步通信的帧格式(有空闲位)异步通信异步通信同步通信同步通信1、异步通信:、异步通信:数据按字符传送,每一个字符均按固定的字符格式传送,又被称为帧。数据按字符传送,每一个字符均按固定的字符格式传送,又被称为帧。字符的帧格式字符的帧格式每一个字符帧包含四部分:每一个字符帧包含四部分:起始
4、位:起始位:数据位:数据位:校验位:校验位:停止位:停止位:数据位、数据位、校验位、校验位、 停止位。停止位。用用“0” 表示,表示,1位位58位,位,低位在前,高位在后低位在前,高位在后1位或无位或无用用“1”表示,表示,1位、位、1.5位或位或2位位起始位、起始位、 3、串行通信的波特率、串行通信的波特率 同步字符 1 同步字符 2 数据 数据 数据 数据 图7-4 串行同步通信格式2、同步通信:、同步通信:数据按块传送,包括同步字符、数据块。数据按块传送,包括同步字符、数据块。波特率:波特率:传送数据位的速率,表示指每秒种传送二进制代码的位数。传送数据位的速率,表示指每秒种传送二进制代码
5、的位数。单位:单位:bps(波特)。(波特)。例:要求每秒传送例:要求每秒传送120120个字符帧,每帧为个字符帧,每帧为1010位。(位。(1 18 81 1)解:解: 波特率波特率=120=12010=120010=1200波特波特每位数据传送时间每位数据传送时间 有效数据位传输速率有效数据位传输速率1/12001/1200 0.83ms0.83ms1201208 8960960位位/ /秒秒串行通信接口串行通信接口 UART的结构示意图远距离串行通信远距离串行通信7.2串行口的结构和控制串行口的结构和控制 串行口内部结构示意简图串行口内部结构示意简图一、串行口的结构一、串行口的结构MCS
6、-8051通过引脚RXD(P3.0,串行数据接收端)和引脚TXD(P3.1,串行数据发送端)与外界进行通信。主要由主要由2 2个物个物理上独立的串行数据缓冲器理上独立的串行数据缓冲器SBUFSBUF、输入移位寄存器和控制器、输入移位寄存器和控制器等组成等组成。 串行口的发送和接收是对串行口的发送和接收是对SBUF进行进行读或写读或写操作完成的,操作完成的,它它们共用一个地址们共用一个地址99H(SBUF)。发送:发送:对于对于发送发送缓冲器,缓冲器, 只能写不能读只能写不能读,MOV SBUF,A对于对于接收接收缓冲器,缓冲器, 只能读不能写,只能读不能写, MOV A ,SBUF执行执行写发
7、送缓冲器写发送缓冲器命令:命令:MOV SBUF,A即启动发送即启动发送,接收接收:当当RI=“0 ”时,置允许接收位时,置允许接收位 REN “1”时,时,即启动接收即启动接收, 执行读命令执行读命令MOV A,SBUF时,即可从接收时,即可从接收SBUF取出信取出信息并由内部总线送息并由内部总线送CPU。发送完一帧,使中断标志发送完一帧,使中断标志TI置置“1”。接收完一帧,使中断标志接收完一帧,使中断标志RI置置“1”。当当 TI“0”时时:二、串行接口控制寄存器二、串行接口控制寄存器1、串行控制寄存器、串行控制寄存器SCON 98H1、串行控制寄存器、串行控制寄存器SCON 98H(1
8、 1)SM0SM0,SM1SM1:串行口工作方式选择位:串行口工作方式选择位(2 2)SM2SM2:多机通信控制位,用于方式:多机通信控制位,用于方式2 2,3 3SM2 =0 不允许多机通信不允许多机通信1 允许多机通信允许多机通信(在方式(在方式0,SM20 )SM0SM1SM2RENTB8RB8TIRI表7.1 串行口的工作方式选择SM0SM1工作方式说明波特率00方式0同步移位方式fosc/1201方式110位异步收发定时器T1控制10方式211位异步收发fosc/32或fosc/6411方式311位异步收发定时器T1控制单片机的多机通讯TXDRXD80310#从机TXDRXD主机TX
9、DRXD80311#从机TXDRXD8031n#从机1.SM21.SM20 SM20 SM21 SM21 SM21 SM21 SM21 1 2. TB8 2. TB81 1,发送地址信号,发送地址信号 3. 3.接收地址信号接收地址信号, , RB8RB81 1 5. 5. 选定从机,发送数据信号选定从机,发送数据信号4.SM24.SM20 SM20 SM21 1 SM2SM20 0 SM2SM21 1单片机的多机通信(方式单片机的多机通信(方式2、方式、方式3)(1)主机)主机SM20;所有从机所有从机SM21,以便接收主机发来的地址。,以便接收主机发来的地址。(2)主机给从机发送地址时,第
10、)主机给从机发送地址时,第9位上发位上发1(TB81),以指示从),以指示从机接收地址。机接收地址。(3)所有从机在)所有从机在SM2=1,RB81,RI0时接收主机发来的从机时接收主机发来的从机地址,进入相应的中断服务程序,并和本机地址比较,确认是否地址,进入相应的中断服务程序,并和本机地址比较,确认是否为被寻址从机。为被寻址从机。(4)被寻址从机通过指令清除)被寻址从机通过指令清除SM2,以正常接收数据,并向主机,以正常接收数据,并向主机发回接收到的从机地址,供主机核对。未被寻址的从机保持发回接收到的从机地址,供主机核对。未被寻址的从机保持SM21,并退出各自中断。,并退出各自中断。(5)
11、完成主机和被寻址从机之间的数据通信,被寻址从机在通信)完成主机和被寻址从机之间的数据通信,被寻址从机在通信完成后重新使完成后重新使SM21,并退出中断服务程序,等待下次通信。,并退出中断服务程序,等待下次通信。SCON(3)REN:允许接收控制位允许接收控制位REN =0 禁止禁止接收接收1 允许允许接收接收(4)TB8:发送的第发送的第9位数据位位数据位 可用作校验位或地址可用作校验位或地址/数据标识位数据标识位(多机通信时)(多机通信时)TB8 =0 数据帧数据帧1 地址帧地址帧(5)RB8:接收的第接收的第9位数据位位数据位 可以是约定的校验位或地址可以是约定的校验位或地址/数据标识位数
12、据标识位 (多机通信时)(多机通信时)在方式在方式1,RB8中是收到的停止位中是收到的停止位在方式在方式0,RB8不用不用串行接收开关串行接收开关SM0 SM1 SM2 REN TB8RB8TIRISCON(6)TI:串行口发送中断请求标志位串行口发送中断请求标志位(7)RI:串行口接收中断请求标志位串行口接收中断请求标志位 硬件置硬件置 1 (发送或接收完一帧数据)(发送或接收完一帧数据) 软件清软件清 0 (中断方式,查询方式(中断方式,查询方式 ) 2、电源控制寄存器、电源控制寄存器 PCON 87HSM0 SM1 SM2 REN TB8 RB8TIRI字节地址为字节地址为87H87H,
13、没有位寻址功能。,没有位寻址功能。 SMOD称为串行口称为串行口波特率倍增位波特率倍增位,在串行口方式,在串行口方式1、方式、方式2和方式和方式3时,波特率与时,波特率与 成正比,亦即当成正比,亦即当SMOD1时,波特率提高一倍。时,波特率提高一倍。复位时,复位时,SMOD=0。2SMOD三、串行口的四种工作方式三、串行口的四种工作方式方式方式0:8位数据为一帧,不设起始位和停止位,先发送或接位数据为一帧,不设起始位和停止位,先发送或接收最低位。帧格式如下:收最低位。帧格式如下:帧格式帧格式方式方式1:10位数据为一帧,有位数据为一帧,有1个起始位,个起始位,8个数据位,个数据位,1个停个停止
14、位,先发送或接收最低位。帧格式如下:止位,先发送或接收最低位。帧格式如下:方式方式2和方式和方式3:11位为一帧,有位为一帧,有1个起始位,个起始位,8个数据位,个数据位,1个个可编程第可编程第9位,位,1个停止位,先发送或接收最低位。帧格式如下:个停止位,先发送或接收最低位。帧格式如下:三、串行口的四种工作方式三、串行口的四种工作方式 同步移位寄存器输入同步移位寄存器输入/ /输出方式输出方式,常用于外接移位寄,常用于外接移位寄存器,以扩展并行存器,以扩展并行I/O口。口。 波特率固定为波特率固定为fosc/12fosc/12。(1)(1)方式方式0 0发送发送 当当CPU执行一条将数据写入
15、发送缓冲器执行一条将数据写入发送缓冲器SBUF的指令时,产生的指令时,产生一个正脉冲,串行口即把一个正脉冲,串行口即把SBUF中的中的8 8位数据以位数据以fosc/12fosc/12的固定波的固定波特率从特率从RXDRXD引脚串行输出引脚串行输出,低位在先,低位在先,TXDTXD引脚输出同步移位脉冲引脚输出同步移位脉冲,发送完发送完8位数据中断标志位位数据中断标志位TI置置“1” 。时序如下图所示。时序如下图所示。1 1、方式、方式0 0(2)(2)方式方式0 0接收接收 REN=1REN=1,接收数据,接收数据,REN=0REN=0,禁止接收,禁止接收。 REN=1REN=1,允许接收,允
16、许接收。向串口的。向串口的SCON写入控制字(置为方式写入控制字(置为方式0,并,并REN位置位置“1” ,同时,同时RI=0)时,产生一个正脉冲,串行口即开)时,产生一个正脉冲,串行口即开始接收数据。始接收数据。RXDRXD为数据输入端,为数据输入端,TXDTXD为移位脉冲信号输出端为移位脉冲信号输出端,接收器也以接收器也以fosc/12fosc/12的固定波特率的固定波特率采样采样RXD引脚的数据信息,引脚的数据信息,当收到当收到8位数据时位数据时RI置置“1” 。表示一帧数据接收完,时序如下:。表示一帧数据接收完,时序如下:方式方式0下,下,SCON中的中的TB8、RB8位没有用到,发送
17、或接收位没有用到,发送或接收完完8位数据由硬件置位数据由硬件置“1”TI或或RI,CPU响应中断。响应中断。TI或或RI须由用户软件清须由用户软件清“0”,可用如下指令:,可用如下指令:CLR TICLR TI;TITI位清位清“0”0”CLR RI CLR RI ;RIRI位清位清“0”0”方式方式0时,时,SM2位必须为位必须为0。 串行口方式串行口方式0的应用的应用 在串行方式在串行方式0时,通过外接串入并出或并入串出的移位时,通过外接串入并出或并入串出的移位寄存器芯片(如寄存器芯片(如74LS164、74LS165 )将串行口转换成)将串行口转换成并行口使用。并行口使用。并行并行I/O
18、口的一种扩展方式口的一种扩展方式P3.0P3.1P1.08031D1RXDTXDD2CP74LS164CLR 1 2 8 9并行输出并行输出P3.0P3.1P1.08031QRXDTXDCP74LS1659 152 1图图(b) 方式方式0扩展并行输入口扩展并行输入口并行输入并行输入P1.1图图(a) 方式方式0扩展并行输出口扩展并行输出口 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
19、/32)/32)T1T1溢出率溢出率(4 4) RXDRXD:接收数据端。接收数据端。 TXDTXD:发送数据端。发送数据端。(5 5)发送过程:)发送过程: TI=TI=0 0,1010位异步收位异步收/ /发发MOV SBUFMOV SBUF,A A 指令启动发送,指令启动发送, 一帧发送结束,一帧发送结束,TITI置置1 1。接收过程:接收过程:REN = 1REN = 1且且 RI = 0RI = 0,启动接收,启动接收,一帧接收完毕,一帧接收完毕, 若满足若满足 RI RI0 0 SM2 SM20 0 或或 接收到的停止位为接收到的停止位为1 1则则本次接收有效本次接收有效,将,将接
20、收数据装入接收数据装入SBUFSBUF,停止位装入,停止位装入RB8RB8,并并使使RIRI置置1 1;否则丢弃接收数据,不置位;否则丢弃接收数据,不置位RIRI。(TXDTXD)(RXDRXD)写入写入SBUF采样采样(a) 发送时序图发送时序图TXD数据输出数据输出TID0D1D2D3D4D5D6D7停止位停止位起始位起始位RXD输入数据输入数据(b) 接收时序图接收时序图D0D1D2D3D4D5D6D7停止位停止位起始位起始位RI检测检测负跳变负跳变当当REN=1REN=1,CPUCPU开始采样开始采样RXDRXD引脚负跳变信号,若出现负跳变,才引脚负跳变信号,若出现负跳变,才进入数据接
21、收状态,在接收移位脉冲同步下,开始接收一帧数据。进入数据接收状态,在接收移位脉冲同步下,开始接收一帧数据。数据采样在每个数据位中间数据采样在每个数据位中间, ,连续采样连续采样3 3次次, ,并并3 3中取中取2 2保留采样值。保留采样值。方式方式1发送、接收时序图发送、接收时序图(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)发送过程:)发送过程: 3 3、 方
22、式方式2 2和方式和方式3 3:(1 1)数据帧格式:)数据帧格式:一帧一帧1111位,位,1 1位起始位位起始位9 9位数据位位数据位1 1位停止位。位停止位。 1111位异步收位异步收/ /发发TI=TI=0 0,先装待发送数据第先装待发送数据第9 9位至位至TB8,TB8,一帧发送结束,一帧发送结束,TITI置置1 1。接收过程:接收过程:REN = 1REN = 1且且 RI = 0RI = 0,启动接收,启动接收,一帧接收完毕,一帧接收完毕, 若满足若满足 RI RI0 0 SM2 SM20 0 或或 接收到的第接收到的第9 9位数据为位数据为1 1则则本次接收有效本次接收有效,将,
23、将接收数据装入接收数据装入SBUFSBUF,第,第9 9位数据装入位数据装入RB8RB8,并使并使RI=1RI=1;否则丢弃接收数据,不置位;否则丢弃接收数据,不置位RIRI。第第9 9位数据位在位数据位在TB8/RB8TB8/RB8中,常用作校验位和多机通讯标识位。中,常用作校验位和多机通讯标识位。 由由MOV SBUFMOV SBUF,A A 指令启动发送,指令启动发送,(TXDTXD)(RXDRXD)方式方式2、3发送发送/接收时序图接收时序图发发送送时时序序写入写入SBUFTXD输出输出TIRXD输入输入接接收收时时序序RID0D1D2D3D4D5D6TB8停止位停止位起始位起始位D7
24、D0D1D2D3D4D5D6RB8停止位停止位起始位起始位D7检测检测负跳变负跳变串行口四种工作方式中断条件串行口四种工作方式中断条件在在TI0时时,发送完一帧数据,发送完一帧数据,TI置置1,响应后,响应后软件清软件清0接收:接收:发送:发送:在在 RENREN1 1,同时,同时 RIRI0 0 时,时,方式方式0方式方式1方式方式2、3接收完一帧数据,若满足:接收完一帧数据,若满足:接收完一帧数据接收完一帧数据RI 置置 1响应后软件清响应后软件清0 RI RI0 0 SM2 SM20 0 或接收或接收到的停止位为到的停止位为1 1接收有效,接收有效,RIRI置置1 1响应后软件清响应后软
25、件清0 RI RI0 0 SM2 SM20 0 或接收或接收到的第到的第9 9位数据为位数据为1 1接收有效,接收有效,RIRI置置1 1响应后软件清响应后软件清0四、波特率的设定置四、波特率的设定置波特率固定,波特率固定,方式方式2 2:方式方式0 0:B B fosc/12fosc/12可选的两种波特率,可选的两种波特率,B B (2(2SMOD /64)/64)fosc fosc 方式方式1 1、3 3: 波特率可变,波特率可变,用定时器用定时器T1T1作波特率发生器。作波特率发生器。B = (2B = (2SMOD/32) /32) T1 T1溢出率。溢出率。T1T1溢出率溢出率即即T
26、1T1每秒钟溢出几次每秒钟溢出几次1/T11/T1的溢出周期的溢出周期T1T1的溢出周期的溢出周期T1T1的定时时间的定时时间设设T1T1工作在方式工作在方式2 2,计数器初值为,计数器初值为X;X;(2 - 初值)初值)TPnB =B =2 2SMOD3232(2 - 初值)初值)TPn1 1= =2 2SMOD3232foscfosc1212(256256X X)例例1. 8051单片机时钟振荡频率为单片机时钟振荡频率为11.0592MHz,选用定时器,选用定时器T1工作模式工作模式2作为波特率发生器,波特率为作为波特率发生器,波特率为2400b/s,求初值。,求初值。并编写初始化程序。并
27、编写初始化程序。解:设置波特率控制位解:设置波特率控制位(SMOD)0初始化程序为:初始化程序为:INI:MOVTMOD,#20H;T1定时方式,模式定时方式,模式2 MOVPCON,#00H;SMOD=0 MOVTH1,#0F4H MOVTL1,#0F4H SETB TR1 MOVSCON,#50H;串行口方式串行口方式1,允许接收,允许接收= =2 2SMOD3232foscfosc1212(256256X X)B B= =1 1323211.05911.0591212(256256TH1TH1)24002400TH1TH1244244F4HF4H所以:所以:(TH1)=(TL1)=F4H
28、(TH1)=(TL1)=F4H波特率波特率(方式方式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 FDH12F3H02FAH2.4k 02FAH12F3H02F4H1.2k02F3H02E6H02E8H60002E6H02CCH02D0H30002CCH0298H02A0H1100272H01FEEBH01FEFFH55H01FFEBH 常用波特率和定时器常用波特率和定时器T
29、1初值关系表初值关系表MOV THx,#X MOV TLx,#X 写写PCON,设置波特率倍数关系,设置波特率倍数关系 串行口初始化步骤:串行口初始化步骤:写写TMOD,设定定时器工作方式,设定定时器工作方式设置计数器初值,选定串口波特率设置计数器初值,选定串口波特率写写IE,开放相应中断,开放相应中断写写TCON,启动定时器,启动定时器MOV TMOD,# 方式字方式字 SETB EASETB ESSETB TRx写写SCON,设定串口工作方式,设定串口工作方式MOV SCON,# 方式字方式字 MOV PCON,# 00(80H) (方式(方式0 0)例)例2 2用用80318031串行口
30、外接串行口外接CD4049CD4049或或164164串入并出移位寄存器扩展串入并出移位寄存器扩展8 8位位并行口;并行口;8 8位并行口的每位都接一个发光二极管,要求发光二极管从左到右以位并行口的每位都接一个发光二极管,要求发光二极管从左到右以一定延迟轮流显示,并不断循环。一定延迟轮流显示,并不断循环。解:设数据串行发送采用中断方式,显示的延迟通过调用延迟程序解:设数据串行发送采用中断方式,显示的延迟通过调用延迟程序DELAYDELAY实现实现. .程序清单:程序清单: ORG 0023H ORG 0023H ; ;串行口中断入口串行口中断入口 AJMP SBR ;AJMP SBR ;转入串
31、行口中断服务程序转入串行口中断服务程序 0RG 2000H ;0RG 2000H ;主程序起始地主程序起始地 MOV SCONMOV SCON,#00H ;#00H ;串行口方式串行口方式0 0初始化初始化 MOV AMOV A,#80H ;#80H ;最左一位发光二极管先亮最左一位发光二极管先亮 CLR P1.0 ;CLR P1.0 ;关闭并行输出关闭并行输出 MOV SBUFMOV SBUF,A ;A ;启动串口串行输出启动串口串行输出LOOP: SJMP $ LOOP: SJMP $ ; ;等待中断等待中断SBR: SETB P1.0 SBR: SETB P1.0 ; ;启动寄存器并行输
32、出启动寄存器并行输出 ACALL DELAY ;ACALL DELAY ;显示延迟一段时间显示延迟一段时间 CLR TI ;CLR TI ;清发送中断标志清发送中断标志RR A ;RR A ;准备右边一位显示准备右边一位显示 CLR P1.0 ;CLR P1.0 ;关闭并行输出关闭并行输出 MOV SBUFMOV SBUF,A ;A ;再一次串行输出再一次串行输出 RETI RETI ; ;中断返回中断返回图7-13串入并出电路 双机通信。甲机发送,乙机接收,进行单工串行异步通讯。双机通信。甲机发送,乙机接收,进行单工串行异步通讯。(方式(方式1)例)例3甲机从片内甲机从片内RAM 30HRA
33、M 30H39H39H单元逐个取出共单元逐个取出共1010个个ASCIIASCII码数据,在码数据,在D7D7位补奇后位补奇后由串行口发送出去,乙机每接收一个数据都有奇偶校验,然后存入由串行口发送出去,乙机每接收一个数据都有奇偶校验,然后存入30H30H39H39H单元。若奇偶校验有错,则将单元。若奇偶校验有错,则将FFHFFH存入相应单元,设波特率为存入相应单元,设波特率为1200b/s1200b/s,foscfosc=6MHZ=6MHZ。0RG 0000H0RG 0000HLJMP MAINTLJMP MAINTORG 0100HORG 0100HMAINTMAINT: MOV SCONM
34、OV SCON,#40H #40H ; ;方式方式1 1串行发送串行发送MOV TMODMOV TMOD,#20H ;(TMOD)20H#20H ;(TMOD)20H,T1T1方式方式2 2MOV TH1MOV TH1, #0F3H ;(T1)F3F3H#0F3H ;(T1)F3F3H,T1T1初值初值MOV TL1MOV TL1, #0F3H#0F3HSETB TR1 ;SETB TR1 ;启动启动T1T11.1.甲机发送程序甲机发送程序 把片内把片内RAM 30HRAM 30H39H39H中的数据块通过串行口中的数据块通过串行口TXDTXD引脚输出。参考程序如下:引脚输出。参考程序如下:
35、图6-15双机通信电路 CLR ET1 ; CLR ET1 ;禁止禁止T1T1中断中断 MOV R0MOV R0, #30H ;R0#30H ;R0:发送数据首址,:发送数据首址,(R0)30H(R0)30HL1L1: MOV AMOV A,R0R0MOV CMOV C,P ;P ;设置奇偶校验位设置奇偶校验位( (补奇补奇) )CPL CCPL CMOV ACCMOV ACC7 7,C CMOV SBUF, A ;MOV SBUF, A ;启动发送启动发送L2L2: JBC TIJBC TI,L3 ;L3 ;若若TI=1TI=1,则转,则转L3L3执行且执行且(T1)0(T1)0SJMP L
36、2 ;TI=0SJMP L2 ;TI=0,一帧未完,连续发送,一帧未完,连续发送L3L3: INC R0 ;INC R0 ;取下一数据取下一数据CJNE R0CJNE R0,#3AH#3AH,L1 ;L1 ;若若1010个数据未完,转个数据未完,转L1L1执行执行SJMP $SJMP $ENDEND ORG 0000H ORG 0000H LJMP MAINR LJMP MAINR 0RG 0200H 0RG 0200HMAINRMAINR:MOV SCONMOV SCON, #50H #50H ; ;启动接收启动接收 MOV TMODMOV TMOD, #20H ;(TMOD)=20H#20
37、H ;(TMOD)=20H,T1T1方式方式2 2 MOV TH1 MOV TH1, #0F3H ;(T1)=F3F3H#0F3H ;(T1)=F3F3H,TlTl初值初值 MOV TL1MOV TL1, #0F3H#0F3H SETB TR1 ; SETB TR1 ;启动启动T1T1 CLR ET1 ; CLR ET1 ;禁止禁止T1T1中断中断2. 2. 乙机接收程序乙机接收程序 乙机通过乙机通过RXDRXD引脚接收甲机发送的串行字节,波特率必须与引脚接收甲机发送的串行字节,波特率必须与甲机相同,乙机甲机相同,乙机foscfosc=6MHZ=6MHZ,波特率为,波特率为1200b/s120
38、0b/s,采用定时器,采用定时器T1T1方式方式2 2,初值同为,初值同为0F3H0F3H。参考程序如下:。参考程序如下:MOV R0MOV R0, #30H ;R0#30H ;R0:接收数据首址,:接收数据首址,(R0)30H(R0)30HL4L4:JBC RIJBC RI,L5 L5 ; ;若若RI=1RI=1,则转,则转L5L5执行且执行且(RI)0(RI)0SJMP L4 ;RI=0SJMP L4 ;RI=0,一帧未接收完,继续接收,一帧未接收完,继续接收L5L5:MOV AMOV A, SBUF SBUF ; ;接收到数据送接收到数据送A AMOV CMOV C,P ;P ;检查奇校
39、验位检查奇校验位CPL CCPL CJC ERROR JC ERROR ;(CY)=l;(CY)=l,接收数据出错,转,接收数据出错,转ERRORERROR执行执行ANL AANL A, #7FH ;#7FH ;消去奇校验位消去奇校验位MOV R0MOV R0, A ;(R0)(A)A ;(R0)(A)L6L6:INC R0 INC R0 ; ;取下一接收缓冲区地址取下一接收缓冲区地址 CJNE R0CJNE R0, #3AH#3AH,L4 ;L4 ;未接收完,转未接收完,转L4L4执行执行 SJMP $SJMP $ERRORERROR:MOV R0MOV R0, #0FFH#0FFH SJM
40、P L6 SJMP L6 END END 编制一个发送程序,将片内编制一个发送程序,将片内RAMRAM中中50H50H5FH5FH的数据串行发送,的数据串行发送,串行口设定为工作方式串行口设定为工作方式2 2,TB8TB8作奇偶校验位。作奇偶校验位。 (方式(方式2)例)例4(1) 中断方式中断方式ORG0000HAJMPMAINORG0023HAJMPSERORG0100HMAIN: MOVSCON,80HMOVPCON,80HMOVR0,50HMOVR7,0FH;数据长度;数据长度SETBESSETBEAMOVA,R0MOVC,PSW.0;奇偶校验位;奇偶校验位PMOVTB8,CMOVSB
41、UF,ASJMP$SER:CLRTIINCR0MOVA,R0MOVC,PSW.0MOVTB8,CMOVSBUF,ADJNZR7,ENDTCLRESENDT: RETIEND 编制一个发送程序,将片内编制一个发送程序,将片内RAMRAM中中50H50H5FH5FH的数据串行发送,的数据串行发送,串行口设定为工作方式串行口设定为工作方式2 2,TB8TB8作奇偶校验位。作奇偶校验位。 (2) 查询方式查询方式 ORG 0000H AJMP MAIN ORG 0100HMAIN: MOV SCON,80H MOV PCON,80H MOV R0,50H MOV R7,10H;数据长度;数据长度LOOP: MOV A,R0 MOV C,PSW.0 MOV TB8,C MOV SBUF,AWAIT: JBC TI,CONT AJMP WAITCONT:INCR0DJNZR7,LOOPSJMP$END(方式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六年级下册UnitAterribledaylesson教案
- 化脓性球菌学教案(2025-2026学年)
- 九年级物理上册第八章电话和传感器教案新版教科版(2025-2026学年)
- 小班社会教案四(2025-2026学年)
- 主动脉夹层业务学习教案
- 选择合适的统计图学霸课堂笔记数学六年级下册培优教案
- 秋七年级生物上册细胞的生活教案新版新人教版
- 重庆某学校办公楼维修改造施工方案secret试卷教案(2025-2026学年)
- 小班开学安全第一课课件
- (2025版)急性成人无骨折脱位型颈脊髓损伤诊疗指南解读
- 如何培养孩子深度专注
- 2024年餐饮店长年度工作总结
- 护理8S管理汇报
- 产前筛查标本采集与管理制度
- 急危重症护理培训心得
- 2025劳动合同书(上海市人力资源和社会保障局监制)
- 门诊护士长工作总结汇报
- 药膳餐厅创新创业计划书
- erp沙盘模拟实训报告采购总监
- 污水消毒知识培训课件
- 横纹肌溶解症的护理
评论
0/150
提交评论