课题七单片机双机通信课件_第1页
课题七单片机双机通信课件_第2页
课题七单片机双机通信课件_第3页
课题七单片机双机通信课件_第4页
课题七单片机双机通信课件_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

课题七单片机双机通信任务一与PC通信任务二双机通信课题目标通过本任务学习什么是计算机的通信,什么是串口通信,什么是并口通信,学习用串行通信的方式实现单片机之间的信息交换,学会应用单片机的串行端口进行数据的输入/输出传送,能用串行通信实现数据传输。本课题的任务是将两个独立的单片机系统用连接线进行连接,使用串行通信进行数据传送。作为演示的系统,在其中一个单片机系统中通过键盘输入数据,通过单片机的串口传输到另一个单机系统的串口,并在另一个单片机中显示所输入的数据。课题分析

为了便于对串口的工作及串口程序的编写,本课题分为与PC通信和双机通信两个任务。要实现两个单片机系统之间的通信,首先要考虑的是两个系统之间的信号的是如何传递问题,然后再考虑要传递的信号的用途问题。图7-1串口电平转换电路程序设计分析

if((ch>='A')&(ch<='Z'))ch=ch+'a'-'A';根据本任务的目标,要求单片机每接收到一个字符时,先作字符判断并转换,然后将字符通过串口发回PC机。本任务的附加条件,要求单片机本身需要设置串行口波特率设置为9600,选择模式1(无附加的奇偶校验位),即SCON需要设置的值为0X80,对应的T1应设置为模式2且TH1的值设置为0XFD。将字符中的大写字母转换为小写,首先应判断字符是否为大写字母,然后根据ASCII码的方式,加上小写字母与大写字母的差值就能完成转换,如下所示的语句:

任务二双机通信如图7-2所示电路原理图中,要求在单片机系统中通过键盘输入数据,通过单片机的串口传输到另一个单机系统的串口,在串口接收另一个单片机发送的数据并在数码管上显示。在图7-2中,键盘电路选择行列式矩阵键盘接在P2口;显示电路选择LED数码管动态显示电路,显示段码接P0口和位码接P1口;串行通信接口电路选择直接连接的插座,RXD、TXD与GND直接通过导线与另一单片机系统相连。任务目标程序设计分析

由任务可知,对于一个单片机系统而言,要求程序要完成的功能一是将本机的按键通过串口用异步通信的方式发送出去,二是对接收到另一单片机传送到串口的数据,先保存下来,再送LED数码管依次显示出来。因此,程序将为分三个部分组成,其一是随时扫描键盘,如果有键按下,则调用串口发送程序;其二是串口接收程序,只要有数据到了,就执行数据接收程序,并把数据送到显示数组里;其三是动态显示程序。为了完成这三个并行任务,最简单的方法采用中断进行任务分配,将串口接收程序使用串口中断对输入的数据进行检测和接收,将动态显示程序使用定时中断完成,而键盘扫描则采用主程序实时检测,程序的流程框图如图7-3所示。下面就这三个部分的程序进行具体的分析。图7-3单片机程序框图(A)主程序(B)串口中断服务程序初始化读入键盘状态开始发送数据是否按下键刚按下键否接收到数据数据处理(存放到显示数组中)清中断标志接收数据?否(A)(B)串行中断入口中断处理结束一、串口接收程序if(RI==1){display_data[point++]=SBUF;if(point==8)point=0;RI=0;}作为串口中断,当串口在发送或接收完一个数据时,会使对应的标志位TI(RI)出现置位,产生中断。因而在出现中断时,需要先判断是不是RI标志(接收),如果是接收到了数据,则数据自动被硬件保存在SBUF单元中,然后从SBUF单元中读出具体的数据进行处理,在本任务中是将数据送到显示数组中。对应的程序如下所示:三、键盘处理voidsendchar(unsignedcharch){ SBUF=ch; while(TI==0); TI=0;}作为键盘扫描程序,在前面的课题中已经有较详细的说明,在此不作过多的说明。具体处理仅需将数据发送。使用串口的发送数据,需要将发送的数据送至SBUF单元,如果发送完毕,则TI自动置位,需要将其手动清除,发送一个字符的程序如下所示。一、有关通信的基本概念数据通信的基本方法有并行通信和串行通信两种。异步串行通信以字符为传送单位用起始位和停止位标识每个字符的开始和结束,字符间隔不固定,只需字符传送时同步。异步串行通信的双方需要两项约定:异步串行通信是指通信时发送设备与接收设备使用各自的时钟控制数据的发送和接收的过程。异步串行通信的特点是以字符为单位进行传输,传送字符与字符之间的时间间隔是任意的,但所传送每个字符中的各位是以固定的时间传送的,硬件设备简单。串行通信的基本方式分为同步串行通信和异步串行通信。⑴字符格式一帧字符位数的规定:数据位,校验位,起始位和停止位。⑵波特率波特率是数据传送的速率,要求发送方和接收方都要以相同的数据传送速率工作。在异步通信中,波特率为每秒钟传送二进制数码的位数,以位/秒作为单位。一、有关通信的基本概念SM2(SCON.5):8051连接多重处理器通信的控制位。即在工作方式2、3中允许多机通信的控制位。REN(SCON.4):串行通信接收允许位。REN=1时允许接收,REN=0时禁止接收。该位可以由软件来设定。TB8(SCON.3):在串行通信模式2和模式3操作时的第9个传送数据位。RB8(SCON.2):在串行通信模式2和模式3操作时的第9个接收数据位。TI(SCON.1):串行通信传送的中断处理标志位。在方式0中,发送完第8位数据时,由硬件自动置位,其它方式中,在发送停止位之初,由硬件自动置位。T=1时,申请中断,CPU响应中断后,发送下一帧数据。注意在任何方式中,T1都必须由软件先清零。RI(SCON.0):串行通信接收的中断处理标志位。⑵PCONPCON是电源控制寄存器,它只有其最高位与串口相关,即PCON的D7位SMOD作为串行口的波特率控制位,SMOD=1,波特率加倍,SMOD=0,则不加倍。⑶串口缓冲寄存器SBUFSBUF是由发送缓冲寄存器和接收缓冲寄存器两个单元组成,在单片机中占用同一个字节地址(99H),可同时发送和接收数据。单片机在处理时,由读/写指令来区别两个单元,因而不会出现读写冲突和错误。二、与串口控制相关的寄存器三、MCS-51串行口的工作方式

1、方式0方式0时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定为fosc/12。

方式0的输出时序3、方式2和方式3方式2或方式3时为11位数据的异步通信口。方式2和方式3时起始位1位,数据9位(含1位附加的第9位,发送时为SCON中的TB8,接收时为RB8),停止位1位,一帧数据为11位。方式2的波特率固定为晶振频率的1/64或1/32,方式3的波特率由定时器T1的溢出率决定。

三、MCS-51串行口的工作方式

计算机通信主要有串行通信和并行通信两种方式,远距离通信通常采用串行通信方式但需要增加电平、接口转换电路,如RS-232C、RS485接口等。

MCS-51单片机内部有一个全双工的异步串行通信接口,工有四种工作方式;其数据帧格式有1

温馨提示

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

评论

0/150

提交评论