基于51单片机的双机串行通信课程设计-1000110061

  • 格式:doc
  • 大小:511.50 KB
  • 文档页数:27

基于51单片机的双机串行通信课程设计-1000110061

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

姓名:杨应伟

学号:100110061

专业:机械设计制造及其制动化

班级:机电二班

0 前 言

单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域随着计算机技术的发展及工业自动化水平的提高, 在许多场合采用单机控制已不能满足现场要求,因而必须采用多机控制的形式,而多机控制主要通过多个单片机之间的串行通信实现。串行通信作为单片机之间常用的通信方法之一, 由于其通信编程灵活、硬件简洁并遵循统一的标准, 因此其在工业控制领域得到了广泛的应用。

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

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

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

1 目 录

前言 ......................................................................... 0

1基本原理 ................................................................... 3

1.1 串行通信 ............................................................... 3

1.2 AT89C51的基本特点 ..................................................... 4

1.3波特率选择 .............................................................. 7

1.4通信协议的使用 .......................................................... 8

1.5双机通信 ................................................................ 8

2 总体设计 .................................................................. 10

2.1

设计目的 .............................................................. 10

2.2

设计要求 .............................................................. 10

2.3设计方案 ............................................................... 10

3 硬件设计 .................................................................. 11

3.1 51单片机串行接口的结构 ................................................ 11

3.2 整体电路设计 ........................................................... 12

4

软件设计 .................................................................. 13

5

联合调试 .................................................................. 15

6总结 ...................................................................... 16

参考文献 .................................................................... 17

附录 ........................................................................ 18

2 1基本原理

1.1串行通信

计算机与外界的信息交换称为通信。在通信领域内,有两种数据通信方式:并行通信和串行通信。随着计算机网络化和微机分级分布式应用系统的发展,通信的功能越来越重要。通信是指计算机与外界的信息传输,既包括计算机与计算机之间的传输,也包括计算机与外部设备,如终端、打印机和磁盘等设备之间的传输。

串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。

串行通信

1.2 AT89C51单片机的主要工作特性

·内含4KB的FLASH存储器,擦写次数1000次;

·内含28字节的RAM;

·具有32根可编程I/O线;

·具有2个16位可编程定时器;

·具有6个中断源、5个中断矢量、2级优先权的中断结构;

·具有1个全双工的可编程串行通信接口;

3 ·具有一个数据指针DPTR;

·两种低功耗工作模式,即空闲模式和掉电模式;

·具有可编程的3级程序锁定定位;

AT89C51的工作电源电压为5(1±0.2)V且典型值为5V,最高工作频率为24MHz.

AT89C51各部分的组成及功能:

1. 2.1中央处理器

(1) 运算器

运算器主要用来实现算术、逻辑运算和位操作。其中包括算术和逻辑运算单元ALU、累加器ACC、B寄存器、程序状态字PSW和两个暂存器等。

ALU是运算电路的核心,实质上是一个全加器,完成基本的算术和逻辑运算。算术运算包括加、减、乘、除、增量、减量、BCD码运算;逻辑运算包括“与”、“或”、“异或”、左移位、右移位和半字节交换,以及位操作中的位置位、位复位等。

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

128字节 程序存储器

14KB

CP两个16位定时器

计数器

中断

控制 总线扩展控制器 并行可编程

I/O口 可编程

串行口 内部总线

外部扩展P0 P1 RXTX

4 累加器是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位的可编程定时器以及中断系统等。

AT89C51的工作原理:

1. 引脚排列及功能

AT89C51的封装形式有PDIP,TQFP,PLCC等,现以PDIP为例。

(1)I/O口线

·P0口 8位、漏极开路的双向I/O口。

当使用片外存储器及外扩I/O口时,P0口作为低字节地址/数据复用线。在编程时,P0口可用于接收指令代码字节;程序校验时,可输出指令字节。P0口也可做通用I/O口使用,但需加上拉电阻。作为普通输入时,应输出锁存器配置1。P0口可驱动8个TTL负载。

·P1口 8位、准双向I/O口,具有内部上拉电阻。

P1口是为用户准备的I/O双向口。在编程和校验时,可用作输入低8位地址。用作输入时,应先将输出锁存器置1。P1口可驱动4个TTL负载。