




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本章介绍的主要内容本章介绍的主要内容串行通信的基本概念串行通信的基本概念串行通信接口串行通信接口串行通信串行通信寄存器寄存器串行通信串行通信 数据通信方式有两种:并行通信与串行通信数据通信方式有两种:并行通信与串行通信并行通信:并行通信: 所传送数据的各位同时发送或接收,所传送数据的各位同时发送或接收, 数据有多少位就需要多少根数据线。数据有多少位就需要多少根数据线。 特点:特点: 速度快,成本高,适合近距离传输速度快,成本高,适合近距离传输 如计算机并口,打印机,如计算机并口,打印机,8255 。 串行通信:所传送数据的各位按顺序一位一位串行通信:所传送数据的各位按顺序一位一位 地发送或接收
2、。地发送或接收。 只需一根数据,一根地线,共只需一根数据,一根地线,共2 根根 (如双向通信发送和接收各需(如双向通信发送和接收各需1根数据线。)根数据线。) 特点:成本低,硬件方便,适合远距离通信,特点:成本低,硬件方便,适合远距离通信, 传输速度低。传输速度低。 通信的双方应该有一个约定,什么时候开始通信的双方应该有一个约定,什么时候开始发送,什么时候发送完毕;接收方收到的信息是发送,什么时候发送完毕;接收方收到的信息是否正确等,这就是否正确等,这就是通信协议通信协议。 异步串行通信一帧数据格式:异步串行通信一帧数据格式:l 一个起始位一个起始位 “0”,表示字符的开始,然后是表示字符的开
3、始,然后是58位数据即该字符的代码,规定低位在前,高位数据即该字符的代码,规定低位在前,高位在后,接位在后,接 下来是奇偶校验位下来是奇偶校验位(可省略可省略),最后以,最后以停止位停止位“1”表示字符的结束。表示字符的结束。l优点:硬件结构简单。优点:硬件结构简单。l缺点:传输速度慢。缺点:传输速度慢。P1D0 D1D2 D3 D4 D5 D6 D7P10第第n个字符(一帧)个字符(一帧)n-1n+10D0起起始始位位数据位(数据位(58位)位)校校验验位位停停止止位位二、同步通信二、同步通信 在同步通信中,发送方在数据或字符开始在同步通信中,发送方在数据或字符开始处就用同步字符处就用同步字
4、符(常约定常约定12个字节个字节)指示一帧指示一帧的开始的开始 ,由时钟来实现发送端和接收端同步,由时钟来实现发送端和接收端同步,接收方一旦检测到与规定的同步字符符合,下接收方一旦检测到与规定的同步字符符合,下面面 就连续按顺序传送若干个数据就连续按顺序传送若干个数据 ,最后发,最后发校校验验字节。见下图:字节。见下图:SYN字符字符1SYN字符字符2数据数据1数据数据2.数据数据n连续传送连续传送n 个数据个数据校验校验按通信方向分类:单工、半双工、全双工通信方式按通信方向分类:单工、半双工、全双工通信方式 1 单工方式单工方式: 一端是发送端,另外一端是接收端:一端是发送端,另外一端是接收
5、端: 每端口有一个发送器和一个接收器,通过开每端口有一个发送器和一个接收器,通过开关连接在线路上,数据可以双向传送,但不能同关连接在线路上,数据可以双向传送,但不能同时发送和接收时发送和接收. 要通过换向器转换方向。要通过换向器转换方向。 通信双方用两个独立的收发器单独连接通信双方用两个独立的收发器单独连接,可以可以同时发送和接收数据同时发送和接收数据,因而提高了速度。因而提高了速度。 8.1.3 串行通信接口的任务串行通信接口的任务2.进行串、并转换进行串、并转换 在发送端,接口将在发送端,接口将CPU送来的并行信号转换成串行数送来的并行信号转换成串行数据进行传送;而在接收端,接口要将接据进
6、行传送;而在接收端,接口要将接 收到串行数据收到串行数据变成并行数据送往变成并行数据送往CPU,由,由CPU进行处理。进行处理。3.控制数据的传输速率控制数据的传输速率 接口应具备对数据传输率接口应具备对数据传输率波特率的控制选择能力,波特率的控制选择能力,即具有波特率发生器。即具有波特率发生器。4.进行传送错误检测进行传送错误检测 在发送时,对传送的数据自动生成校验位或校验码,在发送时,对传送的数据自动生成校验位或校验码,在接收端能检查校验位或校验在接收端能检查校验位或校验 码,以确定传送中是否码,以确定传送中是否有误码。有误码。 是通信中对数据传输速率的一种描述。在计算是通信中对数据传输速
7、率的一种描述。在计算机中,其意义每秒传送多少位二进制位数。机中,其意义每秒传送多少位二进制位数。例如:例如:100字符字符/秒,秒,1个字符个字符11位,位, 波特率为:波特率为:10011=1100(波特)(波特) 平均每位传送占用时间平均每位传送占用时间 Td = 1/1100=0.909ms RXD TXD GNDRXDTXDGNDRXDTXDGND电电平平转转换换RXDTXDGNDRXDTXDGND电电平平转转换换RXDTXDGND微机微机微机其微机其他设备他设备较远距离传送电路较远距离传送电路近距离传送电路近距离传送电路微机接口调制解调器调制解调器接口微机电话分机电话分机远距离传送电
8、路远距离传送电路 数字信号通过调制器变成模拟信号通过电话线传数字信号通过调制器变成模拟信号通过电话线传送到对方,接收方通过解调器将模拟信号转换成数字送到对方,接收方通过解调器将模拟信号转换成数字信号接收。信号接收。 测控系统中,计算机通信主要采用异步串行通信测控系统中,计算机通信主要采用异步串行通信方式,常用的异步总线标准有三种:方式,常用的异步总线标准有三种:RS-232(RS-232A RS-232B RS-232C)RS-449 (RS422 RS423 RS485)20mA电流环电流环 这里仅介绍这里仅介绍RS-232 RS-232C:速率:速率:20Kbit/S, 最大通信距离最大通
9、信距离 : 15m RS422: 10Mbit/s, : 300m 90Kbit/s, :1200m RS232C是美国电子工业协会(是美国电子工业协会(EIA)公布的一种异)公布的一种异步串行通信标准。步串行通信标准。1、基本特性、基本特性设备之间通信的距离不大于设备之间通信的距离不大于15米米最大传输速率最大传输速率20KB/S采用负逻辑:采用负逻辑:“1” 5V 15V “0” +5V + 15V不带负载时输出电平:不带负载时输出电平:25V +25V输出短路电流:输出短路电流: 0.5A最大负载电容最大负载电容: 2500pF 当计算机采用当计算机采用RS232标准时必须通过电平转换,
10、标准时必须通过电平转换,MAX232 是是EIA和和TTL电平转换芯片。内部具有电压提电平转换芯片。内部具有电压提升电路,并有两路接收器和发送器。其连线和引脚如图升电路,并有两路接收器和发送器。其连线和引脚如图C1C1C C2 2C C2 2T1INT2INR1OUTR2OUTV+V-T1OUTT2OUTR1INR2IN+5V1.0FFFFF1.01.0 1.01.0+10V-10VTTL/CMOSTTL/CMOSRS-232RS-232VCCC1V+C1C2C2V-T2OUTT1OUTR2INVCCR1INR1OUTT1INT2INR2OUTGNDMAX232MAX232 连线图连线图MAX
11、232 引脚图引脚图2、RS-232的信号 RS-232 9针D型和25针D型接线器如下图;1)基本数据传送线: TXD(Transmitted Data)数据发送脚 RXD (Received Data)数据接收脚 GND (Groud)信号地 串行通信中,最简单的通信只需连接这三根线2)握手信号RTS 请求发送信号,输出信号CTS 消除传送,是对RTS的响应信号,输入信号DCD 数据载波检测,输入信号DSR 数据通信准备就绪,输入信号DTR数据终端就绪,输出信号,表明计算机已做好接收准备8.1.8 单片机串行通信 电路 RXD TXD GNDTXDGND8xx518xx51RXDVCCEA
12、C1C2RSTXTAL1XTAL2TXDRXD89C51C1C2T1INR1OUTC2R1INT1OUTV-V+VCCC1C3C4C5GNDGNDC1=C2=C3=C4=C5=1FMAX23215PC机机COM1或或COM212346789+5V+5V 51单片机有一个可编程的全双工异步串单片机有一个可编程的全双工异步串行通信接口,它可作行通信接口,它可作UART用,也可作同用,也可作同步移位寄存器,步移位寄存器, 其帧格式可有其帧格式可有8位、位、10位或位或l l位,并能设位,并能设置各种波特率。置各种波特率。发送发送SBUF(99H)门门88 P132图图8.7 串行口结构框图串行口结构
13、框图 RXD(P3.0)TXD(P3.1)中断中断接收接收SBUF(99H)定定时时器器T1fosc2分频器分频器发送控制器发送控制器接收控制器接收控制器串寄串寄行存行存控器控器制制 SCON (98H)输入移位寄存器输入移位寄存器TIRI内内 部部 总总 线线 5 l 单片机通过引脚单片机通过引脚RXD(P3.0)串行数串行数据接收端和引脚据接收端和引脚TXD(P3.l)串行数据发送串行数据发送端端)与外界进行通信。与外界进行通信。 图中有两个物理上独立的接收、发送图中有两个物理上独立的接收、发送缓冲器缓冲器SBUF,它们占用同一地址,它们占用同一地址99H,可,可同时发送、接收数据。同时发
14、送、接收数据。 发送缓冲器只能写入,不能读出,发送缓冲器只能写入,不能读出,CPU写写SBUF,一方面修改发送寄存器,同时启动数,一方面修改发送寄存器,同时启动数据串行发送;据串行发送; 接收缓冲器只能读出、不能写入。读接收缓冲器只能读出、不能写入。读SBUF,就是读接收寄存器。就是读接收寄存器。串行控制寄存器串行控制寄存器SCON 用以存用以存 放串行口的控制和状态信息。通放串行口的控制和状态信息。通过对它的设置、检测与读取过对它的设置、检测与读取 来管理串行通信的。来管理串行通信的。特特 殊功能寄存器殊功能寄存器PCON的最高位的最高位SMOD为串行为串行口波特率的倍增控制位。口波特率的倍
15、增控制位。波特率发生器波特率发生器 可以有两种选择:可以有两种选择:1. 定时器定时器T1作波特率发生器,改变计数初值就作波特率发生器,改变计数初值就可以改变串行通信的速率,称为可变波特率。可以改变串行通信的速率,称为可变波特率。2. 以内部时钟的分频器作波特率发生器,因内部以内部时钟的分频器作波特率发生器,因内部时钟频率一定,称为固定波特率时钟频率一定,称为固定波特率 甲方发送时,甲方发送时,CPU执行执行指令指令 MOV SBUF , A 启动启动了发送过程,数据并行送入了发送过程,数据并行送入SBUF ,在发送时钟,在发送时钟 shift的控制下由低位到高位一位一位发送,乙方在接收时的控
16、制下由低位到高位一位一位发送,乙方在接收时钟钟 shift 的控制下由低位到高位的控制下由低位到高位 顺序进入移位寄存器顺序进入移位寄存器SBUF 。8.2.2 工作基本原理工作基本原理shiftMOV A , SBUF串行数据串行数据CPUCPU SBUF SBUFshiftMOV SBUF , A并行数据并行数据甲方(发送)甲方(发送)乙方(接收)乙方(接收) TIRI 甲方一帧数据发送完毕,置位发送中断标志甲方一帧数据发送完毕,置位发送中断标志TI,该位可作为查询标志(或引起中断),该位可作为查询标志(或引起中断),CPU可再发送下一帧数据可再发送下一帧数据 。 乙方一帧数据到齐即接收缓
17、冲器满,置位接乙方一帧数据到齐即接收缓冲器满,置位接收中断标志收中断标志RI,该位可作为查询标志(或引,该位可作为查询标志(或引起接收中断),起接收中断),通过通过MOV A ,SBUF CPU将这帧数据并行读入。将这帧数据并行读入。 由上述可知:由上述可知:1、发送方是先发数据再查标志,接收方是先、发送方是先发数据再查标志,接收方是先查标志再收数据。查标志再收数据。2、CPU通过指令和通过指令和SBUF并行交换数据,并行交换数据, TI和和RI确定数据的移位是否完成,即一帧确定数据的移位是否完成,即一帧数据是否发完或是否接收一帧数据?(数据是否发完或是否接收一帧数据?(通通过查询标志位或中断
18、方式)过查询标志位或中断方式)。51单片机串行口是一个可编程接口,对它单片机串行口是一个可编程接口,对它的编程只用两个控制字分别写入的编程只用两个控制字分别写入两个两个特特殊功能寄存器:殊功能寄存器: 串行口控制寄存器串行口控制寄存器SCON(98H) 电源控制寄存器电源控制寄存器PCON(97H) 8.3.1 串行口的控制寄存器串行口的控制寄存器SCON(98H) 8XX51串行通信的方式选择串行通信的方式选择 ,接收和发送控制及串接收和发送控制及串行口的标志均由专用寄存器行口的标志均由专用寄存器SCON控制和指示。控制和指示。其格式如下(其格式如下(P134):SM0.SM1:串行口工作方
19、式控制位。串行口工作方式控制位。 0 0-方式方式0, 0 1-方式方式1 1 0-方式方式2, 1 1-方式方式3REN:串行接收允许位。:串行接收允许位。 0-禁止接收禁止接收, 1-允许接收允许接收TB8: 在方式在方式2,3中中,TB8是发送机要发送的第是发送机要发送的第9位数据。位数据。RB8:在方式在方式2,3中中,RB8是接受机收到的第是接受机收到的第9位数据位数据, 该数据来自发送机的该数据来自发送机的TB8。TI: 发送中断标志位。发送前必须用软件清零,发发送中断标志位。发送前必须用软件清零,发 送过程中送过程中TI保持零电平保持零电平,发送完一帧数据后,由发送完一帧数据后,
20、由 硬件置硬件置 “1”,如果再发送,如果再发送,必须用软件再清零。必须用软件再清零。RI: 接收中断标志位。接收前接收中断标志位。接收前,必须用软件清零必须用软件清零,接接 收过程中收过程中RI保持零电平,接收完一帧数据后由保持零电平,接收完一帧数据后由 片内硬件自动置片内硬件自动置“1”。如果再接收必须用软件清。如果再接收必须用软件清 零。零。SM2:多机通信控制位,仅用于方式多机通信控制位,仅用于方式2和方式和方式3。 当选择方式当选择方式2或方式或方式3时时,发送机设置发送机设置SM2=1, 以发送第九位以发送第九位TB8为为1作为地址帧寻找从机作为地址帧寻找从机,以以 TB8为为0作
21、为数据帧进行通信,从机初始化时设作为数据帧进行通信,从机初始化时设 置置SM2=1,若接收到的第九位数据若接收到的第九位数据RB8=0,不置位不置位 RI,即不引起接收中断即不引起接收中断,亦既不接收数据帧亦既不接收数据帧,继续继续 监听监听,如接收到的如接收到的RB8=1,置位置位RI,引起接收中断引起接收中断, 中断程序中判断所接收的地址帧和本机的地址中断程序中判断所接收的地址帧和本机的地址是否符合是否符合,若不符合若不符合,维持维持SM2=1,继续监听继续监听,若符合若符合,则则 清清SM2,接收对放发来的后续信息接收对放发来的后续信息. 综上所述综上所述,SM2的作用为的作用为:在方式
22、在方式2,3中,发送机中,发送机SM2=1(程序设置程序设置). 接收机接收机SM2=1,若若RB8=1,激活激活RI,引起接收中断引起接收中断. RB8=0,不激活不激活RI,不引起接断不引起接断. SM2=0,无论无论RB8=1还是还是RB8=0均激活均激活RI引起引起 接收中断。接收中断。在方式在方式1中中, 当接收时当接收时SM2=1, 则只有收到有效停止位才则只有收到有效停止位才 激活激活RI,在方式,在方式 0 中中, SM2应置为应置为0。 PCON的字节地址为的字节地址为87H,无位地址无位地址, 只能字节只能字节寻址寻址.,初始化时初始化时SMOD=0.PCON87H8 .3
23、. 2 电源控制寄存器电源控制寄存器PCON(P87H) PCON的格式如下图所示的格式如下图所示,串行通信只用其中串行通信只用其中的最高位的最高位SMODSMOD : 波特率加倍位。在计算串行方式波特率加倍位。在计算串行方式 1、 2、 3 的波特率时,的波特率时, SMOD 0 波特率不加倍波特率不加倍; SMOD 1 波特率加倍波特率加倍 根据串行通信数据格式和波特率的不同根据串行通信数据格式和波特率的不同, 51系列单片机的串行通信有四种工作方式系列单片机的串行通信有四种工作方式,通通过编程进行选择过编程进行选择,各工作方式的特点如下各工作方式的特点如下:1.方式方式0(移位寄存器方式
24、)(移位寄存器方式) RXD为串行数据的发送端或接收端为串行数据的发送端或接收端, TXD输出频率为输出频率为fosc/12的时钟脉冲。的时钟脉冲。波特率固定为波特率固定为fosc/12 (fosc为单片机晶振频率为单片机晶振频率)方式方式0的数据格式为的数据格式为8位位,低位在前低位在前,高位在后高位在后 根据串行通信数据格式和波特率的不同根据串行通信数据格式和波特率的不同, 51系列单片机的串行通信有四种工作方式系列单片机的串行通信有四种工作方式,通通过编程进行选择过编程进行选择,各工作方式的特点如下各工作方式的特点如下:1.方式方式0(移位寄存器方式)(移位寄存器方式) RXD为串行数据
25、的发送端或接收端为串行数据的发送端或接收端, TXD输出频率为输出频率为fosc/12的时钟脉冲。的时钟脉冲。波特率固定为波特率固定为fosc/12 (fosc为单片机晶振频率为单片机晶振频率)方式方式0的数据格式为的数据格式为8位位,低位在前低位在前,高位在后高位在后 发送过程以写入发送过程以写入SBUF寄存器开始,当寄存器开始,当8位数位数据传送完,据传送完,TI被置被置1,方可再发送下一帧数据。接,方可再发送下一帧数据。接收必须先置收必须先置REN=1(允许接收)和允许接收)和RI0,当,当8位数位数据接收完,据接收完,RI被置被置1,此时,可通过读,此时,可通过读SBUF指令,指令,将
26、串行数据读入。将串行数据读入。 这种方式多用于接口扩展,此时,可外接串入并出这种方式多用于接口扩展,此时,可外接串入并出移位寄存器扩展输出接口,通过外接并入串出移位移位寄存器扩展输出接口,通过外接并入串出移位寄存器扩展输入接口。寄存器扩展输入接口。2.方式方式1(波特率可变(波特率可变10位异步通信方式)位异步通信方式) 为为10位异步通信方式位异步通信方式,每帧数据由每帧数据由1个起始位个起始位 “0”。八个数据位八个数据位 和和1个停止位个停止位“1”共共10位构成位构成。其中起始其中起始位和停止位在发送时是自动插入的位和停止位在发送时是自动插入的。 以以TXD为串行数据的发送端为串行数据
27、的发送端,T1提供位时钟提供位时钟,RXD 为数据的接收端为数据的接收端,由由T1提供移位时钟提供移位时钟,是波特率可是波特率可 变方式变方式。波特率波特率=(2SMOD/32)(TI的溢出率的溢出率) =(2SMOD/32)(fosc/12(256-x) )根据给定的波特率根据给定的波特率,可以计算可以计算T1的计数初值的计数初值X。 11位异步通信方式位异步通信方式,即每帧数据由有一个起即每帧数据由有一个起 始位始位“0”,9个数据位和个数据位和1个停止位个停止位“1”组成组成.发送时发送时 九个数据位九个数据位,由由SCON寄存器的寄存器的TB8位位 提供提供,接收接收 到的第九位数据存
28、放在到的第九位数据存放在SCON寄存器的寄存器的RB8位位. 第九位数据可作为检验位第九位数据可作为检验位,也可用于多机通信中也可用于多机通信中 识别传送的是地址还是数据的特征位。识别传送的是地址还是数据的特征位。波特率固定为波特率固定为(2SMOD/64)fosc.3. 方式方式24. 方式方式3 数据格式同方式数据格式同方式 3,所不同的是,所不同的是算算方式同方式方式同方式 1。编程要点如下:编程要点如下: (1)填写控制字。即对)填写控制字。即对SCON寄存器设定工作方式。寄存器设定工作方式。 (2)确定波特率。串行口的波特率有两种方式:)确定波特率。串行口的波特率有两种方式:固定波特
29、率,可变波特率。固定波特率,可变波特率。注意:使用可变波特率时,先确定注意:使用可变波特率时,先确定TI 的计数初值,的计数初值,并对并对TI 进行初始化。进行初始化。 (3)串行通信可采用两种方式:)串行通信可采用两种方式:查询方式查询方式: 查查TI或或RI 是否为是否为“1”。中断方式:如果预先开了中断,当中断方式:如果预先开了中断,当TI、RI 为为“1”,会自动产生中断。,会自动产生中断。注意:两种方式中当发送注意:两种方式中当发送完完或接受数据后都或接受数据后都要注意要注意 清清TI 或或RI 。l查询方式发送程序:查询方式发送程序: (先发后查)先发后查) 发送一个数据发送一个数
30、据查询查询TI 发送下一个数据发送下一个数据l查询方式接收程序:(先查后收)查询方式接收程序:(先查后收) 查询查询RI读入一个数据读入一个数据查询查询RI读下一个数据读下一个数据l中断方式发送程序:中断方式发送程序: 发送一个数据发送一个数据等待中断,在中断中再发送下一等待中断,在中断中再发送下一个数据。个数据。l中断方式接收程序:中断方式接收程序: 等待中断,在中断中再接收一个数据。等待中断,在中断中再接收一个数据。l查询方式发送流程图和接收流程图查询方式发送流程图和接收流程图l(P136 图图8-9)T1初始化、启动初始化、启动T1工作工作设定串行通信方式设定串行通信方式置发送数据块首址
31、置发送数据块首址数据块长度计数器数据块长度计数器清清TI发送数据发送数据TI1?修改地址指针修改地址指针和块长度计数器和块长度计数器全部数据发送完?全部数据发送完?开始开始结束结束可变波特率查询方式发送流程图可变波特率查询方式发送流程图YNYNT1初始化、启动初始化、启动T1工作工作设定串行通信方式设定串行通信方式,允许接收允许接收置接收缓冲区首址置接收缓冲区首址接收数据块长度接收数据块长度清清RIRI1?修改地址指针修改地址指针和块长度计数器和块长度计数器全部数据接收完?全部数据接收完?开始开始结束结束接收数据接收数据Y可变波特率查询方式接收流程图可变波特率查询方式接收流程图YNYN 中断方
32、式的初始化编程同查询方式不同的是:中断方式的初始化编程同查询方式不同的是:要开中断,即置位要开中断,即置位EA和和ES;编写中断服务程序。编写中断服务程序。中断方式串行通信的程序流程见下图:中断方式串行通信的程序流程见下图:(P137 图图8-10)T1初始化、启动初始化、启动T1工作工作设定串行通信方式设定串行通信方式置发送数据块首址置发送数据块首址数据块长度计数器数据块长度计数器发送数据发送数据全部数据发送完?全部数据发送完?YN中断方式发送流程图中断方式发送流程图等待中断等待中断1 EA, 1ES发送数据发送数据中断返回中断返回0 EA, 0ES中断服务程序中断服务程序主程序主程序修改地
33、址指针修改地址指针和块长度计数器和块长度计数器清清TIYNT1初始化、启动初始化、启动T1工作工作设定串行通信方式设定串行通信方式置接收数据块首址置接收数据块首址数据块长度计数器数据块长度计数器全部数据接收完?全部数据接收完?Y中断方式接收流程图中断方式接收流程图等待中断等待中断1 EA, 1ES中断返回中断返回0 EA, 0ES中断服务程序中断服务程序主程序主程序修改地址指针修改地址指针和块长度计数器和块长度计数器清清RI接收数据接收数据YN例例8-1. 在内部数据存贮器在内部数据存贮器20H3FH单元中共有单元中共有32个数据,要求采用方式个数据,要求采用方式 1 串行发送出去,串行发送出
34、去, 传送速率为传送速率为1200波特,设波特,设fosc12MHZ。方法:方法:T1工作于方式工作于方式 2 作波特率发生器,取作波特率发生器,取SMOD0,T1的时间常数计算如下:的时间常数计算如下: 波特率波特率 1200(1/32)12106 /12(256-x) x230E6H(1)查询方式编程)查询方式编程 2 2SMODSMOD foscfosc12(256-x)12(256-x)32发送程序:发送程序: ORG 0000H MOV TMOD, #20H ;T1方式方式2 MOV TH1, #0E6H MOV TL1, #0E6H ;T1时间常数时间常数 SETB TR1 ;启动
35、;启动T1 MOV SCON, #40H ;串行口工作于方式;串行口工作于方式1 MOV R0, #20H ;R0指发送缓冲区首指发送缓冲区首 MOV R7, #32 ;R7作发送数据计数作发送数据计数LO: MOV SBUF,R0 ;发送数据;发送数据 JNB TI, ;一帧未发完继续查询;一帧未发完继续查询 CLR TI ;一帧发完清;一帧发完清TI INC R0 DJNZ R7, LO ;数据块未发完继续;数据块未发完继续 SJMP 接收程序:接收程序: ORG 0000H MOV TMOD, #20H MOV TH1, #0E6H MOV TL1, #0E6H SETB TR1 ;初始
36、化;初始化T1, 并启动并启动T1 MOV SCON, #50H ;设定串行方式;设定串行方式1,并允许接收并允许接收 MOV R0, #20H MOV R7, #32 LOOP:JNB RI, ;一帧收完;一帧收完? CLR RI ;收完清;收完清RI MOV R0, SBUF ;将数据读入;将数据读入 INC R0 DJNZ R7, LOOP ;数据未发完,继续,即转;数据未发完,继续,即转LOOP SJMP (2)中断方式编程中断方式的初始化同查询方式,以下仅给出不同部分。中断发送程序:。(部分主程序) SETB EA ; 开中断 SETB ES ;容许串口中断 MOV SBUF , R
37、0 ;发送LOOP: SJMP $ ;等待中断AGA: DJNZ R7 ,LOOP ;数据未发完等待 CLR EA ;数据发完,关中断 SJMP $ ORG 0023H(中断服务程序) IOIP: CLR TI POP DPH POP DPL MOV DPTR ,#AGA ;修改中断返回点 为AGA PUSH DPL PUSH DPH INC R0 MOV SBUF ,R0 RETI中断接收程序:。(部分主程序) SETB EA SETB ESLOOP: SJMP $ AGA: DJNZ R7 ,LOOP CLR EA SJMP $ ORG 0023H(中断服务程序) IOIP: CLR RI
38、 MOV R0 ,SBUF POP DPH POP DPL MOV DPTR , #AGA PUSH DPL PUSH DPH INC R0 RETI#includemain( ) unsingned char i;char *p;TMOD=0 x20;TH1=0 xe6;TL1=0 xe6;TR1=1;SCON=0 x40;p=0 x20;for (i=0;i=32;i+) SBUF=*p p+ while (!TI); TI=0; #include main( ) unsingned char i;char *p;TMOD=0 x20;TH1=0 xe6;TL1=0 xe6;TR1=1;S
39、CON=0 x50;p=0 x20;for (i=0;i=32;i+) while (!RI); RI=0; *p=SBUF; p+ 查询方式查询方式 C 语言发送程序语言发送程序查询方式查询方式 C 语言接收程序语言接收程序TMOD=0 x20;TH1=0 xe6;TL1=0 xe6;TR1=1;SCON=0 x40;p=0 x20;SBUF=*pfor (i=0;i32;);#includeTrs( ) interrupt 4 TI=0; i+; p+; SBUF=*p; main( ) unsingned char i;char *p; 中断方式中断方式 C 语言发送程序语言发送程序TM
40、OD=0 x20;TH1=0 xe6;TL1=0 xe6;TR1=1;SCON=0 x50;p=0 x20;for (i=0;i32;);#includeTrs()() interrupt 4 RI=0; i+; *p =SBUF; p+; main( ) unsingned char i;char *p; 中断方式中断方式 C 语言接收程序语言接收程序RXD89C51TXDP1.0例例8-2 8-2 接线如图(接线如图(P139 P139 图图8-118-11),编一个自发),编一个自发自收程序,检查单片机的串行口是否完好,自收程序,检查单片机的串行口是否完好,f=12MHzf=12MHz,
41、波特率,波特率600600,取,取SMODSMOD0 0。解:依据公式解:依据公式波特率波特率 求得求得 )256(12321xo os sc cf fCCHx 204 MOV TMOD,#20H ; 0010000B,T1工作方式工作方式2MOV TH1, #0CCHMOV TL1, #0CCH ; 设定波特率设定波特率SETB TR1MOV SCON, #50H ; 01010000B,工作方式,工作方式1,接收容许,接收容许ABC: CLR TI MOV P1, #0FEH ; LED灭灭 ACALL DAY ; 延时延时 MOV A, #OFFH MOV SBUF, A ; 发送数据发
42、送数据FFH JNB RI, $ ; RI = 0等待等待 CLR RI MOV A, SBUF ; 接收数据,接收数据,A=FFH MOV P1, A ; 灯亮灯亮 JNB TI, $ ;TI = 0 等待等待 ACALL DAY ; 延时延时 SJMP ABCDAY: MOV R0, #0DAL: MOV R1, #0 DJNZ R1, $ DJNZ R0, DAL RET 如果发送接收正确,可观察到如果发送接收正确,可观察到P1.0P1.0接的发光二极管闪亮。接的发光二极管闪亮。 例例8-2 C语言编程语言编程include Main()unsigned int I;TMOD=0 x20
43、;TH1=0 xcc;TL1=0 xcc; / 初始化初始化T1TR1=1; SCON=0 x50;While(1) / / 无限循环执行一下发送和接收语句无限循环执行一下发送和接收语句TI=0;P1=0 xfe; / LED灭灭for(I=0;I10000;I+); / 延时延时SBUF0 xff; / 发送数据发送数据FFHwhile(RI=0); / RI=0等待等待RI=0; / RI=1清清RIP1=SBUF;/ 接收数据并送接收数据并送P1口,灯亮口,灯亮 while(TI=0); / TI=0等待等待for(I=0;I10000;I+); / 延时延时例例(P141)83,设甲、
44、乙两机进行通信,波特率设甲、乙两机进行通信,波特率为为2400,晶振均为,晶振均为6MH z ,甲机将外部数据,甲机将外部数据存储器存储器4000H40FFH单元内容发向乙机,发单元内容发向乙机,发送数据之前将数据长度发给乙机,当数据发送送数据之前将数据长度发给乙机,当数据发送完向乙机发送一个累加效验和。乙机接收数据完向乙机发送一个累加效验和。乙机接收数据完进行累加和效验,如果和发送方的累加和一完进行累加和效验,如果和发送方的累加和一致,发送数据致,发送数据“0”,如果不一致发送数据,如果不一致发送数据FFH,甲方再重发,编出程序。甲方再重发,编出程序。解解(1)计算)计算T1初值初值 串口方
45、式串口方式1,T1采用方式采用方式2,取,取SMOD=0 2400=1/32 (6 106/(12 (256-X)))得得X=249.5FAH(2)约定)约定R6作为数据长度计数器,计数作为数据长度计数器,计数256个字个字节。采用加节。采用加1计数,初值为计数,初值为0,R5作为累加和寄作为累加和寄存器。存器。甲机发送程序:甲机发送程序:TRT: MOV TMOD ,#20H MOV TH1,#0FAH MOV TL1,#0FAH SETB TR1 MOV SCON ,#50H ;串口方式;串口方式1,允许接收,允许接收 RPT: MOV DPTR,#4000H MOV R6, #00H ;
46、 MOV R5,#00H MOV SBUF,R6 ;发送数据长度;发送数据长度 L1: JBC TI,L2 ;查询是否发送完,;查询是否发送完,TI=1? AJMP L1 L2: MOX A, DPTR MOV SBUF,A ADD A,R5 MOV R5,A ;求发送数据累加和;求发送数据累加和 INC DPTR ;修改发送数据地址指针;修改发送数据地址指针 L4: JBC TI, L3 AJMP L4 L3 : DJNZ R6 , L2 ;判断发送完判断发送完256个数据否个数据否 MOV SBUF , R5 ;发送累加和发送累加和 MOV R5 ,#00H L6 : JBC TI , L5 AJMP L6 L5 : JBC RI , L7 ;等乙机回答 AJMP L5 L7 : MOV A ,SBUF JZ L8 ; 发送正确返回 AJMP RPT ;发送有错,重发 L8 : RET (3)乙机接收程序)乙机接收程序乙机接收甲机发送得数据,并写入以乙机接收甲机发送得数据,并写入以4000H为首地为首地址的外部数据存储器中,首先接收数据长度,接址的外部数据存储器中,首先接收数据长度,接着接收数据,当接收着接收数据,当接收256字节后,接收效验码,字节后,接收效验码,进行累加和校验,数据传送结束,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文库发布:小学生课件
- 2025年小学实践活动教案:学生作品
- 教学设计课件分析
- 环保建筑材料生产厂家销售代理合同范本
- 城市棚户区改造拆迁补偿协议示范文本
- 高端商务区办公场所租赁服务合同
- 初一到初三的教学课件
- 电力及安全相关知识考试试卷含法律作业设备规定等内容
- 眼科高频电刀市场分析:预计2031年全球市场规模将为1.3亿美元
- 2024-2025学年福建省龙岩市连城县一中高一下学期月考语文试题及答案
- 农商银行考试题库100题
- 公安出入境培训课件
- 中登协初级户外指导员培训
- 2023科研机构招聘面试题库100题
- 小学学业生涯规划与目标
- 老旧小区物业投标方案(技术标)
- 办公耗材采购 投标方案(技术方案)
- 钦州市第二人民医院白石湖院区项目环境影响报告书
- 城市水工程概论
- 撤销冒名登记(备案)申请表
- 减肥总结:如何制定有效的减肥计划PPT
评论
0/150
提交评论