版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、会计学1第一页,共87页。电子(dinz)工业出版社项目项目8 单片机与单片机与 PC机通信系统机通信系统(xtng) 的设计的设计第1页/共86页第二页,共87页。l 能了解串行通信的基本知识;能了解串行通信的基本知识; l 能掌握能掌握RS-232C串行通信接口标准;串行通信接口标准; l 能理解能理解51单片机串行通信接口的组成;单片机串行通信接口的组成;l 能理解能理解51单片机的串行口工作原理及应用方法;单片机的串行口工作原理及应用方法;l 能掌握能掌握51单片机串行口工作电路的分析与设计方法;单片机串行口工作电路的分析与设计方法;l 能掌握能掌握PC机与单片机串行口通信系统的设计方
2、法;机与单片机串行口通信系统的设计方法;l 能熟练能熟练(shlin)编写单片机串行口通信的发送和接收数据程序。编写单片机串行口通信的发送和接收数据程序。 学习学习(xux)目标目标 第2页/共86页第三页,共87页。l 叙述叙述RS-232C串行通信串行通信(tng xn)接口标准;接口标准;l 叙述叙述51单片机的串行口工作原理;单片机的串行口工作原理;l 设计单片机与单片机之间的通信设计单片机与单片机之间的通信(tng xn)电路和工作软件;电路和工作软件;l 设计单片机与设计单片机与PC机之间的通信机之间的通信(tng xn)电路和工作软件。电路和工作软件。 工作工作(gngzu)任务
3、任务 第3页/共86页第四页,共87页。任务任务8.1 51单片机之间的串行通信设计单片机之间的串行通信设计任务任务8.2 单片机与单片机与PC机通信系统的设计机通信系统的设计 项目项目(xingm)拓展拓展 实验板串口和实验板串口和USB口软件口软件下载的设计下载的设计项目项目(xingm)小结小结思考与训练思考与训练项目项目(xingm)8 单片机与单片机与PC机通信系机通信系统的设计统的设计第4页/共86页第五页,共87页。8.1.1 RS2328.1.1 RS232串行通信串行通信(tng xn)(tng xn)标准标准8.1.1.1 8.1.1.1 串行通信串行通信并行通信并行通信是
4、数据的各位同时发送或同时接收;是数据的各位同时发送或同时接收;并行通信并行通信优点优点:传送速度快传送速度快 缺点缺点:不便长距离传送不便长距离传送第5页/共86页第六页,共87页。第6页/共86页第七页,共87页。(1)异步通信)异步通信(Asynchronous Communication)异步通信中数据是以字符为单位组成字符帧传送,每一帧数据低位在前,高位在后。发送端和接收端可由各自独立的时钟来控制数据的发送和接收,互不同步。异步通信中数据是以字符为单位组成字符帧传送,每一帧数据低位在前,高位在后。发送端和接收端可由各自独立的时钟来控制数据的发送和接收,互不同步。 字符帧格式:异步通信的
5、重要字符帧格式:异步通信的重要(zhngyo)指标。接收端依靠字符帧格式来判断发送端发送的开始和结束。指标。接收端依靠字符帧格式来判断发送端发送的开始和结束。 优点:对硬件要求较低,实现较简单、灵活,适用于数据的随机发送优点:对硬件要求较低,实现较简单、灵活,适用于数据的随机发送/接收。接收。 缺点:工作速度较低,每个字节都要建立一次同步(额外附加两位)。单片机主要采用异步通信方式。缺点:工作速度较低,每个字节都要建立一次同步(额外附加两位)。单片机主要采用异步通信方式。第7页/共86页第八页,共87页。字符帧(Character Frame)也叫数据帧,由起始位、数据位、奇偶校验位和停止位等
6、4部分组成。起始位:位于字符帧开头,只占1位,为逻辑“0”电平,用于向接收设备表示发送(f sn)端开始发送(f sn)一帧信息。数据位:D0D7紧跟起始位之后,用户根据情况可取5 8位,低位在前,高位在后。奇偶校验位:位于数据位之后,仅占1位,用来表征串行通信中采用奇校验还是偶校验,由用户决定。停止位:位于字符帧最后,为逻辑“1”电平。通常可取1位、1.5位或2位,用于向接收端表示一帧字符信息已经发送(f sn)完,也为发送(f sn)下一帧作准备。第8页/共86页第九页,共87页。图8.1串行异步通信(tng xn)的字符帧格式第9页/共86页第十页,共87页。(2)同步通信)同步通信(S
7、ynchronous Communication) 同步通信是指在发送设备和接收设备同步时钟频率的情况下,发送设备先发送串行通信数据同步信号给接收设备,接收设备接收到同步信号后,开始进行串行数据块的传送,当串行数据块传送完毕时,发送设备发送结束同步通信是指在发送设备和接收设备同步时钟频率的情况下,发送设备先发送串行通信数据同步信号给接收设备,接收设备接收到同步信号后,开始进行串行数据块的传送,当串行数据块传送完毕时,发送设备发送结束(jish)串行通信同步数据,停止串行通信。串行通信同步数据,停止串行通信。 优点:数据传输速率较高,通常可达优点:数据传输速率较高,通常可达56000 b/s或更
8、高。或更高。 缺点:要求发送时钟和接收时钟必须保持严格同步。缺点:要求发送时钟和接收时钟必须保持严格同步。图8.2 串行同步通信(tng xn)的数据块格式第10页/共86页第十一页,共87页。波特率:每秒钟传送二进制数码的位数,也叫比特数,单位为b/s,即位/秒。 波特率表征数据传输的速度,波特率越高,数据传输速度越快。 字符的实际传输速率是每秒内所传字符帧的帧数,和字符帧格式(g shi)有关。异步通信的波特率通常为509600 b/s,同步通信的波特率可达56/或更高。第11页/共86页第十二页,共87页。串行通信根据(gnj)数据传送的方向及时间关系可分为单工、半双工和全双工三种制式。
9、 单工制式(单工制式(Simplex) 单工制式是指甲乙双方通信单工制式是指甲乙双方通信(tng xn)时只能单向传送数据,发送方和接收方固定。时只能单向传送数据,发送方和接收方固定。第12页/共86页第十三页,共87页。 半双工制式半双工制式(zh sh)(Half Duplex) 半双工制式半双工制式(zh sh)是指通信双方都具有发送器和接收器,既可发送也可接收,但不能同时接收和发送,发送时不能接收,接收时不能发送。是指通信双方都具有发送器和接收器,既可发送也可接收,但不能同时接收和发送,发送时不能接收,接收时不能发送。第13页/共86页第十四页,共87页。 全双工制式(全双工制式(Fu
10、ll Duplex) 全双工制式指通信双方均设有发送器和接收器,并且信道全双工制式指通信双方均设有发送器和接收器,并且信道(xn do)划分为发送信道划分为发送信道(xn do)和接收信道和接收信道(xn do),因此全双工制式可实现甲乙双方同时发送和接收数据,发送时能接收,接收时也能发送。,因此全双工制式可实现甲乙双方同时发送和接收数据,发送时能接收,接收时也能发送。第14页/共86页第十五页,共87页。 串行通信的格式及约定(如:同步方式、通讯速率、数据串行通信的格式及约定(如:同步方式、通讯速率、数据(shj)块格式、信号电平块格式、信号电平等)不同,形成了多种串行通信的协议与接口标准:
11、等)不同,形成了多种串行通信的协议与接口标准: 通用异步收发器通用异步收发器(UART)本课程介绍的串口本课程介绍的串口 通用串行总线(通用串行总线(USB) I2C总线总线 CAN总线总线 SPI总线总线 RS-485,RS-232C,RS422A标准标准等等等等第15页/共86页第十六页,共87页。 异步通信异步通信(tng xn)的硬件电路称为的硬件电路称为UART,即通用异步接收器,即通用异步接收器/发送器发送器(Universal Asychronous Receiver/Transmitter) 同步通信同步通信(tng xn)的硬件电路称为的硬件电路称为USRT(Universa
12、l Sychronous Receiver/Transmitter) 异步和同步通信异步和同步通信(tng xn)共用的硬件电路称为共用的硬件电路称为USART(Universal Sychronous Asychronous Receiver/Transmitter)第16页/共86页第十七页,共87页。8.1.1.2 8.1.1.2 串行通信接口标准串行通信接口标准(biozhn)RS-232C(biozhn)RS-232C RS-232C的全称是的全称是EIARS232C标准,标准,EIA(Electronic Industry Association)代表美国电子工业协会,)代表美国电
13、子工业协会,RS(Recommended Standard)代表)代表EIA的的“推荐标准推荐标准”,232为标识号。为标识号。RS-232C主要用来定义计算机系统的一些数据终端设备主要用来定义计算机系统的一些数据终端设备(DTE)和数据电路终接设备和数据电路终接设备(DCE)之间的电气性能。之间的电气性能。 例如例如(lr):CRT、打印机与、打印机与CPU的通信的通信 MCS-51单片机与单片机与PC机的通信机的通信 RS-232C适用范围:设备间的通信距离不大于适用范围:设备间的通信距离不大于15 m 传输速率最大为传输速率最大为20 kb/s第17页/共86页第十八页,共87页。1.
14、RS-232C信息格式标准信息格式标准RS-232C采用串行格式。采用串行格式。 标准规定:信息的开始为起始位,信息的结束为停止位;信息本身可以是标准规定:信息的开始为起始位,信息的结束为停止位;信息本身可以是5、6、7、8位再加一位奇偶校验位。如果两个位再加一位奇偶校验位。如果两个(lin )信息之间无信息,则写信息之间无信息,则写“1”,表示空。,表示空。图8.4 RS-232C信息格式第18页/共86页第十九页,共87页。2. RS-232C引脚定义引脚定义RS-232C接口规定使用接口规定使用25针针“D”型口连接器。现在微型计算机通信中,常用的只有型口连接器。现在微型计算机通信中,常
15、用的只有9根信号引脚,所以根信号引脚,所以(suy)用用9针针“D”型接口(型接口(DB9)连接器替代)连接器替代25针连接器。针连接器。 图8.5 DB 9型连接器定义第19页/共86页第二十页,共87页。插针序号信号名称功能1PGND保护接地2(3)TXD发送数据(串行输出)3(2)RXD接收数据(串行输入)4(7)RTS请求发送RTS(输出)5(8)CTS消除发送CTS(输入)6(6)DSRDCE就绪(数据建立就绪)7(5)SGND信号接地8(1)DCD载波检测20(4)DRTDTE就绪(数据终端准备就绪)22(9)RI振铃指示表表8.18.1RS-232CRS-232C标准接口主要标准
16、接口主要(zhyo)(zhyo)引脚定义引脚定义注:插针序号()内为针非标准连接器的引脚号。第20页/共86页第二十一页,共87页。3. RS-232C电器特性电器特性RS-232C的电气标准的电气标准(biozhn)采用负逻辑:采用负逻辑: 逻辑逻辑“0”:+5 V+15 V 逻辑逻辑“1”:5 V15 V 注意:注意:RS-232C必须进行电平转换后才能和必须进行电平转换后才能和TTL电平直接相连,否则将把电平直接相连,否则将把TTL电路烧坏。电路烧坏。 RS232与与TTL之间的电平转换目前多采用之间的电平转换目前多采用MAX232、MAX220、HIN232等芯片,它们同时等芯片,它们
17、同时(tngsh)集成了集成了RS-232电平与电平与TTL电平之间的互换。电平之间的互换。第21页/共86页第二十二页,共87页。 第一部分是电荷泵电路。由第一部分是电荷泵电路。由1、2、3、4、5、6脚和脚和4只只电容构成。功能是产生电容构成。功能是产生+12v和和-12v两个电源,提供给两个电源,提供给RS-232串口电平的需要。串口电平的需要。 第二部分是数据转换通道。由第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中脚构成两个数据通道。其中13脚(脚(R1IN)、)、12脚(脚(R1OUT)、)、11脚(脚(T1IN)、)、14脚(脚(T1O
18、UT)为第一数据通)为第一数据通道。道。 8脚(脚(R2IN)、)、9脚(脚(R2OUT)、)、10脚(脚(T2IN)、)、7脚脚(T2OUT)为第二数据通道。)为第二数据通道。 TTL/CMOS数据从数据从T1IN、T2IN输入转换成输入转换成RS-232数据从数据从T1OUT、T2OUT送到电脑送到电脑DP9插头插头(chtu);DP9插头插头(chtu)的的RS-232数据从数据从R1IN、R2IN输入转换成输入转换成TTL/CMOS数据后从数据后从R1OUT、R2OUT输出。输出。 第三部分是供电。第三部分是供电。15脚脚DNG、16脚脚VCC(+5v)。)。第22页/共86页第二十三
19、页,共87页。lTTL/CMOS INPUTS 端口:输入端口:输入TLL或或CMOS信号,一般为信号,一般为0-5V,低电平为零,低电平为零,高电平为高电平为VCC。lTTL/CMOS OUTPUTS端口:输出端口:输出TLL或或CMOS信号,输出电压一般为信号,输出电压一般为0-5V,低电平为,低电平为零,高电平为零,高电平为VCC。lRS232 OUTPUTS 端口:把端口:把TTL或或CMOS的信的信号转为号转为RS232的信号输出,输出为正负的信号输出,输出为正负12V连接连接到电脑。到电脑。lRS232 INPUTS端口:接收到电脑发出的正负端口:接收到电脑发出的正负12伏,由伏,
20、由RS232输出转为输出转为TTL或或CMOS信号。信号。lMAX232内部内部(nib)有二组有二组RS232转换电路,转换电路,使用时使用时l 11-14 13-12为一组为一组.l 10-7 8-9为一组为一组第23页/共86页第二十四页,共87页。图8.7 MAX232通信接口电路第24页/共86页第二十五页,共87页。8.1.2 MCS-518.1.2 MCS-51单片机串行口工作单片机串行口工作(gngzu)(gngzu)原理原理 51单片机内部有一个可编程的全双工的异步串行通信接口,它通过数据接收引脚单片机内部有一个可编程的全双工的异步串行通信接口,它通过数据接收引脚RXD(P3
21、.0)和数据发送引脚)和数据发送引脚TXD(P3.1)与外设进行串行通信,可以同时发送和接收数据。这个串行口既可以实现异步通信,又可以用于网络通信,还可以作为同步移位)与外设进行串行通信,可以同时发送和接收数据。这个串行口既可以实现异步通信,又可以用于网络通信,还可以作为同步移位(y wi)寄存器使用。其帧格式有寄存器使用。其帧格式有8位、位、10位和位和11位,并能设置各种波特率。位,并能设置各种波特率。第25页/共86页第二十六页,共87页。 1. 串行口内部结构串行口内部结构串行口包含的特殊串行口包含的特殊(tsh)功能寄行器有功能寄行器有SBUF、SCON、PCON图8.8 串行口结构
22、框图第26页/共86页第二十七页,共87页。(1) 串行口数据缓冲器串行口数据缓冲器SBUF在逻辑上只有一个,既表示发送寄存器,又表示接收寄存器,具有同一在逻辑上只有一个,既表示发送寄存器,又表示接收寄存器,具有同一(tngy)个单元地址个单元地址99H,用同一,用同一(tngy)寄存器名寄存器名SBUF。 在物理上有两个,一个是发送缓冲寄存器,另一个是接收缓冲寄存器。在物理上有两个,一个是发送缓冲寄存器,另一个是接收缓冲寄存器。 发送时,只需将发送数据输入发送时,只需将发送数据输入SBUF,CPU将自动启动和完成串行数据的发送;将自动启动和完成串行数据的发送; 接收时,接收时,CPU将自动把
23、接收到的数据存入将自动把接收到的数据存入SBUF,用户只需从,用户只需从SBUF中读出接收数据。中读出接收数据。 SBUF=0 xFF 启动一次数据发送启动一次数据发送,可向可向SBUF 再发送下一个数再发送下一个数 P1=SBUF 完成一次数据接收完成一次数据接收,SBUF可再可再 接收下一个数接收下一个数第27页/共86页第二十八页,共87页。(2) 串行口控制寄存器SCONSCON用来控制串行口的工作方式和状态,可以位寻址,字节(z ji)地址为98H。单片机复位时,SCON的所有位全为0。SCON 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H SM0 SM1 SM2
24、REN TB8 RB8 TI RI 图8.9 SCON的各位定义第28页/共86页第二十九页,共87页。SM0、SM1:串行方式选择(xunz)位,其定义如表8.2所示。表8.2 串行口方式(fngsh)的定义第29页/共86页第三十页,共87页。SM2:多机通信控制位,用于方式2和方式3中。在方式2、3处于接收方式时,若SM2=1, 且接收到的第9位数据RB8为0,则不激活RI;若SM2=1,且RB8=1,则置RI=1。在方式2、3处于接收或发送方式时,若SM2=0,则不论接收到的第9位RB8为0还是为1,TI、RI都以正常方式被激活。在方式1处于接收时,若SM2=1,则只有(zhyu)当收
25、到有效的停止位后,RI才置1。在方式0中,SM2应为0。第30页/共86页第三十一页,共87页。REN:允许串行接收位。它由软件置位或清零(qn ln)。REN=1时,允许接收;REN=0时,禁止接收。TB8:发送数据的第9位。在方式2和方式3下,TB8由软件置位或复位,可用做奇偶校验位。在多机通信中,TB8可作为区别地址帧或数据帧的标识位:地址帧时TB8为1;数据帧时TB8为0。RB8:接收数据的第9位。功能同TB8。第31页/共86页第三十二页,共87页。TI:发送(f sn)中断标志位。在方式0下,发送(f sn)完8位数据后,TI由硬件置位;在其它方式中,TI在发送(f sn)停止位之
26、初由硬件置位。TI是发送(f sn)完一帧数据的标志,可以用指令查询是否发送(f sn)结束。TI=1时,也可向CPU申请中断,响应中断后,必须由软件清除TI。RI:接收中断标志位。在方式0下,接收完8位数据后,RI由硬件置位;在其它方式中,RI在接收停止位的中间由硬件置位。同TI一样,也可以通过指令查询是否接收完一帧数据。RI=1时,也可申请中断,响应中断后,必须由软件清除RI。第32页/共86页第三十三页,共87页。(3)电源及波特率选择寄存器PCONPCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,不可以(ky)位寻址,字节地址为87H。在HMOS的8051单片机中,PCO
27、N除了最高位以外,其它位都是虚设的。 只有(zhyu)SMOD与串行通信有关。SMOD为波特率选择位。在方式1、2和3下,串行通信的波特率与SMOD有关。当SMOD=1时,通信波特率乘2;当SMOD=0时,波特率不变。第33页/共86页第三十四页,共87页。 2. 串行口的工作方式串行口的工作方式(1) 方式方式0在方式在方式0下,串行口作为同步移位寄存器使用,其波特率固定下,串行口作为同步移位寄存器使用,其波特率固定(gdng)为为fosc/12。串行数据从。串行数据从RXD(P3.0)端输入或输出,同步移位脉冲由端输入或输出,同步移位脉冲由TXD(P3.1)送出。送出。 移位数据的发送和接
28、收以移位数据的发送和接收以8位为一帧,不设起始位和停止位,无论输入位为一帧,不设起始位和停止位,无论输入/输出,均低位在前高位在后。输出,均低位在前高位在后。 这种方式常用于扩展这种方式常用于扩展I/O口。口。第34页/共86页第三十五页,共87页。 方式0用于扩展输出口(发送)当一个数据写入串行口发送缓冲器SBUF时,串行口将8位数据以fosc/12的波特率从RXD引脚输出(低位在前),发送完置中断(zhngdun)标志TI为1,请求中断(zhngdun)。在再次发送数据之前,必须由软件清TI为0。74LS164为串入并出移位寄存器(SIPO)。图8.12 方式0扩展输出口电路第35页/共8
29、6页第三十六页,共87页。应用实例1:用单片机的串行口外接74LS164,控制8只LED滚动(gndng)显示。第36页/共86页第三十七页,共87页。源程序:#include#include#define uchar unsigned char#define uint unsigned intvoid DelayMS(uint x) uchar i; while(x-) for(i=0; i120; i+);void main( ) uchar c = 0 x80; SCON = 0 x00; /串行模式(msh)0 TI = 1; /TI 置 1 while(1) c = _crol_(c
30、,1); SBUF = c; while(TI = = 0); TI = 0; DelayMS(400); 第37页/共86页第三十八页,共87页。方式0用于扩展输入口(接收)在满足REN=1和RI=0的条件下,串行口即开始从RXD端以fosc/12的波特率输入数据(低位在前),当接收完8位数据后,置中断标志RI为1,请求中断。在再次接收数据之前(zhqin),必须由软件清RI为0。具体接线图如图8.15所示。其中,74LS165为并入串出移位寄存器(PISO)。串行控制寄存器SCON中的TB8和RB8在方式0中未用。值得注意的是,每当发送或接收完8位数据后,硬件会自动置TI或RI为1,CPU
31、响应TI或RI中断后,必须由用户用软件清0。方式0时,SM2必须为0。第38页/共86页第三十九页,共87页。图8.15 方式0扩展输入口电路第39页/共86页第四十页,共87页。第40页/共86页第四十一页,共87页。 while(1) SPL = 0; /置数,读入并行输入8位数据(shj) SPL = 1; /移位,输入封锁,串行转换 while(RI = =0);/未收到等待 RI = 0; P0 = SBUF; DelayMS(20); 源程序:#include#include#include#define uchar unsigned char#define uint unsign
32、ed intsbit SPL = P25;void DelayMS(uint x) uchar i; while(x-) for(i=0; i120; i+);void main( ) SCON = 0 x10; /串行模式0,允许(ynx)串口接收 第41页/共86页第四十二页,共87页。(2) 方式1工作在方式1时,串行口为波特率可调的10位通用异步接口UART。发送或接收的一帧信息(xnx)包括1位起始位0,8位数据位和1位停止位1。图8.17 串行口方式1的数据格式第42页/共86页第四十三页,共87页。发送 发送时,数据从TXD端输出,当数据写入发送缓冲器SBUF后,启动发送器发送。
33、当发送完一帧数据后,置中断标志TI为1。方式1所传送的波特率取决于定时器1的溢出率和PCON中的SMOD位。接收接收时,由REN置1,允许接收,串行口采样RXD,当采样由1到0跳变时,确认是起始位“0”,开始接收一帧数据。当RI=0,且停止位为1或SM2=0时,停止位进入RB8位,同时(tngsh)置中断标志RI;否则信息将丢失。所以,采用方式1接收时,应先用软件清除RI或SM2标志。第43页/共86页第四十四页,共87页。 波特率 方式1波特率可变,由定时/计数器T1的计数溢出(y ch)率决定。 波特率 = 2SMOD (T1溢出(y ch)率)/ 32 其中SMOD为PCON寄存器中最高
34、位的值,SMOD=1表示波特率倍增。 在实际应用时,通常是先确定波特率,后根据波特率求T1定时初值,因此上式又可写为: 第44页/共86页第四十五页,共87页。表8.3 定时器1产生(chnshng)的常用波特率第45页/共86页第四十六页,共87页。(3) 方式2方式2下,串行口为11位UART,传送波特率与SMOD有关(yugun)。发送或接收的一帧数据包括1位起始位0,8位数据位,1位可编程位(用于奇偶校验)和1位停止位1。图8.20 方式2的数据格式第46页/共86页第四十七页,共87页。 可编程位可编程位TB8/RB8既可作奇偶校验位用,也可作控制既可作奇偶校验位用,也可作控制(kn
35、gzh)位(多机通信)用,其功能由用户确定。位(多机通信)用,其功能由用户确定。 波特率:方式波特率:方式2波特率固定,即波特率固定,即fosc/32和和fosc/64。 如用公式如用公式(gngsh)表示则为:波特率表示则为:波特率=2SMOD fosc/64当当SMOD=0时,波特率时,波特率=20 fosc/64= fosc/64当当SMOD=1时,波特率时,波特率=21 fosc/64= fosc/32第47页/共86页第四十八页,共87页。(4) 方式3方式3为波特率可变的11位UART通信(tng xn)方式。除了波特率不同以外,方式3和方式2完全相同。注意(zh y):单片机进行
36、多机通信时常常采用串行口的工作 方式2或工作方式3。 第48页/共86页第四十九页,共87页。(5) 串行口四种工作方式(fngsh)的比较 四种工作方式(fngsh)的区别主要表现在帧格式及波特率两个方面。工作方式帧 格 式波 特 率方式08位全是数据位,没有起始位、停止位固定,每个机器周期传送一位数据方式110位没,其中1位起始位,8位数据位,1位停止位不固定,取决于T1溢出率和SMOD方式211位,其中1位起始位,9位数据位,1位停止位固定,即2SMODfosc /64方式3同方式2同方式1第49页/共86页第五十页,共87页。 3. 串行口的初始化串行口的初始化51单片机的串行口需初始
37、化后,才能完成数据的输入、输出。其初始化过程如下:单片机的串行口需初始化后,才能完成数据的输入、输出。其初始化过程如下: (1)按选定串行口的工作方式设定)按选定串行口的工作方式设定SCON的的SM0、SM1两位二进制编码两位二进制编码(bin m)。 (2)对于工作方式)对于工作方式2或或3,应根据需要在,应根据需要在TB8中写入待发送的第中写入待发送的第9位数据。位数据。 (3)若选定的工作方式不是方式)若选定的工作方式不是方式0,还需设定接收发送的波特率。,还需设定接收发送的波特率。 (4)设定)设定SMOD的状态,以控制波特率是否加倍。的状态,以控制波特率是否加倍。 (5)若选定工作方
38、式)若选定工作方式1或或3,则应对定时器,则应对定时器T1进行初始化以设定其溢出率。进行初始化以设定其溢出率。第50页/共86页第五十一页,共87页。例:51单片机的晶振频率(pnl)为11.0592MHz,波特率为1200b/s,要求串口发送数据为8位,编写它的初始化程序。解:假设SMOD=1,T1工作在方式2。 初始化程序如下: SCON=0 x50;/串口工作于方式PCON=0 x80;/SMOD=1 TMOD=0 x20;/T1工作于方式2定时方式TH1=0 xD0; /设置时间常数(根据公式计算得来或查表)TL1=0 xD0; /自动重装时间常数TR1=1; /启动T1第51页/共8
39、6页第五十二页,共87页。8.1.3 8.1.3 单片机之间的双机串行通信单片机之间的双机串行通信(tng xn)(tng xn)的设计的设计8.1.3.1 518.1.3.1 51单片机之间的通信单片机之间的通信(tng xn)(tng xn) 1. 双机通信双机通信 距离较近的两个距离较近的两个MCS-51单片机系统可以将它们的串行口直接相连,实现双机通信。单片机系统可以将它们的串行口直接相连,实现双机通信。 为了增加通信距离,减少为了增加通信距离,减少(jinsho)通道和电源干扰,可以在通信线路上利用通道和电源干扰,可以在通信线路上利用RS-232C等标准接口进行双机通信。等标准接口进
40、行双机通信。第52页/共86页第五十三页,共87页。图8.23 单片机双机通信系统第53页/共86页第五十四页,共87页。 51单片机串行口的方式2和方式3有一个专门的应用领域,即多机通信。所谓多机通信是指一台主机和多台从机之间的通信,构成主从式多机分布通信系统。主机发送的信息可以传输到各个(gg)从机,各从机只能向主机发送信息,从机之间不能进行相互通信。 2. 多机通信(tng xn)第54页/共86页第五十五页,共87页。图8.24 单片机多机通信(tng xn)系统第55页/共86页第五十六页,共87页。 单片机作为(zuwi)下位机,主要实现数据采集、检测与控制等功能。PC机通常作为(
41、zuwi)上位机接收下位机采集的各种数据,并进行数据运算、处理与管理等功能,同时向下位机发出各种指令。通常PC机工作于查询方式,而51单片机既可以工作于查询方式,又可以工作于中断方式。因此,实现PC机与用单片机间数据通信是十分重要的。 PC机与单片机之间可以由RS-232C等标准接口相连。 3. PC机和单片机之间的通信(tng xn)第56页/共86页第五十七页,共87页。8.1.3.2 518.1.3.2 51单片机双机串行通信单片机双机串行通信(tng xn)(tng xn)设计设计 1. 任务要求任务要求甲机发送数据,乙机接收数据,甲机的甲机发送数据,乙机接收数据,甲机的K1按键按键(
42、n jin)通过串口发送信息控制乙机的通过串口发送信息控制乙机的LED灯灯D3和和D4闪烁:闪烁: 第一次按下第一次按下K1键,甲机发送字符键,甲机发送字符“A”, 甲机的甲机的D1和乙机的和乙机的D3都闪烁;都闪烁; 第二次按下第二次按下K1键,甲机发送字符键,甲机发送字符“B”, 甲机的甲机的D2和乙机的和乙机的D4都闪烁;都闪烁; 第三次按下第三次按下K1键,甲机发送字符键,甲机发送字符“C”, 甲机的甲机的D1、D2和乙机的和乙机的D3、D4都闪烁;都闪烁; 第四次按下第四次按下K1键,甲机停止发送,甲机的键,甲机停止发送,甲机的D1、D2和乙机的和乙机的D3、D4都停止闪烁。都停止闪
43、烁。第57页/共86页第五十八页,共87页。 2. 任务分析任务分析首先要根据任务的要求将两机串行口工作的方式和其中的参数设置好。首先要根据任务的要求将两机串行口工作的方式和其中的参数设置好。 两机的串行口采用相同的工作方式两机的串行口采用相同的工作方式1,使用,使用11.0592MHz晶体晶体(jngt),甲机在本任务中只要发送数据,所以甲机的,甲机在本任务中只要发送数据,所以甲机的SCON=0 x40,而乙机要求接收数据,所以乙机的,而乙机要求接收数据,所以乙机的SCON=0 x50,定时器,定时器T1作波特率发生器使用,工作在方式作波特率发生器使用,工作在方式2,其初值,其初值TH1=T
44、L1=0 xFD(253),PCON=0 x00(SMOD=0)波特率波特率= = 20 11.0592 106 /(32 12 (256-253)= 9600b/sX)(25612f322oscSMOD第58页/共86页第五十九页,共87页。 3. 任务设计任务设计(shj)(1)器件的选择)器件的选择器件名称数量(只)AT89C51211.0592MHz 晶体222pF瓷片电容422uF电解电容21k电阻2220电阻4轻触按键2发光二极管LED 4第59页/共86页第六十页,共87页。(2)硬件(yn jin)原理图设计图8.25 双机通信电路XTAL218XTAL119ALE30EA31
45、PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115U1AT89C51(甲机)C
46、LOCK=11.0592MHzXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.
47、7/RD17P3.6/WR16P3.5/T115U2AT89C51(乙机)CLOCK=11.0592MHzK1D3R1220R2220D1R3220D2D4R4220第60页/共86页第六十一页,共87页。(3)软件(run jin)程序设计甲机发送源程序:#include#define uchar unsigned char#define uint unsigned intsbit K1 = P10;sbit D1 = P00;sbit D2 = P03;/ 延时1ms void Delay(uint x) uchar i; while(x-) for(i=0; i120; i+);第61页
48、/共86页第六十二页,共87页。void putc_to_SerialPort(uchar c) SBUF = c ; while (TI = = 0) ; TI = 0;void main( ) uchar Operation_NO = 0; SCON = 0 x40; /串口工作(gngzu)方式1 TMOD=0 x20; /T1工作(gngzu)方式2 PCON=0 x00; TH1=0 xFD; /波特率9600 TL1=0 xFD; TI= 0; TR1=1;第62页/共86页第六十三页,共87页。while(1) if(K1= =0) while (K1= =0); Operati
49、on_NO=(Operation_NO+1)%4; switch(Operation_NO) case 0: D1= D2=1; break; case 1: putc_to_SerialPort(A); D1= D1; D2=1; break; case 2: putc_to_SerialPort(B); D2=D2; D2=1; break; 第63页/共86页第六十四页,共87页。 case 3: putc_to_SerialPort(C); D1=D1; D2=D2; break; Delay(100); 第64页/共86页第六十五页,共87页。乙机接收(jishu)源程序:#incl
50、ude#define uchar unsigned char#define uint unsigned intsbit D1 = P00;sbit D2 = P03;/ 延时1msvoid Delay(uint x) uchar i; while(x-) for(i=0; i120; i+);第65页/共86页第六十六页,共87页。void main( ) SCON=0 x50; TMOD=0 x20; PCON=0 x00; TH1=0 xFD; /波特率9600 TL1=0 xFD; RI= 0; TR1=1; D1=D2=1; while(1) if(RI) RI=0;第66页/共86页
51、第六十七页,共87页。 switch(SBUF) case A: D1=D1; D2=1; break; case B: D2=D2; D1=1; break; case C: D1=D1;D2=D2;break; else D1=D2=1; Delay(100); 第67页/共86页第六十八页,共87页。(4)软硬件联合调试(dio sh) 将甲机发送程序编译成甲机.hex文件下载到甲实验板的单片机中,将乙机接收程序编译成乙机.hex文件下载到乙实验板的单片机中,两机同时通电,按任务要求检验是否通信成功。注意:单片机的双机通信要对两机的串行通信软件分别编写,分清楚其发送(f sn)和接收过程
52、,不要混淆。单片机发送(f sn)数据就是向SBUF写数据的过程,单片机接收数据就是从SBUF读取数据的过程。第68页/共86页第六十九页,共87页。8.2.1 SComAssistant V2.18.2.1 SComAssistant V2.1串口调试串口调试(dio sh)(dio sh)助手助手图8.26 串口调试助手界面第69页/共86页第七十页,共87页。8.2.2 8.2.2 单片机与单片机与PCPC机通信系统机通信系统(xtng)(xtng)的设计的设计 1. 任务要求任务要求(yoqi)将实验板的串口与将实验板的串口与PC机连接好,打开机连接好,打开PC机上的机上的SComAs
53、sistant V2.1串口调试助手。将串口调试助手。将PC机键盘输入的机键盘输入的1个字符发送给个字符发送给51单片机,单片机接收到单片机,单片机接收到PC机发来的数据后,回送同一数据给机发来的数据后,回送同一数据给PC机,并在机,并在PC机屏幕上显示出来。只要机屏幕上显示出来。只要PC机屏幕上显示的字符与键入的字符相同,即表明机屏幕上显示的字符与键入的字符相同,即表明PC机与单片机间通信正常。机与单片机间通信正常。 通信协议为:波特率选为通信协议为:波特率选为9600b/s;无奇偶校验位;无奇偶校验位;8位数据位;位数据位;1位停止位。位停止位。第70页/共86页第七十一页,共87页。 2
54、. 任务任务(rn wu)分析分析根据任务根据任务(rn wu)的要求将单片机串行口的工作方式和其中的参数设置好。的要求将单片机串行口的工作方式和其中的参数设置好。 单片机的串行口采用工作方式单片机的串行口采用工作方式1,采用,采用22.1184MHz晶体,单片机在本任务晶体,单片机在本任务(rn wu)中要发送数据也要接收数据,所以中要发送数据也要接收数据,所以REN=1,定时器,定时器T1作波特率发生器使用,工作在方式作波特率发生器使用,工作在方式2,由于采用,由于采用9600b/s波特率,其初值波特率,其初值TH1=TL1=0 xFA(250)。第71页/共86页第七十二页,共87页。
55、3. 任务设计任务设计(1)器件选择)器件选择 一个一个51单片机系统(单片机系统(STC89C52) 一台一台PC机(安装机(安装SComAssistant V2.1串口调试助手串口调试助手(zhshu)软件)软件) 一根一根RS-232C标准的串行通信线标准的串行通信线 (2)硬件原理图设计)硬件原理图设计 本任务采用一块单片机实验板和一台本任务采用一块单片机实验板和一台PC机。用串口线将实验板的机。用串口线将实验板的DB9串行接口与串行接口与PC机的机的DB9串行接口连接好即可。串行接口连接好即可。第72页/共86页第七十三页,共87页。 (3)软件程序设计 PC机上的程序用SComAs
56、sistant V2.1串口调试助手(zhshu)的成熟软件。 实验板上STC89C52串口通信源程序如下: #include #define uchar unsigned char #define uint unsigned int unsigned char a; bit flag=0; char str14=I receive !;第73页/共86页第七十四页,共87页。 /串口初始化子程序void init()TMOD=0 x20; /T1工作在方式(fngsh)2TH1=0 xFA;TL1=0 xFA;TR1=1; /开启T1 SM0=0; /串口工作在方式(fngsh)1SM1=1;REN=1; /允许串口接收EA=1; /开总中断ES=1; /开串口中断 RI=0;第74页/共86页第七十五页,共87页。 /串口发送数据子程序void send() int i; ES=0; str11=a; for(i=0;i14;i+) SBUF=stri; while(!TI); TI=0; flag=0; ES=1;第75页/共86页第七十
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 寻友启事范文(15篇)
- 卒中护理科普宣教
- 新生儿早期基本保健试题含答案
- 2025年信息技术考试试题库及答案
- 水果类营养价值
- 中级会计师财务管理押题试卷及答案
- 2025年信息化工作人员面试题库及答案
- 2025版结节性硬化症常见症状及护理建议
- 建筑施工-移动式操作平台专项施工方案
- 2025年义务教育信息技术新课程标准考试测试题及部分答案
- 二十届四中全会测试题及参考答案
- 2025年中国RWS行业调研报告
- 2025年入团考试测试题目及答案
- 2025年入团积极分子题库及答案(完整版)
- 2025江西吉安市低空经济发展促进中心选调工作人员7人考试参考试题及答案解析
- 华润燃气管理能力测评题库及答案详解
- 2025年三支一扶计划考试笔试试题(含答案)
- GB/T 3920-2024纺织品色牢度试验耐摩擦色牢度
- 23G409先张法预应力混凝土管桩
- 2025中级消防设施操作员作业考试题及答案(1000题)
- 丹东海上风电项目可行性研究报告参考范文
评论
0/150
提交评论