项目8单片机与PC机通信系统的设计

收藏

编号:170348890    类型:共享资源    大小:2.53MB    格式:PPT    上传时间:2022-11-20
10
积分
关 键 词:
项目 单片机 PC 通信 系统 设计
资源描述:
电子工业出版社单片机控制技术单片机控制技术 项目式教程项目式教程 (C C语言版)语言版)电子工业出版社项目项目8 8 单片机与单片机与 PC PC机通信系统机通信系统 的设计的设计l 能了解串行通信的基本知识;能了解串行通信的基本知识;l 能掌握能掌握RS-232CRS-232C串行通信接口标准;串行通信接口标准;l 能理解能理解5151单片机串行通信接口的组成;单片机串行通信接口的组成;l 能理解能理解5151单片机的串行口工作原理及应用方法;单片机的串行口工作原理及应用方法;l 能掌握能掌握5151单片机串行口工作电路的分析与设计方法;单片机串行口工作电路的分析与设计方法;l 能掌握能掌握PCPC机与单片机串行口通信系统的设计方法;机与单片机串行口通信系统的设计方法;l 能熟练编写单片机串行口通信的发送和接收数据程序。能熟练编写单片机串行口通信的发送和接收数据程序。学习目标学习目标 l 叙述叙述RS-232CRS-232C串行通信接口标准;串行通信接口标准;l 叙述叙述5151单片机的串行口工作原理;单片机的串行口工作原理;l 设计单片机与单片机之间的通信电路和工作软件;设计单片机与单片机之间的通信电路和工作软件;l 设计单片机与设计单片机与PCPC机之间的通信电路和工作软件。机之间的通信电路和工作软件。工作任务工作任务 任务任务8.1 51单片机之间的串行通信设计单片机之间的串行通信设计任务任务8.2 单片机与单片机与PCPC机通信系统的设计机通信系统的设计 项目拓展项目拓展 实验板串口和实验板串口和USB口软件下载的设计口软件下载的设计项目小结项目小结思考与训练思考与训练项目项目8 8 单片机与单片机与PCPC机通信系统的设计机通信系统的设计任务任务8.1 51单片机之间的串行通信设计单片机之间的串行通信设计 l CPU与外部的信息交换称为通信。l 基本的通信方式有两种:并行通信和串行通信并行通信和串行通信 8.1.1 RS2328.1.1 RS232串行通信标准串行通信标准8.1.1.1 8.1.1.1 串行通信串行通信并行通信并行通信是数据的各位同时发送或同时接收;是数据的各位同时发送或同时接收;并行通信并行通信优点优点:传送速度快传送速度快 缺点缺点:不便长距离传送不便长距离传送串行通信串行通信优点优点:便于长距离传送便于长距离传送 缺点缺点:传送速度较慢传送速度较慢串行通信串行通信是数据的各位依次逐位发送或接收。是数据的各位依次逐位发送或接收。1.串行通信的分类串行通信的分类(1)异步通信)异步通信(Asynchronous Communication)异步通信中数据是以字符为单位组成字符帧传送,每一帧数据异步通信中数据是以字符为单位组成字符帧传送,每一帧数据低低位在前,高位在后位在前,高位在后。发送端和接收端可由各自独立的时钟来控制数据的。发送端和接收端可由各自独立的时钟来控制数据的发送和接收,互不同步。发送和接收,互不同步。字符帧格式字符帧格式:异步通信的重要指标。接收端依靠字符帧格式来判断:异步通信的重要指标。接收端依靠字符帧格式来判断发送端发送的开始和结束。发送端发送的开始和结束。优点:对硬件要求较低,实现较简单、灵活,适用于数据的随机发优点:对硬件要求较低,实现较简单、灵活,适用于数据的随机发送送/接收。接收。缺点:工作速度较低,每个字节都要建立一次同步(额外附加两缺点:工作速度较低,每个字节都要建立一次同步(额外附加两位)。位)。单片机主要采用异步通信方式。单片机主要采用异步通信方式。字符帧字符帧(Character Frame)也叫数据帧,由起始位、数据也叫数据帧,由起始位、数据位、奇偶校验位和停止位等位、奇偶校验位和停止位等4部分组成。部分组成。起始位起始位:位于字符帧开头,只占:位于字符帧开头,只占1位,为逻辑位,为逻辑“0”电平,用于向接电平,用于向接收设备表示发送端开始发送一帧信息。收设备表示发送端开始发送一帧信息。数据位数据位:D0D7紧跟起始位之后,用户根据情况可取紧跟起始位之后,用户根据情况可取5 8位,低位,低位在前,高位在后。位在前,高位在后。奇偶校验位奇偶校验位:位于数据位之后,仅占:位于数据位之后,仅占1位,用来表征串行通信中采位,用来表征串行通信中采用奇校验还是偶校验,由用户决定。用奇校验还是偶校验,由用户决定。停止位停止位:位于字符帧最后,为逻辑:位于字符帧最后,为逻辑“1”电平。通常可取电平。通常可取1位、位、1.5位位或或2位,用于向接收端表示一帧字符信息已经发送完,也为发送下一帧位,用于向接收端表示一帧字符信息已经发送完,也为发送下一帧作准备。作准备。图8.1串行异步通信的字符帧格式(2)同步通信同步通信(Synchronous Communication)同步通信是指在发送设备和接收设备同步时钟频率的情况下,发送同步通信是指在发送设备和接收设备同步时钟频率的情况下,发送设备先发送串行通信数据同步信号给接收设备,接收设备接收到同步信设备先发送串行通信数据同步信号给接收设备,接收设备接收到同步信号后,开始进行串行数据块的传送,当串行数据块传送完毕时,发送设号后,开始进行串行数据块的传送,当串行数据块传送完毕时,发送设备发送结束串行通信同步数据,停止串行通信。备发送结束串行通信同步数据,停止串行通信。优点:优点:数据传输速率较高,通常可达数据传输速率较高,通常可达56000 b/s或更高。或更高。缺点:缺点:要求发送时钟和接收时钟必须保持严格同步。要求发送时钟和接收时钟必须保持严格同步。图8.2 串行同步通信的数据块格式2.串行通信的波特率串行通信的波特率(Baud Rate)波特率:波特率:每秒钟传送二进制数码的位数,也叫比特数,每秒钟传送二进制数码的位数,也叫比特数,单位为单位为b/s,即位即位/秒。秒。波特率表征波特率表征数据传输的速度数据传输的速度,波特率越高,数据传输速,波特率越高,数据传输速度越快。度越快。字符的实际传输速率是每秒内所传字符帧的帧数,和字字符的实际传输速率是每秒内所传字符帧的帧数,和字符帧格式有关。符帧格式有关。异步通信的波特率通常为异步通信的波特率通常为509600 b/s,同步通信的波特,同步通信的波特率可达率可达56/或更高。或更高。3.串行通信方式串行通信方式(制式)(制式)串行通信根据数据传送的方向及时间关系可分为单工、串行通信根据数据传送的方向及时间关系可分为单工、半双工和全双工三种制式。半双工和全双工三种制式。单工制式(单工制式(Simplex)单工制式是指甲乙双方通信时只能单向传送数据,单工制式是指甲乙双方通信时只能单向传送数据,发送方和接收方固定。发送方和接收方固定。半双工制式(半双工制式(Half Duplex)半双工制式是指通信双方都具有发送器和接收器,半双工制式是指通信双方都具有发送器和接收器,既可发送也可接收,但不能同时接收和发送,发送时不既可发送也可接收,但不能同时接收和发送,发送时不能接收,接收时不能发送。能接收,接收时不能发送。全双工制式(全双工制式(Full Duplex)全双工制式指通信双方均设有发送器和接收器,并全双工制式指通信双方均设有发送器和接收器,并且信道划分为发送信道和接收信道,因此全双工制式可且信道划分为发送信道和接收信道,因此全双工制式可实现甲乙双方同时发送和接收数据,发送时能接收,接实现甲乙双方同时发送和接收数据,发送时能接收,接收时也能发送。收时也能发送。4.串行通信协议串行通信协议 串行通信的格式及约定(如:同步方式、通讯速率、数串行通信的格式及约定(如:同步方式、通讯速率、数据块格式、信号电平据块格式、信号电平等)不同,形成了多种串行通信等)不同,形成了多种串行通信的协议与接口标准:的协议与接口标准:通用异步收发器通用异步收发器(UART)本课程介绍的串口本课程介绍的串口 通用串行总线(通用串行总线(USB)I2C总线总线 CAN总线总线 SPI总线总线 RS-485,RS-232C,RS422A标准标准等等等等 异步通信的硬件电路称为异步通信的硬件电路称为UART,即通用异步接收器,即通用异步接收器/发送发送器器(Universal Asychronous Receiver/Transmitter)同步通信的硬件电路称为同步通信的硬件电路称为USRT(Universal Sychronous Receiver/Transmitter)异步和同步通信共用的硬件电路称为异步和同步通信共用的硬件电路称为USART(Universal Sychronous Asychronous Receiver/Transmitter)8.1.1.2 8.1.1.2 串行通信接口标准串行通信接口标准RS-232CRS-232C RS-232C的全称是EIARS232C标准,EIA(Electronic Industry Association)代表美国电子工业协会,RS(Recommended Standard)代表EIA的“推荐标准”,232为标识号。RS-232C主要用来定义计算机系统的一些数据终端设备(DTE)和数据电路终接设备(DCE)之间的电气性能。例如:CRT、打印机与CPU的通信 MCS-51单片机与PC机的通信 RS-232C适用范围:设备间的通信距离不大于15 m 传输速率最大为20 kb/s1.RS-232C信息格式标准信息格式标准RS-232C采用串行格式。标准规定:信息的开始为起始位,信息的结束为停止位;信息本身可以是5、6、7、8位再加一位奇偶校验位。如果两个信息之间无信息,则写“1”,表示空。图8.4 RS-232C信息格式2.2.RS-232CRS-232C引脚定义引脚定义RS-232C接口规定使用25针“D”型口连接器。现在微型计算机通信中,常用的只有9根信号引脚,所以用9针“D”型接口(DB9)连接器替代25针连接器。图8.5 DB 9型连接器定义插针序号信号名称功能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标准接口主要引脚定义标准接口主要引脚定义注:插针序号()内为针非标准连接器的引脚号。3.RS-232C3.RS-232C电器特性电器特性RS-232C的电气标准采用负逻辑:逻辑逻辑“0”:+5 V+15 V 逻辑逻辑“1”:5 V15 V 注意:RS-232C必须进行电平转换后才能和TTL电平直接相连,否则将把TTL电路烧坏。RS232与与TTL之间的电平转换目前多采用之间的电平转换目前多采用MAX232、MAX220、HIN232等芯片,它们同时集成了等芯片,它们同时集成了RS-232电平电平与与TTL电平之间的互换。电平之间的互换。第一部分是电荷泵电路第一部分是电荷泵电路。由。由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脚(脚(T1OUT)为第一数)为第一数据通道。据通道。8脚(脚(R2IN)、)、9脚(脚(R2OUT)、)、10脚(脚(T2IN)、)、7脚(脚(T2OUT)为第二数据通道。)为第二数据通道。TTL/CMOS数据从数据从T1IN、T2IN输入转换成输入转换成RS-232数数据从据从T1OUT、T2OUT送到电脑送到电脑DP9插头;插头;DP9插头的插头的RS-232数据从数据从R1IN、R2IN输入转换成输入转换成TTL/CMOS数据后从数据后从R1OUT、R2OUT输出。输出。第三部分是供电。第三部分是供电。15脚脚DNG、16脚脚VCC(+5v)。)。l TTL/CMOS INPUTS 端口:输入端口:输入TLL或或CMOS信号,一般为信号,一般为0-5V,低电平为零,低电平为零,高高电平为电平为VCC。l TTL/CMOS OUTPUTS端口:输出端口:输出TLL或或CMOS信号,输出电压一般为信号,输出电压一般为0-5V,低电,低电平为零,高电平为平为零,高电平为VCC。l RS232 OUTPUTS 端口:把端口:把TTL或或CMOS的信号转为的信号转为RS232的信号输出,输出为正的信号输出,输出为正负负12V连接到电脑。连接到电脑。l RS232 INPUTS端口:接收到电脑发出的端口:接收到电脑发出的正负正负12伏,由伏,由RS232输出转为输出转为TTL或或CMOS信号。信号。l MAX232内部有二组内部有二组RS232转换电路,使转换电路,使用时用时 11-14 13-12为一组为一组.10-7 8-9为一组为一组图8.7 MAX232通信接口电路8.1.2 8.1.2 MCS-51MCS-51单片机串行口工作原理单片机串行口工作原理 51 51单片机内部有一个单片机内部有一个可编程的全双工的异步可编程的全双工的异步串行通信串行通信接口,它通过数据接收引脚接口,它通过数据接收引脚RXDRXD(P3.0P3.0)和数据发送引脚)和数据发送引脚TXDTXD(P3.1P3.1)与外设进行串行通信,可以同时发送和接收)与外设进行串行通信,可以同时发送和接收数据。这个串行口既可以实现异步通信,又可以用于网数据。这个串行口既可以实现异步通信,又可以用于网络通信,还可以作为同步移位寄存器使用。其帧格式有络通信,还可以作为同步移位寄存器使用。其帧格式有8 8位、位、1010位和位和1111位,并能设置各种波特率。位,并能设置各种波特率。1.串行口内部结构串行口内部结构串行口包含的特殊功能寄行器有SBUF、SCON、PCON图8.8 串行口结构框图(1)串行口数据缓冲器串行口数据缓冲器SBUF在在逻辑上只有一个逻辑上只有一个,既表示发送寄存器,又表示接收,既表示发送寄存器,又表示接收寄存器,具有同一个单元地址寄存器,具有同一个单元地址99H,用同一寄存器名,用同一寄存器名SBUF。在在物理上有两个物理上有两个,一个是发送缓冲寄存器,另一个是,一个是发送缓冲寄存器,另一个是接收缓冲寄存器。接收缓冲寄存器。发送时发送时,只需将发送数据输入,只需将发送数据输入SBUF,CPU将自动启动将自动启动和完成串行数据的发送;和完成串行数据的发送;接收时接收时,CPU将自动把接收到的数据存入将自动把接收到的数据存入SBUF,用户,用户只需从只需从SBUF中读出接收数据。中读出接收数据。SBUF=0 xFF 启动一次数据发送启动一次数据发送,可向可向SBUF 再发送下一个数再发送下一个数 P1=SBUF 完成一次数据接收完成一次数据接收,SBUF可再可再 接收下一个数接收下一个数(2)串行口控制寄存器串行口控制寄存器SCONSCON用来控制串行口的工作方式和状态,可以位寻址,字节地址为98H。单片机复位时,SCON的所有位全为0。SCON 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H SM0 SM1 SM2 REN TB8 RB8 TI RI 图8.9 SCON的各位定义SM0、SM1:串行方式选择位,其定义如表8.2所示。SM0 SM1 工作方式 功能 波特率 0 0 方式 0 8 位同步移位寄存器 fosc/12 0 1 方式 1 10 位 UART 可变 1 0 方式 2 11 位 UART fosc/64 或 fosc/32 1 1 方式 3 11 位 UART 可变 表8.2 串行口方式的定义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,则只有当收到有效的停止位后,RI才置1。在方式0中,SM2应为0。REN:允许串行接收位。它由软件置位或清零。REN=1时,允许接收;REN=0时,禁止接收。TB8:发送数据的第9位。在方式2和方式3下,TB8由软件置位或复位,可用做奇偶校验位。在多机通信中,TB8可作为区别地址帧或数据帧的标识位:地址帧时TB8为1;数据帧时TB8为0。RB8:接收数据的第9位。功能同TB8。TI:发送中断标志位。在方式0下,发送完8位数据后,TI由硬件置位;在其它方式中,TI在发送停止位之初由硬件置位。TI是发送完一帧数据的标志,可以用指令查询是否发送结束。TI=1时,也可向CPU申请中断,响应中断后,必须由软件清除TI。RI:接收中断标志位。在方式0下,接收完8位数据后,RI由硬件置位;在其它方式中,RI在接收停止位的中间由硬件置位。同TI一样,也可以通过指令查询是否接收完一帧数据。RI=1时,也可申请中断,响应中断后,必须由软件清除RI。(3)电源及波特率选择寄存器)电源及波特率选择寄存器PCONPCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,不可以位寻址,字节地址为87H。在HMOS的8051单片机中,PCON除了最高位以外,其它位都是虚设的。PCON(87H)SMOD GF1 GF0 PD IDL 只有SMOD与串行通信有关。SMOD为波特率选择位。在方式1、2和3下,串行通信的波特率与SMOD有关。当当SMOD=1时,通信波特率乘时,通信波特率乘2;当;当SMOD=0时,波特率不变。时,波特率不变。2.串行口的工作方式串行口的工作方式(1)方式方式0在方式0下,串行口作为同步移位寄存器使用,其波特率固定为fosc/12。串行数据从RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)送出。移位数据的发送和接收以移位数据的发送和接收以8位为一帧,位为一帧,不设不设起始位和停起始位和停止位,无论输入止位,无论输入/输出,均低位在前高位在后。输出,均低位在前高位在后。这种方式常用于扩展I/O口。方式0用于扩展输出口(发送)当一个数据写入串行口发送缓冲器SBUF时,串行口将8位数据以fosc/12的波特率从RXD引脚输出(低位在前),发送完置中断标志TI为1,请求中断。在再次发送数据之前,必须由软件清TI为0。74LS164为串入并出移位寄存器(SIPO)。图8.12 方式0扩展输出口电路应用实例1:用单片机的串行口外接74LS164,控制8只LED滚动显示。8765432187654321SRG8RC1/-&1D1324561081112913U174164XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U2AT89C51R1220R2220R3220R4220R5220R6220R7220R8220D1D2D3D4D5D6D7D8C122pFC222pFC310uFX112MRX10k源程序:#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;/串行模式0 TI=1;/TI 置 1 while(1)c=_crol_(c,1);SBUF=c;while(TI=0);TI=0;DelayMS(400);方式0用于扩展输入口(接收)在满足REN=1和RI=0的条件下,串行口即开始从RXD端以fosc/12的波特率输入数据(低位在前),当接收完8位数据后,置中断标志RI为1,请求中断。在再次接收数据之前,必须由软件清RI为0。具体接线图如图8.15所示。其中,74LS165为并入串出移位寄存器(PISO)。串行控制寄存器SCON中的TB8和RB8在方式0中未用。值得注意的是,每当发送或接收完8位数据后,硬件会自动置TI或RI为1,CPU响应TI或RI中断后,必须由用户用软件清0。方式0时,SM2必须为0。图8.15 方式0扩展输入口电路应用实例2:用74LS165连接的8位拨码开关从单片机串行口输入控制8只LED的显示。R3220R4R5R6R7R8R9R10D1D2D3D4D5D6D7D8XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U3AT89C51TXDSPLSI10D011D112D213D314D43D54D65D76SO9CLK2QH7INH15SH/LD1U274LS165OFFON123456789DIPSWC_8TXDSPLC122pFC222pFC310uFX112MR110k while(1)SPL=0;/置数,读入并行输入8位数据 SPL=1;/移位,输入封锁,串行转换 while(RI=0);/未收到等待 RI=0;P0=SBUF;DelayMS(20);源程序:#include#include#include#define uchar unsigned char#define uint unsigned intsbit SPL=P25;void DelayMS(uint x)uchar i;while(x-)for(i=0;i120;i+);void main()SCON=0 x10;/串行模式0,允许串口接收 (2)方式方式1工作在方式1时,串行口为波特率可调的10位通用异步接口UART。发送或接收的一帧信息包括1位起始位0,8位数据位和1位停止位1。图8.17 串行口方式1的数据格式发送 发送时,数据从TXD端输出,当数据写入发送缓冲器SBUF后,启动发送器发送。当发送完一帧数据后,置中断标志TI为1。方式1所传送的波特率取决于定时器1的溢出率和PCON中的SMOD位。接收接收时,由REN置1,允许接收,串行口采样RXD,当采样由1到0跳变时,确认是起始位“0”,开始接收一帧数据。当RI=0,且停止位为1或SM2=0时,停止位进入RB8位,同时置中断标志RI;否则信息将丢失。所以,采用方式1接收时,应先用软件清除RI或SM2标志。波特率 方式方式1波特率可变,由定时波特率可变,由定时/计数器计数器T1的计数溢出率决定。的计数溢出率决定。波特率波特率=2 2SMOD SMOD(T1溢出率)溢出率)/32 其中其中SMOD为为PCON寄存器中最高位的值,寄存器中最高位的值,SMOD=1表示表示波特率倍增。波特率倍增。在实际应用时,通常是先确定波特率,后根据波特率求在实际应用时,通常是先确定波特率,后根据波特率求T1定时初值,因此上式又可写为:定时初值,因此上式又可写为:表8.3 定时器1产生的常用波特率(3)方式方式2方式2下,串行口为11位UART,传送波特率与SMOD有关。发送或接收的一帧数据包括1位起始位0,8位数据位,1位可编程位(用于奇偶校验)和1位停止位1。图8.20 方式2的数据格式 可编程位可编程位TB8/RB8TB8/RB8既可作奇偶校验位用,也可作控制既可作奇偶校验位用,也可作控制位(多机通信)用,其功能由用户确定。位(多机通信)用,其功能由用户确定。波特率:波特率:方式方式2 2波特率固定波特率固定,即,即fosc/32fosc/32和和fosc/64fosc/64。如用公式表示则为:如用公式表示则为:波特率波特率=2=2SMOD SMOD fosc/64 fosc/64当当SMOD=0SMOD=0时,时,波特率波特率=2=20 0 fosc/64=fosc/64=fosc/64fosc/64当当SMOD=1SMOD=1时,时,波特率波特率=2=21 1 fosc/64=fosc/64=fosc/32fosc/32(4)方式方式3方式3为波特率可变的11位UART通信方式。除了波特率不同以外,方式3和方式2完全相同。注意:单片机进行多机通信时常常采用串行口的工作 方式2或工作方式3。(5)串行口四种工作方式的比较串行口四种工作方式的比较 四种工作方式的区别主要表现在帧格式及波特率两个方面。四种工作方式的区别主要表现在帧格式及波特率两个方面。工作方式帧 格 式波 特 率方式08位全是数据位,没有起始位、停止位固定,每个机器周期传送一位数据方式110位没,其中1位起始位,8位数据位,1位停止位不固定,取决于T1溢出率和SMOD方式211位,其中1位起始位,9位数据位,1位停止位固定,即2SMODfosc/64方式3同方式2同方式1 3.串行口的串行口的初始化初始化51单片机的串行口需初始化后,才能完成数据的输入、输出。其初始化过程如下:(1)按选定串行口的工作方式设定SCON的SM0、SM1两位二进制编码。(2)对于工作方式2或3,应根据需要在TB8中写入待发送的第9位数据。(3)若选定的工作方式不是方式0,还需设定接收发送的波特率。(4)设定SMOD的状态,以控制波特率是否加倍。(5)若选定工作方式1或3,则应对定时器T1进行初始化以设定其溢出率。例:51单片机的晶振频率为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;/启动T18.1.3 8.1.3 单片机之间的双机串行通信的设计单片机之间的双机串行通信的设计8.1.3.1 518.1.3.1 51单片机之间的通信单片机之间的通信 1.双机通信双机通信 距离较近的两个MCS-51单片机系统可以将它们的串行口直接相连,实现双机通信。为了增加通信距离,减少通道和电源干扰,可以在通信线路上利用RS-232C等标准接口进行双机通信。图8.23 单片机双机通信系统 51单片机串行口的方式2和方式3有一个专门的应用领域,即多机通信。所谓多机通信是指一台主机和多台从机之间的通信,构成主从式多机分布通信系统。主机发送的信息可以传输到各个从机,各从机只能向主机发送信息,从机之间不能进行相互通信。2.2.多机通信多机通信图8.24 单片机多机通信系统 单片机作为下位机,主要实现数据采集、检测与控制等功能。PC机通常作为上位机接收下位机采集的各种数据,并进行数据运算、处理与管理等功能,同时向下位机发出各种指令。通常PC机工作于查询方式,而51单片机既可以工作于查询方式,又可以工作于中断方式。因此,实现PC机与用单片机间数据通信是十分重要的。PC机与单片机之间可以由RS-232C等标准接口相连。3.PC3.PC机和单片机之间的通信机和单片机之间的通信8.1.3.2 8.1.3.2 5151单片机双机串行通信设计单片机双机串行通信设计 1.任务要求任务要求甲机发送数据,乙机接收数据,甲机的K1按键通过串口发送信息控制乙机的LED灯D3和D4闪烁:第一次按下K1键,甲机发送字符“A”,甲机的D1和乙机的D3都闪烁;第二次按下K1键,甲机发送字符“B”,甲机的D2和乙机的D4都闪烁;第三次按下K1键,甲机发送字符“C”,甲机的D1、D2和乙机的D3、D4都闪烁;第四次按下K1键,甲机停止发送,甲机的D1、D2和乙机的D3、D4都停止闪烁。2.任务分析任务分析首先要根据任务的要求将两机串行口工作的方式和其中的参数设置好。两机的串行口采用相同的工作方式1,使用11.0592MHz晶体,甲机在本任务中只要发送数据,所以甲机的SCON=0 x40,而乙机要求接收数据,所以乙机的SCON=0 x50,定时器T1作波特率发生器使用,工作在方式2,其初值TH1=TL1=0 xFD(253),PCON=0 x00(SMOD=0)波特率=20 11.0592 106/(32 12(256-253)=9600b/sX)(25612f322oscSMOD 3.任务设计任务设计(1)器件的选择器件名称数量(只)AT89C51211.0592MHz 晶体222pF瓷片电容422uF电解电容21k电阻2220电阻4轻触按键2发光二极管LED 4(2)硬件原理图设计图8.25 双机通信电路XTAL218XTAL119ALE30EA31PSEN29RST9P0.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(甲机)CLOCK=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.7/RD17P3.6/WR16P3.5/T115U2AT89C51(乙机)CLOCK=11.0592MHzK1D3R1220R2220D1R3220D2D4R4220(3)软件程序设计甲机发送源程序:#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+);void putc_to_SerialPort(uchar c)SBUF=c;while(TI=0);TI=0;void main()uchar Operation_NO=0;SCON=0 x40;/串口工作方式1 TMOD=0 x20;/T1工作方式2 PCON=0 x00;TH1=0 xFD;/波特率9600 TL1=0 xFD;TI=0;TR1=1;while(1)if(K1=0)while(K1=0);Operation_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;case 3:putc_to_SerialPort(C);D1=D1;D2=D2;break;Delay(100);乙机接收源程序:#include#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+);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;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);(4)软硬件联合调试 将甲机发送程序编译成甲机.hex文件下载到甲实验板的单片机中,将乙机接收程序编译成乙机.hex文件下载到乙实验板的单片机中,两机同时通电,按任务要求检验是否通信成功。注意:单片机的双机通信要对两机的串行通信软件分别编写,分清楚其发送和接收过程,不要混淆。单片机发送数据就是向SBUF写数据的过程,单片机接收数据就是从SBUF读取数据的过程。任务任务8.2 单片机与单片机与PC机通信系统的设计机通信系统的设计8.2.1 8.2.1 SComAssistantSComAssistant V2.1 V2.1串口调试助手串口调试助手图8.26 串口调试助手界面8.2.2 8.2.2 单片机与单片机与PCPC机通信系统的设计机通信系统的设计 1.任务要求任务要求将实验板的串口与PC机连接好,打开PC机上的SComAssistant V2.1串口调试助手。将PC机键盘输入的1个字符发送给51单片机,单片机接收到PC机发来的数据后,回送同一数据给PC机,并在PC机屏幕上显示出来。只要PC机屏幕上显示的字符与键入的字符相同,即表明PC机与单片机间通信正常。通信协议为:波特率选为9600b/s;无奇偶校验位;8位数据位;1位停止位。2.任务分析任务分析根据任务的要求将单片机串行口的工作方式和其中的参数设置好。单片机的串行口采用工作方式1,采用22.1184MHz晶体,单片机在本任务中要发送数据也要接收数据,所以REN=1,定时器T1作波特率发生器使用,工作在方式2,由于采用9600b/s波特率,其初值TH1=TL1=0 xFA(250)。3.任务设计任务设计(1)器件选择 一个51单片机系统(STC89C52)一台PC机(安装SComAssistant V2.1串口调试助手软件)一根RS-232C标准的串行通信线 (2)硬件原理图设计 本任务采用一块单片机实验板和一台PC机。用串口线将实验板的DB9串行接口与PC机的DB9串行接口连接好即可。(3)软件程序设计 PC机上的程序用SComAssistant V2.1串口调试助手的成熟软件。实验板上STC89C52串口通信源程序如下:#include#define uchar unsigned char#define uint unsigned int unsigned char a;bit flag=0;char str14=I receive !;/串口初始化子程序void init()TMOD=0 x20;/T1工作在方式2TH1=0 xFA;TL1=0 xFA;TR1=1;/开启T1 SM0=0;/串口工作在方式1SM1=1;REN=1;/允许串口接收EA=1;/开总中断ES=1;/开串口中断 RI=0;/串口发送数据子程序void send()int i;ES=0;str11=a;for(i=0;i14;i+)SBUF=stri;while(!TI);TI=0;flag=0;ES=1;/串口接收数据子程序void receive()interrupt 4 a=SBUF;RI=0;flag=1;void main()init();while(1)if(flag=1)send();(4)软硬件联合调试 将编写的单片机与PC机通信的程序编译成*.hex文件后下载到实验板中,用串口线连接好实验板和PC机就可以进行调试了。项目拓展项目拓展 实验板串口和实验板串口和USB口软件下载的设计口软件下载的设计 我们选用我们选用STC_ISP_V4.7.9STC_ISP_V4.7.9版本版本下载编程软件,支持下载编程软件,支持STCSTC全系列的全系列的5151单片机芯片。单片机芯片。实验板选用实验板选用STC89C52RCSTC89C52RC单单片机,串口可以用片机,串口可以用DB9DB9端口与端口与PCPC机机DB9DB9端口相连,也可以用端口相连,也可以用USBUSB端口与端口与PCPC机机USBUSB端口相连端口相连。用用USBUSB连接线将实验板的连接线将实验板的USBUSB口与口与PCPC机的机的USBUSB口相连,运行口相连,运行PCPC机上的机上的STC_ISP_V479.exeSTC_ISP_V479.exe,实,实验板电源指示灯点亮如右图。验板电源指示灯点亮如右图。设置设置STC_ISPSTC_ISP的运行参数的运行参数:1.选择下载器件,如图中“2”,选择STC89C52RC芯片。2.选择将要被下载的*.hex 机器码文件,如图中“3”。选好文件后,右边数据区“1”中“程序文件”的数据发生了变化。可以通过观察数据是否变化来确定打开文件是否成功,或者文件是否刷新。文件打开后,“2”下方的“文件校验和”显示打开的数据更快更准确。3.设置串口和串口通信速度,如图中“4”选择COM1,图中“5”选择好运行的最高和最低波特率。4.下载软件,如图中“6”,点击“DownLoad/下载”按钮,进入下载状态,软件会提示“请给 MCU 上电.”,按一下实验板的S20按键给它重新上电,所选软件开始下载到STC89C52RC中,直到信息框中出现“已加密”,说明软件下载完成,STC-ISP软件下载完成状态:项目小结项目小结 l 本项目主要介绍了串行通信的基本概念和51单片机的串行接口,通过两个任务完成了两个单片机系统之间和单片机与PC机之间的串行通信。l 51单片机的串行接口为通用异步收发器(UART)。通过其内部的控制寄存器,可在4种工作方式中选择:方式0为移位寄存器方式,用于数据的串/并和并/串转换;方式1为8位UART,主要用于双机通信;方式2、3为9位UART,主要用于多机通信。l 串行通信由于所用传送线较少而适用于远程数据通信。在单片机中,单片机与单片机、单片机与PC机、单片机多机之间通常都采用串行通信。思考与训练思考与训练(一)知识思考:1.什么是串行通信?它有哪些特点?有哪几种帧格式?2.在串行通信中通信速率和传输距离之间的关系如何?3.举例说明串行通信的工作方式。4.51单片机的串行口由哪些功能部件组成?各有什么作用?5.SBUF的含义及作用是什么?6.51单片机串行口有几种工作方式?各工作方式的波特率如何确定?7.51单片机串口工作于方式1,每分钟传送240个字符,计算其波特率。8.若晶振频率为fosc11.059 2 MHz,采用串行口工作方式1,波特率为4800 b/s,计算出用T1作为波特率发生器的方式字和计数初值。(二)项目训练:1设fosc=11.059 2 MHz,试编写一段程序,对串口初始化,使之工作于方式l,波特率为1200 b/s,用查询串行口状态的方法读出接收缓冲器的数据并回送到发送缓冲器。2用Protues设计一个两个单片机通信的电路,甲机连接一只按键和一只发光二极管,乙机连接一只按键和一只一位的数码管,编写两个单片机通信的程序,甲机的按键通过串行口通信控制乙机的数码管显示”A”,”B”,”C”,”D”;乙机的按键通过串行口通信控制甲机的发光二极管闪烁。3利用串口调试助手进行实验板与PC机的通信,PC机发送一段英文文字,如“How are you!”,希望在接收区显示同样的一段英文文字,如“How are you!”,请编写单片机串口通信程序。
展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:项目8单片机与PC机通信系统的设计
链接地址:https://www.zhuangpeitu.com/article/170348890.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!