当前位置:文档之家 > 单片机课程设计-双机通信e

单片机课程设计-双机通信e

目录

摘要 (2)

英文摘要 (3)

一总体设计 (4)

1 设计要求 (4)

2 设计方案 (4)

二硬件设计 (4)

1 51单片机串行通信功能 (4)

2 MAX232芯片 (6)

3 整体电路设计 (7)

三软件设计 (8)

1 串行通信软件实现 (8)

2 程序流程图 (8)

四联合调试 (11)

五设计小节 (11)

六附录 (12)

1 主机发送程序 (12)

2 重机接受程序 (13)

3 系统电路图 (16)

摘要

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

关键词:51单片机,串行通信,接口

Abstract

Serial communication is an important application of single chip. This course is designed to using single chip computer to complete a system, the realization biplate microcontroller serial communication. Communication results and practical to display, digital digital tube pipe, adopting look-up table display. Two microcontroller between adopt RS232 for dual-computer communications. In communication process, USES communication protocol to communicate.

Key words: 51 SCM, serial communication, interface

一、总体设计

1.设计要求:

两片单片机之间进行串行通信,发送端将0~f循环发送到接收端,并在接收端显示。2.设计方案:

本次设计,对于两片89C51,采用RS232进行双机通信。发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。接受方接收后,在数码管上显示接收的信息。为提高抗干扰能力,还可以在输入输出端加光耦合进行光电隔离。

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

二、硬件设计

1.51单片机串行通信功能

单片机课程设计-双机通信e

图1.AT89C51

计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。

51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。

51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。51单片机串行接口的结构如下:

(1)数据缓冲器(SBUF)

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

(2)串行控制寄存器(PCON)

SCON用于串行通信方式的选择,收发控制及状态指示,各位含义如下:

单片机课程设计-双机通信e

SM0,SM1:串行接口工作方式选择位,这两位组合成00,01,10,11对应于工作方式0、1、2、3。串行接口工作方式特点见下表

单片机课程设计-双机通信e

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。

(6)波特率计算

当定时器T1工作在定时方式的时候,定时器T1溢出率=(T1计数率)/(产生溢出所需机器周期)。由于是定时方式,T1计数率= f ORC/12。产生溢出所需机器周期数=模M-计数初值X。

2.MAX232芯片

用8051串行接口通信,如果两台8051单片机之间的距离很近(不超过1.5m),可以采用直接将两台8051单片机的串行接口直接相连,利用其自身的TTL电平(0-5V)直接传输数据信息。如果传输距离较远(超过1.5m),由于传输线的阻抗与分布电容,会产生电平损耗和波形畸变,以至于检测不出数据或数据出错。此时可利用 RS232标准总线接口,将单片机输出的TTL电平转换为RS232标准电平(逻辑1为-15—-5V;逻辑0为+5-—+15V)。用RS232可将传输距离提高到15m,如果想远距离传输,可以采用RS422或者RS485。

电平转换芯片MAX232是美信公司(MAXIM)生产,专用于进行将TTL电平转换为RS232电平的芯片,MAX232内部有泵电源,能将+5V电源电压在芯片内提高到RS232电平所需的+10V或者-10V电平。

单片机课程设计-双机通信e

图2.电平转换芯片MAX232

3.整体电路设计

最终设计电路如下图3所示,发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。接受方接收后,通过P1口在数码管上显示接收的信息。

单片机课程设计-双机通信e

图3.串行通信电路

三、软件设计

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

1.串行通信软件实现

(1)串行口工作于方式1;用定时器1产生9600bit/s的波特率,工作于方式2。

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

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

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

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

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

2.程序流程图

(1)发送端程序流程图

单片机课程设计-双机通信e

(2)接收方程序流程图

单片机课程设计-双机通信e

四、联合调试

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

单片机课程设计-双机通信e

图4.仿真图

五、设计小结

经过繁忙而又紧张的课程设计,终于顺利的完成了设计任务。虽然在这段时间里每天都那么繁忙,但是在这忙碌的过程中却得到了许多的收获。

经过课程设计,在查阅资料的过程中,学习了基于单片机的C语言程序设计,了解了单片机串行通信的基本知识,对于以后的学习和工作都有很大的益处。

在学习的过程中,也遇到了一些困难,比如开始的时候,由于发送端和接收端的通信协议没有做好,导致数据不能正确的传输,在解决问题的过程中,对于通信协议的实现有了深刻的认识。

通过这次课程设计,锻炼了自己独立思考的能力。

六、附录

1.主机发送程序

#include

#define uchar unsigned char

void init();

void send();

ucharTAB[16]

={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x 79,0x71};

uchar i,sum;

int j;

main()

{ init();

send();

}

void init(void)

{ EA=1;

ES=1;

TMOD=0x20;

TH1=0xfd;

TL1=0xfd;

PCON=0x00;

SCON=0x50;

TR1=1;

}

void send(void)

{do

{ SBUF=0xaa;

while(!TI);

TI=0;

while(!RI);

RI=0;

}

while((SBUF^0xbb)!=0);

do

{ sum=0;

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

{ SBUF=TAB[i];

sum+=TAB[i];

while(!TI);

TI=0;

}

SBUF=sum;

while(!TI);

TI=0;

while(!RI);

RI=0;

}

while(SBUF!=0);

}

2.从机接收程序

#include

#define uchar unsigned char #define uint unsigned int void delay(int );

void receive(void) ;

void init(void);

uchar i,sum;

int j;

ucharTAB[16]

={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x 79,0x71};

void main()

{ init();

receive();

}

void init(void)

{ EA=1;

ES=1;

TMOD=0x20;

TH1=0xfd;

TL1=0xfd;

PCON=0x00;

SCON=0x50;

TR1=1;

}

void delay(int x)

{ int i,j;

for(i=0;i

for(j=1;j<=150;j++ );

}

void receive(void)

{ uchar TABS[16];

do

{ while(!RI);RI=0; }

while((SBUF^0xaa)!=0);

SBUF=0xbb;

while(!TI);TI=0;

while(1)

{ sum=0;

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

{ while(!RI);RI=0;

TABS[i]=SBUF;

sum+=TABS[i];

}

while(!RI);RI=0;

if((SBUF^sum)==0)

{ SBUF=0x00;

while(!TI);

TI=0;

break;

}

else

{ SBUF=0xff;

while(!TI);

TI=0;

}

}

while(1)

{ for(i=0;i<=15;i++)

{ P1=TABS[i];

delay(500);

}

}

} 3.系统电路图

单片机课程设计-双机通信e

单片机单片机课程设计-双机串行通信
基于51 单片机双机串行通信设计 【摘要 串行通信单片机的一个重要应用。 摘要】 本次课程设计就是要利用单片机来完成一个系 摘要 统, 实现双片单片机串行通信......
双机通信,单片机课程设计
双机通信,单片机课程设计_工学_高等教育_教育专区。单片机,课程设计,实验报告 单片机课程设计 双机通信一、设计目的 1、掌握单片机 89C52 的程序设计,掌握单片机通信......
单片机课程设计双机通信交通灯
单片机课程设计》设计报告题目: 双机通信 专业: 电子信息工程 班级: 班 学...
单片机双机通信课程设计报告
专业 课程设计任务书 20 10 -20 11 学年 第 2 学期 第 17 周- 20 周题目 单片机单片机之间的串行通讯 内容及要求 1.用 RS232 串行芯片实现双向通讯。 ...
单片机课程设计基于单片机的双机之间的串联通信
1 单片机系统 课程设计任务书 课程设计 学生姓名 专业班级 学号 题目 课题性质 指导教师 工程设计 课题来源 自拟 双机间串联通信发送的步骤: 主要内容 (参数) 1、......
单片机双机通信课程设计报告
专业 课程设计任务书 20 10 -20 11 学年 第 2 学期题目 单片机单片机之间的串行通讯 第 17 周- 20 周 内容及要求 1.用 RS232 串行芯片实现双向通讯。 ...
单片机课程设计_基于单片机的双机之间的串联通信
课程设计 单片机系统 课程设计 成绩评定表设计课题 学院名称 : 学生姓名 :学号: 基于单片机双机之间的串联通信 电气工程学院 指导教师 : 设计地点 : 设计时间 :......
单片机双机通信课程设计报告
单片机双机通信课程设计报告_工学_高等教育_教育专区。成绩评定表学生姓名 专业 班级学号 课程设计题目 甲乙两机串口双向 通信设计 计算机科学 与技术 评 语 组长......
单片机双机通信系统-课程设计
电子技术综合实践—单片机双机通信 一.课程设计的目的及基本要求: 课程设计的目的...
基于51单片机双机串行通信课程设计
基于51单片机双机串行通信课程设计_工学_高等教育_教育专区。单片机,课程设计,实验报告 基于51 单片机双机串行通信课程设计一、总体设计 1 设计目的 1.通过设计......
基于51单片机双机串行通信课程设计
基于51单片机双机串行通信课程设计_工学_高等教育_教育专区。基于 A789C51 单片机双机串行通信课程设计 一、总体设计 1 设计目的 1.通过设计相关模块充分熟悉 ......
双机通信系统单片机课程设计(优选.)
24 word. 单片机双机通信系统设计设计概况要构成一个较大规模的控制系统,常常需要采用多机控制实现,而 AT89C51 单片机有一个异步通信方式的全双工串行接口,可以......
在通信 过程中,使用通信协议进行通信。关键词:单片机;串行通信;接口 1/1 1 总体设计 1.1 设计要求设计一个单片机双机通信系统,单片机 A 接 1 个 8 位按键......
在通 信过程中,使用通信协议进行通信。 关键词:单片机;串行通信;接口 1 总体设计 1.1 设计要求 设计一个单片机双机通信系统,单片机 A 接 1 个 8 位按键开关......
基于51单片机双机串行通信设计单片机课程设计
基于51单片机的双机串行通信设计单片机课程设计_信息与通信_工程科技_专业资料。基于51单片机的双机串行通信设计一、设计任务 设计要求:两个AT89C51单片机使用串口......
课程设计双机通信
单片机课程设计题目四 双机通信系统设计 院 系: 自动化学院 专业班级: 小组成...
双机通信课程设计
西安邮电大学 单片机课程设计报告书题目:双机通信系统 双机通信系统设计一 、系统整体设计 1.系统设计思路双机通信的实质就是解决两单片机串行通信问题。针对于 89C52......
MCS_51单片机双机通信实现程序原代码(1)
单片机单片机课程设计-双机... 16页 免费 单片机双机通信c51程 6页 1财富值 单片机双机通信 数码管演示... 3页 免费 单片机双机通讯 5页 免费如要投诉违规内容......
基于单片机双机通信程序设计
基于单片机双机通信程序设计_电子/电路_工程科技_专业资料。四川师范大学成都学院电子工程学院课程设计报告 前言单片机的通信接口是各台仪表之间或仪表与计算机之间进行......
基于51单片机双机串行通信课程设计 1000110061
基于AT89C51 单片机双机串行通信设计 姓名:杨应伟 学号:100110061 专业:机械设计制造及其制动化 班级:机电二班 前 言 单片机广泛应用于仪器仪表、家用电器、医用......