微机原理课程设计报告-双机串行通信

合集下载

双机串行通信的设计与实现

双机串行通信的设计与实现

双机串行通信的设计与实现设计流程如下:1.确定通信协议:在设计双机串行通信时,首先要确定通信协议,包括数据格式、数据传输速率、错误检测和纠错等方面。

常见的协议有RS-232、RS-485、USB等。

2.硬件设计:双机串行通信需要使用串行通信接口进行数据传输。

设计中需要考虑硬件的选型,如选择合适的串行通信芯片、电平转换电路、线缆等。

根据通信协议的要求,确定串行通信接口的电平、波特率等参数。

3. 软件设计:在设计双机串行通信的软件时,需要实现数据的发送和接收功能。

常见的操作系统如Windows、Linux等提供了串口通信的API函数,可以方便地实现通信功能。

软件设计包括以下几个方面:a)串口初始化:设置串口的波特率、数据位数、停止位数、校验位等参数。

b)数据发送:将需要发送的数据经过封装后发送给串口。

c)数据接收:通过串口接收数据,并解析数据格式。

d)错误检测与纠错:对接收到的数据进行错误检测,如使用奇偶校验、CRC等方式进行数据完整性检验,针对错误数据进行纠正或丢弃。

e)数据处理:根据具体应用场景对接收到的数据进行处理,如进行数据解析、存储、显示等。

4.通信测试与调试:设计完成后,需要进行通信测试与调试,确保双机串行通信的正确性和稳定性。

通过发送和接收数据进行测试,检查通信协议的实现是否正确,数据的传输是否准确。

实现双机串行通信的关键在于硬件设计与软件设计的合理结合。

合理选择适合的硬件设备,同时根据通信协议的要求进行软件开发,能够保证通信的可靠性和稳定性。

总而言之,双机串行通信的设计与实现需要确定通信协议、硬件设计与软件开发,通过测试和调试保证通信的正确性与稳定性。

它是计算机通信的重要组成部分,应用广泛。

双机之间的串行通信设计

双机之间的串行通信设计

双机之间的串行通信设计随着计算机技术的快速发展,双机之间的串行通信变得越来越重要。

无论是在数据传输、系统控制还是协同处理方面,双机之间的串行通信都扮演着关键角色。

本文将探讨双机之间的串行通信设计,包括串行通信的原理、串行通信的应用、串行通信的优势以及设计双机之间串行通信的步骤。

一、串行通信的原理串行通信是一种逐位传输数据的通信方式。

在双机之间的串行通信中,一台机器将数据一位一位地发送给另一台机器,接收方接收到数据后将其重新组装为完整的信息。

串行通信常用的协议有RS-232、RS-485、SPI等。

二、串行通信的应用1.数据传输:双机之间通过串行通信传输大量数据,例如在两台计算机之间传输文件、传输实时音视频数据等。

2.系统控制:双机之间通过串行通信进行系统控制,例如一个机器向另一个机器发送指令,控制其执行特定的任务。

3.协同处理:双机之间通过串行通信进行协同处理,例如在分布式系统中,各个节点之间通过串行通信共同完成复杂的任务。

三、串行通信的优势相比于并行通信,双机之间的串行通信具有以下几个优势:1.传输距离更远:串行通信可以在较长的距离上进行数据传输,而并行通信受到信号干扰和传输线损耗的限制。

2.更少的传输线:串行通信只需要一条传输线,而并行通信需要多条传输线。

3.更快的速度:串行通信在同等条件下具有更快的传输速度,因为每一位数据传输所需的时间更短。

4.更可靠的传输:串行通信可以通过校验位等方式来保证数据传输的可靠性。

四、设计双机之间串行通信的步骤设计双机之间的串行通信需要经过以下几个步骤:1.确定通信协议:首先需要确定双机之间的通信协议,例如RS-232、RS-485等。

不同的通信协议有着不同的特点和适用范围,需要根据具体的应用需求进行选择。

2.确定物理连接方式:根据通信协议的选择,确定双机之间的物理连接方式,例如使用串口线连接、使用网络连接等。

3.确定数据传输格式:确定数据传输的格式,包括数据的编码方式、数据的起始位和停止位等。

双机串行通信的设计与实现

双机串行通信的设计与实现

双机串行通信的设计与实现一、设计要求1.单机自发自收串行通信。

接收键入字符,从8251A的发送端发送,与同一个8251A的接收端接收,然后在屏幕上显示出来。

2.双机串行通信,在一台PC机键入字符,从8251A的发送端发送给另一台PC机,另一台PC机的8251A的接收端接收,然后在屏幕上显示出来。

二、所用设备IBM-PC机两台(串行通信接口8251A两片,串行发送器MC1488和串行接收器MC1489各两片,定时器/计数器8253,终端控制器8259等),串口线一根串行直连电缆用于两台台电脑通过串行口直接相连,电缆两端的插头都是9 针的母插头:三、硬件方案1.设计思想计算机传输数据有并行和串行两种模式。

在并行数据传输方式中,使用8条或更多的导线来传送数据,虽然并行传送方式的速度很快,但由于信号的衰减或失真等原因,并行传输的距离不能太长,在串行通信方式中,通信接口每次由CPU得到8位的数据,然后串行的通过一条线路,每次发送一位将该数据放送出去。

串行通信采用两种方式:同步方式和异步方式。

同步传输数据时,一次传送一个字节,而异步传输数据是一次传送一个数据块。

串口是计算机上一种非常通用设备串行通信的协议。

大多数计算机包含两个基于RS232的串口。

串口按位(bit)发送和接收字节。

尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

典型地,串口用于ASCII码字符的传输。

通信使用3根线完成:(1)地线,(2)发送,(3)接收。

由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。

其他线用于握手,但是不是必须的。

串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。

对于两个进行通行的端口,这些参数必须匹配:RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。

可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。

单片机单片机课程设计-双机串行通信

单片机单片机课程设计-双机串行通信

单片机单片机课程设计-双机串行通信单片机课程设计双机串行通信在当今的电子信息领域,单片机的应用无处不在。

而双机串行通信作为单片机系统中的一个重要环节,为实现设备之间的数据交换和协同工作提供了关键的技术支持。

一、双机串行通信的基本原理双机串行通信是指两个单片机之间通过串行接口进行数据传输的过程。

串行通信相较于并行通信,具有线路简单、成本低、抗干扰能力强等优点。

在串行通信中,数据是一位一位地按顺序传输的。

常见的串行通信协议有 UART(通用异步收发器)、SPI(串行外设接口)和 I2C(内部集成电路)等。

在本次课程设计中,我们主要采用 UART 协议来实现双机串行通信。

UART 协议包括起始位、数据位、奇偶校验位和停止位。

起始位用于标识数据传输的开始,通常为逻辑 0;数据位可以是 5 位、6 位、7 位或 8 位,具体取决于通信双方的约定;奇偶校验位用于检验数据传输的正确性,可选择奇校验、偶校验或无校验;停止位用于标识数据传输的结束,通常为逻辑 1。

二、硬件设计为了实现双机串行通信,我们需要搭建相应的硬件电路。

首先,每个单片机都需要有一个串行通信接口,通常可以使用单片机自带的UART 模块。

在硬件连接方面,我们将两个单片机的发送端(TXD)和接收端(RXD)交叉连接。

即单片机 A 的 TXD 连接到单片机 B 的 RXD,单片机 B 的 TXD 连接到单片机 A 的 RXD。

同时,还需要共地以保证信号的参考电平一致。

此外,为了提高通信的稳定性和可靠性,我们可以在通信线路上添加一些滤波电容和上拉电阻。

三、软件设计软件设计是实现双机串行通信的核心部分。

在本次课程设计中,我们使用 C 语言来编写单片机的程序。

对于发送方单片机,首先需要对 UART 模块进行初始化,设置波特率、数据位、奇偶校验位和停止位等参数。

然后,将要发送的数据放入发送缓冲区,并通过 UART 发送函数将数据一位一位地发送出去。

对于接收方单片机,同样需要对 UART 模块进行初始化。

双机通信课程设计

双机通信课程设计

成绩:课程设计报告书所属课程名称单片机原理与接口技术题目双机串行通信分院机电学院专业、班级机械设计制造及其自动化B0902学号0612090218学生姓名史强指导教师周春明2012年7月13日目录1课程设计任务书 (1)2总体设计 (2)3硬件系统设计 (3)4程序设计 (6)5程序调试及结果分析 (11)6总结 (13)7参考文献 (14)辽东学院一课程设计任务书课程设计题目:双机串行通信课程设计时间:自2012 年7月2日起至2012 年7月13日。

课程设计要求:1.通过本次课题设计,应用《单片机原理及其接口技术》等所学相关知识及查阅资料,完成简易双机串行通信设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能力的目的。

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

接收完成后,led灯亮。

学生签名:史强2012 年7月13日课程设计评阅意见评阅教师:2012年月日二总体设计2.1 设计目的通过本次课题设计,应用《单片机原理及其接口技术》等所学相关知识及查阅资料,完成简易双机串行通信设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能力的目的。

通过本次设计的训练,可以使我在基本思路和基本方法上对基于MCS-51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。

2.2 设计任务两片单片机之间进行串行通信,发送端将0~f循环发送到接收端,完成后在接收端的led 灯亮。

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

发送方的数据由串行口TXD段输出。

接受方接收后,灯亮。

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

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

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

双机串行课程设计

双机串行课程设计

双机串行课程设计一、课程目标知识目标:1. 让学生掌握串行通信的基本概念,理解其工作原理和通信协议;2. 能够描述双机串行通信的硬件连接方式和软件实现方法;3. 了解串行通信在现实生活中的应用场景。

技能目标:1. 学会使用编程软件编写双机串行通信程序,实现数据收发功能;2. 能够分析并解决双机串行通信过程中遇到的问题;3. 培养学生动手实践、团队协作和解决问题的能力。

情感态度价值观目标:1. 培养学生对计算机通信技术的兴趣和爱好,激发学习积极性;2. 增强学生的信息安全意识,了解通信过程中的数据保护措施;3. 引导学生关注科技发展,认识通信技术在我国经济建设和社会进步中的作用。

课程性质分析:本课程为信息技术课程,旨在让学生了解并掌握双机串行通信技术,培养其实践操作能力和创新精神。

学生特点分析:初中年级学生具有一定的计算机操作基础和编程能力,对新鲜事物充满好奇心,喜欢动手实践。

教学要求:1. 理论与实践相结合,注重培养学生的动手操作能力;2. 采用案例教学,让学生在实际应用中掌握知识;3. 关注学生个体差异,因材施教,提高教学质量。

二、教学内容1. 串行通信基本概念:介绍串行通信的定义、特点及与并行通信的区别。

- 教材章节:第一章第二节2. 串行通信工作原理:讲解串行通信的信号线、数据格式、波特率等关键参数。

- 教材章节:第一章第三节3. 双机串行通信硬件连接:阐述双机串行通信的硬件设备选型、连接方法及注意事项。

- 教材章节:第二章第一节4. 串行通信软件实现:介绍串行通信编程的基本方法,以案例形式讲解数据收发过程。

- 教材章节:第二章第二节5. 双机串行通信程序设计:引导学生编写简单的双机串行通信程序,实现数据收发功能。

- 教材章节:第二章第三节6. 串行通信应用场景:分析现实生活中串行通信的应用实例,激发学生学习兴趣。

- 教材章节:第三章7. 串行通信问题与解决:讨论双机串行通信过程中可能遇到的问题及解决方案。

微机原理课程设计报告书-两台PC机之间进行串口通信

微机原理课程设计报告书-两台PC机之间进行串口通信

一、课程设计题目两台PC机之间进行串口通信。

二、课程设计目的与要求通过本次实训,加强学生们对微机原理与接口技术这门课程的理解和掌握,同时了解并掌握8250串口芯片和中断管理芯片8259的初始化编程和使用。

1.目的:俩个PC机通过串行口互联,实现文件的无差错传输。

2.基本要求:(1) PC机使用8250串口芯片。

中断管理芯片使用8259(2)要求用C语言或汇编语言完成程序的设计。

(3)程序必须用中断方式来实现。

(4)在U盘上自备TURBO C 2.0编译环境。

因为机房的计算机(C和D盘要还原)安装有还原卡。

(5)自购DB9P 公插头二个,2,3脚交叉连线,5脚直接连接,焊接。

电缆长度一米。

(6)不准带电拔插串行口插头。

三、实现方法1. 8250的初始化依据8250(16550)的寄存器如下表所示:基地址读/写寄存器缩写注释0Write-发送保持寄存器(DLAB=0)0Read-接收数据寄存器(DLAB=0)0Read/Write-波特率低八位(DLAB=1)1Read/Write IER中断允许寄存器1Read/Write-波特率高八位(DLAB=1)2Read IIR中断标识寄存器2Write FCR FIFO控制寄存器3Read/Write LCR线路控制寄存器4Read/Write MCR MODEM控制寄存器5Read LSR线路状态寄存器6Read MSR MODEM状态寄存器7Read/Write-Scratch RegisterPC机支持1-4个串行口,即COM1-COM4,其基地址在BIOS数据区0000:0400-0000:0406中描述,对应地址分别为3F8/2F8/3E8/2E8,COM1及COM3使用PC机中断4,COM2及COM4使用中断3。

在上表中,8250共有12个寄存器,使用了8个地址,其中部分寄存器共用一个地址,由DLAB=0/1来区分,在DLAB=1用于设定通讯所需的波特率。

双机串行通讯设计实验报告

双机串行通讯设计实验报告
洛阳理工学院实验报告
系别
计算机系
班级
B140502
学号
B14050226
姓名
韩亚辉
课程名称
单片机原理及组成
实验日期
2016/5/28
实验名称
双机串行通讯设计
成绩
实验目的:1.用全双共数据传送法实现两机互相通信。
2.完成双机通信的设计制作及仿真。
实验条件:计算机,Keil uVision4,ISIS 7 Professional,实验箱
(1)数据缓冲器(SBUF)
(2)串行控制寄存器(PCON)
(3)输入移位寄存器
(4)波特率发生器
(5)电源控制寄存器PCON
(6)波特率计算
三.实验电路图:
四.实验程序代码:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define duan P1
#define dis P2
void main()
{
uchar key_in=0xff; //I/O口作输入时,检测外设状态,允许输出高电平
TMOD=0x20;//设置为定时器1方式2
TH1=0xfd;//装初值,波特率设为9600
TL1=0Xfd;
EA=1;//开总中断
一.实验要求:
1)能本机显示按键的数值。
2)能向对方机发送按键的数。
3)能接收对方机发送的数并显示。
4)发送数及按键用中断实现。
5)用串行口的全双工方式通信。
二、实验原理:
(1)单片机串行接口通信功能
计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。

单片机双机串行实验报告

单片机双机串行实验报告

单片机双机串行实验报告实验目的:通过单片机实现双机串行通信功能,掌握串行通信的原理、方法和程序设计技巧。

实验原理:双机串行通信是指通过串行口将两台单片机连接起来,实现数据的传输和互动。

常用的串行通信方式有同步串行通信和异步串行通信。

异步串行通信是指通过发送和接收数据时的起始位、停止位和校验位进行数据的传输。

而同步串行通信是指通过外部时钟信号进行数据的同步传输。

实验器材:1.两台单片机开发板(MCU7516)2.两个串口线3.两台计算机实验步骤:1.将两台单片机开发板连接起来,通过串口线连接它们的串行口。

2.在两台计算机上分别打开串口调试助手软件,将波特率设置为相同的数值(例如9600)。

3.在编程软件中,编写两个程序分别用于发送数据和接收数据。

4.在发送数据的程序中,首先要设置串口的波特率、数据位、停止位和校验位,并将数据存储在缓冲区中。

然后利用串口发送数据的指令将数据发送出去。

5.在接收数据的程序中,同样要设置串口的参数。

然后使用串口接收数据的指令将接收到的数据存储在缓冲区中,并将其打印出来。

实验结果与分析:经过实验,我们成功地实现了单片机之间的双机串行通信。

发送数据的单片机将数据发送出去后,接收数据的单片机能够正确地接收到数据,并将其打印出来。

实验中需要注意的是,串口的波特率、数据位、停止位和校验位必须设置为相同的数值。

否则,发送数据的单片机和接收数据的单片机无法正常进行通信。

同时,在实验之前,需要了解单片机开发板支持的串口通信相关的指令和函数。

实验总结:通过本次实验,我们深入了解了单片机之间的双机串行通信原理和方法。

掌握了串口的设置和使用方法,以及相关的指令和函数。

在实验中,我们学会了如何通过串行口实现数据的传输和互动,为今后的单片机应用和开发打下了基础。

同时,我们还发现,双机串行通信在实际应用中有着广泛的用途。

例如,可以通过串行通信实现两台计算机之间的数据传输,或者实现单片机与计算机之间的数据收发。

单片机单片机课程设计报告-双机串行通信

单片机单片机课程设计报告-双机串行通信

基于51单片机的双机串行通信设计【摘要】串行通信是单片机的一个重要应用。

本次课程设计就是要利用单片机来完成一个系统,实现双片单片机串行通信。

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

两个单片机之间采用RS232进展双机通信。

在通信过程中,使用通信协议进展通信。

【关键字】51单片机,串行通信,接口一、总体设计1.设计要求:两片单片机之间进展串行通信,发送端将0~f循环发送到接收端,并在接收端显示。

2.设计方案:本次设计,对于两片89C51,采用RS232进展双机通信。

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

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

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

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

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

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

从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进展比拟,假设检验和一样那么发送00H给主机;否那么发送FFH给主机,重新承受。

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

二、硬件设计1.51单片机串行通信功能图1.AT89C51计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。

51单片机用4个接口与外界进展数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,本钱高,传输的距离较近。

串行通信的特点是只用两条信号线〔一条信号线,再加一条地线作为信号回路〕即可完成通信,本钱低,传输的距离较远。

51单片机的串行接口是一个全双工的接口,它可以作为UART〔通用异步承受和发送器〕用,也可以作为同步移位存放器用。

单片机双机之间的串行通讯设计报告

单片机双机之间的串行通讯设计报告

单片机双机之间的串行通讯设计报告摘要:本文介绍了一种基于单片机的双机之间的串行通讯设计。

该设计使用两个单片机,通过串行通信协议进行数据传输。

通讯过程中,两台单片机之间通过数据线连接,并使用中断方式进行数据接收和发送。

同时,本文还介绍了串行口工作方式 0 的应用,以及如何使用移位寄存器进行串行口扩展。

通过该设计,可以实现两台单片机之间的高速数据传输,并且具有良好的稳定性和可靠性。

关键词:单片机,串行通讯,中断方式,移位寄存器,串行口扩展一、引言串行通讯是计算机系统中常用的一种数据传输方式,它可以实现不同设备之间的数据传输。

在单片机应用中,串行通讯也是一种常见的数据传输方式。

本文介绍了一种基于单片机的双机之间的串行通讯设计,该设计使用两个单片机通过串行通信协议进行数据传输。

本文还介绍了串行口工作方式 0 的应用,以及如何使用移位寄存器进行串行口扩展。

通过该设计,可以实现两台单片机之间的高速数据传输,并且具有良好的稳定性和可靠性。

二、设计原理该串行通讯设计使用两个单片机,分别为发送单片机和接收单片机。

发送单片机将数据通过串行口发送到接收单片机,接收单片机再将接收到的数据进行处理。

两台单片机之间通过数据线连接,并使用中断方式进行数据接收和发送。

在串行通讯中,数据是通过串行口进行传输的。

串行口工作方式0 是一种常见的串行口工作方式,它使用移位寄存器进行数据接收和发送。

在移位寄存器中,数据被移位到寄存器中进行传输,从而实现了数据的串行传输。

三、设计实现1. 硬件设计在该设计中,发送单片机和接收单片机分别使用一个串行口进行数据传输。

发送单片机将数据通过串行口发送到接收单片机,接收单片机再将接收到的数据进行处理。

两台单片机之间通过数据线连接,并使用中断方式进行数据接收和发送。

硬件设计主要包括两个单片机、串行口、数据线和中断控制器。

其中,两个单片机分别拥有自己的串行口,并且都能够接收和发送数据。

数据线将两台单片机连接在一起,中断控制器用于处理数据的接收和发送。

双机串行通讯设计实验报告

双机串行通讯设计实验报告

双机串行通讯设计实验报告实验报告:双机串行通讯设计实验一、实验目的本实验的目的是通过双机串行通讯设计,实现两台计算机之间的数据传输和通信,掌握串行通讯的基本原理和应用。

二、实验原理串行通讯是指信息逐位地按顺序传送的通信方式。

串行通讯的优点是只需一对逻辑线路即可完成数据传输,可以减少硬件成本和物理排布空间。

而并行通讯需要多对逻辑线路,更加复杂。

在本实验中,我们使用两台计算机分别作为发送端和接收端。

数据通过串行通讯线路逐位传输,接收端按照发送端发送的顺序恢复数据。

具体步骤如下:1.确定双机串行通讯的物理连接方式,例如通过串口线连接两台计算机的串行端口。

2.在发送端,将待传输的数据进行串行化处理,即将数据逐位拆分成一个个比特,按照一定的传输格式进行编码。

3.将编码后的数据按照一定的速率逐位地通过串行线路发送到接收端。

4.在接收端,根据发送端的传输格式,逐位地接收并解码数据。

5.接收端将解码后的数据进行处理,恢复为原始数据。

三、实验步骤和结果1.硬件连接:使用串口线将两台计算机的串行端口连接起来。

2.软件设置:在两台计算机上分别进行串口的设置,确定串口的参数(波特率、数据位、停止位等)一致。

3.发送端设计:编写发送端的程序,将待传输的数据进行串行化处理,并按照约定的传输格式进行编码。

4.接收端设计:编写接收端的程序,根据发送端的传输格式,逐位接收和解码数据,并进行恢复处理。

5.实验测试:分别在发送端和接收端运行程序,进行数据传输和通信测试。

通过观察接收端接收到的数据是否与发送端发送的数据一致来验证通讯是否成功。

实验结果显示,通过双机串行通讯设计,发送端的数据能够成功传输到接收端,并且接收端能够正确解码和恢复数据,实现了双机之间的数据传输和通信。

四、实验总结本实验通过双机串行通讯的设计,实现了两台计算机之间的数据传输和通信。

实验结果表明串行通讯的设计和实现是可行的。

串行通讯具有硬件成本低、占用空间少等优点,因此在实际应用中被广泛使用。

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

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

单片机双机串行实验报告实验报告:单片机双机串行通信实验一、实验目的本实验旨在通过单片机实现双机间的串行通信,包括数据的发送和接收,并利用这种通信方式完成一定的任务。

二、实验原理1.串行通信:串行通信是将数据一个个位发送或接收的方式。

数据通过一个线路逐位发送或接收,可以减少通信所需的线路数目。

2. UART串口通信:UART是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)的简称,是一种最常用的串口通信方式,通常用于单片机与计算机、单片机与单片机之间的通信。

3.串口模块:串口模块是负责将数据转变为串行传输的硬件模块,包括发送端和接收端。

通过设置波特率、数据位、校验位和停止位等参数,可以实现数据的可靠传输。

4.单片机串口通信:单片机内部集成了UART串口通信接口,只需要通过相应的寄存器配置,可以实现串口通信功能。

5.双机串行通信:双机串行通信是通过串口将两台单片机进行连接,一台单片机作为发送端,负责将数据发送出去;另一台单片机作为接收端,负责接收并处理发送的数据。

三、实验器材与软件1.实验器材:两台单片机、USB转TTL模块、杜邦线若干。

2. 实验软件:Keil C51集成开发环境。

四、实验内容与步骤1.配置发送端单片机(1)连接单片机和USB转TTL模块,将USB转TTL模块的TXD端连接到单片机的P3口,将GND端连接到单片机的地线。

(2)在Keil C51环境下创建新工程,编写发送端程序。

(3)配置串口通信的波特率、数据位、校验位和停止位,并打开串口发送中断。

(4)循环发送指定的数据。

2.配置接收端单片机(1)连接单片机和USB转TTL模块,将USB转TTL模块的RXD端连接到单片机的P3口,将GND端连接到单片机的地线。

(2)在Keil C51环境下创建新工程,编写接收端程序。

(3)配置串口通信的波特率、数据位、校验位和停止位,并打开串口接收中断。

微机原理课程设计 通信

微机原理课程设计 通信

微机原理课程设计――8086双机通讯实验0440305114 张俭一、设计目的:1.了解串行通信的一般原理和8251A和8255以及8253,DAC0832及ADC0809芯片的工作原理。

2.了解RS-232串行接口标准及TTL电路的连接方法。

3.掌握按键识别的原理,键盘输入控制数码管的显示编程技术。

4.进一步掌握微机性能和应用。

5.掌握接线正确性检查测试的方法。

6.要求使用软件编程,局部到整体调试的基本方法和技能,并且独立完成全过程。

7.通过实习提高分析和解决各种问题的能力,提高使用仪器和实验技能。

二、课程设计内容:以32位教学实验系统为平台设计甲乙两台微机之间按RS—232标准协议,全双工串行通信系统。

波特率设为12000HZ;发送方通过选择采样通道,采集模拟信号,通过RS—232接口发送到接受方,接收方收到数据后,将数据送到数码管显示并且将数字信号还原为模拟信号,用示波器观察波形。

三、实验原理:实验用芯片介绍如下:用8251作为发送与接收,0832把接收过来的数据转换成相应的波形,8255与小键盘作为输入,在程序的作用下实现双机通信。

1). 8251A是一个通用串行输入/输出接口,可用来将86系列CPU以同步或异步方式与外部设备进行串行通信。

(在本实验中,我们选用的是异步通信)。

它能将并行输入的8位数据变换成逐位输出的串行信号;也能将串行输入数据变换成并行数据,一次传送给处理机。

由发送器、接收器、数据总线缓冲存储器、读/写控制电路及调制/解调控制电路等5部分组成。

在使用前必须进行初始化,以确定它的工作方式,传送速率,字符格式以及停止位长度等。

可用方式控制控制字、操作命令控制字、状态控制字。

在异步方式下,接收器监视输入到RxD引脚的串行数据。

在无字符是传送为高电平,当出现低电平则启动内部计数器,当计数到一个数据位宽度的一半是重新采样RxD线,若仍为低电平则确认启始位,以后每隔16个脉冲采样一次RxD线,若仍为低电平,并送至移位寄存器,经移位去掉停止位,又经奇偶校验使串行数据变为并行数据,送至接收数据缓冲器,同时发出RxRDY信号,告诉CPU 字符已经可用。

双机之间的串行通信设计

双机之间的串行通信设计

双机之间的串行通信设计双机之间的串行通信设计一. 设计目的1、了解串行通信的工作原理2、了解键盘设定的工作原理3、掌握80C51的定时器1计数器1的编程4、掌握电路板的实物焊接随着电子技术的飞速发展,单片机也步如一个新的时代,越来越多的功能各异的单片机为我们的设计提供了许多新的方法与思路。

对于莫一些场合,比如:复杂的后台运算及通信与高实时性前台控制系统、软件资源消耗大的系统、功能强大的低消耗系统、加密系统等等。

如果合理使用多种不同类型的单片机组合设计,可以得到极高灵活性与性能价格比,因此,多种异型单片机系统设计渐渐成为一种新的思路,单片机技术作为计算机技术的一个重要分支,由于单片机体积小,系统运行可靠,数据采集方便灵活,成本低廉等优点,在通信中发挥着越来越重要的作用。

但能在一些相对复杂的单片机应用系统中,仅仅一个单片机资源是不够的,往往需要两个或多个单片机系统协同工作。

这就对单片机通信提出了很高要求。

二.串行口及其扩展简介1.串行通信的基本特征是数据逐位顺序进行传送2.全双工制式是指通信双方均设有发送器和接收器,并且信道划分为发送信道和接收信道,因此全双工制式可实现甲乙双方同时发送和接收数据,发送时能接收,接收时也能发送3.串行通信的传送速率用于说明数据传送的快慢.“波特率”表示每秒种传输离散信号事件的个数,或每秒信号电平的变化次数,单位为band(波特)。

“比特率”是指每秒传送二进制数据的位数,单位为比特/秒,记作bits/s或b/s或bps。

在二进制的情况下,波特率与比特率数值相等4.SM0=1、SM1=0,选择方式2;由TXD引脚发送数据。

由RXD引脚接收数据。

方式2波特率: 波特率=(2SMOD /64) ╳ fosc三、设计要求1.两片单片机利用串行口进行串行通信:串行通信的波特率可从键盘进行设定,可选的波特率为1200、2400、4800和9600bit/s。

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

微机原理与单片机实验报告、课程设计_双机通信

微机原理与单片机实验报告、课程设计_双机通信

实验三双机通信实验一、实验目的UART 串行通信接口技术应用二、实验实现的功能用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。

三、系统硬件设计四、系统软件设计#include<stc.h>void send(void) ;unsigned char a[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd};sbit L0=P0^0; //按位定义sbit L1=P0^1;sbit L2=P0^2;sbit L3=P0^3;sbit L5=P0^5;sbit L6=P0^6;sbit L7=P0^7;void Delay300ms() //300ms延时{unsigned char i, j, k;i = 13;j = 156;k = 83;do{do{while (--k);} while (--j);} while (--i);}Scan_Key() //按键扫描,返回按键值{unsigned char FLAG=0;while(1){P3=0xbf;Delay300ms();if(L5==0){FLAG=1;}if(L6==0){FLAG=2;}if(L7==0){FLAG=3;}if(FLAG!=0)break;P3=0x7f;Delay300ms();if(L5==0){FLAG=4;}if(L6==0){FLAG=5;}if(L7==0){FLAG=6;}break;}return FLAG;}main(){P1M0=0xff; //推挽式输出P1M1=0x00;TMOD=0x20;TH1=0xf4;TL1=0xf4;SCON=0xd0;PCON=0x00;TR1=1;send();}void send() //发送、接收程序{unsigned char i;while(RI==0) //等待接收同时发送{i=Scan_Key();L0=1;L1=1;L2=1;L3=0;P1=0x00;Delay300ms();P1=a[i];Delay300ms();Delay300ms();SBUF=a[i];TI=0;}while(TI==0) //等待发送同时接收{L0=1;L1=1;L2=0;L3=1;P1=SBUF;Delay300ms();Delay300ms();RI=0; }}五、实验过程中遇到的问题及解决方法1、怎样才能使数码管既显示输入的数字又显示输出的数字?解决:用其中一个数码管显示输入数据,另一个显示输出数据。

微机原理课程设计(双机通信示波器)报告

微机原理课程设计(双机通信示波器)报告

目录一、内容摘要 (1)二、设计的意义和系统功能及使用方法 (2)2.1 本课程设计的意义 (2)2.2 系统功能及使用方法 (2)三、硬件电路设计及描述 (2)四、软件设计流程及描述 (3)五、源程序代码 (10)六、课程设计收获、体会 (16)七、参考文献 (17)一、内容摘要本课程设计主要目的是实现计算机的双机串行通信。

在远程监控和自动控制系统中,通信编程是很重要的,并且在大多数情况下为串口通信的编程,因为串口通信较并行通信传输距离远,且信号跟稳定,通信线少,节约经济成本。

通过本次设计,有助于设计者了解和掌握串行通信的基本原理及编程设置。

本设计利用了计算机9针RS-232串行接口作为数据传送通道,进行双机、串行、异步、全双工的通信,并采用Delphi语言开发双机通信程序相应的人机界面,实现从键盘输入数据到发送缓冲区,并将接收缓冲区的数据读入并显示在相应的窗口,及具有将输入输出数据以十六进制数码进行传输的功能。

二、设计的意义和系统功能及使用方法2.1 本课程设计的意义本课程设计通过利用计算机9针RS-232串口来实现双机串行通信,进一步巩固了学生在微机及汇编语言程序设计课程中所学习到的知识,同时,通过使用Delphi语言开发人机界面,也能让学生了解并掌握Delphi这种在自动化控制中有着很大作用的开发工具。

2.2 系统功能及使用方法本系统主要功能是实现计算机的双机串行通信,通信时参数——通信端口、波特率、数据位、校验位以及停止位可以在人机交互界面中动态修改,发送及接收到的数据可即时显示在交互界面的相应窗口处,并且还可设置是否以十六进制发送和显示接收到的数据。

本系统使用方法简单易行。

首先务必用串口线将两台微机的串行接口连接好;再在两台微机中分别运行用Delphi编写的可执行程序,此时该程序窗口中的指示灯为黑色,按需要设置好各通信参数——通信端口、波特率、数据位、校验位以及停止位(注意:两台微机的通信参数必须设置一致,否则通信会出现错误);然后单击“打开端口”按钮,如打开端口成功,则指示灯变为红色,此时可在一台发送区输入要发送的数据,如要以十六进制传送则勾选“十六进制发送”复选框,最后单击“发送”按钮,至此即可从另一台微机的相应窗口看到传送来的数据,如要以十六进制显示输入缓冲区的数据则勾选“十六进制显示”复选框。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

河北科技大学课程设计报告学生姓名:学号:专业班级:课程名称:微型计算机原理及应用技术学年学期:2 0 1 2 —2 0 1 3 学年第一学期指导教师:2 0 13 年1 月课程设计成绩评定表目录一、设计题目 (1)二、设计目的 (1)三、设计原理及方案 (1)1、8251A的基本性能 (1)2、8251A的内部结构 (1)3、8251外部引脚图 (2)4、8251A的编程 (2)5、8251A的初始化 (3)四、实现方法 (5)1、程序流程图如下: (5)2、连线图 (5)3、8251A操作过程流程图 (7)4、试验程序(见附录) (7)五、实施结果 (7)六、改进意见及建议 (7)七、个人所做贡献 (8)八、设计体会 (8)九、同组成员名单 (8)十、附录 (9)一、设计题目双机通过两台试验箱串行通讯二、设计目的1、掌握8088/86实验串行口通信的方法。

2、了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。

3、学习串行口通讯程序编写方法。

三、设计原理及方案1、8251A的基本性能8251A是可编程的串行通信接口芯片,基本性能有:(1).两种工作方式:同步方式,异步方式。

同步方式下,波特率为064K,异步方式下,波特率为0~19.2K。

(2).同步方式下的格式每个字符可以用5、6、7或8位来表示,并且内部能自动检测同步字符,从而实现同步。

除此之外,8251A也允许同步方式下增加奇/偶校验位进行校验。

(3).异步方式下的格式每个字符也可以用5、6、7或8位来表示,时钟频率为传输波特率的1、16或64倍,用1位作为奇/偶校验。

1个启动位。

并能根据编程为每个数据增加1个、1.5个或2个停止位。

可以检查假启动位,自动检测和处理终止字符。

(4).全双工的工作方式(5).提供出错检测2、8251A的内部结构发送器由发送缓冲器和发送控制电路两部分组成。

接收器由接收缓冲器和接收控制电路两部分组成。

数据总线缓冲器,读/写控制电路,调制解调控制电路。

8251A内部结构图3、8251外部引脚图8251的外部引脚下图所示,共28个引脚,每个引脚信号的输入输出方式如图中的箭头方向所示。

8251外部引脚图4、8251A的编程编程的内容包括两大方面:一是由CPU发出的控制字,即方式选择控制字和操作命令控制字;二是由8251A向CPU送出的状态字。

(1)、方式选择控制字(模式字)方式选择控制字的格式如图所示。

(2)、操作命令控制字(控制字)操作命令控制字的格式如下:(3)、状态字状态字的格式如下:5、8251A的初始化8251的初始化和操作流程下图所示。

8251初始化流程图a)芯片复位以后,第一次用奇地址端口写入的值作为模式字进入模式寄存器。

b)如果模式字中规定了8251A工作在同步模式,c)由CPU用奇地址端口写入的值将作为控制字送到控制寄存器,而用偶地址端口写入的值将作为数据送到数据输出缓冲寄存器。

四、实现方法1、程序流程图如下:2、连线图3、8251A操作过程流程图8251A操作过程流程图4、试验程序(见附录)五、实施结果双机串行通信实现了数据的双项收发。

两台试验箱A,B可相互发送、接受数据。

在一台小键盘键入字符,由8251A的发送端发送给另一台的8251A的接收端接收,然后在另一台LED 数码显示器上显示出来。

同样另一台也可做发送端发送字符。

六、改进意见及建议本次课程设计是通过8251的收发功能将两个试验箱实现串行通讯,我们组顺利实现了两台机箱的同时发送和接收数据的双机通讯。

而在本次试验中发送的一直都是一个字符而不能发送多位字符,我希望改进的是可以发送任意长短的字符,由用户自己定义。

七、个人所做贡献在本次试验中我负责程序的编写、修改和调试,我们在网上查找,在本机实验程序中查找,修改,在一条一条指令的研究后,在询问了别人意见后,最后定下了附录里的这段程序。

八、设计体会学生学习完理论后就要进行课程设计,因为理论课程学习是让学生学习基本理论知识,对课程内容和原理有比较深刻的理解,只要从理论上理解,不用考虑实际的可行性,而课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程,不仅需要在理论上能实现而且还要考虑实际的可行性,不能纸上谈兵。

随着科学技术发展的日新日异,微型计算机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。

因此作为二十一世纪的大学来说掌握微型计算机的开发技术是十分重要的。

尤其是在现在这个金融危机的时刻,找工作越来越难,只有加强自身的能力才能有一席立足之地。

回顾起此次接口课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说8251A芯片的使用,软件的应用技巧,对汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。

九、同组成员名单十、附录OUTBIT equ 08002h ; 位控制口OUTSEG equ 08004h ; 段控制口IN_KEY equ 08001h ; 键盘读入口CS8251D equ 09000h ; 串行通信控制器数据口地址CS8251C equ 09001h ; 串行通信控制器控制口地址data segmentLEDBuf db 6 dup(?) ; 显示缓冲Num db 1 dup(?) ; 显示的数据DelayT db 1 dup(?)RBuf db 0TBuf db 0LEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hdb 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h KeyTable: ; 键码定义db 16h, 15h, 14h, 0ffhdb 13h, 12h, 11h, 10hdb 0dh, 0ch, 0bh, 0ahdb 0eh, 03h, 06h, 09hdb 0fh, 02h, 05h, 08hdb 00h, 01h, 04h, 07hcode segmentassume cs:code, ds:dataDelay proc nearpush ax ; 延时子程序push cxmov al, 0mov cx,axloop $pop cxpop axretDelay endpmov bx, offset LEDBufmov cl, 6 ; 共6个八段管mov ah, 00100000b ; 从左边开始显示DLoop:mov dx, OUTBITmov al, 0out dx,al ; 关所有八段管mov al, [bx]mov dx, OUTSEGout dx, almov dx, OUTBITmov al, ahout dx, al ; 显示一位八段管push axmov ah, 1call Delaypop axshr ah, 1inc bxdec cljnz DLoopmov dx, OUTBITmov al, 0out dx,al ; 关所有八段管retDisplayLED endpTestKey proc nearmov dx, OUTBITmov al, 0out dx, al ; 输出线置为0mov dx, IN_KEYin al, dx ; 读入键状态not aland al, 0fh ; 高四位不用retTestKey endpGetKey proc nearmov ch, 00100000bKLoop:mov dx, OUTBITmov al, ch ; 找出键所在列not alout dx, alshr ch, 1mov dx, IN_KEYin al, dxnot aland al, 0fhjne Goon_ ; 该列有键入dec cljnz KLoopmov cl, 0ffh ; 没有键按下, 返回0ffhjmp Exit1Goon_:dec clshl cl, 2 ; 键值= 列X 4 + 行mov ch, 4LoopC:test al, 1jnz Exit1shr al, 1inc cldec chjnz LoopCExit1:mov dx, OUTBITmov al, 0out dx, almov ch, 0mov bx, offset KeyTableadd bx, cxmov al, [bx] ; 取出键码mov bl, alWaitRelease:mov dx, OUTBITmov al, 0out dx, al ; 等键释放call Delaycall TestKeyjne WaitReleasemov al, blretGetKey endpIInit proc near ; 8251初始化mov dx, CS8251Cmov al, 01001111b ; 1停止位,无校验,8数据位, x64out dx, almov al, 00010101b ; 清出错标志, 允许发送接收out dx, alretIInit endpSend proc near ; 串口发送mov dx, CS8251Cmov al, 00010101b ; 清出错,允许发送接收out dx, alWaitTXD:in al, dxtest al, 1 ; 发送缓冲是否为空jz WaitTXDmov al, TBuf ; 取要发送的字mov dx, CS8251Dout dx, al ; 发送push cxmov cx,0ffffhloop $pop cxretSend endpReceive proc near ; 串口接收mov dx, CS8251CWaitRXD:in al, dxtest al, 2 ; 是否已收到一个字je WaitRXDmov dx, CS8251Din al, dx ; 读入mov RBuf, alretstart proc nearmov ax, datamov ds, axcall IInitmov LEDBuf, 0ffh ; 显示8.8.8.8.mov LEDBuf+1, 0ffhmov LEDBuf+2, 0ffhmov LEDBuf+3, 0ffhmov LEDBuf+4, 0mov LEDBuf+5, 0MLoop:call DisplayLED ; 显示mov dx, CS8251Cin al, dx ; 是否接收到一个字test al, 2jnz RcvDatacall TestKey ; 有键入?je MLoop ; 无键入, 继续显示call GetKey ; 读入键码and al, 0fh ; 显示键码mov TBuf, alcall Sendjmp MLoopRcvData:call Receive ; 读入接收到的字mov al, RBufand al, 0fh ; 只显示低四位mov ah, 0mov bx, offset LEDMAPadd bx, axmov al, [bx] ; 转换成显示码mov LEDBuf+5, aljmp MLoopStart endpcode endsend start。

相关文档
最新文档