双机之间的串行通信设计.doc

上传人:b****2 文档编号:1259494 上传时间:2022-10-19 格式:DOC 页数:18 大小:8.36MB
下载 相关 举报
双机之间的串行通信设计.doc_第1页
第1页 / 共18页
双机之间的串行通信设计.doc_第2页
第2页 / 共18页
双机之间的串行通信设计.doc_第3页
第3页 / 共18页
双机之间的串行通信设计.doc_第4页
第4页 / 共18页
双机之间的串行通信设计.doc_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

双机之间的串行通信设计.doc

《双机之间的串行通信设计.doc》由会员分享,可在线阅读,更多相关《双机之间的串行通信设计.doc(18页珍藏版)》请在冰豆网上搜索。

双机之间的串行通信设计.doc

单片机原理与接口技术课程设计

单片机原理与接口技术课程设计任务书

学生姓名

专业班级

学号

题目

双机之间的串行通信设计

课题性质

工程设计

课题来源

自拟

指导教师

主要内容

(参数)

基于89C51的双机通信设计实现以下功能

1.用自发自收的方式,实现串行口的自检,当串口正常时,发光二极管亮,否则,灯不亮。

2.发送端将0~f循环发送到接收端,并在接收端显示。

3.通信的结果实用数码管进行显示,数码管采用查表方式显示。

4.两个单片机之间采用RS232进行双机通信

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

任务要求

(进度)

第1-2天:

熟悉课程设计任务及要求,查阅技术资料,确定设计方案。

第3-4天:

按照确定的方案设计单元电路。

要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。

第5-6天:

软件设计,编写程序。

第7-8天:

实验室调试。

第9-10天:

撰写课程设计报告。

要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅合理。

主要参考

资料

[1]张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:

国防工业出版社,2004

[2]郭天祥.新概念51单片机C语言教程[M].北京:

电子工业出版社。

[3]阎石.数字电路技术基础(第五版).北京:

高等教育出版社,2006

审查意见

系(教研室)主任签字:

年月日

2

单片机原理与接口技术课程设计

目录

1设计任务 4

1.1设计任务 4

1.2设计要求 4

2设计方案 4

2.1方案设计 4

2.2所需元件 5

2.3AT89C51 5

2.4MAX232 8

2.5整体电路 9

3.软件设计 9

3.1串行通信软件实现 9

3.2程序流程图 10

4.系统调试 13

5.总结 13

参考文献 14

附录 14

1主机发送程序 14

2从机接收程序 15

3系统电路图 17

18

1设计任务

1.1设计任务

利用单片机来完成双机之间的串行通信,两个单片机之间采用TTL来进行连接.

1.2设计要求

1.两片单片机利用串行口进行串行通信:

串行通信的波特率可从键盘进行设定,可选的波特率为1200、2400、4800和9600bit/s。

串行口工作方式为方式1的全双工串行通信。

2.两个单片机之间进行通讯波特率的设定,最终归结到对定时计数器T1计数初值TH1、TL1进行设定。

故本题目本质上是通过键盘扫描得到设定的波特率,从而载入相应的T1计数初值TH1、TL1实现的。

3、要求发送方读入按键值,发送到接收方,接收方接受数据并显示在数码管上。

2设计方案

2.1方案设计

本次设计,基于两片89C51,采用RS232进行双机通信。

发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。

接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。

接受方接收后,在数码管上显示接收的信息。

为提高抗干扰能力,还可以在输入输出端加光耦合进行光电隔离。

软件部分,通过通信协议进行发送接收,主机先送AAH给从机,当从机接收到AAH后,向主机回答BBH。

主机收到BBH后就把数码表TAB[16]中的10个数据送给从机,并发送和检验。

从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机;否则发送FFH给主机,重新接受。

从机收到16个正确数据后送到一个数码管显示。

2.2所需元件

序号

名称

数量

15

40Pzip座

1

7

串口接口

1

13

MAX232芯片

1

12

USB接口

1

C1、C2

晶振电容22p

2

51、AVR

复位按钮

2

Y1

晶振座

3孔

J16

复位跳线插针

3针

RP1

4.7k排阻

D1―D8

LED白发红

J10

LED电源跳线

2针

R9

10k复位电阻

S17-S20

单独按键

输出口

双排针

2×18针

C9-C12

Max232外围电容1μF

POWER

自锁按钮

C13

复位电容10μF

R16

电源指示灯电阻1K

R1-R8

LED限流电阻1K

POWER指示灯

绿发绿LED

C8

电源滤波电容1000μ

2.3AT89C51

如图2.3AT89C51,AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

图.2.3AT89C51

管脚说明

VCC:

供电电压。

GND:

接地。

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P0口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为低八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

  P3口也可作为AT89C51的一些特殊功能口。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取值期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

2.4MAX232

如图2.4MAX232,MAX232芯片是美信(MAXIM)公司专为RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。

图2.4MAX232

管脚设计

第一部分是电荷泵电路。

由1、2、3、4、5、6脚和4只电容构成。

功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。

第二部分是数据转换通道。

由7、8、9、10、11、12、13、14脚构成两个数据通道。

其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。

8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。

TTL/CMOS数据从11引脚(T1IN)、10引脚(T2IN)输入转换成RS-232数据从14脚(T1OUT)、7脚(T2OUT)送到电脑DB9插头;DB9插头的RS-232数据从13引脚(R1IN)、8引脚(R2IN)输入转换成TTL/CMOS数据后从12引脚(R1OUT)、9引脚(R2OUT)输出。

第三部分是供电。

15脚GND、16脚VCC(+5v)。

2.5整体电路

图2.5整体电路图

3.软件设计

3.1串行通信软件实现

通过通信协议进行发送接收,主机先送AAH给从机,当从机接收到AAH后,向主机回答BBH。

主机收到BBH后就把数码表TAB[16]中的16个数据送给从机,并发送和检验。

从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机;否则发送FFH给主机,重新接受。

从机收到16个正确数据后送到一个数码管显示。

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

(2)功能:

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

(3)通信协议:

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

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

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

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

3.2程序流程图

(1)发送端程序流程图,如图3.2发送端程序流程图所示:

图3.2发送端程序流程图

(2)接收端程序流程图,如图3.2接收端程序流程图所示:

图3.2接收端程序流程图

4.系统调试

在Protues上进行仿真实验。

首先使用KeiuVsion2将编写完成的程序编译生成HEX文件,将HEX文件烧录到两片单片机中,进行仿真实验,结果如图4仿真实验图所示(由于电脑没有Protues,图片由Visio模拟),可以看到,接收端已将接收到的数据完整的显示出来。

图4仿真实验图

5.总结

经过这段时

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1