学习情境8创建原理图报表和两台单片机数据互传.doc_第1页
学习情境8创建原理图报表和两台单片机数据互传.doc_第2页
学习情境8创建原理图报表和两台单片机数据互传.doc_第3页
学习情境8创建原理图报表和两台单片机数据互传.doc_第4页
学习情境8创建原理图报表和两台单片机数据互传.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学习情境8 创建原理图报表和两台单片机数据互传 知识点:1.了解电路原理图的ERC报表;2.掌握电路原理图网络表的产生及修改方法;3.了解原理图的元件列表;4.了解单片机串行口的结构及工作方式。技能点:1.运用Protel 99 SE 创建电路原理图的各种报表,并能够根据报表的信息分析、修改电路原理图;2.能熟练运用单片机串行口方式0扩展并行口;3.能熟练运用单片机串行口方式1实现双机通信。学习情境目标 通过本学习情境的学习,创建电路原理图的各种报表,并能够根据报表的信息分析、修改电路原理图;了解单片机串行口的结构及工作方式;能熟练运用单片机串行口的各种方式完成并行口扩展和实现通信。 任务一 创建原理图各种报表图8.1 放大整形电路任务目标如图8.1所示为放大整形电路原理图,要求在此电路原理图基础上产生电路的ERC报表、产生及修改电路网络表、产生电路的元件列表。相关知识1、ERC报表:Protel 99 SE 电路原理图设计服务器提供了一个电气规则检查功能(ERC:Electrical Rule Check),可检查电路中是否有电气特性不一致情况。如:某个输出引脚连接到另一个输出引脚就会造成输出信号冲突,未连接完整的网络标号会造成信号断线,元件重复编号会使软件无法区别不同元件等,这些不合理的电气冲突现象,ERC会按照设计者设置和问题严重性,分别以错误(Error)、警告(Warning)信息来提醒设计者注意。 2、元件封装型号:元件封装是指元件在电路板上的实际外观、尺寸及管脚间距等信息,每种尺寸在元件封装库中(PCB Footprints.lib)对应着重一种元件封装型号,电路中对每个元件的描述都必须包含该元件的封装型号信息,即在元件属性对话框的Footprint栏必须填元件封装型号,如图8.2所示,选取元件封装型号时可以在印刷板设计环境中执行菜单命令Design/Browse Components去浏览封装库PCB Footprints.lib。图8.2 填写元件封装3、原理图网络表 由电路原理图所产生的各种报表中,网络表(Netlist)是最为重要的报表。绘制电路原理图最主要的目的,就是由所设计的电路原理图输出一个对应网络表,以供后续处理程序(如制作印刷电路板或仿真)使用。在由电路原理图产生网络表时,采用逻辑连通原则,即只要通过网络标号连接的网络就被认为是有效连接,电路中用户没有放置网络标号的网络由系统自动给定。Protel 原理图网络表文件是一个简单ASCII码文本文件,是描述电路元件的编号、封装和元件引脚之间关系的列表,在格式上大致可分为元件描述部分和网络连接描述两部分。(1)元件描述部分 开始描述一个元器件C 元件编号RAD0.2 元件封装型号0.1uF 元件类型或标称值 以下三行为元件附加说明 元件描述结束注意:元件描述从“”开始,到“”结束,每一个元件的描述都必须在一对方括号内,并且都必须描述完整。除左方括号和右方括号各占一行外,每一个元件的描述文字占据6行,且6行内容顺序不能颠倒 (2)网络连接描述 ( 描述开始一条网络NetR1_1 计算机自动给予或人工给予的网络标号R1-1 网络连接的第一个分支,格式为元件编号及其引脚号C1-2 网络连接的第二个分支,格式为元件编号及其引脚号Q-B 网络连接的第三个分支,格式为元件编号及其引脚号R2-2 网络连接的第四个分支,格式为元件编号及其引脚号) 网络描述结束注意:网络连接描述从“(”开始,到“)”结束,将一个网络所有分支都包含在“( )”内(如以上“NetR1_1”网络分支数为4), 一个网络有多少个分支,网络描述中就有多少行“元件编号及引脚号”,相同元件引脚号码不能重复。4、元件列表元件列表主要是用于整理一个电路或一个项目文件中所有元件,它主要包括元件编号、类型、封装名等内容。任务实施过程1、 创建电路原理图的ERC报表(1) 打开已经设计好的 “放大整形电路.ddb”数据库,并进入放大整形电路原理图(文件名为tt.sch),将信号Vo1、Vi离开所在的导线(仿制三处错误)。(2) 执行菜单命令Tools/ERC后,系统进入Setup选项卡对话框,根据需要设置电气规则检查各选项,如图8.3所示。其中Multiple net names on net:检测项中将包含“同一网络被命名多个网络名称”的错误检测。Unconnected net labels:检测项中将包含“未实际连接的网络标号”的错误检测。Unconnected power objects:检测项中将包含“未实际连接的电源或地元件”的错误检测。Duplicate sheet numbers:检测项中将包含“电路图编号重号”的错误检测。Duplicate component designators:检测项中将包含“元件编号重号”的错误检测。Bus label format errors: 检测项含中将包含“总线标号格式错误”的错误检测。Floating input pins:检测项中将包含“输入引脚浮空”的错误检测。Suppress warnings:忽略所有的错误检测,也不显示测试的错误报告。(3) 点击OK按钮后,程序自动进入文本编辑器并生成相应的规则检查报告。如图8.4所示为图8.1放大整形电路的ERC检查报告。 图8.3 本例中Setup选项卡设置(4) 系统在发生错误位置放置错误(红色)符号,如图8.5所示。图8.4 电气规则检查报告图8.5 进行ERC检查后的放大整形电路2、创建原理图网络表(1) 回到图8.1,执行菜单命令Design/Create Netlist。(2) 系统弹出创建网络表对话框,该对话框设置如图8.6和图8.7所示。(3) 设置完对话框后,点击OK按钮,系统以记事本方式自动打开网络表文件,内容见表8-1所示。图8.1电路中有15个元件,13条网络;对应表8-1就有15对中括号、13对圆括号。 图8.6 “Preferences”的设置 图8.7 “Trace Options”的设置 (4) 保存网络表文件到自己的文件夹中。(5) 原理图网络表的检查。电路自动产生网络表或多或少会有些问题,此时需要人工修改网络表,修改时必须对照电路图进行以下两个方面检查。(1)元件描述部分: 检查电路中元器件个数和网络表的方括号对数是否相等。 检查网络表每对方括号里是否均包括元件编号和封装名。 检查网络表每对方括号里元件编号和封装位置。(2)网络连接描述 检查电路中网络个数和网络表的圆括号对数是否相等。 检查网络表每对圆括号第一行是否都为网络名。 检查网络表每对圆括号中网络分支个数。技巧:网络表若有错误,修改方法有:(1)修改原理图后再一次产生网络表。(2)直接在网络表记事本里修改。表8-1 网络表文件C1RAD0.20.5uFC2RAD0.210uFD1DIODE0.42CK5D2DIODE0.42CK5D3DIODE0.42CK5D4DIODE0.42CK5D5DIODE0.42CK5JSIP5CON5R1AXIAL0.44.8KR2AXIAL0.42KR3AXIAL0.45.1KSSIP2SW-SPSTQTO-53DG4AU1DIP14SN74LS04U2DIP14SN74LS00(GNDD2-2D4-1J-4 R2-1Q-3 U1-7 U2-7) (NetC1_2C1-2R1-1R2-2Q-1)(NetC2_1C2-1R3-1Q-2)(NetC2_2C2-2S-1)(NetD1_1D1-1D3-2D5-2S-2U1-1)(NetD1_2D1-2D2-1)(NetD3_1D3-1D4-2)(NetD5_1D5-1U2-5)(NetU1_2U1-2U2-1)(Vo1U2-3U2-4J-2)(VccJ-5R1-2R3-2U1-14U2-14)(ViJ-3C1-1)(Vo2J-1U2-2U2-6)3、创建元件列表(1)在图8.1所示的原理图中,执行菜单命令Reports/Bill of Material,进入图8.8。图8.8 元件列表向导之一图8.9 元件列表向导之二(2)点击Next按钮,进入图8.9,设置元件报表中所包含的内容,选用默认值。(3)点击Next按钮,进入图8.10,选择需要加入元件报表中的文字栏,选用默认值。(4)点击Next按钮,进入图8.11,选择最终的元件报表输出格式。系统提供了三种格式:Protel Format、CSV Format、Client Spreadsheet,选择 Protel Format格式。(5)点击Next按钮,进入图8.12,结束列表向导对话框,点击Finish按钮。(7)程序自动进入图8.13所示的元件列表中,并形成后缀为*.BOM元件列表文本文件。该元件列表文件中Used列为所用某种元件个数,Part Type列为该元件类型,Designator列为元件编号,FootPrint列为元件封装类型。图8.10 元件列表向导之三图8.11 元件列表向导之四图8.12 元件列表向导之五图8.13 元件列表实训练习实训题1 画出如实训图8.1所示的放大电路,请输出其网络表和元件列表。实训图8.1实训题2带通滤波器电路如实训图8.2所示,创建电路原理图的网络表和元件列表。实训图8.2实训题3 对实训图8.3电路原理图进行电气规则检查,请做元件表和网络表。实训图8.3实训题4对实训图8.4电路原理图进行ERC检测并修改错误,最后输出该电路原理图的网络表和元件列表。实训题5 对实训图8.5电路原理图进行ERC检测,输出实训图8.5的网络表和元件列表。实训图8.4实训图8.5图8.14 双机通信硬件电路任务二 两台单片机数据互传任务目标通过本任务的学习、完成,掌握单片机硬件资源串行通讯接口的使用。任务描述两台单片机之间,要求将对方单片机的按键值(S1=1)通过串口传送给另外一方,并在发光二极管显示。单片机扫描到S1(P3.2)键合上后,即启动串行发送,将01H这个数发送给对方单片机,对方单片机收到数据后,再从P1口送出来显示。硬件电路如图8.14所示。源程序 发送机和接收机程序框图如图8.15所示。 a) 发送机程序框图 b) 接收机程序框图 图8.15 双机通信程序框图/*发送机程序*/#include reg51.h#define uchar unsigned charsbit FLAG=P32; void delay() uchar i,j; for(i=0;i40;i+) for(j=0;j250;j+); void main() SCON=0x40; PCON=0x80; TMOD=0x20; TH1=0xfa; TR1=1; while(1) dg:while(FLAG=1) ; delay(); if(FLAG=1) goto dg; SBUF=0x01; while(TI=0) ; TI=0; /*接收机程序*/ #include reg51.hvoid main() SCON=0x40; PCON=0x80; TMOD=0x20; TH1=0xfa; TR1=1; REN=1; while(1) while(RI=0) ; RI=0; P1=SBUF; 任务实施1.利用PROTEL软件绘制如图8.14硬件电路图,生成元件清单和网络报表。2.利用proteus仿真软件绘制电路原理图3. C51程序的编译按照情景一Keil C51编译软件的操作步骤对源程序进行编译和调试。4.执行程序观察效果将编译成功后的.HEX文件加载到CPU执行程序并按动按钮观察效果。相关知识1. 数据通信的传输方式一般把计算机与外界的信息交换称为通信。最基本的通信方法有串行通信和并行通信两种,如图8.16所示。图8.16 并行通信与串行通信并行通信是指一个数据的各位同时进行传送的通信方式。其优点传送速度很快。缺点是一个并行数据有多少个位,就需要多少根传输线,只适用于近距离传送,太远距离的成本太高,一般不采用。串行通信是指一个数据的各位逐位顺序传送的通信方式。其优点是仅需单线传输信息,特别是数据位很多和远距离数据传送时,这一优点更为突出。串行通信方式的主要缺点是传送速度较低。l 串行通信的分类按照串行数据的时钟控制方式,串行通信可分为同步通信和异步通信两类。1)同步通信同步通信是一种连续串行传送数据的通信方式,它将数据分块传送。在传送每一个数据块开始处要用12个同步字符,使发送与接收双方取得同步,如图8.17所示。图8.17 同步通信的格式在同步通信中,由同步时钟来实现发送和接收的同步。在发送时要插入同步字符,接收端接收到同步字符后,开始接收串行数据位。发送端在发送数据流过程中,若出现没有准备好数据的情况,便用同步字符来填充,一直到下一字符准备好为止。数据流由一个个数据组成,称为数据块。每一个数据可选58个数据位和一个奇偶校验位。此外整个数据流还可进行奇偶校验或循环冗余校验(CRC)。同步字符可以采用统一的标准格式,也可自由约定。同步通信的数据传送速率较高,一般适合于传送大量的数据。 2)异步通信在异步通信中,传送的数据通常是不连续的,数据通常是以一个字(也称为字符)为单位组成字符帧传送的。字符帧由发送端一帧一帧地发送,每一帧数据均是低位在前,高位在后,通过传输线被接收端一帧一帧地接收。发送端和接收端可以由各自独立的时钟来控制数据的发送和接收,这两个时钟彼此独立,互不同步。在异步通信中,接收端是依靠字符帧格式来判断发送端是何时开始发送,何时结束发送的。字符帧也叫数据帧,由起始位、数据位、校验位和停止位等四部分组成,其典型的格式如图所示。图8.18 异步通信的格式在上述帧格式中,一个字符的传送由起始位开始,至停止位结束。起始位:位于字符帧开头,为逻辑低电平信号,只占一位,用于向接收端表示发送端开始发送一帧信息,应准备接收。数据位:紧跟起始位之后,通常为58位字符编码。发送时低位在前,高位在后。奇偶校验位:位于数据位之后,仅占一位,用来表征通信中采用奇校验还是偶校验。停止位:位于字符帧最后,表示字符结束。其为逻辑高电平信号,可以占1位或2位。接收端接收到停止位,就表示这一字符的传送已结束。在异步通信中,两相邻字符帧可以通过空闲位来间隔,使用中可以没有空闲位,也可以有若干空闲位。由于异步通信每帧都要加上起始位和停止位,所以通信速度相对同步来说较慢,但是它的间隔时间可以任意改变,使得它的使用非常自由。在小数据量且间隔时间不定的通信中,往往采用异步串行通信。在一帧信息中,每一位的传送时间(位宽)是一定的,用Td表示,Td的倒数称为波特率。波特率是串行通信中的一个重要概念,只有当通信双方采用相同的波特率时,通信才不会发生混乱。波特率表示每秒传送的位数。例如当我们采用位数据的异步串行通信(这时每个字符加上起始位和停止位,一共为10位),且每秒发送120个字符时,波特率为:10位/字符120字符/秒=1200位/秒;每一位的传送时间Td =1/1200=0.833ms。波特率用于表征数据传输的速度,波特率越高,数据传输速度越快。但波特率和字符的实际传输速率不同,字符的实际传输速率是每秒内所传字符帧的帧数,和字符帧格式有关。通常,异步通信的波特率为509600位/秒。l 串行通信制式在串行通信中数据是在发送站和接收站之间进行传送的,按照信息传送的方向,可以分为单工、半双工和全双工三种制式。在单工制式下,通信线的一端接发送器,一端接接收器,只能单方向传送信息,如图8.19(a)所示。在半双工制式下,每个站都由一个发送器和一个接收器组成,如图8.19 (b)所示。在这种制式下,信息能从甲站传送到乙站,也可以从乙站传送到甲站,即能双向传送信息;但在同一时间,信息只能向一个方向传送,而不能同时在两个方向上传送。全双工通信系统的每端都有发送器和接收器,能同时实现信息的双向传送,如图8.19(c)所示。图8.19 串行通信的数据传送方向2.串行口结构串行口结构如图8.20所示。图8.20 串行口内部结构串行口主要由发送数据缓冲器、发送控制器、输出控制门、接收数据缓冲器、接收控制器、输人移位寄存器等组成。发送缓冲器和接收缓冲器共用一个特殊寄存器空间99H,且共用一个符号SBUF表示,可同时发送、接收数据。向SBUF中写数据,就是修改发送寄存器;从SBUF中读数据,便是读接收寄存器。发送缓冲器只能写入发送的数据,但不能读出;接收缓冲器只能读出接收的数据,但不能写入,故对它们的操作不会出现混乱。80C51单片机接收和发送数据,是通过串行口对外的两条独立收发信号线RXD(P3.0)、TXD(P3.1)来实现的,发送数据时,是由一条写发送缓冲器的指令(SBUF=0x01)把数据写入串行口的发送缓冲器SBUF中,然后从TXD端一位一位地向外部发送。同时,接收端RXD也可以一位一位地接收外部数据,当收到一个完整的数据后通知CPU,再由一条指令(P1=SBUF)把接收缓冲器SBUF的数据读入累加器。3.串行口控制寄存器控制80C51单片机串行口的控制寄存器有两个,分别是特殊功能寄存器SCON和PCON。l 串行口控制寄存器SCON80C51对串行通信方式的选择、接收和发送控制以及串行口的状态标志等均由串行口控制寄存器SCON控制和指示,SCON可以位寻址,字节地址98H,单片机复位时,所有位均为0,其控制字格式如图8.21所示。图8.21 SCON各位定义SM0、SM1:串行方式选择位,用于设定串行口的工作方式,两个选择位对应四种通信方式,如表8-1所示。表8-1 串行口工作方式SM0SM1工作方式功能说明波特率00方式0同步移位寄存器fosc/1201方式18位数据UART可变(T1溢出率/n)10方式29位数据UARTfosc/64或fosc/3211方式39位数据UART可变(T1溢出率/n)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置。在方式0中,SM2应为0。REN:允许串行接收位。由软件置位清位。REN=1时,允许接收;REN=0时,禁止接收。TB8:在方式2和方式3时将发送的第9位数据放入TB8中,根据需要由软件置位或清位。在方式0和方式1中,该位未使用。可做奇偶校验位,也可在多机通信中,作为区别地址帧或数据帧的标识位,一般约定地址帧时,TB8为1,数据帧时,TB8为0。RB8:在方式2和方式3时将接收到的第9位数据放入RB8中。也可约定作为奇偶校验位,以及在多机通信中区别地址帧或数据帧;在方式2或方式3的多机通信中,若SM2=1,如果RB8=1表示地址帧。在方式1中,若SM2=0,RB8中存放的是已收到的停止位。在方式0中,该位未使用。TI:发送中断标志位。在方式0中,发送完8位数据后,由硬件置位;在其它方式中,在发送停止位之初由硬件置位。因此,TI是发送完一帧数据的标志,可由软件来查询TI的状态。TI=1时,也可向CPU申请中断,CPU响应中断后,必须由软件清0。RI:接收中断标志位。在方式0中,接收完8位数据后,由硬件置位;在其它方式中,在接收停止位的中间由硬件置位。同TI一样,也可以通过软件来查询是否接收完一帧数据。RI=1时,也可申请中断,响应中断后,RI必须由软件清0。l 电源控制寄存器PCONPCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,不可以位寻址,字节地址为87H。在HMOS型的单片机中,PCON除了最高位以外,其它的位均无意义。其格式如图8.22所示。图8.22 PCON各位定义与串行通信有关的只有SMOD位。SMOD为波特率选择位。在方式1, 2和3时,串行通信的波特率与SMOD有关。当SMOD=1时,通信波特率乘2,当SMOD=0时,波特率不变。其它各位用于电源管理,此处从略。3.串行口的工作方式80C51的串行口有4种工作方式,通过SCON的SM0、SM1位来决定,如表8-1所示。1)方式0方式0即串行寄存器方式。在方式0时,数据由RXD脚上发送或接收。而TXD脚作为同步移位脉冲的输出脚,用来控制时序。一帧信息由8位数据位组成,低位在前,高位在后,波特率固定,为fosc/12(振荡频率的十二分之一)。这种方式常用于扩展I/O口。(1)发送方式0发送时,数据从RXD端串行输出,TXD端输出同步信号。当一个数据写入串行口发送缓冲器SBUF时,串行口将位数据以fosc/12的波特率从RXD串行输出(低位在前),发送完置中断标志TI为1,请求中断。在再次发送数据之前,必须由软件清TI为0。方式0时,CPU执行一条写数据到SBUF的指令,如:“SBUF=0x01;”就启动了发送过程。发送的时序如图8.23所示。图8.23 方式0发送时序80C51的串行接口可外接74LS164串行输入并行输出寄存器,用于扩展8位并行输出接口。其具体接线如图8.24所示。图8.24 方式0用于扩展I/O口输出例1 利用串行口方式0外接74HC595串行输入并行输出寄存器,扩展用于扩展8位并行输出接口。其具体接线如图8.25所示。图8.25 由74HC595构成的显示电路编写程序如下:#include reg51.h#define uchar unsigned charsbit P1_5=P15;void delay() uchar i,j,k; for(i=0;i200;i+) for(j=0;j200;j+) for(k=0;k5;k+) ;void main() uchar seg10=0x09,0x01,0x1f,0x41,0x49,0x99,0x0d,0x25,0x9f,0x03,i;/90共阳段码值 SCON=0x00; /串行口工作方式0 i=0; for(;) SBUF=segi;/输出显示段码 while(TI=0); TI=0; P1_5=0; P1_5=1; delay(); i+; if(i=10) i=0; (2)接收当串行口定义为方式0,并满足REN=1和RI=0时,便启动串行口以方式0接收数据。此时RXD为数据输入端,TXD为同步脉冲信号输出端。接收器以fosc/12的波特率从RXD端输入数据(低位在前),当接收完8位数据后,置中断标志RI为1,请求中断。在再次接收数据之前,必须由软件清RI为0。其时序图如图8.26所示。80C51的串行接口可外接74LS165并行输入串行输出寄存器,用于扩展8位并行输入接口。其具体接线如图88.27所示。串行控制寄存器SCON中的TB8和RB8在方式0中未用。值得注意的是,每当发送或接收完8位数据后,硬件会自动置TI或RI为1, CPU响应TI或RI中断后,必须由用户用软件清0。方式0时,SM2必须为0。图8.26 方式0接收时序图8.27 方式0用于扩展I/O口输入例2 用单片机的串行口扩展一片74LS165,实现8个按键输入,并将读回的按键值送P1口指示灯显示。电路如图8.28所示。图8.28 74LS165构成的按键扩展电路编写程序如下:#include reg51.hsbit SL=P23;void delay(unsigned int k) unsigned int i; for(i=0;ik;i+) ;void main() unsigned char m; while(1) SCON=0x10; SL=0; delay(0x10); SL=1; RI=0; while(RI=0); m=SBUF; P1=m; RI=0; 2)方式1当SM0=0, SM1=1时,串行口以方式1工作。方式1为10位通用异步通信接口。其中TXD发送数据,RXD接收数据。一帧信息包括:一个起始位,8位数据位(低位在前),1位停止位。(1)发送发送时,数据从TXD端输出。当向CPU执行一条写SBUF指令即开启了发送过程。发送时序如图8.29所示。CPU发送的“写SBUF指令启动发送控制器,同时将并行数据送人SBUF。经过一个机器周期,发送控制器SEND、DATA有效,输出控制门被打开,在发送移位脉冲(TX CLOCK)的作用下,向外逐位输出串行信号。在发送时,串行口自动地在数据的前后分别插入一位起始位“0”和一位停止位“1”,以构成一帧信息;在8位数据发出之后,并在停止位开始时,CPU自动使TI为1,申请发送中断,同时发送出下一个数据。当一帧信息发完后,自动保持TXD端的信号为“1”。方式1发送时的移位时钟是由定时器T1送来的溢出信号经过16分频或32分频(取决于PCON中的SMOD位)而取得的,因此方式1的波特率是可变的。图8.29 方式1发送时序(2)接收串行口以方式1接收时,数据从RXD端输入。接收时序如图8.30所示。图8.30 方式1接收时序当允许接收标志REN=1后,就允许接收器接收。在没有信号到来时,RXD端状态保持为“1”,当检测到存在由“1”到“0”的变化时,就确认是一帧信息的起始位“0”,便开始接收一帧数据。在接收移位脉冲(RX CLOCK)的控制下,把收到的数据一位一位地移入接收移位寄存器中,直到9位数据全部接收齐(包括1位停止位)。在接收操作中,接收移位脉冲的频率和发送波特率相同,也是由定时器T1的溢出信号经过16分频或32分频(由SMOD位决定)而得到的。接收器以波特率的16倍速率采样RXD脚状态。当检测到“1”到“0”的变化启动接收控制器接收数据。为了避免通信双方波特率微小不同的误差影响,接收控制器将一位数据的传送时间等分为16份,并在第7、8、9三个状态由位检测器采样RXD三次,取三次采样中至少两次相同的值作为数据。这样可以大大减少干扰影响,保证通信准确无误。接收完一帧信息后,如果RI=0,并且SM2=0或停止位为1,则表示接收数据有效,开始装载SBUF,8位有效数据送人SBUF,停止位送人SCON中得RB8,同时硬件置RI=1;否则接收数据无效,信息将丢失。无论数据接收有效无效,接收控制器将再次采样RXD引脚的负跳变,以接收下一帧信息。3)方式2和方式3当SM0=1、SM1=0时,串行口工作在方式2,为9位异步串行通信。方式2、方式3的发送接收方式与方式1基本相同,不同的是,它的数据是9位的,即它的一帧包括11位,1个开始位,9个数据位和1个停止位。其中第9位(即D8)数据是可由用户编程,用来作奇偶校验或作地址数据标志位。方式2和方式3的差别仅仅在于波特率不一样, 方式2的波特率是固定的,为fosc/32(SMOD=1时)或fosc/64(SMOD=0时);方式3的波特率可变的,可通过定时器T1或T2自由设定。(1)发送发送时,先根据通信协议由软件设置TB8,然后用指令将要发送的数据写入SBUF,启动发送器。写SBUF的指令,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论