基于单片机的双机通信

基于单片机的双机通信

[摘要]双机通信是单片机的一个重要应用。本次课程设计就是要利用单片机来完成一个系统,实现两个单片机之间的有序通信。本文详细介绍了关于基于单片机AT89C51实现的双机之间的通信的设计。软件部分采用C语言编程实现接收部分和发射部分的功能,用Protues进行仿真。软件设计完成后,将程序烧入单片机。通信的结果实用数码管进行显示,数码管采用查表方式显示。在通信过程中,使用通信协议进行通信。

[关键词] 51单片机;串行通信;接口

Two-machine communication based on single chip

[Abstract]Dual machine communication is an important application of single chip. This course is designed to using single chip computer to complete a system, realize the orderly communication between two single-chip microcomputer. This paper introduces the realization based on single-chip microcomputer AT89C51 about the dual machine for communication between the design. Software part adopts the C programming language realization receiving part and emission, part of the Protues function, through simulation. The software design is completed, the procedure spread microcontroller. Communication results and practical to display, digital digital tube pipe, adopting look-up table display. In communication process, USES communication protocol to communicate.

[Key words]51 SCM; serial communication; Interface

目录

基于单片机的双机通信........................................................................ I Two-machine communication based on single chip ............................... II 绪论 (4)

1.课题背景 (5)

1.1 双机通信简介 (5)

1.1.1 双机通信接口的基本特点 (5)

1.2 双机通信原理 (6)

1.3 系统网络协议 (6)

2.设计方案 (8)

3.单片机与通信芯片介绍 (9)

3.1 单片机技术介绍 (9)

3.2 MAZ232芯片 (13)

3.3 4×4键盘介绍 (14)

3.3.1 4×4矩阵键盘工作原理 (14)

3.3.2数码动态扫描显示电路 (14)

3.4数码管工作原理 (15)

4.设计步骤 (17)

4.1 Keil和Proteus介绍和联调 (17)

4.1.1 Proteus的介绍 (17)

4.1.2 Keil的介绍 (18)

4.2 软件设计 (19)

4.3 硬件设计 (19)

结论 (20)

致 (21)

参考文献 (22)

附录I (23)

附录II (30)

附录III (31)

绪论

单片机作为微型计算机的一个分支,具有功能强、体积小、应用灵活等诸多优点,在工业控制、仪器仪表、通信、家用电器和国防科技等各个领域得到广泛的应用。随着集成电路技术的不断发展,单片机的性能也在不断的提高,其应用的围必将越来越宽广。然而,随着单片机在工业自动化控制、智能仪器仪表中的广泛应用,单机已经逐渐不能满足需要,双机协同工作已经成为一个重要的发展趋势,双机应用的关键就在于双机之间的互相通讯、互传数据信息。单片机和计算机的共同发展下,单片机的应用从独立的单片机向网络发展,由计算机和单片机构成的双机网络系统也是单片机技术发展的一个方向。

单片机双机通信是指由两台单片机组成的网络结构,可以通过串行通信方式实现对某一过程的最终控制。随着计算机技术的发展,双机通讯技术也在不断的发展,现在发展比较成熟的还有光纤通信等。由于计算机的飞速发展和控制系统的复杂化,双机机通信已经越来越成为人们热门的话题之一单片机双机机通信是指由两台单片机组成的网络结构,可以通过串行通信方式共同实现对某一过程的最终控制。目前,单片机多机通信的形式较多,但通常可分为星型、环型、串行总线型和主从式多机型四种。

随着单片机和计算机技术的不断发展,单片机的应用也从独立的单机向网络发展。由计算机和单片机构成的多机网络系统已成为单片机技术发展的一个方向。二者的结合,充分发挥单片机在实时数据采集和数据管理上的优点。单片机在计算机的网络通讯与数据传输、工业自动化过程的实时控制和数据处理等都有广泛地应用,已渗透到我们生活的各个领域。许多应用都涉及到单片机双机通信。然而.单片机对网络数据的处理方式不同于通用计算机系统.尤其是有的单片机只提供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。

输入:在(REN)=1时,串行口采样RXD引脚,当采样到1至O的跳变时,确认是串

行发送来的一帧数据的开始位0,从而开始接收一帧数据。在接收到附加的第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个正确数据后送到一个数码管显示。

相关主题
相关文档
最新文档