首页 单片机情境4 单片机串行通信的实现

单片机情境4 单片机串行通信的实现

举报
开通vip

单片机情境4 单片机串行通信的实现模块4单片机串行通信的实现任务4.1单片机串口控制数码管电路的设计与制作知识能力4.1.1串行通信的概念1.串行通信的基本方式在微机系统中,通信是指微机与外部设备或微机与微机之间的信息交换。CPU与外部设备的通信有两种基本方式:并行通信和串行通信。并行通信是指被传送数据信息的各位同时出现在数据传送端口上,信息的各位同时进行传送;而串行通信是把被传送的数据按组成数据各位的相对位置一位一位顺序传送,而接收时再把顺序传送的数据位按原数据形式恢复。并行通信和串行通信原理如图4-1所示。并行通信控制简单、传输速度快。由于传输...

单片机情境4 单片机串行通信的实现
模块4单片机串行通信的实现任务4.1单片机串口控制数码管电路的 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 与制作知识能力4.1.1串行通信的概念1.串行通信的基本方式在微机系统中,通信是指微机与外部设备或微机与微机之间的信息交换。CPU与外部设备的通信有两种基本方式:并行通信和串行通信。并行通信是指被传送数据信息的各位同时出现在数据传送端口上,信息的各位同时进行传送;而串行通信是把被传送的数据按组成数据各位的相对位置一位一位顺序传送,而接收时再把顺序传送的数据位按原数据形式恢复。并行通信和串行通信原理如图4-1所示。并行通信控制简单、传输速度快。由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。串行通信传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。串行通信中,要把数据从一个地方传送到另一个地方,必须使用通信线路。按照通信方式,可将数据传输线路分为三种:单工方式、半双工方式和全双工方式。串行通讯数据传输方式如图4-2所示。单工方式只允许数据向一个方向传送;半双工方式允许数据向两个方向中的任一方向传送,但每次只能有一端发送;全双工方式允许同时双向传送数据,它要求两端的通信设备都具有完整和独立的发送和接收能力。在实际应用中尽管串行通讯接口电路具有全双工通讯能力,但大部分只工作于半双工方式,即两端通常不同时收发。在串行通信方式中,按串行数据的同步方式,可以分为同步通信和异步通信两类。(1)异步通信(AsynchronousCommunication)异步通讯规定了字符数据的传送格式,即每个数据以相同的帧格式传送。每一帧信息由以下几部分构成:起始位、有效数据位、奇偶校验位和停止位。异步通信的起始位为字符帧开头,只占一位,始终为逻辑0低电平,用来向接收设备表示发送端开始发送一帧信息;有效数据位在起始位之后,可取5位、6位、7位或8位,低位在前,高位在后。若传送数据为ASCII字符,通常取7位;奇偶校验位为一位,用于有限差错检测,通讯双方在通讯时须约定一致的奇偶校验方式;停止位为一位高电平,是一个字符数据的结束标志。(2)同步通信(synchronousCommunication)在异步通信中由于有起始位和停止位,占用了时间。为提高通信速度,常去掉这些标志,而采用同步传送。同步通信指发送端与接收端在同步时钟频率一致的情况下,以同步字符在每个数据块开始时使收/发双方同步,以同步字符开始,每位占用的时间相等,字符间不允许有间隙,当线路空闲或没有字符可发时,发送同步字符。(3)同步通信与异步通信的区别异步通信的优点是不需要传送同步脉冲,字符帧长度也不受限制,故所需设备简单。缺点是字符中因包含有起始位和停止位而降低了有效数据的传输速率。2.串行通信的波特率(baudrate)波特率即数据传送速率的定义为:串行口每秒钟传送(或接收)二进制数码的位数。其单位为位/秒。bps(bitpercentsecond)。即:1波特=1位/秒(1bps)。假设发送一位数据所需要的时间为Td,则波特率为1/Td。例如:波特率为2400bps的通信系统,其每位的传输时间应为:Td=1/2400=0.417ms。波特率是衡量串行异步通信传送数据速度的一个指标。波特率越高,数据传输速度越快,但和字符帧格式有关。在串行通信中,收发双方对发送或接收数据的速率要有约定。通过软件可对单片机串行口编程为四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。4.1.2串行通信的结构及工作方式1.串行通信的结构MCS-51单片机的串行口能同时发送和接收数据。发送缓冲器只能写入不能读出;接收缓冲器只能读出不能写入。串行口还有接收缓冲作用,即从接收寄存器中读出前一个已收到的字节之前就能开始接收第二字节。两个串行口数据缓冲器通过行殊功能寄存器SUBF来访问。写入SBUF的数据存于发送缓冲器,用于串行发送;从SBUF读出的数据来自接收缓冲器。两个缓冲器共用一个地址99H。MCS-51以串行口的控制是通过SCON实现,也和电源控制寄存器PCON有关。(1)串行口控制寄存器SCON特殊功能寄存器SCON用来控制串行口的工作方式和状态,可以位寻址,字节地址为98H。单片机复位时,所有位全为0。SCON的格式为:(2)电源控制寄存器PCON特殊功能寄存器PCON字节地址为87H,没有位寻址功能。与串行口有关的只有D7位(SMOD),此位是波特率选择位,复位时的SMOD值为0。可用MOV指令使该位置1。当SMOD=1时,在串行口方式1、2或情况下,波特率提高一倍。PCON中的其余各位用于MCS-51的电源控制。与串行口无关从略。PCON的格式为:2.串行通信的工作方式串行口的工作方式有四种,由SM0、SM1定义,串行口的工作方式选择和功能见表4-1。(1)方式0串行口的工作方式0为移位寄存器输入输出方式,波特率固定为fosc/12。发送或接收的是8位数据,低位在先,由RXD(P3.0)输出或输入,TXD端(P3.1)则输出同步移位时钟。1)方式0输出(发送)。当串行口发送时,SBUF相当于一个并入串出的移位寄存器,由MCS-51的内部总线并行接收8位数据,并从RXD线串行输出。发送操作是在TI=0下进行的。当一个数据写入串行口数据缓冲器时,就开始发送。同时,发送控制器送出移位信号,使发送移位寄存器的内容右移一位。直到最高位(D7位)数字移出后,停止发送数据和移位时钟脉冲。一帧数据发送完毕之后,各控制端均恢复原状态,TI由硬件置位,就申请中断。若CPU响应中断(前提是CPU开中断),则从0023H单元开始执行串行口中断服务程序。在再次发送数据前,必须用软件将TI清零。2)方式0输入(接收)。串行口为方式0输入时,RXD端为数据输入端,TXD端为同步脉冲信号输出端。当允许接收REN=1和RI=0时,就会启动一次接收过程。串行接收的波特率为振荡频率fosc的1/12。当接收完一帧数据后,控制信号复位,RI自动置“1”并发出串行口中断请求。CPU查询到RI=1或响应中断后便可通过指令把SBUF(接收)到的数据送入累加器A,RI也由软件复位。在方式0中,SCON中的TB8没用,SM2(多机通讯控制位)置0。方式0主要用于使用CMOS或TTL移位寄存器进行I/O扩展的场合。(2)方式1串行口工作于方式1时,被控制为波特率可变的8位异步通信接口。方式1下,传输的信号有10位:起始位0、8位数据(低位在先)、停止位1。由TXD发送,RXD接收。传输的波特率由定时器1的溢出率确定。设计数的预置值(初始值)为X,此时1)方式1发送。发送操作是在TI=0时,在执行一条以SBUF为目的寄存器的指令而启动的。然后发送电路自动在8位发送字符前后分别添加1位起始位和停止位,并在移位脉冲作用下在TXD线上完成一帧数据的发送,之后在TXD线上为高电平,且置位中断标志位TI。2)方式1接收。接收过程是在REN=1和RI=0条件下,从RXD端检测到从1到0的跳变来启动的。接收器以所选波特率的16倍速率采样RXD。当接收电路连续8次采样到RXD线为低电平时,相应检测器便可确认RXD线上有了起始位。若起始位有效,便移入输入移位寄存器,并依次接收本帧数据的剩余部分。接到电路改为对第7、8、9三个脉冲采样到的值进行检测,并以三中取二原则来确定所采样数据的值。若接收到的第一位不是0,即不是一帧数据的起始位,则复位接收电路等待1到0的负跳变。在接收到停止位时,接收电路必须同时满足以下两个条件:RI=0和SM2=0或接收到的停止位为“1”,才能把接收的8位字符存入SBUF中,把停止位送入RB8中,并使RI=1和发出串行口中断请求。若上述条件不满足,则这次收到的数据就被舍去,不装入SBUF中。这就相当于丢失了一组接收数据帧。中断标志RI必须由用户在中断服务程序中清0。通常串行口以方式1工作时,SM2置为“0”。(3)方式2与方式3串行口工作于方式2和方式3时,被定义为9位的异步通信接口。发送和接收一帧信息都是11位。1位起始位0、8位数据位(低位在先)、1位可编程位(即第9位数据)和1位停止位。方式2和方式3的原理相似,主要区别是两者在通信中波特率有所不同:方式2的波特率由MCS-51主频经32或64分频后获得;方式3的波特率由定时器T1或T2的溢出率经32分频获得,这一点与方式1是类似的。1)方式2和方式3发送。方式2和方式3发送的过程类似于方式1,所不同的是方式2和方式3有9位有效数据位。发送时,CPU除要把发送字符写入SBUF外,还要把第9位数据预先装入SCON的TB8中,由软件置位或清零,可以作为数据的奇偶校验位,也可以作为多机通信中的地址、数据标志位。第9位数据位的值装入TB8后,用一条以SBUF为目的的传送指令把发送数据装入SBUF来启动发送过程。一帧数据发送完后,TI=1,请求中断。2)方式2和方式3接收。方式2和方式3的接收过程也和方式1类似。区别是:方式1时RB8中存放的是停止位,方式2和方式3时RB8存放的是第9位数据位。所接收的停止位的值可用于多机处理也可作奇偶校验位。方式2和方式3必须满足接收有效字符的条件为:RI=0和SM2=0或收到的第9位数据位为“1”,只有这两个条件同时满足,接收到的字符才能送入SBUF,第9数据位才能装入RB8中,并使RI=1;否则,所收到的数据无效,RI也不置位。3.串行通信的编程串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下:1)确定T1的工作方式(编程TMOD寄存器);2)计算T1的初值,装载TH1、TL1;3)启动T1(编程TCON中的TR1位);4)确定串行口控制(编程SCON寄存器);串行口在中断方式工作时,要进行中断设置(编程IE、IP寄存器)。串行通信的编程有两种方式:查询方式和中断方式。在串行通讯的编程中,如果是方式1和方式3,初始化程序中必须对定时计数器T1进行初始化编程以选择波特率。发送程序应注意先发送再检查状态TI;而接收程序应注意先检查状态RI再接收,即发送过程是先发后查,而接收过程是先查后收。无论发送前或接收前都应先清状态TI或RI,无论是查询方式还是中断方式,发送或接收后都不会自动清状态标志,必须用程序将TI和RI清0。查询方式的发送、接收数据块的子程序 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图如图4-4所示。中断方式对TI和SCON的初始化同查询方式,不同的是要置位EA(中断总开关)和ES(允许串行中断)。中断方式的发送和接收的流程如图4-5所示。技能能力4.1.3工作任务描述用51单片机的串口通信实现对LED数码管的控制,采用串行通信方式0和串入并出移位寄存器74LS164,数码管接在74LS164的并口输出端。要求LED数码管能以2S的时间间隔循环显示0~9十个数字。4.1.4工具、设备及材料工具:电烙铁、吸锡器、镊子、剥线钳、尖嘴钳、斜口钳、Proteus仿真软件等。设备:万用表、计算机、仿真器、编程器等。材料:AT89C51单片机一块、74LS164一个、数码管一个、6MHz晶振一个、按键一个、电路万用板一块、导线若干、相关电阻、电容一批、焊锡丝、松香等。4.1.5操作步骤1.根据如图4-6所示单片机串口控制数码管电路图及任务描述要求,画出程序流程图图4-6单片机串口控制数码管电路2.编写程序代码参考代码如下:ORG0000HMOVSCON,#00H;设置串行口为方式0CLRP1.1SETBP1.1;开启并行输出MOVDPTR,#TABLOOP2:MOVR0,#10MOVR1,#0LOOP1:MOVA,R1MOVCA,@A+DPTRMOVSBUF,A;串行输出JNBTI,$CLRTI;清发送中断标志LCALLDEL2S;调用延时子程序INCR1DJNZR0,LOOP1SJMPLOOP2DEL2S:MOVR2,#04LOOP3:MOVR3,#250LOOP4:MOVR4,#250LOOP5:NOPNOPDJNZR5,LOOP3DJNZR4,LOOP2DJNZR3,LOOP1RETTAB:DB0C0H,0F9H,0A4H,0B0H,99H;DB92H,82H,0F8H,80H,90HEND3.绘制仿真电路图并仿真用proteus软件绘制仿真电路图,编译程序并进行仿真测试,对出现的错误加以分析和修正。4.根据原理图构建具体电路,并检查在电路万用板上将元器件合理规划布局并焊接成具体硬件电路,检查元器件的位置是否正确、合理,各焊点是否牢固可靠、外形美观。5.程序下载验证把程序下载到芯片上进行验证电路功能的实际实现情况。6.总结对整个任务的实施情况进行分析总结,进一步所学的知识点加以理解。任务4.2单片机串口双机通信电路的设计与制作知识能力4.2.1双机通信利用MCS-51的串行口可以进行两个8051单片机之间点对点串行异步通讯。在设计双机通信技术中,主要包括双机通信接口设计和双机通信软件设计两部分。1.单片机双机通讯接口设计根据8051单片机双机通讯距离,抗干扰性等要求,可选择TTL电平传输、RS-232C、RS-422A、RS-485串行接口方法。(1)TTL电平通信接口如果两个8051应用系统相距1m之内,它们的串行口可直接相连,从而实现了双机通信。TTL电平传输双机通信接口电路如图4-7所示。(2)RS-232C双机通信接口如果双机通信距离在30m之内,可利用RS-232C 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 接口实现双机通信。RS-232C双机通信接口电路如图4-8所示。RS-232C是一种电压型总线标准,可用于设计计算机接口与终端或外设之间的连接,以不同的极性的电压表示逻辑值。-3~-25V表示逻辑"1"。+3~+25V表示逻辑"0"。其电平与TTL和CMOS电平是不同的,所以在通信时必须进行电平转换。常用的电平转换芯片有MC1488、MC1489、MAX232,其中MAX232采用单5V电源供电,使用非常方便。(3)RS-422A双机通信接口为了增加通信距离,减小通道及电源干扰,可以利用RS-422A标准进行双机通信。它具体通过传输线驱动器,将逻辑电平变换成电位差,完成发送端的信息传递;通过传输线接收器,把电位差变换成逻辑电平,完成接收端的信息接收。RS-422A比RS-232C传输距离长、速度快,传输速率最大可达10Mb/s,在此速率下,电缆的允许长度为12m,如果采用低速率传输,最大距离可达1200m。RS-422A和TTL进行电平转换最常用的芯片是传输线驱动器SN75174和传输线接收器SN75175,这两种芯片的设计都符合EIA标准RS-422A,均采用+5V电源供电。(4)RS-485双机通信接口RS-485双机通信的接口电路如图4-11所示,RS-485以双向、半双式的方式实现了双机通信。在8051系统发送或接收数据前,应先将75176的发送门或接收门打开,当P1.0=1时,发送门打开,接收门关闭;当P1.0=0时,接收门打开,发送门关闭。2.单片机双机通讯软件设计除RS-485串行通信外,TTL、RS-232C、RS422A双机通信的软件设计方法是一样的。主要为确保通信成功,通信双方必须在软件上有一系列的约定,通常称为软件 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 。可用查询方式或中断方式双机通信软件设计两部分内容。下面以双机均用中断方式进行双机通信程序设计举例。设甲机发送,乙机接收,串行接口工作于方式3(每帧数据为11位,第9位用于奇偶校验),两机均选用6MHZ的振荡频率,波特率为2400b/s,通信的功能为:甲机:将片外RAM4000H~407FH单元的内容向乙机发送,每发送一帧信息,乙机对接收的信息进行奇偶校验,此例为偶校验,P位值主和TB8K。若校验正确,则乙机向甲机回发“数据发送正确”的信号(例中以00H作为回答信号),甲机收到乙机的回答“正确”信号后再发送下一个字节。若奇偶校验有错,则乙机发出“数据发送不正确”的信号(例中以FFH作为回答信号),甲机收到“不正确”回答信号后,重新发送原数据,直至发送正确。甲机将该数据块发送完毕后停止发送。乙机:接收甲机发送的数据,并写入以4000H为首地址的片外RAM中,每接收一帧数据,乙机对所接收的数据进行奇偶校验,并发出相应的回答信号,直至接收完所有数据。计算定时器初值x将已知数据 取SMOD=0时,x=249.49,因取整数误差过大,故设SMOD=1,则x=242.98≈243=F3H。因此实际波特率2403.85b/s。其甲、乙机的实现流程图如图4-12和图4-13所示。4.2.2多机通信在实际应用系统中,单机及双机通信不能满足实际的需要,而需多台单片机互相配合才能完成某个过程或任务。多台单片机间的相互配合是按实际需要将它们构成各种分布式系统,使它们之间相互通信,以完成各种功能。串行口的方式2和方式3具有多机通信功能,即可实现一台主单片机和若干个从单片机构成的多机分布式系统,主从式全双工通信方式和主从式半双工通信方式分别如图4-14和图4-15所示。1.多机通信原理8051的全双工串行通信接口具有多机通信功能。在多机通信中,为了保证主机与所选择的从机实现可靠的通信,必须保证通信接口具有识别功能,可以通过控制8051的串行口控制寄存器SCON中的SM2位来实现多机通信的功能,其控制原理如下:利用8051串行口方式2或方式3及串行口控制寄存器SCON中的SM2和RB8的配合可完成主从式多机通信。串行口以方式2或方式3接收时,若SM2为1,则仅当从机接收到的第九位数据(在RB8中)为1时,数据才装入接收缓冲器SBUF,并置RI=1向CPU申请中断;如果接收到的第九位数据为0,则不置位中断标志RI,信息将丢失。而SM2为0时,则接收到一个数据字节后,不管第九位数据是1还是0都产生中断标志RI,接收到的数据装入SBUF。应用这个特点,便可实现多个8031之间的串行通信。2.多机通讯协议多机通讯是一个复杂的通讯过程,必须有通讯协议来保证多机通讯的可操作性和操作秩序。这些通信协议中,至少包括从机的地址、主机的控制命令、从机的状态字格式和数据通信格式等的约定。1)使所有的从机SM2位置1,都处于只接收地址帧的状态。2)主机向从机发送一帧地址信息,其中包含8位地址,第9位为1表示是地址帧。3)所有从机接收到地址帧后,进行中断处理,从机都来判别主机发来的地址信息是否与自己的地址相相符。若地址相符,置SM2=0,进入正式通讯,并把本机的地址发送回主机作为应答信号,然后开始接收主机发送过来的数据或命令信息。其他从机由于地址不符,他们的SM2维持1,无法与主机通信,从中断返回。4)主机接收从机发回的应答地址信号后,与其发送的地址信息进行比较,如果相符,则清除TB8,正式发送数据信息;如果不相符,则发送错误信息。5)被寻址的从机通讯完毕后,置SM2=1,恢复多机系统原有的状态。6)通讯的各机之间必须以相同的帧格式及波特率进行通讯。3.单片机多机通信接口设计当一台主机与多台从机之间距离较近时,可直接用TTL电平进行多机通信,多机全双工通信连接方式如图4-16所示。当距离较远时,可采用RS232接口、RS422接口或RS485接口。4.2.3计算机与单片机的通信PC机与单片机间的通信,特别是PC机和多台单片机构成小型分布系统实现分级分布式控制得到的应用。下面主要以PC机与8051间的点对点的双机通信方式为例,来作一个计算机与单片机的通信。单片机与PC机的通信流程图如图4-17所示。整个传输过程:由单片机发握手信号(FFH),PC机收到后发应答信号(00H),并准备接收数据,单片机收到应答信号后,准备发送数据,并说明整个挂钩过程成功,总的测量次数和键值作为第0组发送,发送完后发累加校验和,发现传输出错重发,每组960个测量数据……直至结束。PC机与单片机通信时,发送和接收工作状态,见图4-18虚线,由于两机同时工作,需要考虑延时和等待,以达到两机之间的最佳配合,所以,一般在本机发送信号之前,让接收机处于接收等待状态。技能能力4.2.4工作任务描述用两个AT89C51,甲机的P1口别接八个开关,乙机的P1口接有八个发光二极管。两个单片机采用串口进行通信。要求甲机将八个开关的状态用串口传给乙机,乙机接收到数据后将其送至本机P1口,通过八个发光二极管亮灭状态反映甲机八个开关闭合状态。4.2.5工具、设备及材料工具:电烙铁、吸锡器、镊子、剥线钳、尖嘴钳、斜口钳、Proteus仿真软件等。设备:万用表、计算机、仿真器、编程器等。材料:AT89C51单片机两块、开关八个、发光二极管八个、11.0592MHz晶振两个、按键两个、电路万用板一块、导线若干、相关电阻、电容一批、焊锡丝、松香等。4.2.6操作步骤1.根据如图4-18所示单片机串口双机通信电路图及任务描述要求,画出程序流程图。图4-18单片机串口双机通信电路图2.编写程序代码甲机部分参考代码如下:MAIN:… MOV SCON,#40H;设置串口工作方式 MOVTMOD,#20HMOVTH1,#0FDHMOVTL1,#0FDH;设置波特率SETBTR1…乙机部分参考代码如下:MAIN:… MOV SCON,#50H;设置串口工作方式 MOVTMOD,#20HMOVTH1,#0FDHMOVTL1,#0FDH;设置波特率SETBTR1…3.绘制仿真电路图并仿真用proteus软件绘制仿真电路图,编译程序并进行仿真测试,对出现的错误加以分析和修改。4.根据原理图构建具体电路,并检查在电路万用板上焊接具体硬件电路,由于元件个数有点多,所以要注意各个元器件的合理布局。检查元器件的位置是否正确、合理,各焊点是否牢固可靠、外形美观。5.程序下载验证把程序下载到芯片上进行验证电路功能的实际实现情况。6.总结对整个任务的实施情况进行分析总结,进一步所学的知识点加以理解。
本文档为【单片机情境4 单片机串行通信的实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
孟子73代
暂无简介~
格式:ppt
大小:3MB
软件:PowerPoint
页数:0
分类:工学
上传时间:2019-06-30
浏览量:4