基于ATC单片机的双机串行通信设计_第1页
基于ATC单片机的双机串行通信设计_第2页
基于ATC单片机的双机串行通信设计_第3页
基于ATC单片机的双机串行通信设计_第4页
基于ATC单片机的双机串行通信设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

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

2、 因此其在工业控制领域得到了广泛的应用。在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBMPC 机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给 PC 机,PC 机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实

3、现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用 RS-232 进行双击通信。在通信过程中,使用通信协议进行通信。在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBMPC 机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给 PC 机,PC 机将这些数据进行处理、显示或打印,把各种控制

4、命令传给单片机,以实现集中管理和最优控制。 串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用 RS-232 进行双击通信。在通信过程中,使用通信协议进行通信。黄河科技学院课程设计 第 II 页 目目 录录1 设计目的.12 设计要求.13 基本原理.13.1 串行通信.1 3.2 AT89C51 的工作特性.13.3 波特率选择.4 3.4 通信协议的使用.5 3.5 双机通信.64 设计方案.65 硬件设计.65.1 51 单片机串行接口的结构.65.2 整体电路设计.

5、86 软件设计.97 联合调试.118 总结.12参考文献.13附录.14黄河科技学院课程设计 第 1 页 1 设计目的 1.通过设计相关模块充分熟悉 51 单片机的最小系统的组成和原理; 2.通过软件仿真熟悉 keil 和 proteus 的配合使用; 3.通过软件编程熟悉 51 的 C51 编程规范;2 设计要求 两片单片机之间进行串行通信,A 机将数据发送给 B 机,在 B 机的数码管上静态显示。3 基本原理3.1 串行通信计算机与外界的信息交换称为通信。在通信领域内,有两种数据通信方式: 并行通信和串行通信。随着计算机网络化和微机分级 分布式应用 系统的发展,通信的功能越来越重要。通信

6、是指计算机与外界的信息传输,既包括计算机与计算机之间的传输,也包括计算机与 外部设备,如终端、打印机和磁盘等设备之间的传输。 串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。3.2 AT89C51 单片机的主要工作特性内含 4KB 的 FLASH 存储器,擦写次数 1000 次;黄河科技学院课程设计 第 2 页 内含 28 字节的 RAM;具有 32 根可编程 I/O 线;具有 2 个 16 位可编程定时器;具有 6 个中断源、5 个中断矢量、2 级优先权的

7、中断结构;具有 1 个全双工的可编程串行通信接口;具有一个数据指针 DPTR;两种低功耗工作模式,即空闲模式和掉电模式;具有可编程的 3 级程序锁定定位;AT89C51 的工作电源电压为 5(10.2)V 且典型值为 5V,最高工作频率为 24MHz.AT89C51 各部分的组成及功能:振荡器和时钟电路数据存储器128 字节程序存储器14KBCPU两个 16 位定时器计数器中断控制总线扩展控制器并行可编程I/O 口可编程串行口内部总线 3.2.1 中央处理器(1) 运算器 运算器主要用来实现算术、逻辑运算和位操作。其中包括算术和逻辑运算单元ALU、累加器 ACC、B 寄存器、程序状态字 PSW

8、 和两个暂存器等。ALU 是运算电路的核心,实质上是一个全加器,完成基本的算术和逻辑运算。算术外部中断扩展控制P0 P1 P2 P3RXDTXD黄河科技学院课程设计 第 3 页 运算包括加、减、乘、除、增量、减量、BCD 码运算;逻辑运算包括“与”、“或”、“异或”、左移位、右移位和半字节交换,以及位操作中的位置位、位复位等。暂存器 1 和暂存器 2 是 ALU 的两个输入,用于暂存参与运算的数据。ALU 的输出也是两个:一个是累加器,数据经运算后,其结果又通过内部总线返回到累加器;另一个是程序状态字 PSW,用于存储运算和操作结果的状态。累加器是 CPU 使用最频繁的一个寄存器。ACC 既是

9、 ALU 处理数据的来源,又是 ALU运算结果的存放单元。单片机与片外 RAM 或 I/O 扩展口进行数据交换必须通过 ACC 来进行。B 寄存器在乘法和除法指令中作为 ALU 的输入之一,另一个输入来自 ACC。运算结果存于 AB 寄存器中。(2) 控制器控制器是识别指令并根据指令性质协调计算机内各组成单元进行工作的部件,主要包括程序计数器 PC、PC 增量器、指令寄存器、指令译码器、定时及控制逻辑电路等,其功能是控制指令的读入、译码和执行,并对指令执行过程进行定时和逻辑控制。AT89C51 单片机中,PC 是一个 16 位的计数器,可对 64KB 程序存储器进行寻址。复位时 PC 的内容是

10、 0000H.(3)存储器单片机内部的存储器分为程序存储器和数据存储器。AT89C51 单片机的程序存储器采用 4KB 的快速擦写存储器 Flash Memory,编程和擦除完全是电器实现。(4)外围接口电路 AT89C51 单片机的外围接口电路主要包括:4 个可编程并行 I/O 口,1 个可编程串行口,2 个 16 位的可编程定时器以及中断系统等。3.2.2 存储器组织和特殊功能寄存器AT89C51 的存储器将程序存储器和数据存储器分开,并有各自的存储空间和访问指令。它有 4 个存储空间:片内存储器、片外存储器、片内数据存储器及片外存储器。黄河科技学院课程设计 第 4 页 3.2.3 时钟电

11、路和工作时序(1) 振荡器电路原理 振荡器 (2)振荡电路的接法3.3 波特率选择 波特率(Boud Rate)就是在串口通信中每秒能够发送的位数(bits/second)。MCS-51 串行端口在四种工作模式下有不同的波特率计算方法。其中,模式 0 和模式 2波特率计算很简单,请同学们参看教科书;模式 1 和模式 3 的波特率选择相同,故在此仅以工作模式 1 为例来说明串口通信波特率的选择。 在串行端口工作于模式 1,其波特率将由计时/计数器 1 来产生,通常设置定时器工&Rf Q2 Q36PDXTAL1XTAL2XTAL1CNDC2C1XTAL2XTAL1GNDNC外部振荡器信号黄河科技学

12、院课程设计 第 5 页 作于模式 2(自动再加模式)。在此模式下波特率计算公式为: 波特率=(1+SMOD)*晶振频率/(384*(256-TH1) 其中,SMOD寄存器 PCON 的第 7 位,称为波特率倍增位; TH1定时器的重载值。 在选择波特率的时候需要考虑两点:首先,系统需要的通信速率。这要根据系统的运作特点,确定通信的频率范围。然后考虑通信时钟误差。使用同一晶振频率在选择不同的通信速率时通信时钟误差会有很大差别。为了通信的稳定,我们应该尽量选择时钟误差最小的频率进行通信。 下面举例说明波特率选择过程:假设系统要求的通信频率在 20000bit/s 以下,晶振频率为 12MHz,设置

13、 SMOD=1(即波特率倍增)。则 TH1=256-62500/波特率。 根据波特率取值表,我们知道可以选取的波特率有:1200,2400,4800,9600,19200。列计数器重载值,通信误差如下表:因此,在通信中,最好选用波特率为 1200,2400,4800 中的一个。3.4 通信协议的使用 通信协议是通信设备在通信前的约定。单片机、计算机有了协议这种约定,通信双方才能明白对方的意图,以进行下一步动作。假定我们需要在 PC 机与单片机之间进行通信,在双方程式设计过程中,有如下约定: 0 xA1:单片机读取 P0 端口数据,并将读取数据返回 PC 机; 0 xA2:单片机从 PC 机接收

14、一段控制数据; 0 xA3:单片机操作成功信息。 在系统工作过程中,单片机接收到 PC 机数据信息后,便查找协议,完成相应的操作。当单片机接收到 0 xA1 时,读取 P0 端口数据,并将读取数据返回 PC 机;当单片机黄河科技学院课程设计 第 6 页 接收到 0 xA2 时,单片机等待从 PC 机接收一段控制数据;当 PC 接收到 0 xA3 时,就表明单片机操作已经成功。3.5 双机通信两台机器的通信方式可分为单工通信、半双工通信、双工通信,他们的通信原理及通信方式为:单工通信:是指消息只能单方向传输的工作方式。单工通信信道是单向信道,发送端和接收端的身份是固定的,发送端只能发送信息,不能

15、接收信息;接收端只能接收信息,不能发送信息,数据信号仅从一端传送到另一端,即信息流是单方向的。通信双方采用“按讲”(Push To Talk,PTT)单工通信属于点到点的通信。根据收发频率的异同,单工通信可分为同频通信和异频通信。半双工通信:这种通信方式可以实现双向的通信,但不能在两个方向上同时进行,必须轮流交替地进行。也就是说,通信信道的每一段都可以是发送端,也可以是接端。但同一时刻里,信息只能有一个传输方向。如日常生活中的例子有步话机通信等。双工通信:双工通信是指在同一时刻信息可以进行双向传输,和打电话一样,说的同时也能听,边说边听。这种发射机和接收机分别在两个不同的频率上能同时进行工作的

16、双工机也称为异频双工机。双工机的特点是使用方便,但线路设计较复杂,价格也较高。4 设计方案软件通过通信协议进行发送接收,主机接 10,21,32,43,54,65,76,87,98,09 后给从机(从机静态显示),当从机接收到后,向从机发送代表 0-f 的数码管编码数组,相应显示 10,21,32,43,54,65,76,87,98,09。黄河科技学院课程设计 第 7 页 5 硬件设计5.1 51 单片机串行接口的结构(1)数据缓冲器(SBUF)接受或发送的数据都要先送到 SBUF 缓存。有两个,一个缓存,另一个接受,用同一直接地址 99H,发送时用指令将数据送到 SBUF 即可启动发送;接收

17、时用指令将 SBUF中接收到的数据取出。(2)串行控制寄存器(PCON)SCON 用于串行通信方式的选择,收发控制及状态指示,各位含义如下:SM0SM1SM2RENTB8RB8TIRISM0,SM1:串行接口工作方式选择位,这两位组合成 00,01,10,11 对应于工作方式 0、1、2、3。串行接口工作方式特点见下表SM0SM1工作方式功能波特率 0008 位同步移位寄存器(用于 I/O 扩展)fORC/1201110 位异步串行通信(UART)可变(T1 溢出率*2SMOD/32)10211 位异步串行通信(UART)fORC/64 或 fORC/3211311 位异步串行通信(UART)

18、可变(T1 溢出率*2SMOD/32)SM2:多机通信控制位。REN:接收允许控制位。软件置 1 允许接收;软件置 0 禁止接收。TB8:方式 2 或 3 时,TB8 为要发送的第 9 位数据,根据需要由软件置 1 或清 0。RB9:在方式 2 或 3 时,RB8 位接收到的第 9 位数据,实际为主机发送的第 9 位数据 TB8,使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。TI:发送中断标志。发送完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续发送。RI:接收中断标志。接收完一帧数据后由硬件自动置位,并申请中断。必须要软黄河科技学院课程设计 第 8 页 件清零后

19、才能继续接收。(3)输入移位寄存器接收的数据先串行进入输入移位寄存器,8 位数据全移入后,再并行送入接收SBUF 中。(4)波特率发生器波特率发生器用来控制串行通信的数据传输速率的,51 系列单片机用定时器 T1 作为波特率发生器,T1 设置在定时方式。波特率时用来表示串行通信数据传输快慢程度的物理量,定义为每秒钟传送的数据位数。(5)电源控制寄存器 PCON其最高位为 SMOD。5.2 整体电路设计 51 单片机的串行接口是一个全双工的接口,它可以作为 UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用,本系统共用两块单片机,每块单片机均选用 AT89S51,最小系统也都一样。由

20、于两块单片机的主要任务是通信,为了得到准确的波特率,采用振荡频率为 11.0592MHz 的晶振,最终设计电路如下图 3 所示,发送方的数据由串行口 TXD 段输出,经过传输线将信号传送到接收端。信号到达接收方串行口的接收端。接受方接收后,通过 P1 口在数码管上显示接收的信息。 黄河科技学院课程设计 第 9 页 6 软件设计通过通信协议进行发送接收,主机先送 CDH 给从机,当从机接收到 CDH 后,向主机回答 DCH。主机收到 DCH 后就把数码表 TAB16中的 10 个数据送给从机,并发送检验和。从机收到 16 个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同

21、则发送 00H 给主机;否则发送 FFH 给主机,重新接受。从机收到 16 个正确数据后送到一个数码管显示。6.1 串行通信软件实现(1)串行口工作于方式 3;用定时器 1 产生 4800bit/s 的波特率,晶振频率为 11.0592MHZ。(2)功能:将本机 ROM 中数码表 TAB16中的 16 个数发送到从机,并保存在从机内部ROM 中,从机收到这 16 个数据后送到一个数码管循环显示。(3)通信协议:主机首先发送连络信号(CDH),从机接收到之后返回一个连络信号(DCH)表示从机已准备好接收。黄河科技学院课程设计 第 10 页 (4)通信过程使用第九位发送奇偶校验位。(5)从机接收到

22、一个数据后,立即进行奇偶校验,若数据没有错误,则返回 00H,否则返回 FFH。(6)主机发送一个数据后,等待从机返回数据;若为 00H,则继续发送下一个数据,若为 FFH,则重新发送数据。6.2 程序流程图 黄河科技学院课程设计 第 11 页 6.3 接收方程序流程图主程序开始检验和相等?程序初始化接收数据,计算检验和N发送 00H 至主机接收完成?N清除标志位发送 FFH,重新接收显示7 联合调试 在 protues 上进行仿真实验。首先使用 KeilC 将编写完成的程序编译生成 HEX 文件,将 HEX 文件烧录到两片单片机中,进行仿真实验,结果如下图所示,可以看到,接收端已将接受到的数

23、据完整的显示了出来。黄河科技学院课程设计 第 12 页 注:注:1.仿真的过程中并没有体现出单片机的最小系统的组成元素:时钟电路和复位电路,但是实际的硬件电路中这两部分是必不可少的,此外,在实际测试中,程序是事先烧进单片机里的.2.在数码管的共阴极与地之间接三极管是为了放大数码管的驱动电流,让数码管更加清楚的显示数据。8 课设中的心得体会经过繁忙而又紧张的课程设计,终于顺利的完成了设计任务。虽然在这段时间 里每天都那么繁忙,但是在这忙碌的过程中却得到了许多的收获。经过课程设计,在查阅资料的过程中,学习了基于单片机的 C 语言程序设计,了解了单片机串行通信的基本知识,对于以后的学习和工作都有很大

24、的益处。在学习的过程中,也遇到了一些困难,比如开始的时候,由于发送端和接收端的通信协议没有做好,导致数据不能正确的传输,在解决问题的过程中,对于通信协议的实现有了深刻的认识。黄河科技学院课程设计 第 13 页 参考文献【1】 胡伟.单片机 C 程序设计及应用实例.北京:人民邮电出版社,2003【2】 韩毅刚.计算机通信技术.北京:北京航空航天大学出版社,2007【3】 李朝青.单片机与 PC 机网络通信技术.北京:北京航空航天大学出版,2007【4】 胡洪波.单片机原理与应用实验教程.湘潭大学出版社,2009.7【5】单片机课程设计指导书 皮大能 北京理工大学出2012.7【6】8051 单片

25、机实践与应用 吴金戎 清华大学出版社 2003.8【7】单片机技术基础教程与实践 夏路易 电子工业出版 2008.1【8】单片机原理及应用 张毅刚 高等教育出版社 2012.11黄河科技学院课程设计 第 14 页 附录附录程序清单#include /字形码*按列取模char code table=0 x5E,0 x22,0 x52,0 xAC,0 x7E,0 xA1,0 x52,0 xBF,0 x7E,0 xA8,0 xD2,0 xA5,0 x5E,0 x22,0 x00,0 x04,0 x7F,0 xF8,0 x46,0 x60,0 x41,0 x80,0 x46,0 x60,0 xFF,0

26、 xFC,0 x40,0 x02,0 x00,0 x0E,0 x00,0 x00,0 x08,0 x20,0 x30,0 x20,0 x20,0 x40,0 x0AA,0 x40,0 xAA,0 x90,0 xAA,0 x90,0 xA1,0 x54,0 xFE,0 x32,0 xA1,0 x15,0 xAA,0 x98,0 xAA,0 x90,0 xAA,0 x40,0 x20,0 x40,0 x28,0 x20,0 x30,0 x20,0 x00,0 x00,0 x02,0 x00,0 x06,0 x00,0 x7A,0 xFC,0 x12,0 x80,0 x12,0 x80,0 xFF,

27、0 xFF,0 x12,0 x88,0 x32,0 x84,0 x16,0 xF8,0 x02,0 x00,0 x1F,0 xE0,0 x00,0 x02,0 x00,0 x01,0 xFF,0 xFE,0 x00,0 x00,0 x00,0 x00,0 x01,0 x00,0 x02,0 x00,0 x04,0 x00,0 x1F,0 xFF,0 xE1,0 x00,0 x02,0 x00,0 x0C,0 x00,0 xF0,0 x00,0 x1F,0 xFF,0 x11,0 x10,0 x11,0 x10,0 x13,0 x10,0 x11,0 x30,0 x30,0 x10,0 x10,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x38,0 x00

温馨提示

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

评论

0/150

提交评论