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

基于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。串行接口工作方式特点见下表

SM2:多机通信控制位。

REN:接收允许控制位。软件置1允许接收;软件置0禁止接收。

TB8:方式2或3时,TB8为要发送的第9位数据,根据需要由软件置1或清0。

RB9:在方式2或3时,RB8位接收到的第9位数据,实际为主机发送的第9位数据TB8,使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。

TI:发送中断标志。发送完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续发送。

RI:接收中断标志。接收完一帧数据后由硬件自动置位,并申请中断。必须要软

件清零后才能继续接收。

(3)输入移位寄存器

接收的数据先串行进入输入移位寄存器,8位数据全移入后,再并行送入接收SBUF 中。

(4)波特率发生器

波特率发生器用来控制串行通信的数据传输速率的,51系列单片机用定时器T1作为波特率发生器,T1设置在定时方式。波特率时用来表示串行通信数据传输快慢程度的物理量,定义为每秒钟传送的数据位数。

(5)电源控制寄存器PCON

其最高位为SMOD。

5.2整体电路设计

51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用,本系统共用两块单片机,每块单片机均选用AT89S51,最小系统也都一样。由于两块单片机的主要任务是通信,为了得到准确的波特率,采用振荡频率为11.0592MHz的晶振,最终设计电路如下图3所示,发送方的数据由串行口TXD段输出,经过传输线将信号传送到接收端。信号到达接收方串行口的接收端。接受方接收后,通过P1口在数码管上显示接收的信息。

6 软件设计

通过通信协议进行发送接收,主机先送CDH给从机,当从机接收到CDH后,向主机回答DCH。主机收到DCH后就把数码表TAB[16]中的10个数据送给从机,并发送检验和。从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机;否则发送FFH给主机,重新接受。从机收到16个正确数据后送到一个数码管显示。

6.1串行通信软件实现

(1)串行口工作于方式3;用定时器1产生4800bit/s的波特率,晶振频率为11.0592MHZ。

(2)功能:将本机ROM中数码表TAB[16]中的16个数发送到从机,并保存在从机内部ROM中,从机收到这16个数据后送到一个数码管循环显示。

(3)通信协议:主机首先发送连络信号(CDH),从机接收到之后返回一个连络信号(DCH)表示从机已准备好接收。

(4)通信过程使用第九位发送奇偶校验位。

(5)从机接收到一个数据后,立即进行奇偶校验,若数据没有错误,则返回00H,否则返回FFH。

(6)主机发送一个数据后,等待从机返回数据;若为00H,则继续发送下一个数据,若为FFH,则重新发送数据。

6.2程序流程图

6.3接收方程序流程图

7 联合调试

在protues上进行仿真实验。首先使用KeilC将编写完成的程序编译生成HEX文件,将HEX文件烧录到两片单片机中,进行仿真实验,结果如下图所示,可以看到,接收端已将接受到的数据完整的显示了出来。

注:

1.仿真的过程中并没有体现出单片机的最小系统的组成元素:时钟电路和复位电路,但是实际的硬件电路中这两部分是必不可少的,此外,在实际测试中,程序是事先烧进单片机里的.

2.在数码管的共阴极与地之间接三极管是为了放大数码管的驱动电流,让数码管更加清楚的显示数据。

8 课设中的心得体会

经过繁忙而又紧张的课程设计,终于顺利的完成了设计任务。虽然在这段时间里每天都那么繁忙,但是在这忙碌的过程中却得到了许多的收获。经过课程设计,在查阅资料的过程中,学习了基于单片机的C语言程序设计,了解了单片机串行通信的基本知识,对于以后的学习和工作都有很大的益处。在学习的过程中,也遇到了一些困难,比如开始的时候,由于发送端和接收端的通信协议没有做好,导致数据不能正确的传输,在解决问题的过程中,对于通信协议的实现有了深刻的认识。

参考文献

【1】胡伟.单片机C程序设计及应用实例.北京:人民邮电出版社,2003

【2】韩毅刚.计算机通信技术.北京:北京航空航天大学出版社,2007

【3】李朝青.单片机与PC机网络通信技术.北京:北京航空航天大学出版,2007 【4】胡洪波.单片机原理与应用实验教程.湘潭大学出版社,2009.7

【5】单片机课程设计指导书皮大能北京理工大学出2012.7

【6】8051单片机实践与应用吴金戎清华大学出版社2003.8

【7】单片机技术基础教程与实践夏路易电子工业出版2008.1

【8】单片机原理及应用张毅刚高等教育出版社 2012.11

附录

程序清单

#include

//字形码****按列取模

char code table[]={

0x5E,0x22,0x52,0xAC,0x7E,0xA1,0x52,0xBF, 0x7E,0xA8,0xD2,0xA5,0x5E,0x22,0x00,0x04,

0x7F,0xF8,0x46,0x60,0x41,0x80,0x46,0x60,

0xFF,0xFC,0x40,0x02,0x00,0x0E,0x00,0x00,

0x08,0x20,0x30,0x20,0x20,0x40,0x0AA,0x40,

0xAA,0x90,0xAA,0x90,0xA1,0x54,0xFE,0x32,

0xA1,0x15,0xAA,0x98,0xAA,0x90,0xAA,0x40,

0x20,0x40,0x28,0x20,0x30,0x20,0x00,0x00,

0x02,0x00,0x06,0x00,0x7A,0xFC,0x12,0x80,

0x12,0x80,0xFF,0xFF,0x12,0x88,0x32,0x84,

0x16,0xF8,0x02,0x00,0x1F,0xE0,0x00,0x02,

0x00,0x01,0xFF,0xFE,0x00,0x00,0x00,0x00,

0x01,0x00,0x02,0x00,0x04,0x00,0x1F,0xFF,

0xE1,0x00,0x02,0x00,0x0C,0x00,0xF0,0x00,

0x1F,0xFF,0x11,0x10,0x11,0x10,0x13,0x10,

0x11,0x30,0x30,0x10,0x10,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x38,0x00,0x7F,0xCC,

0x7F,0xCC,0x38,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //显示空屏,如果只有一个字或将字全部移出必须设置一个空屏幕

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};

void delay(int c)

{

int i,j;

for(i=0;i

f or(j=0;j<10;j++)

;

}

void main()

{

unsigned char i,j,k; //i:每个字的显示循环;j每个字的显示码除以2;k每列刷新次数

unsigned char b=0; //显示偏移控制,char类型最多只能显示14个汉字+一个空白位字符

unsigned char a; //控制移动间隔时间

while(1)

{

j=0;

if(a>5) //移动间隔时间;取值0--255

{

a=0;

b+=2;

i f(b>=160) //显示到最后一个字,回头显示,判断值=字数*32

{

b=0;

}

}

for(i=0;i<16;i++)

{

P1=i;

f or(k=0;k<5;k++)

{

P0=table[j+b];

P2=table[j+b+1];

delay(2);

P0=0x00;

P2=0x00;

}

j+=2;

}

a++;

}

}

#include

//初始化串行口

void csh() {

SM0=0;

SM1=1; REN=1;

TI=0;

RI=0; PCON=0; TH1=0xF3; TL1=0XF3; TMOD=0X20; EA=1;

ET1=0;

ES=1;

TR1=1;

}

void main() {

int i,j; char c=0; csh(); while(1) {

E S=0;

T I=0;

(完整版)51单片机实现双机通信(自己整理的)

1号机程序 #in clude #defi ne uint un sig ned int #defi ne uchar un sig ned char sbit p10=P1 A 0; uchar a,b,kk; //uchar code d_c[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; void delay_ms(uchar y) { uchar i; while(y__) for(i=0;i<120;i++) 5 } void put(uchar x) // 发送函数 { SBUF=x; //SBUF:串行口数据缓冲器 while (TI==0); 〃等待发送结束 TI=0; } P £j £fA>l3 旳 4阳 1370 丘阳 H 鮎口 PDLWAJil- PDSA>f POfiAME PQ TiJT FZ^KS 畑 阳pz- A A-m FZW11 PZ.AtZ FZj9jAl4 PZ.TW? P3£VR : iD paimcc P3.sii nrn pjjfflrn F3.WTI] M*Tl pgtjgQIH F3.7/IF 1E 11 左边1号机,右边2号机, ,功能实现 帕叶DO ■ 口 IJApi FDJ H [I Z — 观旧 IP 口 .hQKD* *QAADf H ^ 弓 H.Lta RQfMM FZJWS pz. iwe F2JKA-IDI P2JTA11I F2.HW1Z P2JSM13 F2W.14 F2JM1S F3Ji nHX& gj.im:& riaiWTO rjjfWTT F3.1/W f3AT1 P3JillW F3JMF ■T2 1E

单片机双机之间的串行通信设计

专业方向课程设计报告 题目:单片机双机之间的串行通信设计

单片机双机之间的串行通信设计 一.设计要求: 两片单片机利用串行口进行串行通信:串行通信的波特率可从键盘进行设定,可选的波特率为1200、2400、4800和9600bit/s。 二、方案论证: 方案一:以两片51单片机作为通信部件,以4*4矩阵键盘作为数据输入接口,通过16个不同键值输入不同的信息,按照51单片机的方式3进行串口通信,从机采用中断

方式接收信息并按照通信协议改变波特率或者用I/O口输出、CD4511译码、数码管显示相关数据,整个系统的软件部分采用C语言编写。 方案二:整个系统的硬件设计与方案一样,但是通信方式采用方式一进行通信,主从机之间的访问采用查询方式,数据输出直接由单片机的译码程序输出译码数据,同时软件编写采用汇编语言。 两种方式从设计上来说各有特色,而且两种方式都应该是可行的。方案一中按照方式三通信可以输出九位数据而方式一只能输出八位数据,但就本题的要求来说方式一就可以了。主从机之间的交流采用中断方式是一种高效且保护单片机的选择,但是相比之下本人对查询方式的理解更好一些。数码管的显示若采用CD4511译码则直接输出数据就可以了,但是这样会增加硬件陈本,而且单片机的资源大部分都还闲置着,所以直接编写一段译码程序是比较好的做法。另外在软件编写上,采用C语言在后续设计中对硬件的考虑稍少一些,换言之采用汇编可以使自己对整个通信过程及单片机的部分结构有更清晰地认识所以综合考虑采用方案二。 三、理论设计: 采用AltiumDesigner绘制的原理图(整图)

本系统主要包括五个基本模块:单片机最小系统(包括晶振电路、电源、复位电路及相关设置电路)、4*4矩阵键盘、功能控制电路、数据显示电路、波特率更改指示电路。 本设计的基本思路是通过控制口选择将要实现的功能,然后矩阵键盘输入数据,单片机对数据进行处理(加校验码、设置功能标志位),然后与从机握手,一切就绪之后后就开始发送数据,然后从机对接收数据校验,回发校验结果,主机根据校验结果进行下一步动作,或者重发,或者进入下一 数据的发送过程,然后按照此过程不段循环,直到结束。 晶振电路提供脉冲,加上复位电路,将 EA接入高电电平选择片内程序存储器。 这是一个单片机能够工作的最低设置。

51单片机实现双机通信(自己整理的)

左边1号机,右边2号机,,功能实现 1号机程序 #include #define uint unsigned int #define uchar unsigned char sbit p10=P1^0; uchar a,b,kk; //uchar code d_c[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; void delay_ms(uchar y) { uchar i; while(y--) for(i=0;i<120;i++) ; } void put(uchar x) //发送函数 { SBUF=x; //SBUF:串行口数据缓冲器 while(TI==0); //等待发送结束 TI=0; } void main() { uchar j; SCON=0x40; //串行口工作方式1,8位通用异步发送器

— TMOD=0x20; //定时器1工作方式2 PCON=0x00; //波特率不倍增 TH1=0xf4; TL1=0xf4; //波特率2400 TR1=1; //定时器1开始计时 P2=0xc0; while(1) { if(p10==0&&j==0) { delay_ms(15); while(p10==0); kk=1; P2=0xf9; j=1; } if(p10==0&&j==1) { delay_ms(15); while(p10==0); kk=2; P2=0xa4; j=2; } if(p10==0&&j==2) { delay_ms(15); while(p10==0); kk=3; P2=0xb0; j=0; } if(kk==1) put('A'); if(kk==2) put('B'); if(kk==3) put('C'); delay_ms(10); } }

单片机双机通信报告

单片机双机通信接口应用 专业班级:电信 设计者:? ? 指导老师:? 设计时间:2011-11-28 ~12-9

一、实验目的与要求: 课程设计目的: 1.通过课程设计巩固、深化和扩展理论知识与初步的专业技能,提高综合运用知识的能力,逐步增强实际工程训练。 2.培养正确的设计思想,掌握课程设计的主要内容、步骤和方法。 3.培养获取信息和综合处理信息的能力、文字和语言表达能力以及协作工作能力。 4.提高运用所学的理论知识和技能解决实际问题的能力及其基本工程素质。 课程设计要求: 1、能够根据设计任务和指标要求,综合运用单片机课程中所学到的理论知识与实践技能独立完成一个设计课题,了解并掌握单片机系统设计的一般设计方法,具备初步的独立设计能力;。 2、根据课题需要选择参考书籍,查阅手册、图表等有关文献资料。要求通过独立思考、深入钻研课程设计中所遇到的问题,培养自己分析、解决问题的能力。 3、学会撰写课程设计总结报告。 4、通过课程设计,逐步形成严肃认真、一丝不苟、实事求是的工作作风和科学态度,培养学生树立一定的全局观点。。 5、在课程设计过程中,要做到团结协作。 意义:单片机应用系统设计是单片机课程的实践性教学环节,既涉及到许多理论知识(设计原理与方法),又强调系统设计能力的锻炼,培养创新设计的能力,养成一丝不苟的工作作风,为今后从事单片机行业的工作打下基础。 二、功能要求: 单片机双机通信接口应用。设计电路并编写程序,完成单片机与单片机之间的通信,甲机发送键盘输入的键号,乙机接收键号并在最右边的LED以十六进制的方式显示出来,通信协议:以方式2工作,波特率为2400b/s,信息格式为8个数据位,无奇偶校验位。

单片机双机通信系统的课程设计

一.课程设计的目的及基本要求: 实践课程是使学生融会贯通本课程所学专业理论知识,完成一个较完整的设计计算和安装调试过程,以加深学生对所学理论的理解与应用,认识和熟悉元器件和电子测量仪器的性能指标,了解解决实际问题的一般过程,培养学生综合运用基础理论知识和专业知识去解决实际工程设计问题的能力。通过电子技术的综合性工程训练,使学生达到以下的目的和要求: 1、结合模拟电路、数字电路、可编程逻辑 器件、单片机电子线路CAD等课程中所学的 理论知识,按要求独立设计方案,培养学生 独立分析与解决问题的能力; 2、学会查阅相关手册和资料,通过查阅手 册和资料,进一步熟悉常用电子器件的类型 和特性,并掌握合理选用的原则; 3、学会使用常用电子元器件(包括中规模 芯片、专用芯片和可编程器件);

4、掌握基本的现代电子技术设计工具和EDA (Electronic design automation)技术; 5、掌握电子电路的安装与调试技术,进一 步熟悉电子仪器的使用方法; 6、认真撰写总结报告,培养严谨的作风和 科学的态度; 二.课程设计的主要内容: 课题十九单片机双机通信系统 基本要求:设计两个单片机最小系统,能实现有线通信,一方为发送,另一方为接收。 提高要求:两个单片机最小系统能相互通信,并能实现校验。 三.具体要求和时间安排: 每一个学生在教师指导下,独立完成一个应用系统。工作量如下: 1、电路原理图(A3幅面)1张,要求Protel软件绘制; 2、pcb版图(A3及以上幅面)1张;

3、设计说明书(20-30页)1本,内含能编译通过的源程序(有必要的注释)。

单片机课程设计_基于单片机的双机之间的串联通信

单片机系统 课程设计 成绩评定表 设计课题基于单片机的双机之间的串联通信学院名称:电气工程学院 学生姓名: 学号: 指导教师: 设计地点: 设计时间:

单片机系统 课程设计 课程设计名称:基于单片机的双机之间的串联通信专业班级: 学生姓名: 学号: 指导教师: 课程设计地点: 课程设计时间:

单片机系统课程设计任务书

目录 一. 设计目的 (4) 二. 串行口及其扩展简介 (4) 三.设计要求 (5) 四.硬件电路设计 (8) 五.流程图设计 (10) 六.程序设计 (12) 七.设计小结 (17) 八.参考文献 (17)

双机之间的串行通信设计 一、设计目的 1、了解串行通信的工作原理 2、了解键盘设定的工作原理 3、掌握80C51的定时器1计数器1的编程 4、掌握电路板的实物焊接 随着电子技术的飞速发展,单片机也步如一个新的时代,越来越多的功能各异的单片机为我们的设计提供了许多新的方法与思路。 对于莫一些场合,比如:复杂的后台运算及通信与高实时性前台控制系统、软件资源消耗大的系统、功能强大的低消耗系统、加密系统等等。如果合理使用多种不同类型的单片机组合设计,可以得到极高灵活性与性能价格比,因此,多种异型单片机系统设计渐渐成为一种新的思路, 单片机技术作为计算机技术的一个重要分支,由于单片机体积小,系统运行可靠,数据采集方便灵活,成本低廉等优点,在通信中发挥着越来越重要的作用。但能在一些相对复杂的单片机应用系统中,仅仅一个单片机资源是不够的,往往需要两个或多个单片机系统协同工作。这就对单片机通信提出了很高要求。 二、串行口及其扩展简介 1.串行通信的基本特征是数据逐位顺序进行传送 2.全双工制式是指通信双方均设有发送器和接收器,并且信道划分为发送信道和接收信道,因此全双工制式可实现甲乙双方同时发送和接收数据,发送时能接收,接收时也能发送 3.串行通信的传送速率用于说明数据传送的快慢. “波特率”表示每秒种传输离散信号事件的个数,或每秒信号电平的变化次数,单位为band(波特)。 “比特率”是指每秒传送二进制数据的位数,单位为比特/秒,记作bits/s或b/s或bps。 在二进制的情况下,波特率与比特率数值相等

基于51单片机的双机串行通信

机电高等专科学校2015-2016学年第1学期通信实训报告 系别:电子通信工程系 班级: xxxxxx 学号: 13xxxxxxxxx : xxxxxxx 2015年12月

基于51单片机的双机串行通信 摘要:串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。在通信过程中,使用通信协议进行通信。 关键字:通信双机 一、总体设计 1设计目的 1.通过设计相关模块充分熟悉51单片机的最小系统的组成和原理; 2.通过软件仿真熟悉keil和proteus的配合使用; 3.通过软件编程熟悉51的C51编程规; 4.通过实际的硬件电路搭设提高实际动手能力。 2.设计要求: 两片单片机之间进行串行通信,A机将0x06发送给B机,在B机的数码管上静态显示1,B机将0~f动态循环发送到A机,并在其数码管上显示。 3.设计方案: 软件部分,通过通信协议进行发送接收,A机先送0x06(B机数码管显示1)给B机(B机静态显示),当从机接收到后,向B机发送代表0-f的数码管编码数组。B收到0x06后就把数码表TAB[16]中的数据送给从机。 二、硬件设计 1.51单片机串行通信功能 计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。 51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。51单片机串行接口的结构如下:

Proteus中实现单片机双机通信实验

Proteus中实现单片机双机通信实验 【摘要】本文针对单片机项目设计中出现的问题和基本方法,提出了将Proteus仿真软件和Keil软件引入到单片机项目式开发中。以“单片机双机通信实验”项目为例,详细阐述Proteus软件在单片机课程教学中的使用方法和仿真调试过程。实践证明,该方法能激发开发热情,锻炼创新能力和单片机软硬件综合开发能力,是提高单片机开发效率和设计产品质量的一种有效方法。 【关键词】单片机开发;Proteus软件;仿真调试 引言 单片机开发是一项综合性、实践性、应用性很强的技术。传统的单片机开发采用“先理论设计,再动手实验”的开发模式,该模式造成编程与之实验结果分离,不便于调试,效果并不理想。鉴于此,本文将Proteus和引入到单片机的项目式开发中,通过仿真的直观性和真实感,不仅节约了硬件资源的投入,而且提高了单片机开发效率和产品质量。 一、Proteus简介 Proteus软件是英国Labcenter electronics公司开发的电路分析与实物仿真软件,它除了具有其他EDA工具的原理布图、PCB自动或人工布线、电路仿真等功能外,Proteus最大的特点是基于微控制器的设计连同所有的外围电路一起仿真,可直接在单片机虚拟系统上对MCU编程,并可对软件源代码进行实时调试。同时,它具有电路互动仿真功能,通过动态外设模型,如键盘、LED/LCD等,可实时显示系统输入、输出结果,以实现交互仿真,或配合Proteus配置的虚拟仪器如示波器、逻辑分析仪等,使单片机虚拟系统实现预期的实验效果。 此处还需要用Keil软件来协助。Keil软件是美国Keil Software公司出品的兼容单片机C语言软件的开发系统,是目前世界上最好的51单片机开发工具之一。它提供了丰富的库函数和功能强大的集成开发调试工具,生成的目标代码效率高,多数语句生成的汇编代码很紧凑,容易理解。 Proteus和Keil各自都可以进行仿真调试,但效果不是很理想,如把两者结合起来相互配合,则可发挥Proteus和Keil的优势使其在仿真过程中的软件调试和硬件设计更加便捷、高效。 二、仿真项目教学案例 (一)项目要求 本项目要求用两片AT89C51单片机实现A机检测输入键盘信息,并通过串行通信方式,传送给B机,在B机用数码管显示A机所按下的对应按键代号,“0-9”

基于单片机的双机通信程序设计

前言 单片机的通信接口是各台仪表之间或仪表与计算机之间进行信息交换和传输的联络装置。主要有五种类型,串行通信接口、并行通信接口、USB接口、现场总线接口以及以太网接口。 串行通讯是单片机的一个重要应用。本设计就是利用两块单片机来完成一个系统,实现单片机之间的串行通讯。 随着计算机的不断普及,在我们的周围可能会同时出现多台微型计算机,而且这些计算机的牌号,后型号不同,而且有的格式不兼容。于是利用单片机串行口实现不同计算机之间的相互通信,以达到信息或程序的共享是非常有用的。从智能家用电器到工业上的控制系统都采用了上位机与下位机基于串行通信的主从工作方式,这样就充分利用了微机分析处理能力强、速度快的特点及下位机(单片机)面向控制、使用灵活方便的优势。利用多机通讯构成的分布式系统逐渐普及。本实验就点对点的双机通信进行训练。学习串口的工作方式,初始化编程,和单片机与单片机点对点通信的编程方法以及硬件电路的设计方法。

1.总体设计方案 1.1 串口通信的设计原理 复位电路复位电路 单片机单片机 电源电路电源电路 时钟电路时钟电路 按键输入1位LED数码管 显示电路 图1 串口通信的设计原理框图 本次设计用于两片89S51,PC机的串行口采用的是标准的RS232接口,单片机的串行口电平是FTL电平,而TTL电平特性与RS232的电气特性不匹配,因此为了使单片机的串行口能与RS232接口通信,必须将串行口的输入/输出电平进行转换。通常用MAX232芯片来完成电平转换。单片机的发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。接收方接收后,在数码管上显示接收的信息,实现串口通讯数据的发送和接收,该系统可采用max232进行串口通讯数据传送。可用LED显示发送的相应据。 1.2 数据传输方案比较与选折 在串行通信中,数据是在两个站之间传送的。按照数据传送方向,串行通信可采用三种方案。 方案一:单工制式 单工制式是指甲乙双方通信只能单向传送数据。 发送器A 接收器B 图2 单工制式

基于单片机的双机串行通信

河南机电高等专科学校2015-2016学年第1学期通信实训报告 系别:电子通信工程系 班级: xxxxxx 学号: 13xxxxxxxxx 姓名: xxxxxxx 2015年12月

基于51单片机的双机串行通信 摘要:串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。在通信过程中,使用通信协议进行通信。 关键字:通信双机 一、总体设计 1设计目的 1.通过设计相关模块充分熟悉51单片机的最小系统的组成和原理; 2.通过软件仿真熟悉keil和proteus的配合使用; 3.通过软件编程熟悉51的C51编程规范; 4.通过实际的硬件电路搭设提高实际动手能力。 2.设计要求: 两片单片机之间进行串行通信,A机将0x06发送给B机,在B机的数码管上静态显示1,B机将0~f动态循环发送到A机,并在其数码管上显示。 3.设计方案: 软件部分,通过通信协议进行发送接收,A机先送0x06(B机数码管显示1)给B机(B机静态显示),当从机接收到后,向B机发送代表0-f的数码管编码数组。B收到0x06后就把数码表TAB[16]中的数据送给从机。 二、硬件设计 单片机串行通信功能 计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。 51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。51单片机串行接口的结构如下:

双机通信,单片机课程设计

单片机课程设计 双机通信 一、设计目的 1、掌握单片机89C52的程序设计,掌握单片机通信程序编制方法。 2、了解单片机实现通信的硬件环境。 3、掌握双机通信的原理和方法。 二、设计要求 1、用两片单片机,实现双机通信; 2、用与A机连接的按键控制A机对B机的信息传输,每按一次键,首先发送端显示要发送数据,两台机器的发光二极管的显示相同。 3、用与B机连接的按键控制B机对A机的信息传输,每次按键,数码管的显示自动加一。 三、设计器材 器件名称个数 STC8952RC 2 晶振 2 电容(30PF) 4 电容(10uF) 2 LED 4 电阻(10K) 4 电阻(330) 2

电阻(8.2K) 2 开关 4 数码管 2 三极管(NPN) 1 排阻 1 四、设计思路及方案 1、设计思路 计划采用主从共两片STC8952RC单片机来实现双机通信的,我们采用单片机直接交叉连接的方式,上位机发送的数据由串行口TXD端输出,直接由下位机的串行口数据接收端RXD接收。需要注意的是一定要保证主从机相同的数据传输速率,即要求设置相同的波特率。电路分为数码管显示模块,单片机工作的基本复位、晶振模块。 2、设计原理 (1)原理概述 双机通信系统通过主从单片机的串行口来实现数据的收发。主单片机通过开关电路来启动发送程序,当开关按下时向从机发送一个数据,从机通过接收中断来接收主机发送过来的数据,并通过编写好的数据代码在LED数码管上显示主机发送过来的数据。同时从机给主机发送一个应答信号来表示已经接收到了主机发送过来的数据,在主机接收应答并校验正确,以二极管显示,这样就完成了一个数据的通信过程,等待按键按下,然后继续下一次数据的发送直到结束。(2)串行通信 串行数据通信要解决两个关键问题,一个是数据传送,另一个是

单片机双机通信与PCB设计

实验六、双机通信与PCB设计 一、实验目的 掌握串口通信工作原理及程序开发方法,熟悉ARES软件PCB设计过程。 二、实验内容 1、按照P241图A.72绘制电路原理图1,将第6章实例2中2#机的查询法收发程序改为中断法(1#机发送过程不变)并实现原有功能; 2、按照图A7.3和表A7.3绘制电路原理图2,并定义电源端口; 3、采用ARES软件完成电路原理图2的PCB设计,形成光绘(Gerber)输出文件,其中BCD数码管需按照图A.74所示尺寸进行PCB自定义封装; 4、完成实验报告。 三、实验要求 提交的实验报告中应包括:电路原理图1,2#机的C51源程序,双机通信仿真效果及讨论*,PCB设计图(电路原理图2、排版图、3D效果图、光绘文件分层图3-4幅)以及实验小结。 提交实验报告的电子邮件主题及存盘文件名格式如,2005041220马晓明实验六。 *讨论:中断法与查询法的程序结构差异及优缺点。 1、电路原理图1

2、2#机的C51源程序 发送端源程序: #include #define uchar unsigned char char code map[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay(unsigned int time) { unsigned int j=0; for(;time>0;time--) for(j=0;j<125;j++); } void main() { uchar c=0; TMOD=0x20; TH1=TL1=0xf4; PCON=0; TR1=1; SCON=0x50; while(1) { SBUF=c;

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

编号1 单位代码 学号 分类号 密级 课程设计 基于AT89C51单片机的双机串行通信设计 院(系)名称工学院机械系 专业名称机械设计制造及其自动化 学生姓名 指导教师 2014年11 月10日

前言 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域随着计算机技术的发展及工业自动化水平的提高, 在许多场合采用单机控制已不能满足现场要求,因而必须采用多机控制的形式,而多机控制主要通过多个单片机之间的串行通信实现。串行通信作为单片机之间常用的通信方法之一, 由于其通信编程灵活、硬件简洁并遵循统一的标准, 因此其在工业控制领域得到了广泛的应用。 在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。 在通信过程中,使用通信协议进行通信。在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBM-PC 机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。 串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。在通信过程中,使用通信协议进行通信。

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

基于AT89C51单片机的双机串行通信设计 姓名:杨应伟 学号:100110061 专业:机械设计制造及其制动化 班级:机电二班

前言 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域随着计算机技术的发展及工业自动化水平的提高, 在许多场合采用单机控制已不能满足现场要求,因而必须采用多机控制的形式,而多机控制主要通过多个单片机之间的串行通信实现。串行通信作为单片机之间常用的通信方法之一, 由于其通信编程灵活、硬件简洁并遵循统一的标准, 因此其在工业控制领域得到了广泛的应用。 在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。 在通信过程中,使用通信协议进行通信。在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。 串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。在通信过程中,使用通信协议进行通信。

基于单片机的双机通信

基于单片机的双机通信 [摘要]双机通信是单片机的一个重要应用。本次课程设计就是要利用单片机来完成一个系统,实现两个单片机之间的有序通信。本文详细介绍了关于基于单片机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

双机通信系统单片机课程设计

设计概况 (2) 1 总体设计 (3) 1.1 设计要求 (3) 1.2 设计方案 (3) 2 双机通信硬件设计 (4) 2.1 AT89C51简介 (4) 2.2 AT89C51串行口的工作方式 (5) 2.3 晶振电路设计 (8) 2.4 复位电路设计 (8) 2.5 接口电路的设计 (9) 2.6 输入输出电路设计 (11) 3 双机通信软件设计 (13) 3.1 串行通信软件实现 (13) 3.2 串行通信程序流程 (13) 3.3 程序清单 (16) 4 软件仿真 (20) 5 硬件连接 (21) 6 设计总结 (23) 参考文献 (24)

设计概况 要构成一个较大规模的控制系统,常常需要采用多机控制实现,而AT89C51单片机有一个异步通信方式的全双工串行接口,可以方便地构成双机、多机系统。而串行通信也成为单片机与单片机、单片机与上位机之间进行数据传输的主要方式,是一种适用于远距离通信的数据传输方式。 串行通信是单片机的一个重要应用。本次课程设计就是要利用单片机来完成一个系统,实现双片单片机串行通信。通信的结果实用数码管进行显示,数码管采用查表方式显示。两个单片机之间采用RS232进行双机通信。在通信过程中,使用通信协议进行通信。 关键词:单片机;串行通信;接口

1 总体设计 1.1 设计要求 设计一个单片机双机通信系统,单片机A接1个8位按键开关,单片机B 接8个发光二极管,通过串行通信实现由A机拨码开关控制B机发光二极管的亮灭。 1.2 设计方案 本次设计,对于两片AT89C51,采用RS-232进行双机通信。如图1所示,发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS-232电平输出,经过传输线将信号传送到接收端。接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。接收方接收后,在LED二极管上显示接收的对应信息。 图1 双机通信系统原理框图 软件部分,通过通信协议进行发送接收,发送机先送联络信号给接收机,当接收机接收到联络信号后,向发送机回答一个应答信号,表示同意接收。发送机收到应答信号后开始发送数据,每发送一个数据块字节都要计算“校验和”,假定数据长度为16个字节,起始地址为40H,一个数据块发送完毕后立即发送“校验和”。接收机接收数据并存入数据缓冲区起始地址也为40H,每接收到一个数据字节便计算一次“校验和”,当接收到一个数据块后,在接受发送机发来的“校验和”,并将它与接收机计算的校验和进行比较。若二者相等,说明接受正确,接收机回答00H,发送机结束发送;若二者不等,说明接受不正确,接收机回答0FFH,请求重发,发送机重新发送数据一次。接收机接收到数据后通过发光二极管LED显示发送机的发送状态。

基于RS-232C的单片机双机通讯系统设计(二)

目录 0. 前言 (1) 1. 总体方案设计 (2) 2. 硬件电路的设计 (2) 2.1 单片机系统 (2) 2.2 MAX232芯片 (5) 2.3 整体电路设计 (6) 3 软件设计 (6) 4.联合调试 (8) 5. 课设小结及进一步设想 (9) 参考文献 (10) 附录I 元件清单 (11) 附录II 整体电路图 (12) 附录III 源程序清单 (13)

基于RS-232C的单片机双机通信系统设计(二) 秦月沈阳航空航天大学自动化学院 摘要:本文主要设计了一个基于RS-232C单片机双机通讯系统,利用TDN86/51二合一教学实验系统中的51单片机实现两个单片机之间的通讯。通信的结果用数码管进行显示,数码管采用查表方式显示。两个单片机之间采用New-Roman进行双机通信。在通信过程中,使用通信协议进行通信。 关键字:RS-232C;数据发送;数据接收;LED显示;双机串行通信。 0.前言 计算机的发展对通信起了巨大的推动作用,计算机和通信紧密结合构成了灵活多样的通信控制系统,也可以构成强有力的信息处理系统,这样对社会的发展产生了深远的影响。随着电子技术和计算机技术的发展,特别是单片机的发展,使传统的测量仪器在原理、功能、精度及自动化水平等方面发生了巨大的变化,形成了一种完全突破传统概念的新一代测试仪器——智能仪器。智能仪器是以微处理器为核心的电子仪器,它不仅要求设计者熟悉电子仪器的工作原理,而且还要求其掌握微型计算机硬件和软件的原理。目前,有很多的传统电子仪器已有相应的替代产品,而且还出现不少全新的仪器类型和测试系统体系。在科学技术高速发展的今天,如何用简单便宜、性能良好的元器件制造出对人类生活有用的产品,已经成为人们研究的主要趋势。 在自动化技术中,无论是过程控制技术还是数据采集技术还是测控技术,都离不开单片机,在工业自动化的领域中,机电一体化技术发挥越来越重要的作用,在通信方面,单片机得到了广泛运用。在实现计算机与计算机、计算机与外设的串行通讯时,通常采用标准的通讯接口。所谓标准的通讯接口,就是明确定义若干信号线的机械、电器特性,使接口电路标准化、通用化,这样就能方便地把不同的计算机、外设等有机地连接起来,进行串行通讯。 RS-232C是由美国电子工业协会(EIA)制定的用于串行通信的标准通信接口,利用它可以很方便地把各种计算机、外围设备、测量仪器等有机地连接起来,进行串行通信。它包括按位传输的电气和机械方面的规定,适用于短距离或带调制解调器的通信场合。 RS-232C标准适用于DCE和DTE之间的串行二进制通信,最高的数据速率为19.2Kbit/s,在使用此波特率进行通信时,最大传输距离在20m之内。降低波特率可以增加传输距离。对于RS-232C标准接口的使用是非常灵活的,实际通信中经常采用9针接口进行数据通信。

单片机双机通信实验报告

计算机与信息工程学院综合性实验报告 一、实验目的 1.学习双机通信的基本使用方法。 2.学习双机通信程序的编程方法。 二、实验仪器或设备 CPU挂箱、AT89S51CPU模块 三、总体设计(设计原理、设计方案及流程等) 1.设计原理: 串行口工作方式1为波特率可变的8位UART方式。主要用于单片机系统之间或单片机与PC之间的数据通信。方式1通信时,一帧数据由10位组成:1个起始位、8个数据位和1个停止位。这种方式常通过发送数据块的累加和实现数据校验。 2.设计方案: 设有甲、乙两个AT89S51单片机应用系统,现需要将甲单片机外RAM 4000H~43FFH 单元的内容传送到乙单片机,并将数据存放到乙单片机从8000H开始的单元,电路图如下图所示。如传送正确,图中发光二极管灭,否则发光二极管亮。 3.流程: 使用查询方式进行通信,通信过程分为两步:第一步为握手,第二步为传输数据。如果甲单片机收到乙单片机的应答为“A”,则重复上述发送过程,直到数据发送完成,并且置p1.3为1;否则,置P1.2为1,图中发光二极管亮,并退出。

四、实验步骤(包括主要步骤、代码分析等)

五、结果分析与总结结果图:

①结果分析 程序作用为甲乙两台机器进行连接通讯,如果通讯成功则亮灯提示(Led1),在通讯成功以后开始发送数据,如果发送成功则乙机器会发送一个确认信息,在比对确认乙收到的是正确信息以后亮灯提示(Led3)。 ②总结 本次实验为双机通信实验,在本次实验中,我们使用给定的代码进行操作,但是在实验中却发现很多问题。比如在设备连接好以后发现无法传输数据,我们发现错误发生在给定的代码上,两台计算机所使用的频率不同,导致无法传输数据。在程序没有编写错误的时候,我们不会去找程序的错误,而是反复的查看和检测连接方面的问题,这反映了我们对错误应变能力太差,一味的去相信书中的程序,有时候正确的程序在不合适的设备上使用就会出现错误。 这次实验增强了我们的探索能力,不一味的依赖答案,而是自己寻求解决思路,在以后的学习中起到了特别大的帮助。特别是在修改程序的时候,需要我们认真了解程序才可以进行修改,只有我们了解每一句代码的含义,我们才能正确的把程序改成自己需要的功能。在本次的修改中,我们添加了传输完数据以后用Led灯来提示的功能。我们发现,在程序中发送数据以后会有一个回复信息来确 认是否发送成功和信息校对,我们利用此语句来判断,如果判定成功那么语句就

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

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

基于A789C51单片机的双机串行通信课程设计 一、总体设计 1设计目的 1.通过设计相关模块充分熟悉A789C51单片机的最小系统的组成和原理; 2.通过软件仿真熟悉keil和proteus的配合使用; 3.通过软件编程熟悉A789C51的CA789C51编程规范; 4.通过实际的硬件电路搭设提高实际动手能力。 2.设计要求: 两片单片机之间进行串行通信,A机将0x06发送给B机,在B机的数码管上静态显示1,B 机将0~f动态循环发送到A机,并在其数码管上显示。 3.设计方案: 软件部分,通过通信协议进行发送接收,A机先送0x06(B机数码管显示1)给B机(B机静态显示),当从机接收到后,向B机发送代表0-f 的数码管编码数组。B收到0x06后就把数码表TAB[16]中的数据送给从机。 二、硬件设计 1.A789C51单片机串行通信功能

图1.AT89CA789C51(52) 计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。A789C51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。 A789C51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。A789C51单片机串行接口的结构如下:

(1)数据缓冲器(SBUF) 接受或发送的数据都要先送到SBUF缓存。有两个,一个缓存,另一个接受,用同一直接地址99H,发送时用指令将数据送到SBUF即可启动发送;接收时用指令将SBUF中接收到的数据取出。 (2)串行控制寄存器(PCON) SCON用于串行通信方式的选择,收发控制及状态指示,各位含义如下: SM0,SM1:串行接口工作方式选择位,这两位组合成00,01,10,11对应于工作方式0、1、2、3。串行接口工作方式特点见下表

实验六——双机通信及PCB设计

中国石油大学(北京) 实 验 报 告 实验课程:单片机原理及应用 实验名称:实验六——双机通信与PCB设计

一、实验目的 掌握串口通信工作原理及程序开发方法,熟悉ARES软件PCB设计过程。 二、实验内容 1、按照P241图A.72绘制电路原理图1,将第6章实例2中2#机的查询法收发程序改为中断法(1#机发送过程不变)并实现原有功能; 2、按照图A7.3和表A7.3绘制电路原理图2,并定义电源端口; 3、采用ARES软件完成电路原理图2的PCB设计,形成光绘(Gerber)输出文件,其中BCD数码管需按照图A.74所示尺寸进行PCB自定义封装; 4、完成实验报告。 三、实验要求 提交的实验报告中应包括:电路原理图1,2#机的C51源程序,双机通信仿真效果及讨论*,PCB设计图(电路原理图2、排版图、3D效果图、光绘文件分层图3-4幅)以及实验小结。 提交实验报告的电子邮件主题及存盘文件名格式如,2005041220马晓明实验六。 *讨论:中断法与查询法的程序结构差异及优缺点。 1、电路原理图1 图1 电路原理图

2、2#机的C51源程序 图2 2#机源程序 3、双机通信仿真效果及讨论 图3 仿真运行一 说明:利用KEIL编写1#机和2#机的源程序并生成“.HEX”文件,分别加载

在两个单片机上。1#机循环发送0-F数据,2#机实时接收数据,两机数据通过各自的BCD数码管显示出来。 图4仿真运行二 说明:1#机循环发送“0—F”数据,如图1#机发送数据“F”,2#机接收数据后在数码管上输出,1#机接收2#机返回的数据对比无误后在数码管上同时输出“F”。 图5 仿真运行三

相关文档
最新文档