基于单片机的双机通信Word文档下载推荐.docx
- 文档编号:18666983
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:25
- 大小:258.94KB
基于单片机的双机通信Word文档下载推荐.docx
《基于单片机的双机通信Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机的双机通信Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。
3.1单片机技术介绍7
3.2MAZ232芯片10
3.34×
4键盘介绍11
3.3.14×
4矩阵键盘工作原理11
3.3.2数码动态扫描显示电路12
3.4数码管工作原理13
4.设计步骤14
4.1Keil和Proteus介绍和联调14
4.1.1Proteus的介绍14
4.1.2Keil的介绍15
4.2软件设计16
4.3硬件设计16
结论17
致谢18
参考文献19
附录I20
附录II27
附录III28
绪论
单片机作为微型计算机的一个分支,具有功能强、体积小、应用灵活等诸多优点,在工业控制、仪器仪表、通信、家用电器和国防科技等各个领域得到广泛的应用。
随着集成电路技术的不断发展,单片机的性能也在不断的提高,其应用的范围必将越来越宽广。
然而,随着单片机在工业自动化控制、智能仪器仪表中的广泛应用,单机已经逐渐不能满足需要,双机协同工作已经成为一个重要的发展趋势,双机应用的关键就在于双机之间的互相通讯、互传数据信息。
单片机和计算机的共同发展下,单片机的应用从独立的单片机向网络发展,由计算机和单片机构成的双机网络系统也是单片机技术发展的一个方向。
单片机双机通信是指由两台单片机组成的网络结构,可以通过串行通信方式实现对某一过程的最终控制。
随着计算机技术的发展,双机通讯技术也在不断的发展,现在发展比较成熟的还有光纤通信等。
由于计算机的飞速发展和控制系统的复杂化,双机机通信已经越来越成为人们热门的话题之一单片机双机机通信是指由两台单片机组成的网络结构,可以通过串行通信方式共同实现对某一过程的最终控制。
目前,单片机多机通信的形式较多,但通常可分为星型、环型、串行总线型和主从式多机型四种。
随着单片机和计算机技术的不断发展,单片机的应用也从独立的单机向网络发展。
由计算机和单片机构成的多机网络系统已成为单片机技术发展的一个方向。
二者的结合,充分发挥单片机在实时数据采集和数据管理上的优点。
单片机在计算机的网络通讯与数据传输、工业自动化过程的实时控制和数据处理等都有广泛地应用,已渗透到我们生活的各个领域。
许多应用都涉及到单片机双机通信。
然而.单片机对网络数据的处理方式不同于通用计算机系统.尤其是有的单片机只提供2位的数据收发接口,这在一定程度上阻碍了单片机在网络方面的应用。
因此,采用单片机技术与计算机网络技术相结合的办法,对单片机双机通信系统进行研究.在设计单片机网络的通信协议的基础上,系统网络拓扑结构采用总线型.网络接El电路采用端El转发的形式,实现了2位单片机双机通信。
1.课题背景
1.1双机通信简介
MCS-51系列单片机上有一个通用异步接收/发送器UART,通过引脚RXD[P3.O]和TXD[P3.1]可与外音B电路进行全双工的串行异步通信,发送数据时由TXD端送出,接收时数据由RXD端输入。
本文将具体介绍单片机串口的特点和编程方法,并且在最后给出一个实用的单片机与计算机通过串口通信的程序。
1.1.1双机通信接口的基本特点
MCS-51单片机的串行端口有4种基本工作方式,通过编程设置,可以使其工作在任一方式,以满足不同场合的需要。
其中,方式0主要用于外接移位寄存器,以扩展单片机的I/O电路;
工作方式1多用于双机之间或与外设电路的通信;
方式2、3除有方式1的功能外,还可以作多机通信,以构成分布式多微机系统。
串行端口有两个控制寄存器SCON、PCON,用于设置工作方式、发送或接收的状态、特征位、数据传送波特率[每秒传送的位数]以及作为中断标志等。
串行端口有一个数据寄存器SBUF在特殊功能寄存器中的字节地址为99H,该寄存器为发送和接收所共用。
串行端口的波特率可以用程序来控制。
在不同工作方式中,由时钟振荡频率的分频值或由定时器T1的定时溢出时间确定,使用十分方便灵活。
1、串口控制寄存器
(1)方式1
输入:
在(REN)=1时,串行口采样RXD引脚,当采样到1至O的跳变时,确认是串行发送来的一帧数据的开始位0,从而开始接收一帧数据。
只有当8位数据接收完,并检测到高电平停止位后,只有满足①(R1)=0;
②(SM2)=0或接收到的第9位数据为1时,停止位才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI;
否则信息丢失。
所以在方式1接收时,应先用软件清零RI和SM2标志。
(2)方式2
方式2为固定波特率的11位UART方式。
它比方式1增加了一位可程控为1或0的第9位数据。
输出:
发送的串行数据由TXD端输出一帧信息为11位,附加的第9位来自SCON寄存器的TB8位,用软件置位或复位。
它可作为多机通讯中地址/数据信息的标志位,也可以作为数据的奇偶校验位。
当CPU执行一条数据写入SUBF的指令且TI=0时,就启动发送器发送。
发送一帧信息后,置位中断标志TI。
在接收到附加的第9位数据后,当满足①(RI):
0;
②(SM2)=0或接收到的第9位数据为1时,第9位数据才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志Ri;
且不置位RI。
(3)工作方式3
方式3为波特率可变的11位UART方式。
除波特率外,其余与方式2相同。
波特率的选择
如前所述,在串行通讯中,收发双方的数据传送率(波特率)要有一定的约定。
在MCS-51串行口的四种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可变的,由定时器T1的溢出率控制。
1.方式O:
方式0的波特率固定为主振频率
的1/12。
2.方式2:
方式2的波特率由PCON中的选择位SMOD来决定,可表示为:
波特率=2sMoD×
fosc/64也就是当SMOD=1时,波特率为1/32×
fosc,当SMOD=0时,波特率为1/64×
fosc。
3.方式1和方式3
定时器T1作为波特率发生器,其公式如下:
波特率=2SMOD/32×
定时器T1溢出率
T1溢出率=T1计数率/产生溢出所需的周期数
式中T1计数率取决于它工作在定时器状态还是计数器状态。
当工作于定时器状态时,T1计数率为Fosc/2:
当工作于计数器状态时,T1计数率为外部输入频率,此频率应小于Fosc/24。
产生溢出所需周期与定时器T1的工作方式、T1的预置值有关。
定时器T1工作于方式O:
溢出所需周期数=8192-×
定时器T1工作于方式1:
溢出所需周期数=65536-X
定时器T1工作于方式2:
溢出所需周期数=256-X
因为方式2为自动重装入初值的8位定时器/计数器模式,所以用它来做波特率发生器最恰当。
这种方式下,T1的溢出率[次/秒]计算式可以表示为:
T1溢出率=Fsoc/12[256-X]
1.2双机通信原理
双机通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计算机端,而且也能实现计算机对单片机的控制。
由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用。
1.3系统网络协议
通信协议是通信设备在通信前的约定。
单片机、计算机有了协议这种约定,通信双方才能明白对方的意图,以进行下一步动作。
假定我们需要在PC机与单片机之间进行通信,在双方程式设计过程中,有如下约定:
0xA1:
单片机读取P0端口数据,并将读取数据返回PC机;
0xA2:
单片机从PC机接收一段控制数据;
0xA3:
单片机操作成功信息。
在系统工作过程中,单片机接收到PC机数据信息后,便查找协议,完成相应的操作。
当单片机接收到0xA1时,读取P0端口数据,并将读取数据返回PC机;
当单片机接收到0xA2时,单片机等待从PC机接收一段控制数据;
当PC接收到0xA3时,就表明单片机操作已经成功。
2.设计方案
本次设计,对于两片89C51,采用RS232进行双机通信。
发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。
接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。
接受方接收后,在数码管上显示接收的信息。
为提高抗干扰能力,还可以在输入输出端加光耦合进行光电隔离。
软件部分,通过通信协议进行发送接收,主机先送AAH给从机,当从机接收到AAH后,向主机回答BBH。
主机收到BBH后就把数码表TAB[16]中的10个数据送给从机,并发送检验和。
从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机;
否则发送FFH给主机,重新接受。
从机收到16个正确数据后送到一个数码管显示。
3.单片机与通信芯片介绍
3.1单片机技术介绍
1974年12月,美国著名的仙童公司推出了世界上第一台单片机F8。
该机由两快集成电路芯片组成,结构新颖,并具有与众不同的指令系统,深受民用电器和仪器仪表领域的欢迎和重视。
从此单片机开始迅速发展,应用范围也在不断扩大,现已成为微型计算机的重要分支。
单片机的发展大致经历了外围集成、总线完善、功能集成、全方位发展等技术发展阶段,至今走过了四代的历程。
第一代:
单片机探索阶段。
主要有通用CPU68XX系列和专用CPUMCS-48系列。
第二代:
单片机完善阶段。
表现在:
1.面对对象,突出控制功能,专用CPU满足嵌入功能;
2.寻址范围16位或8位;
3.规范的总线结构,有8位数据线,16位地址线及多功能异步串行口(UART);
4.特殊功能寄存器(SFR)的集中管理模式;
5.海量位地址空间,提供位寻址及位操作功能;
6.指令系统突出功能。
第三代:
微控制器形成阶段。
这一阶段已经形成系列产品:
以8051系列为代表,如8031、8032、8051和8052等。
第四代:
微控制器百花齐放。
表现在:
1.电气商、半导体商广泛加入;
2.满足最低层电子技术的应用(玩具、小家电);
3.大力发展专用型单片机;
4.致力于提高单片机的综合品质。
由于单片机在整个设计中占据着重要的地方,首先介绍一下单片机的相关知识。
单片机AT89S52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要。
MCS-51单片机内部结构8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。
8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在分别加以说明:
中央处理器:
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
数据存储器(RAM):
8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
图3.18051内部结构
程序存储器(ROM):
8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。
定时/计数器:
8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
并行输入输出(I/O)口:
8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。
全双工串行口:
8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
中断系统:
8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
时钟电路:
8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。
单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。
INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。
图3.2MCS-51结构框图
MCS-51的引脚说明:
MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,图2.3是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。
现在我们对这些引脚的功能加以说明:
图3.351单片机引脚图
Pin9:
RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。
初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。
RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。
然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。
8051的复位方式可以是自动复位,也可以是手动复位,如图(2.4)。
此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。
图2.4复位电路图
Pin30:
ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。
而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。
更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。
如果单片机是EPROM,在编程其间,
将用于输入编程脉冲。
Pin29:
当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。
Pin31:
EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kb时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。
如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。
显然,对内部无程序存储器的8031,EA端必须接地。
3.2MAZ232芯片
用8051串行接口通信,如果两台8051单片机之间的距离很近(不超过1.5m),可以采用直接将两台8051单片机的串行接口直接相连,利用其自身的TTL电平(0-5V)直接传输数据信息。
如果传输距离较远(超过1.5m),由于传输线的阻抗与分布电容,会产生电平损耗和波形畸变,以至于检测不出数据或数据出错。
此时可利用RS232标准总线接口,将单片机输出的TTL电平转换为RS232标准电平(逻辑1为-15—-5V;
逻辑0为+5-—+15V)。
用RS232可将传输距离提高到15m,如果想远距离传输,可以采用RS422或者RS485。
电平转换芯片MAX232是美信公司(MAXIM)生产,专用于进行将TTL电平转换为RS232电平的芯片,MAX232内部有泵电源,能将+5V电源电压在芯片内提高到RS232电平所需的+10V或者-10V电平。
图2.电平转换芯片MAX232
4键盘介绍
4矩阵键盘工作原理
矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。
在行线和列线的每一个交叉点上,设置一个按键。
这样键盘中按键的个数是4×
4个。
这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。
图3.4为ME300B矩阵键盘电路图,行线接P1.4-P1.7,列线接P1.0-P1.3。
图3.4矩阵键盘电路图2按键排列
3.3.2数码动态扫描显示电路
在ME300B开发系统中,采用了8位数码管动态扫描显示。
它将所有数码管的8个段线相应地并接在一起,并接到AT89S51的P0口,由P0口控制字段输出。
而各位数码管的共阳极由AT89S51的P2口控制Q20-Q27来实现8位数码管的位输出控制。
这样,对于一组数码管动态扫描显示需要由两组信号来控制:
一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;
另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。
由于各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。
因此,同一时刻如果各位数码管的位选线都处于选通状态的话,8位数码管将显示相同的字符。
若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式。
即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。
同时,段线上输出相应位要显示字符的字型码。
这样同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。
虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其它各位熄灭,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人眼的视觉印象就会是连续稳定地显示。
管的亮度将亮些,若显示的时间间隔短,显示时数码管的亮度将暗些。
若显示的时间间隔过长的话,数码管显示时将产生闪烁现象。
所以,在调整显示的时间间隔时,即要考虑到显示时数码管的亮度,又要数码管显示时不产生闪烁现象。
在ME300B单片机开发系统中使用数码管来显示信息时,要将JP2的2、3端短接。
见图3.6。
图3.6
3.4数码管工作原理
共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起。
通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。
当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮。
根据发光字段的不同组合可显示出各种数字或字符。
此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。
共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起。
通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。
当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。
此时,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻.
4.设计步骤
基于单片机的双机通信的设计包括软件设计和硬件设计两部分。
软硬件设计都包括发射部分和接收部分的设计。
软件设计主要是C语言程序和汇编语言程序的编写和运用Proteus软件进行仿真。
4.1Keil和Proteus介绍和联调
4.1.1Proteus的介绍
1、Proteus是一种低投资的电子设计自动化软件,提供SchematicDrawing、SPICE仿真与PCB设计功能,这一点Proteus与multisim比较类似,只不过它可以仿真单片机和周边设备,可以仿真51系列、AVR,PIC等常用的MCU,与keil和MPLAB不同的是它还提供了周边设备的仿真,只要给出电路图就可以仿真,例如373,led,示波器,Proteus提供了大量的元件库,有RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件,编译方面支持Keil和MPLAB,里面有大量的例子参考.
2、Proteus可提供仿真元件资源,Proteus软件提供了可仿真数字和模拟、交流和直流等数千种元器件达30多个元件库。
3、Proteus可提供的仿真仪表资源包括拟仪器仪表的数量、类型和质量,是衡量仿真软件实验室是否合格的一个关键因素。
在Proteus软件中,理论上同一种仪器可以在一个电路中随意的调用。
除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似但功能更多。
这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。
这些都尽可能减少了仪器对测量结果的影响。
4、Proteus可提供的调试手段
Proteus提供了比较丰富的测试信号用于电路的测试。
这些测试信号包括模拟信号和数字信号。
Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 双机 通信