当前位置:文档之家› 双机之间的串行通信设计(2)解读

双机之间的串行通信设计(2)解读

双机之间的串行通信设计(2)解读
双机之间的串行通信设计(2)解读

2012~2013学年第一学期

《单片机原理与应用》

课程设计报告

题目:双机之间的串行通信设计专业:通信工程

班级:10通信2

姓名:余诗长、杨号、苏李闯

舒怀、汪才锐、潘升旗

指导教师:周珍艮、崔雪英

电气工程系

2012年10月27日

《单片机原理与应用》任务书

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

两片单片机之间进行串行通信,发送端将0~f循环发送到接收端,并在收端显示。本次设计,对于两片89c51,采用RS232进行双机通信。发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。

接收方接收后,在数码管上显示接受的信息。为提高抗干扰能力,还可以在输入输出端加光耦合进行光电隔离。

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

关键字51单片机串行通信接口

《单片机原理与应用》 (1)

课程设计报告 (1)

《单片机原理与应用》任务书 ............................................................................................... I 摘要 ......................................................................................................................................... II 目录 ...................................................................................................................................... I II 第1章双机之间的串行通信设计原理. (1)

第2章双机之间的串行通信设计 (2)

2.1硬件设计 (2)

2.2主机模块设计 (2)

2.3从机模块设计 (4)

2.4 键盘扫面子程序设计 (4)

第3章仿真 (6)

3.1仿真软件的了解 (6)

3.2仿真过程操作 (6)

3.3运行测试 (6)

总结 (7)

参考文献 (8)

附录 (9)

答辩记录及评分表 (14)

第1章双机之间的串行通信设计原理

两个单片机之间进行通讯波特率的设定,最终归结到对定时计数器T1计数初值TH1、TL1进行设定。故本题目本质上是通过键盘扫描得到设定的波特率,从而载入相应的T1计数初值TH1、TL1实现的。示例程序中将0xaa从主机传输到从机,并显示在从机的数码管上实现串口通讯的验证。

如串口通讯线路过长,可考虑采用MAX232进行电平转换,以延长传输距离。值得注意的是,为了减少计算载入初值时的误差,本项目最好采取11.0592MHz的晶振。

我们设计以AT89C51单片机为核心,利用其内部的串行口,通过硬件与软件相结合的方式,实现双机的全双工的串行通信。硬件电路包括键盘电路,显示电路,单片机主控电路,串行通信线和电源电路。软件包括键盘扫描程序,显示程序,发送程序和接受程序。发送和接收都采用中断方式。由于两个单片机应用系统相距很近,近程通信时,可以不使用调制解调器,将它们的串行口直接相连就可以实现全双工的串行通信。电路设计如图1所示。

图1 系统整体电路图

第2章双机之间的串行通信设计

本系统利用单片机的串行口,由软件和硬件两部分协调实现两单片机的串行数据传输。硬件电路以AT89C51单片机为核心,外围电路包括键盘电路(数据的输入),显示电路(数据的输出)。工作在硬件电路基础上的软件主要完成数据的输入,存储,显示,发送和接收。由于两单片机相距很近,可以直接将其串行口相连。系统整体电路图如图2所示。

图2 系统整体电路框图

2.1 硬件设计

系统组成下面就以主号机为例,介绍硬件。硬件电路包括AT89C51单片机,共阳性LED数码管以及传输线。AT89C51是一个低电压,低功耗,高性能CMOS 8位单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外设中断口,2个16位可编程定时计数器,2个全双工串行通信口。AT89C51可以按照常规的方法进行编程,也可以在线编程。片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统。

2.2 主机模块设计

此系统欲实现双机的全双工的串行通信。甲乙两机的内部软件是完全相同的,主机和从机都能发送和接收数据信息,能同时进行数据交换。假设主机为发

送方,从机为接收方。当按下发送按键时,主机开始发送数据,存储在R7中并通过显示器显示。按下从机的接收按键,从机开始接收数据,每接收一个数值就直接送到显示器显示。本设计通过键盘输入数据。利用软件控制键盘进行加1或者减1操作,可以使其输入0~F之间的任意一个数。主机主程序如图3所示。

图3 主机主程序流程图

2.3 从机模块设计

从机从主机接收数据,并在送至显示器显示。从机主程序如图4所示。

图4 从机主程序流程图

2.4 键盘扫面子程序设计

键盘扫面程序是通过软件的操作对键盘输入的逐行逐列进行扫描设置,从而达到确定输入的键值,通过键盘扫描程序可以确定其输入0~F之间的任意一个数。

键盘扫面程序如图5所示。

图5 键盘扫面程序流程图

第3章仿真

3.1 仿真软件的了解

Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。

3.2 仿真过程操作

加载目标代码文件打开元器件单片机属性窗口,在“Program File”栏中添加上面编译好的目标代码文件;在“Clock Frequency”栏中输入晶振频率为11.0592MHz。

3.3 运行测试

启动仿真结果如图6所示,二极管间隔点亮了,表明通讯成功了。

图6 整体仿真结果图

总结

通过这一次的课程设计,我不仅仅学到了专业知识,更使我懂得如何做事。其实每一次的课程设计都是在教会我怎么样做事情,它告诉我完成一件事情,光靠团队的人数是没有任何优势的,关键在于团队之中是否有优秀的骨干去引领这个团队完成这件事情。

在老师眼中本课题知识体系庞大,最主要是难,在学生中就变得更甚,在我们队伍取到题目的初期甚至出现少部分同学短暂的晕厥现象。随后不久,在各位老师英明的指导之下,我们的课程设计得到圆满成功。在本次课程设计中让我们有很大的收获,不仅对课本的知识点有更深刻的认识而且也让我们对很多电脑软件有很大的了解。希望我们的团队在今后有更大的突破。

参考文献

[1] 高峰.单片微型计算机原理与接口技术.科学出版社,2007

[2] 马丽.焦永梅.单片机仿真实验系统.石家庄铁道大学四方学院,2011

[3] 陈桂友.单片机原理及应用.机械工业出版社,2007

[4] 刘朝青.单片机原理及其接口技术.北京航空航天大学出版社,1999

附录一、主机程序

ORG 0000H

AJMP START

ORG 0030H

START: MOV TMOD, #20H

MOV SCON, #40H

CLR ES

MOV PCON, #00H

MOV B, #0FAH

CLR ET1

CLR TI

SETB TR1

AGAIN1:MOV A, B

MOV TH1,A

MOV TL1,A

AGAIN2:LCALL JIAN

MOV A, 33H

MOV SBUF, A

JNB TI, $

CLR TI

AJMP HE

HE: CJNE A,, #0F3H, LP1

MOV B, #0F3H

AJMP AGAIN1

LP1: CJNE A, #0FAH, LP2

MOV B, #0FAH,

AJMP AGAIN1

LP2: CJNE A, #0FDH, LP3

MOV B, #0FDH

AJMP AGAIN1

LP3: CJNE A, #0FEH, AGAIN2

MOV B, #0FEH

AJMP AGAIN1

JIAN: PUSH ACC

PUSH PSW

PUSH B

CLR C

MOV 20H,#00H

SMJP: SETB C

MOV A, #11011111B

MOV R4, A

MOV R5, #00H

MOV R7, #4H

MAIN1: MOV DPTR,#8002H

MOV A, R4

MOVX @DPTR, A

MOV DPTR, #8001H

MOVX A, @DPTR

ORL A, #0F0H

CPL A

JNZ ZJH

DJNZ R7, JZZ

AJMP SMJP

JZZ: MOV A, R4

RRC A

MOV R4, A

INC R5

AJMP MAIN1

ZJH: CJNE A, #01H, AAA

CLR C

AJMP HHW0

AAA: CJNE A, #02H, BBB

CLR C

AJMP HHW1

BBB: CJNE A, #04H, STEP2

CLR C

AJMP HHW2

STEP2:CJNE A, #08H, OVER

AJMP HHW3

HHW0:MOV A, R5

AJMP XS

HHW1: MOV A, #4H

ADD A, R5

AJMP XS

HHW2:MOV A, #08H

ADD A, R5

AJMP XS

HHW3: MOV A, #0CH

ADD A, R5

AJMP XS

XS: RL A

MOV DPTR, #TABLEB

JMP @A+DPTR OVER: AJMP SMJP

JPCL: JB 00H, XGSX

AJMP SMJP XGSX: JB 02H, XGSXSW

MOV 34H, A

JNB 02H, SMJP XGSXSW: JB 04H, ZHDJS

MOV 35H, A

MOV A, 34H

SW AP A

ORL A, 35H

MOV 33H, A

JNB 04H, SMJP ZHDJS: POP B

POP PSW

POP ACC

JS: RET TABLEB: AJMP KEY0

AJMP KEY1

AJMP KEY2

AJMP KEY3

AJMP KEY4

AJMP KEY5

AJMP KEY6

AJMP KEY7

AJMP KEY8

AJMP KEY9

AJMP KEYA

AJMP KEYB

AJMP KEYC

AJMP KEYD

AJMP KEYE

AJMP KEYF KEY0: SETB 00H

AJMP JPCL KEY1: MOV A, #01H

AJMP JPCL KEY2: SETB 02H

AJMP JPCL KEY3: MOV A, #03H

AJMP JPCL KEY4: SETB 04H

AJMP JPCL KEY5: MOV A, #05H

AJMP JPCL

KEY6: MOV A, #06H

AJMP JPCL

KEY7: MOV A, #07H

AJMP JPCL

KEY8: MOV A, #08H

AJMP JPCL

KEY9: MOV A, #09H

AJMP JPCL

KEYA: MOV A, #0AH

AJMP JPCL

KEYB: MOV A, #0BH

AJMP JPCL

KEYC: MOV A, #0CH

AJMP JPCL

KEYD: MOV A, #0DH

AJMP JPCL

KEYE: MOV A, #0EH

AJMP JPCL

KEYF: MOV A, #0FH

AJMP JPCL 二、从机程序

ORG 0000H

AJMP START

ORG 0030H

START: MOV TMOD, #20H

CLR ES

MOV SCON, #50H

MOV B, #0FAH

CLR ET1

CLR RI

SETB TR1

AGAIN1: MOV A, B

MOV TH1, A

MOV LL1, A

AGAIN2: JNB RI, $

CLR RI

MOV A, SBUF

MOV 40H, A

ANL A, #0F0H

SWAP A

MOV 42H, A

MOV A, 40H

ANL A, #0FH

MOV 41H, A

LL: LCALL XIAN

MOV A, 40H

CJNE A, #0F3H, LP1

MOV B, #0F3H

AJMP AGAIN1

LP1: CJNE A, #0FAH, LP2

MOV B, #0FAH,

AJMP AGAIN1

LP2: CJNE A, #0FDH, LP3

MOV B, #0FDH

AJMP AGAIN1

LP3: CJNE A, #0FEH, AGAIN2

MOV B, #0FEH

AJMP AGAIN1

XIAN: MOV A, 42H

MOV DPTR, #TABLE

MOVC A, @A+DPTR

MOV DPTR, #8004H

MOVX @DPTR, A

MOV DPTR, #8002H

MOV A, #02H

MOVX @DPTR, A

ACALL DELAY

MOV A, 41H

MOV DPTR, #TABLE

MOVC A, @A+DPTR

MOV DPTR, #8004H\

MOVX @DPTR, A

MOV DPTR, #8002H

MOV A, #01H

MOVX @DPTR, A

ACALL DELAY

RET

DELAY: MOV R7,#0FFH

MOVE: DJNZ R7, MOVE

RET

TABLE: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH, 77H, 7CH, DB 39H, 5EH, 79H, 71H, 73H, 3EH, 31H, 6EH, 76H, 38H

答辩记录及评分表

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

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

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

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

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

UART串口通信设计实例

2.5 UART串口通信设计实例(1) 接下来用刚才采用的方法设计一个典型实例。在一般的嵌入式开发和FPGA设计中,串口UART是使用非常频繁的一种调试手段。下面我们将使用Verilog RTL编程设计一个串口收发模块。这个实例虽然简单,但是在后续的调试开发中,串口使用的次数比较多,这里阐明它的设计方案,不仅仅是为了讲解RTL编程,而且为了后续使用兼容ARM9内核实现嵌入式开发。 串口在一般的台式机上都会有。随着笔记本电脑的使用,一般会采用USB转串口的方案虚拟一个串口供笔记本使用。图2-7为UART串口的结构图。串口具有9个引脚,但是真正连接入FPGA开发板的一般只有两个引脚。这两个引脚是:发送引脚TxD和接收引脚RxD。由于是串行发送数据,因此如果开发板发送数据的话,则要通过TxD线1 bit接着1 bit 发送。在接收时,同样通过RxD引脚1 bit接着1 bit接收。 再看看串口发送/接收的数据格式(见图2-8)。在TxD或RxD这样的单线上,是从一个周期的低电平开始,以一个周期的高电平结束的。它中间包含8个周期的数据位和一个周期针对8位数据的奇偶校验位。每次传送一字节数据,它包含的8位是由低位开始传送,最后一位传送的是第7位。

这个设计有两个目的:一是从串口中接收数据,发送到输出端口。接收的时候是串行的,也就是一个接一个的;但是发送到输出端口时,我们希望是8位放在一起,成为并行状态(见图2-10)。我们知道,串口中出现信号,是没有先兆的。如果出现了串行数据,则如何通知到输出端口呢?我们引入“接收有效”端口。“接收有效”端口在一般情况下都是低电平,一旦有数据到来时,它就变成高电平。下一个模块在得知“接收有效”信号为高电平时,它就明白:新到了一个字节的数据,放在“接收字节”端口里面。

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

河北科技大学 课程设计报告 学生姓名:学号: 专业班级: 课程名称:微型计算机原理及应用技术学年学期:2 0 1 2 —2 0 1 3 学年第一学期 指导教师: 2 0 1 3 年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 内部结构图

双机间的串口双向通信(DOC)

单片机原理与应用课程设计任务书

单片机原理与应用学年设计说明书 学院名称:计算机与信息工程学院 班级名称: 学生姓名: 学号:2012211369 题目:双机间的串口双向通信 指导教师 姓名: 起止日期:2014.12.29至2015.1.4

一、绪论 随着电子技术的飞速发展,单片机也步如一个新的时代,越来越多的功能各异的单片机为我们的设计提供了许多新的方法与思路。 对于一些场合,比如:复杂的后台运算及通信与高实时性前台控制系统、软件资源消耗大的系统、功能强大的低消耗系统、加密系统等等。如果合理使用多种不同类型的单片机组合设计,可以得到极高灵活性与性能价格比,因此,多种异型单片机系统设计渐渐成为一种新的思路,单片机技术作为计算机技术的一个重要分支,由于单片机体积小,系统运行可靠,数据采集方便灵活,成本低廉等优点,在通信中发挥着越来越重要的作用。 但在一些相对复杂的单片机应用系统中,仅仅一个单片机资源是不够的,往往需要两个或多个单片机系统协同工作。这就对单片机通信提出了更高要求。 单片机之间的通信可以分为两大类:并行通信和串行通信。串行通信传输线少,长距离传输时成本低,且可以利用数据采集方便灵活,成本低廉等优点,在通信中发挥着越来越重要的作用。所以本系统采用串行通信来实现单片机之间可靠的,有效的数据交换。 二、相关知识 2.1 双机通信介绍 两台机器的通信方式可分为单工通信、半双工通信、双工通信,他们的通信原理及通信方式为: 单工通信:是指消息只能单方向传输的工作方式。单工通信信道是单向信道,发送端和接收端的身份是固定的,发送端只能发送信息,不能接收信息;接收端只能接收信息,不能发送信息,数据信号仅从一端传送到另一端,即信息流是单方向的。通信双方采用单工通信属于点到点的通信。根据收发频率的异同,单工通信可分为同频通信和异频通信。 半双工通信:这种通信方式可以实现双向的通信,但不能在两个方向上同时进行,必须轮流交替地进行。也就是说,通信信道的每一段都可以是发送端,也可以是接端。但同一时刻里,信息只能有一个传输方向。如

串行同步通信

串行接口同步通信协议 [摘要]:接口在微型计算机系统的设计和应用中占有极为重要的地位。在微型计算机系统中,CPU要与存储器和输入/输出设备之间交换信息,这些信息的交换要借助接口来实现。接口是沟通微处理机和外部设备之间的桥梁,它减轻了CPU的负担,使CPU能够充分的发挥任务管理和逻辑判断作用,使CPU和外部设备能更加协调的完成输入/输出工作,从而提高整机的工作效率和系统功能。串行接口是使用串行方式进行数据传输的输入/输出接口,根据在串行通信中数据的定时的不同,串行通信可分为同步通信和异步通信。同步通信中为保证通信的正确,发送装置和接收装置事先必须有一个双方共同遵守的协议,这就是串行接口同步通信协议。 [关键词]:输入/输出接口,串行接口,同步通信,协议,SDLC/HDLC 规程 一、串行接口 在计算机领域内,有两种数据传送方式:串行传送和并行传送。并行数据传送中,数据在多条并行1比特宽的传输线上同时由源传送到目的,这种传送方式也称为比特并行或字节串行。串行数据传送中,数据在单条1比特宽的传输线上,1比特1比特

的按顺序分时传送。 串行通信一般使用在计算机与计算机之间、计算机和远程终端之间、终端与终端之间的通信中,传输距离通常从几米到数千公里。与典型设备相关的串行接口,数据传输的速率每秒在0~2百万比特的范围内。串行传输的速率和距离成反比,数据传输速率和距离的关系如图所示。 串行通信接口的信号电平常采用RS-232-C信号电平或20mA 电流环路操作方法。 串行数据的发送由发送时钟控制。数据发送过程:把并行的数据序列送入移位寄存器,然后通过移位寄存器由发送时钟触发进行移位输出,数据位的时间间隔可由发送时钟周期来划分。发送时钟、待发送的二进制数据和出现在传输线上的信号波形三者的关系如图所示。

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

双机串行通信的设计与实现 一、设计要求 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,同时也可以接工业仪器仪表。用于驱动和连线的改进,RS-232只限于PC串口和设备间点对点的通信。 IBM PC及其兼容机提供了一种有较强的硬件依赖性,但却比较灵活的串行口I/O的方法,即通过INT 14调用ROM BIOS串行通信口的例行程序。该例行程序。该例行程序包括将串行口初始化为指定的字节结构和传输速率,检查控制器的状态,读写字符等功能。 14号中断的功能总结如下: 串行口服务(Serial Port Service——INT 14H) 00H —初始化通信口03H —读取通信口状态 01H —向通信口输出字符04H —扩充初始化通信口 02H —从通信口读入字符 (1)、功能00H:初始化通信口 入口参数:AH=00H DX=初始化通信口号(0=COM1,1=COM2,……) AL=初始化参数,参数的说明如下:波特率奇偶位停止位字的位数76543210

串口通讯设计之Verilog实现

串口通讯设计之 V e r i l o g实现 Revised as of 23 November 2020

串口通讯设计之V e r i l o g实现 FPGA串口模块是将由RS-485发送过来的数据进行处理,提取出8位有效数据,并按异步串口通讯的格式要求输出到MAX3223的12脚。FPGA选用Xilinx公司的SpartanII系列xc2s50。此部分为该设计的主体。如上所述,输入数据的传输速率为700k波特率。为了使FPGA能够正确地对输入数据进行采样,提高分辨率能力和抗干扰能力,采样时钟必须选用比波特率更高的时钟,理论上至少是波特率时钟的2倍。 1 串口通信基本特点随着多微机系统的应用和微机网络的发展,通信功能越来越显得重要。串行通信是在一根传输线上一位一位地传送信息.这根线既作数据线又作联络线。串行通信作为一种主要的通信方式,由于所用的传输线少,并且可以借助现存的电话网进行信息传送,因此特别适合于远距离传送。在串行传输中,通信双方都按通信协议进行,所谓通信协议是指通信双方的一种约定。约定对数据格式、同步方式、传送速度、传送步骤、纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。异步起止式的祯信息格式为:每祯信息由四部分组成: 位起始位。 ~8位数据位。传送顺序是低位在前,高位在后.依次传送。c.一位校验位,也可以没有。d.最后是1位或是2位停止位。 FPGA(Field Pmgrammable Gate Array)现场可编程门阵列在数字电路的设计中已经被广泛使用。这种设计方式可以将以前需要多块集成芯片的电路设计到一块大模块可编程逻辑器件中,大大减少了电路板的尺寸,增强了系统的可靠性和设计的灵活性。本文详细介绍了已在实际项目中应用的基于FPGA的串口通讯设计。 本设计分为硬件电路设计和软件设计两部分,最后用仿真验证了程序设计的正确性。 2 系统的硬件设计 本方案的异步串行通信的硬件接口电路图如图1所示,主要由四部分组成:RS-485数据发送模块、FPGA 串口模块、MAX3223和DB9。各部分功能简述如下: RS-485数据发送模块是将前续电路的数据发送到FPGA,供本电路处理,亦即本电路的输入。RS485是符合RS-485和RS-4225串口标准的低功耗半双工收发器件,有和5V两种,在本设计中选用了的器件SP3485。 在本设计中。485的7脚和8脚与前端信号相连接,用于接收输入的数据。数据格式是这样的:一帧数据有25位,报头是16个高电平和1个低电平,接下来是 8位有效的数据。传输速率为700k波特率。2脚是使能端,与FPGA的I/O口相连,由FPGA提供逻辑控制信号。1脚和4脚也与FPGA相连,由 FPGA对输入数据进行处理。 FPGA串口模块是将由RS-485发送过来的数据进行处理,提取出8位有效数据,并按异步串口通讯的格式要求输出到MAX3223的12脚。FPGA选用Xilinx公司的Spartan II系列xc2s50。此部分为该设计的主体。如上所述,输入数据的传输速率为700k波特率。为了使FPGA能够正确地对输入数据进行采样,提高分辨率能力和抗干扰能力,采样时钟必须选用比波特率更高的时钟,理论上至少是波特率时钟的2倍。在本设计中选用4倍于波特率的时钟,利用这种4倍于波特率的接收时钟对串行数据流进行检测和定位采样,接收器能在一个位周期内采样4次。如果没有这种倍频关系,定位采样频率和传送波特率相同,则在一个位周期中,只能采样一次,分辨率会差。比如,为了检测起始位下降沿的出现,在起始位的前夕采样一次之后,下次采样要到起始位结束前夕才进行。而假若在

OLED同步串行通信

1. OLED只能写入,不能读出。4线串行模式:D0——串行时钟线CLK,D1——串行数据线DA TA,P/S——模式选择、高为并行、低为串行。 并行模式需要使用全部数据及控制脚,串行模式只需要CLK、DA TA、RES、DC、CS共5个控制脚(WR、RD不用了)。 2.最常用配置方式: 3.同步串行通讯:时钟线、数据线,通过时钟保持数据同步。异步串行通讯:只有一根数据线,通过波特率保证数据同步。无线通信一般均为异步串行通信(一根天线)。 4.串行总线分三类:单总线(1—Wire)、SPI总线、I2C总线。单总线:用一根线数据收发和时钟信号,可以提供电源。SPI总线3根或4根线组成,数据收发,器件选择,时钟信号。I2C总线,两根线,数据收发,时钟信号。单总线特点:一、单总线芯片通过一根信号线传递控制信号、地址信号、数据信号。二、每个单总线芯片都有全球唯一序列号,当多个单总线芯片挂在一根总线上,根据不同序列号选择访问。三、单总线芯片在总线上可以获得电源。SPI:同步串行外设接口。SPI总线一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)、低电平有效的从机选择线SS。系统主机与从设备串行方式,高位在前,低位在后。SPI从设备MISO与系统主机MOSI相连,SPI从设备MOSI与系统主机MISO相连。SPI从设备用独立的片选信号控制信号使能端。片选无效时输出高阻态以不影响其他SPI设备工作。 1.OLED串行通信SPI 4—wire:CS低电平,同步时钟上升沿有效,传送8位数据。SPI 3 —wire:CS低电平,同步时钟上升沿有效,传送D/C共9位数据。 2.OLED4线串行SPI方式。一、使用的信号线有:CS(OLED片选信号)、RET(硬件复 位OLED)、DC(命令/数据标志(0:读写命令,1:读写数据))、SCLK(串行时钟线,D0信号线作为串行时钟线)、SDIN(串行数据线,D1信号线作为串行数据线)。二、模块的D2需要悬空,其他引脚可以接到GND。三、在此模式下,只能往模块写数据而不能读数据。四、在此模式下,每个数据长度均为8位,在SCLK的上升沿,数据从SDIN 移入到SSD1306,并且高位在前。DC线还是用作命令或数据的标志线。写操作时序:

双机间的串口双向通信2.0

单片机应用课程设计任务书

单片机应用课程设计说明书 学院名称:计算机与信息工程学院 班级名称:网工124 学生姓名:卞可虎 学号:2012211369 题目:双机间的串口双向通信设计指导教师:于红利 起止日期:2014.12.29至2015.1.4

目录 一、绪论 (1) 二、相关知识 (6) 2.1 双机通信介绍 (6) 2.2单片机AT89C51介绍 (6) 2.3 串行通信简介 (8) 2.3.1串行通信的特点 (8) 2.3.2串行通信技术标准 (9) 三、总体设计 (10) 3.1 设计需求 (10) 四、硬件设计 (10) 4.1 系统硬件电路设计 (10) 4.1.1整体电路设计 (10) 4.1.2 控制电路设计 (11) 4.1.3 复位电路 (11) 4.1.4 显示电路 (12) 五、软件设计 (12) 5.1发送端程序流程 (12) 5.2接收端程序流程 (13) 5.3按键程序 (14) 5.4串口通信程序 (15) 5.5数码管显示程序 (16)

六、Proteus软件仿真 (16) 七、结束语 (19) 参考文献 (20) 指导教师评语 (21) 成绩评定 (21) 附录:源程序 (22) 一、绪论 电子技术的飞速发展,单片机也步如一个新的时代,越来越多的功能各异的单片机为我们的设计提供了许多新的方法与思路。单片机之间的通信可以分为两大类:并行通信和串行通信。串行通信传输线少,长距离传输时成本低,且可以利用数据采集方便灵活,成本低廉等优点,在通信中发挥着越来越重要的作用。所以本系统采用串行通信来实现单片机之间可靠的,有效的数据交换。 对于一些类似复杂的后台运算及通信与高实时性前台控制系统、软件资源消耗大的系统、功能强大的低消耗系统、加密系统等等。如果合理使用多种不同类型的单片机组合设计,可以得到极高灵活性与性能价格比,因此,多种异型单片机系统设计渐渐成为一种新的思路,单片机技术作为计算机技术的一个重要分支,由于单片机体积小,系统运行可靠,数据采集方便灵活,成本低廉等优点,在通信中发挥着越来越重要的作用。但在一些相对复杂的单片机应用系统中,仅仅一个单片机资源是不够的,往往需要两个或多个单片机系统协同工作。这就对单片机通

双机通信课程设计

西安邮电大学 单片机课程设计报告书题目:双机通信系统

、系统整体设计 1. 系统设计思路 双机通信的实质就是解决两单片机串行通信问题。针对于89C52单片机全双工异步 串行通信口,我们采用单片机直接交叉互连的串行通信方式。 考虑到设计应用于短距离传输、两单片机具有相同的数据格式及电平且为使设计简 单,我们最终决定采用方式二单片机直接交叉连接的串行通信方式, 上位机发送的数据 由串行口 TXD 端输出,直接由下位机的串行口数据接收端 RXD 接攵。需要注意的是一定 要保证主从机相同的数据传输速率,即要求设置相同的波特率。电路分为数码管显示模 块,以及单片机工作的基本复位、晶振模块。 2. 系统设计原理 (1)串行通信 一个是数据传送,另一个是数据转换。所谓数 所谓数据转换就是指单片机在接收数据时,如 单片机在发送 数据时,如何把并行数据转换为 串行数据进行发送。单片机的串行通信使用的是异步串 行通信, 所谓异步就是指发送端 和接收端使用的不是同一个时钟。异步串行通信通常以字符(或者字节)为单位组成字 符帧传送。字符帧由发送端一帧一帧地传送, 接收端通过传输线一帧一帧地接收。 而对 于两个单片机之间的串行通信,由于具有相同的数据格式及电平且是短距离通信则不必 要使用一些电平转化芯片(如 max232等)便可直接实现串行通讯,需要注意的是两单 片机硬件要共地,软件中需要设置相同波特率 STC89C5单片机有一个全双工的异步串行通信口,串行结构如下: ①数据缓冲器(SBUF 接受或发送的数据都要先送到 SBUF 缓存。有两个,一个缓存,另一个接受,用同 一直接地址99H,发送时用指令将数据送到 SBUF 即可启动发送;接收时用指令将 SBUF 中接收到的数据取出。 ②串行控制寄存器(SCON SCO 用于串行通信方式的选择,收发控制及状态指示,各位含义如下: SM0,SM1串行接口工作方式选择位,这两位组合成 00, 01,10,11对应于工作方 式0、1、2、3。串行接口工作方式特点见下表1. 表1串行口工作方式表 串行数据通信要解决两个关键问题, 据传送就是指数据以什么形式进行传送。 何把接收到的串行数据转化为并行数据,

基于单片机的串口通信模块设计

1 绪论 1.1 研究背景 通信是指不同的独立系统利用线路互相交换数据,它的主要目的是将数据从一端传送到另一端,实现数据的交换。在现代工业控制中,通常采用计算机作为上位机与下层的实时控制与监测设备进行通讯。现场数据必须通过一个数据收集器传给上位机,同样上位机向现场设备发命令也必须通过数据收集器。串行通信因其结构简单、执行速度快、抗干扰能力强等优点,已被广泛应用于数据采集和过程控制等领域。 计算机与外界的信息交换称为通信。基本的通信方式有并行通信和串行通信两种。串行通信是指一条信息额各位数据被逐位按顺序传送的通信方式。串行通信的特点是:数据位传送,按位顺序进行,最少只需要一根传输线即可完成,成本低但传送速度快,串行通信的距离可以从几米到几千米。 随着计算机技术尤其是单片微型机技术的发展,人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行监测和控制。PC机具有强大的监控和管理能力,而单片机则具有快速及灵和的控制特点,通过PC 机的RS-232串行接口与外部设备进行通信,是许多测控系统中常用的一种通信解决方案。而随着USB接口技术的成熟和使用的普及,由于USB 接口有着 RS-232(DB-9)串口无法比拟的优点,RS-232(DB-9)串口正在逐步地为USB 接口所替代。而在现在的大多数笔记本电脑中,出于节省物理空间和用处不大等原因,RS-232(DB-9)串口已不再设置,这就约束了基于RS-232(DB-9)串口与PC 机联络的单片机设备的使用围。当前USB接口逐步取代RS-232(DB-9)串口已是大势所趋,单片机同计算机的USB通信在实际工作中的应用围也将越来越广。本文所介

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

综合实验报告 实验题目:双机串行通信设计与实现 学生班级:电子 学生姓名: 学生学号: 指引教师: 实验时间: .9.12-.9.17

题目:双机串行通信设计与实现 班级:电子14-2 姓名:陈俊臣 摘要 串行通信是单片机一种重要应用。本次课程设计就是要运用单片机来完毕一种系 统实现双片单片机串行通信。通信成果实用数码管进行显示数码管采用查表方式显示。两个单片机之间采用RS232进行双机通信。在通信过程中使用通信合同进行通信。 双机通信实质就是解决两单片机串行通信问题。针对于89C51单片机全双工异步串行通信口,咱们采用单片机直接交叉互连串行通信方式。考虑到本设计应用于短距离传播、两单片机具备相似数据格式及电平且为使设计简朴,咱们最后决定本系统采用方式一单片机直接交叉连接串行通信方式,上位机发送数据由串行口TXD端输出,直接由下位机串行口数据接受端RXD接受。本设计硬件电路分为数码管显示模块、单片机工作基本复位电路以及晶振模块。编程采用C语言加以实现。通信成果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双向通信。

目录 1 引言------------------------------------------------------- 2 设计原理及规定--------------------------------------------- 2.1设计规定和原理-------------------------------------------- 2.2串行通信概述与分类----------------------------------- 2.3串行通信和并行通信区别------------------------------- 2.4 MCS-51串行接口基本特点----------------------------- 3器件简介 3.1器件简朴概述----------------------------------------- 3.2 器件重要功能特性-------------------------------------- 3.3 芯片引脚简介---------------------------------------- 4系统设计 4.1设计规定-------------------------------------------- 4.2设计方案-------------------------------------------- 4.3硬件设计-------------------------------------------- 4.4软件设计------------------------------------------- 4 电路仿真图---------------------------------------------------- 5心得------------------------------------------------------------

串行通信的同步传输与异步传输

------分隔线---------------------------- 这里所讲的同步传输和异步传输不同于VC 串口编程时的同步和异步,这里只讲串口硬件层传输的两种模式,有关VC 串口编程的同步模式和异步模式我将另外写一篇文章。 这里所讲的同步和异步是从硬件层级来讲的。首先要知道什么串行传输,串行传输是指数据的二进制代码在一条物理信道上以位为单位按时间顺序逐位传输的方式。串行传输时,发送端逐位发送,接收端逐位接受,同时,还要对所接受的字符进行确认,所以收发双方要采取同步措施(即判断什么时候有数据,数据是什么,什么时候结束传输)。 同步措施有两种,一种在传输的每个(帧)数据前(数据可能是5~8位)加一个起始位,后面加一位校验位及一位或两位的停止位组成一帧数据,这各方式称为异步传输;另一种是在一次传输(可能是多个字节)前加同步字节,可能不止一个字节,最后加校验字节或代表结束标志的字节,这种方式称为同步传输方式。 异步传输 异步传输将比特分成小组进行传送,小组可以是8位的1个字符或更长。发送方可以在任何时刻发送这些比特组,而接收方从不知道它

们会在什么时候到达。一个常见的例子是计算机键盘与主机的通信。按下一个字母键、数字键或特殊字符键,就发送一个8比特位的ASCII 代码。键盘可以在任何时刻发送代码,这取决于用户的输入速度,内部的硬件必须能够在任何时刻接收一个键入的字符。 异步传输存在一个潜在的问题,即接收方并不知道数据会在什么时候到达。在它检测到数据并做出响应之前,第一个比特已经过去了。这就像有人出乎意料地从后面走上来跟你说话,而你没来得及反应过来,漏掉了最前面的几个词。因此,每次异步传输的信息都以一个起始位开头,它通知接收方数据已经到达了,这就给了接收方响应、接收和缓存数据比特的时间;在传输结束时,一个停止位表示该次传输信息的终止。按照惯例,空闲(没有传送数据)的线路实际携带着一个代表二进制1的信号,异步传输的开始位使信号变成0,其他的比特位使信号随传输的数据信息而变化。最后,停止位使信号重新变回1,该信号一直保持到下一个开始位到达。例如在键盘上数字“1”,按照8比特位的扩展ASCII编码,将发送“00110001”,同时需要在8比特位的前面加一个起始位,后面一个停止位。 异步传输的实现比较容易,由于每个信息都加上了“同步”信息,因此计时的漂移不会产生大的积累,但却产生了较多的开销。在上面的例子,每8个比特要多传送两个比特,总的传输负载就增加25%。对于数据传输量很小的低速设备来说问题不大,但对于那些数据传输量很大的高速设备来说,25%的负载增值就相当严重了。因此,异步传输常用于低速设备。

SPI同步串行总线原理

三、SPI是英文Serial Peripheral Interface的缩写,中文意思是串行外围设备接口,SPI是Motorola公司推出的一种同步串行通讯方式,是一种三线同步总线,因其硬件功能很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。 SPI概述 SPI:高速同步串行口。3~4线接口,收发独立、可同步进行. SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如AT91RM9200. SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI 和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。 SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。 (1)SDO –主设备数据输出,从设备数据输入 (2)SDI –主设备数据输入,从设备数据输出 (3)SCLK –时钟信号,由主设备产生 (4)CS –从设备使能信号,由主设备控制 其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。这就允许在同一总线上连接多个SPI设备成为可能。 接下来就负责通讯的3根线了。通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议,也就是说数据是一位一位的传输的。这就是SCK时钟线存在的原因,由SCK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。数据输出通过SDO 线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输,输入也使用同样原理。这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。 要注意的是,SCK信号线只由主设备控制,从设备不能控制信号线。同样,在一个基于SPI的设备中,至少有一个主控设备。这样传输的特点:这样的传输方式有一个优点,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。也就是说,主设备通过对SCK时钟线的控制可以完成对通讯的控制。SPI还是一个数据交换协议:因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。不同的SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义,具体请参考相关器件的文档。 在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。在多个从设备的系统中,每个从设备需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。 最后,SPI接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据。 AT91RM9200的SPI接口主要由4个引脚构成:SPICLK、MOSI、MISO及/SS,其中SPICLK是整个SPI总线的公用时钟,MOSI、MISO作为主机,从机的输入输出的标志,MOSI是主机的输出,从机的输入,MISO 是主机的输入,从机的输出。/SS是从机的标志管脚,在互相通信的两个SPI总线的器件,/SS管脚的电平低的是从机,相反/SS管脚的电平高的是主机。在一个SPI通信系统中,必须有主机。SPI总线可以配置成单主单从,单主多从,互为主从。 SPI的片选可以扩充选择16个外设,这时PCS输出=NPCS,说NPCS0~3接4-16译码器,这个译码器是需要外接4-16译码器,译码器的输入为NPCS0~3,输出用于16个外设的选择。 [编辑本段] SPI协议举例

双机通信课程设计

成绩: 课程设计报告书 所属课程名称单片机原理与接口技术 题目双机串行通信 分院机电学院 专业、班级机械设计制造及其自动化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个数据送给从机,并发送检验和。从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机;否则发送FFH 给主机,重新接受。从机收到16个正确数据后送到一个数码管显示。

基于labview的串口通讯设计

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊ 摘要 虚拟仪器是现代计算机技术同仪器技术深层次结合的全新概念仪器,实质是利用计算机显示器的显示功能模拟传统仪器的控制面板,以多种形式表达输出测量结果,利用计算机强大的软件功能实现信号数据的运算、分析和处理,完成各种测试功能的一种计算机仪器系统。 本文介绍了利用LabVIEW语言来实现上、下位机之间通信的方法,并从软、硬件两个方面阐述了设计思想。从实现PC机PC机之间的串口通信出发,先实现双PC机之间的数据发送、返还和接收,进而设计了以PC机作为上位机,以飞思卡尔8位单片机作为下位机的基于labview软件的串口通信系统。经过实验调试,系统达到了预期的通信目标。 应用先进的虚拟仪器软件LABVIEW,大大降低了串口通讯复杂程度,减小了软件设计的工作量,能够大大降低投资成本。在实际应用中有巨大的使用价值。 关键词:虚拟仪器;Labview ;串口通信;单片机

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊ Design of the serial communication system Based on LabVIEW Abstract Virtual instrument is the modern computer technology combined with the instrumentation of the new concept of deep-level instruments,in real terms is the use of analog computer monitors display control panel,traditional instruments,in various forms to express the output measurements,using computer software features to achieve a strong signal Operation data, analysis and processing,to complete a variety of testing capabilities of a computer instrument system This article describes the use of LabVIEW to implement the language, the next method of communication between the crew and from the software and hardware are two aspects of the design. PC-PC, from the implementation of serial communication between the departure, the first to achieve double the data between the PC, send and return, receive, and then designed a PC, as the host computer to Freescale 8-bit microcontroller based on a lower machine LabVIEW software serial communication system. After experimental debugging, the system achieved the desired communication goals. The application of advanced virtual instrument software LabVIEW, greatly reduces the complexity of serial communication, reduce the workload of the software design can greatly reduce the investment cost. In practice, there is tremendous value in use. Keywords: virtual instrument; Labview; serial communication; microcontroller

51单片机与上位机串口通信程序设计

51单片机与上位机串口通信程序设计 1. 发送:向总线上发命令 2. 接收:从总线接收命令,并分析是地址还是数据。 3. 定时发送:从内存中取数并向主机发送. 经过调试,以上功能基本实现,目前可以通过上位机对单片机进行实时控制。程序如下: //这是一个单片机C51串口接收(中断)和发送例程,可以用来测试51单片机的中断接收 //和查询发送,另外我觉得发送没有必要用中断,因为程序的开销是一样的 #include< reg51.h> #include< stdio.h> #include< string.h> #define INBUF_LEN 4 //数据长度 unsigned char inbuf1[INBUF_LEN]; unsigned char checksum,count3 , flag,temp,ch; bit read_flag=0; sbit cp=P1^1; sbit DIR=P1^2; int i; unsigned int xdata *RAMDATA; /*定义RAM地址指针*/ unsigned char a[6] ={0x11,0x22,0x33,0x44,0x55,0x66} ; void init_serialcomm(void) { SCON=0x50; //在11.0592MHz下,设置串行口波特率为9600,方式1,并允许接收 PCON=0x00; ES=1;

TMOD=0x21; //定时器工作于方式2,自动装载方式TH0=(65536-1000)%256; TL0=(65536-1000)/256; TL1=0xfd; TH1=0xfd; ET0=1; TR0=1; TR1=1; // TI=0; EA=1; // TI=1; RAMDATA=0x1F45; } void serial () interrupt 4 using 3 { if(RI) { RI=0; ch=SBUF; TI=1; //置SBUF空 switch(ch) { case 0x01 :printf("A"); TI=0;break; case 0x02 :printf("B"); TI=0;break; case 0x03 :printf("C"); TI=0;break; case 0x04 :printf("D"); TI=0;break; default :printf("fg"); TI=0;break; } }

相关主题
文本预览
相关文档 最新文档