当前位置:文档之家› 基于AT89C51单片机的双机串行通信设计

基于AT89C51单片机的双机串行通信设计

编号1 单位代码学号分类号密级课程设计基于AT89C51单片机的双机串行通信设计院(系)名称工学院机械系专业名称机械设计制造及其自动化学生姓名指导教师2014年11 月10日前言单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域随着计算机技术的发展及工业自动化水平的提高, 在许多场合采用单机控制已不能满足现场要求,因而必须采用多机控制的形式,而多机控制主要通过多个单片机之间的串行通信实现。

串行通信作为单片机之间常用的通信方法之一, 由于其通信编程灵活、硬件简洁并遵循统一的标准, 因此其在工业控制领域得到了广泛的应用。

在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。

单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。

同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。

各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。

串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。

在通信过程中,使用通信协议进行通信。

在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。

单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。

同时,IBM-PC 机正好补充单片机人机对话和外围设备薄弱的缺陷。

各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。

串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。

在通信过程中,使用通信协议进行通信。

目录1设计目的 (1)2设计要求 (1)3基本原理 (1)3.1串行通信 (1)3.2 AT89C51的工作特性 (1)3.3 波特率选择 (4)3.4 通信协议的使用 (5)3.5 双机通信 (6)4设计方案 (6)5硬件设计 (6)5.1 51单片机串行接口的结构 (6)5.2 整体电路设计 (8)6 软件设计 (9)7联合调试 (11)8总结 (12)参考文献 (13)附录 (14)1 设计目的1.通过设计相关模块充分熟悉51单片机的最小系统的组成和原理;2.通过软件仿真熟悉keil和proteus的配合使用;3.通过软件编程熟悉51的C51编程规范;2 设计要求两片单片机之间进行串行通信,A机将数据发送给B机,在B机的数码管上静态显示。

3 基本原理3.1串行通信计算机与外界的信息交换称为通信。

在通信领域内,有两种数据通信方式:并行通信和串行通信。

随着计算机网络化和微机分级分布式应用系统的发展,通信的功能越来越重要。

通信是指计算机与外界的信息传输,既包括计算机与计算机之间的传输,也包括计算机与外部设备,如终端、打印机和磁盘等设备之间的传输。

串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。

其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。

3.2 AT89C51单片机的主要工作特性·内含4KB的FLASH存储器,擦写次数1000次;·内含28字节的RAM;·具有32根可编程I/O线;·具有2个16位可编程定时器;·具有6个中断源、5个中断矢量、2级优先权的中断结构;·具有1个全双工的可编程串行通信接口;·具有一个数据指针DPTR;·两种低功耗工作模式,即空闲模式和掉电模式;·具有可编程的3级程序锁定定位;AT89C51的工作电源电压为5(1±0.2)V且典型值为5V,最高工作频率为24MHz. AT89C51各部分的组成及功能:3.2.1 中央处理器(1)运算器运算器主要用来实现算术、逻辑运算和位操作。

其中包括算术和逻辑运算单元ALU、累加器ACC、B寄存器、程序状态字PSW和两个暂存器等。

ALU是运算电路的核心,实质上是一个全加器,完成基本的算术和逻辑运算。

算术运算包括加、减、乘、除、增量、减量、BCD码运算;逻辑运算包括“与”、“或”、“异或”、左移位、右移位和半字节交换,以及位操作中的位置位、位复位等。

暂存器1和暂存器2是ALU的两个输入,用于暂存参与运算的数据。

ALU的输出也是两个:一个是累加器,数据经运算后,其结果又通过内部总线返回到累加器;另一个是程序状态字PSW,用于存储运算和操作结果的状态。

累加器是CPU使用最频繁的一个寄存器。

ACC既是ALU处理数据的来源,又是ALU 运算结果的存放单元。

单片机与片外RAM或I/O扩展口进行数据交换必须通过ACC来进行。

B寄存器在乘法和除法指令中作为ALU的输入之一,另一个输入来自ACC。

运算结果存于AB寄存器中。

(2)控制器控制器是识别指令并根据指令性质协调计算机内各组成单元进行工作的部件,主要包括程序计数器PC、PC增量器、指令寄存器、指令译码器、定时及控制逻辑电路等,其功能是控制指令的读入、译码和执行,并对指令执行过程进行定时和逻辑控制。

AT89C51单片机中,PC是一个16位的计数器,可对64KB程序存储器进行寻址。

复位时PC的内容是0000H.(3)存储器单片机内部的存储器分为程序存储器和数据存储器。

AT89C51单片机的程序存储器采用4KB的快速擦写存储器Flash Memory,编程和擦除完全是电器实现。

(4)外围接口电路AT89C51单片机的外围接口电路主要包括:4个可编程并行I/O口,1个可编程串行口,2个16位的可编程定时器以及中断系统等。

3.2.2 存储器组织和特殊功能寄存器AT89C51的存储器将程序存储器和数据存储器分开,并有各自的存储空间和访问指令。

它有4个存储空间:片内存储器、片外存储器、片内数据存储器及片外存储器。

3.2.3 时钟电路和工作时序(1)振荡器电路原理振荡器(2)振荡电路的接法3.3波特率选择波特率(Boud Rate)就是在串口通信中每秒能够发送的位数(bits/second)。

MCS-51串行端口在四种工作模式下有不同的波特率计算方法。

其中,模式0和模式2波特率计算很简单,请同学们参看教科书;模式1和模式3的波特率选择相同,故在此仅以工作模式1为例来说明串口通信波特率的选择。

在串行端口工作于模式1,其波特率将由计时/计数器1来产生,通常设置定时器工作于模式2(自动再加模式)。

在此模式下波特率计算公式为:波特率=(1+SMOD)*晶振频率/(384*(256-TH1))其中,SMOD——寄存器PCON的第7位,称为波特率倍增位;TH1——定时器的重载值。

在选择波特率的时候需要考虑两点:首先,系统需要的通信速率。

这要根据系统的运作特点,确定通信的频率范围。

然后考虑通信时钟误差。

使用同一晶振频率在选择不同的通信速率时通信时钟误差会有很大差别。

为了通信的稳定,我们应该尽量选择时钟误差最小的频率进行通信。

下面举例说明波特率选择过程:假设系统要求的通信频率在20000bit/s以下,晶振频率为12MHz,设置SMOD=1(即波特率倍增)。

则TH1=256-62500/波特率。

根据波特率取值表,我们知道可以选取的波特率有:1200,2400,4800,9600,19200。

列计数器重载值,通信误差如下表:因此,在通信中,最好选用波特率为1200,2400,4800中的一个。

3.4通信协议的使用通信协议是通信设备在通信前的约定。

单片机、计算机有了协议这种约定,通信双方才能明白对方的意图,以进行下一步动作。

假定我们需要在PC机与单片机之间进行通信,在双方程式设计过程中,有如下约定:0xA1:单片机读取P0端口数据,并将读取数据返回PC机;0xA2:单片机从PC机接收一段控制数据;0xA3:单片机操作成功信息。

在系统工作过程中,单片机接收到PC机数据信息后,便查找协议,完成相应的操作。

当单片机接收到0xA1时,读取P0端口数据,并将读取数据返回PC机;当单片机接收到0xA2时,单片机等待从PC机接收一段控制数据;当PC接收到0xA3时,就表明单片机操作已经成功。

3.5双机通信两台机器的通信方式可分为单工通信、半双工通信、双工通信,他们的通信原理及通信方式为:单工通信:是指消息只能单方向传输的工作方式。

单工通信信道是单向信道,发送端和接收端的身份是固定的,发送端只能发送信息,不能接收信息;接收端只能接收信息,不能发送信息,数据信号仅从一端传送到另一端,即信息流是单方向的。

通信双方采用“按——讲”(Push To Talk,PTT)单工通信属于点到点的通信。

根据收发频率的异同,单工通信可分为同频通信和异频通信。

半双工通信:这种通信方式可以实现双向的通信,但不能在两个方向上同时进行,必须轮流交替地进行。

也就是说,通信信道的每一段都可以是发送端,也可以是接端。

但同一时刻里,信息只能有一个传输方向。

如日常生活中的例子有步话机通信等。

双工通信:双工通信是指在同一时刻信息可以进行双向传输,和打电话一样,说的同时也能听,边说边听。

这种发射机和接收机分别在两个不同的频率上能同时进行工作的双工机也称为异频双工机。

双工机的特点是使用方便,但线路设计较复杂,价格也较高。

4 设计方案软件通过通信协议进行发送接收,主机接10,21,32,43,54,65,76,87,98,09后给从机(从机静态显示),当从机接收到后,向从机发送代表0-f的数码管编码数组,相应显示10,21,32,43,54,65,76,87,98,09。

5 硬件设计5.1 51单片机串行接口的结构(1)数据缓冲器(SBUF)接受或发送的数据都要先送到SBUF缓存。

有两个,一个缓存,另一个接受,用同一直接地址99H,发送时用指令将数据送到SBUF即可启动发送;接收时用指令将SBUF 中接收到的数据取出。

(2)串行控制寄存器(PCON)SCON用于串行通信方式的选择,收发控制及状态指示,各位含义如下:SM0,SM1:串行接口工作方式选择位,这两位组合成00,01,10,11对应于工作方式0、1、2、3。

相关主题