双机通信

双机通信
双机通信

《单片机与接口技术课程设计》课程设计

姓名:于凇

学号:1305410115

指导教师:孟威

题目名称:双机通信系统的设计

专业名称:自动化13-1

所在学院:信息工程学院

时间:2014年6月23~6月29日

一. 课程设计的目的与要求

1.教学目的

培养学生利用所学的单片机知识进行独立地设计、开发产品分析问题和解决问题的能力。

2.教学要求

1)在充分理解实验设备的工作原理的基础上,完成各题目的基本功能。

从基本功能的实现中得到感性认识,进一步完成各课题。

2)独立完成电路及程序的设计、调试。设计结果达到课题技术要求,功

能完善,运行稳定。

3)写出设计总结。要求条理清楚,重点突出,结构合理。并附有完整原

理图及带有注释说明的完整的软件源程序清单。

4)课程设计期间按时作息,遵守纪律,爱护仪器、设备,保持良好、整

洁的工作环境。

3. 内容及要求

主要技术指标和要求:

1) 基本功能:

利用8031串行口发送和接收数据,并将接收的数据通过扩展I/O口

74LS273输出到发光二极管显示,结合延时来模拟一个循环彩灯。

2) 双机通信

甲机负责发送,乙机负责接收。从甲机的键盘上键入数字键0~F,在两个实验箱上的数码管上显示出来。如果键入的不是数字按键,则显示

“Error”错误提示。

二、实验原理

1.8031单片机串行口双机通信电路设计

MCS-51单片机的串行端口有4种基本工作方式,通过编程设置,可以使其工作在任一方式,以满足不同场合的需要。其中,方式0主要用于外接移位寄存器,以扩展单片机的I/O电路;工作方式1多用于双机之间或与外设电路的通信;方式2、3除有方式1的功能外,还可以作多机通信,以构成分布式多微机系统。串行端口有两个控制寄存器SCON、PCON,用于设置工作方式、发送或接收的状态、特征位、数据传送波特率[每秒传送的位数]以及作为中断标志等。

串行端口有一个数据寄存器SBUF在特殊功能寄存器中的字节地址为99H,该寄存器为发送和接收所共用。

串行端口的波特率可以用程序来控制。在不同工作方式中,由时钟振荡频率的分频值或由定时器T1的定时溢出时间确定,使用十分方便灵活。

1、串口控制寄存器

方式1

输入:在(REN)=1时,串行口采样RXD引脚,当采样到1至O的跳变时,确认是串行发送来的一帧数据的开始位0,从而开始接收一帧数据。只有当8位数

据接收完,并检测到高电平停止位后,只有满足①(R1)=0;②(SM2)=0或接收到的第9位数据为1时,停止位才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI;否则信息丢失。所以在方式1接收时,应先用软件清零RI和SM2标志。

方式2

方式2为固定波特率的11位UART方式。它比方式1增加了一位可程控为1或0的第9位数据。

输出:发送的串行数据由TXD端输出一帧信息为11位,附加的第9位来自SCON寄存器的TB8位,用软件置位或复位。它可作为多机通讯中地址/数据信息的标志位,也可以作为数据的奇偶校验位。当CPU执行一条数据写入SUBF的指令且TI=0时,就启动发送器发送。发送一帧信息后,置位中断标志TI。

输入:在(REN)=1时,串行口采样RXD引脚,当采样到1至O的跳变时,确认是串行发送来的一帧数据的开始位0,从而开始接收一帧数据。在接收到附加的第9位数据后,当满足①(RI):0;②(SM2)=0或接收到的第9位数据为1时,第9位数据才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志Ri;否则信息丢失。且不置位RI。

工作方式3

方式3为波特率可变的11位UART方式。除波特率外,其余与方式2相同。波特率的选择

如前所述,在串行通讯中,收发双方的数据传送率(波特率)要有一定的约定。在MCS-51串行口的四种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可变的,由定时器T1的溢出率控制。

1.方式O:方式0的波特率固定为主振频率的1/12。

2.方式2:方式2的波特率由PCON中的选择位SMOD来决定,可表示为:波特率=2sMoD×fosc/64也就是当SMOD=1时,波特率为1/32×fosc,当SMOD=0时,波特率为1/64×fosc。

3.方式1和方式3

定时器T1作为波特率发生器,其公式如下:

波特率=2SMOD/32×定时器T1溢出率

T1溢出率=T1计数率/产生溢出所需的周期数

式中T1计数率取决于它工作在定时器状态还是计数器状态。当工作于定时器状态时,T1计数率为Fosc/2:当工作于计数器状态时,T1计数率为外部输入频率,此频率应小于Fosc/24。产生溢出所需周期与定时器T1的工作方式、T1的预置值有关。

定时器T1工作于方式O:溢出所需周期数=8192-×

定时器T1工作于方式1:溢出所需周期数=65536-X

定时器T1工作于方式2:溢出所需周期数=256-X

因为方式2为自动重装入初值的8位定时器/计数器模式,所以用它来做波特率发生器最恰当。这种方式下,T1的溢出率[次/秒]计算式可以表示为:

T1溢出率=Fsoc/12[256-X]

2.利用8031单片机串行口,实现双机通信。

1.本实验系统中考虑用户可以方便使用串行口实现双机或和上位机通信,系统设计有用户专用串行接口,只要配上用户专用通信电缆线就可以实现和上位机通信,不影响监控系统和上位机的联机工作。J10就是用户专用串行接口,将J10用用户专用通信线连到上位机的串口上。注意不要和上位机系统用串行口冲突。

2.实验时需将1号机8031串行接收信号线P

3.0(RXD)连到2号机8031串行口发送信号线P3.1(TXD)。

实验线路图:

8031单片机串行口双机通信实验线路接线如图4.3所示,3根连线。

实验步骤:

1.按图连好线路。

2.在两台DVCC实验系统处于"P."状

态下。

3.在1号机上运行H516S1.ASM程序

或输入四位起始地址0D00后,按EXEC

键连续运行程序,在1号机上显示电压

值。图4.3 8031单片机串行口双机通信

4.在2号机上H516S2.ASM程序或输入四位起始地址0E30后,按EXEC键连续运行程序,在2号机上显示8031-2。

5.从1号机上的键盘上输入数字键,会显示在2号机的数码管上

3.8031的功能简介

8031单片机是Intel公司生产的MCS-51系列单片机中的一种,除无片内ROM 外,其余特性与MCS-51单片机基本一样。

1)主电源引脚VCC和VSS

VCC——(40脚)接+5V电压;

VSS——(20脚)接地;

2)外接晶体引脚XTAL1和XTAL2

XTAL1(19脚)接外部晶体的一个引脚。在单片机内部,它是一个反相放大

器的输入端,这个放大器构成了片内振荡器。当采用外部振荡器时,对HMOS 单片机,此引脚应接地;对CHMOS单片机,此引脚作为驱动端。

XTAL2(18脚)接外晶体的另一端。在单片机内部,接至上述振荡器的反相放大器的输出端。采用外部振荡器时,对HMOS单片机,该引脚接外部振荡器的信号,即把外部振荡器的信号直接接到内部时钟发生器的输入端;对XHMOS,此引脚应悬浮。

图4.4 8031管脚图

3)控制或与其它电源复用引脚RST/VPD、ALE/PROG、PSEN和EA/VPP

①RST/VPD(9脚)当振荡器运行时,在此脚上出现两个机器周期的高电平将使单片机复位。推荐在此引脚与VSS引脚之间连接一个约8.2k的下拉电阻,与VCC引脚之间连接一个约10μF的电容,以保证可靠地复位。

VCC掉电期间,此引脚可接上备用电源,以保证内部RAM的数据不丢失。当VCC 主电源下掉到低于规定的电平,而VPD在其规定的电压范围(5±0.5V)内,VPD 就向内部RAM提供备用电源。

②ALE/PROG(30脚):当访问外部存贮器时,ALE(允许地址锁存)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的1/6。

因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是,每当

访问外部数据存储器时,将跳过一个ALE脉冲。ALE端可以驱动(吸收或输出电流)8个LS型的TTL输入电路。

对于EPROM单片机(如8751),在EPROM编程期间,此引脚用于输入编程脉冲(PROG)。

③PSEN(29脚):此脚的输出是外部程序存储器的读选通信号。在从外部程序存储器取指令(或常数)期间,每个机器周期两次PSEN有效。但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不出现。PSEN同样可以驱动(吸收或输出)8个LS型的TTL输入。

④EA/VPP(引脚):当EA端保持高电平时,访问内部程序存储器,但在PC (程序计数器)值超过0FFFH(对851/8751/80C51)或1FFFH(对8052)时,将自动转向执行外部程序存储器内的程序。

当EA保持低电平时,则只访问外部程序存储器,不管是否有内部程序存储器。对于常用的8031来说,无内部程序存储器,所以EA脚必须常接地,这样才能只选择外部程序存储器。

对于EPROM型的单片机(如8751),在EPROM编程期间,此引脚也用于施加21V 的编程电源(VPP)。

4、输入/输出(I/O)引脚P0、P1、P2、P3(共32根)

①P0口(39脚至32脚):是双向8位三态I/O口,在外接存储器时,与地址总线的低8位及数据总线复用,能以吸收电流的方式驱动8个LS型的TTL负载。

②P1口(1脚至8脚):是准双向8位I/O口。由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。P1口能驱动(吸收或输出电流)4个LS型的TTL负载。对8052、8032,P1.0引脚的第二功能为T2定时/计数器的外部输入,P1.1引脚的第二功能为T2EX捕捉、重装触发,即T2的外部控制端。对EPROM编程和程序验证时,它接收低8位地址。

③P2口(21脚至28脚):是准双向8位I/O口。在访问外部存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。在对EPROM编程和程序验证期间,它接收高8位地址。P2可以驱动(吸收或输出电流)4个LS型的TTL负载。

④P3口(10脚至17脚):是准双向8位I/O口,在MCS-51中,这8个引脚还用于专门功能,是复用双功能口。P3能驱动(吸收或输出电流)4个LS型的TTL 负载。

作为第一功能使用时,就作为普通I/O口用,功能和操作方法与P1口相同。作为第二功能使用时,各引脚的定义如表所示。

值得强调的是,P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。

三、软件设计

1、流程图及其说明

A机流程图:

B机流程图:

四、课程设计的结果

1、基本功能

利用8031串行口发送和接收数据,并将接收的数据通过扩展I/O口74LS273输出到发光二极管显示,结合延时来模拟一个循环彩灯。彩灯变化花样可自行设计。

例:①L1、L2、…L8依次点亮;②L1、L2、…L8依次熄灭;③L1、L2、…L8全亮、全灭。

各时序间隔为0.5秒。让发光二极管按以上规律循环显示下去。

;8031的TXD接RXD;74LS273的CS273接CS0;SO0~SO7接发光二极管的L1~L8;

CSEG AT 0000H

LJMP START

CSEG AT 4100H

PORT EQU 0CFA0H

START: MOV TMOD,#20H ;

MOV TL1,#0F2H ;

MOV TH1,#0F2H

MOV 87H,#00H ;

SETB TR1 ;

MOV SCON,#50H ;

MOV R1,#12H ;

MOV DPTR,#TABLE

MOV A,DPL

MOV DPTR,#L1

CLR C

SUBB A,DPL ;

MOV R5,A ;

MOV R0,A SEND:

MOV A,R0

MOVC A,@A+PC ;

L1: MOV SBUF,A ;

WAIT: JBC RI,L2 ;

SJMP WAIT

L2: CLR RI

CLR TI

MOV A,SBUF

MOV DPTR,#PORT

MOVX @DPTR,A

ACALL DELAY

INC R0

DJNZ R1,SEND

MOV R1,#12H

MOV A,R5

MOV R0,A

JMP SEND

TABLE: DB 01H, 03H, 07H, 0FH, 1FH, 3FH,7FH,0FFH,0FEH DB 0FCH,0F8H,0F0H,0E0H,0C0H,80H,00H,0FFH,00H DELAY: MOV R4,#05H

DEL1: MOV R3,#200

DEL2: MOV R2,#126

DEL3: DJNZ R2,DEL3

DJNZ R3,DEL2

DJNZ R4,DEL1

RET

END

2、双机通信系统的设计

发送机

PORT EQU 0CFA0H

CSEG AT 0000H

LJMP FMT_T_S

CSEG AT 4100H

FMT_T_S:MOV TMOD,#20H;

MOV TH1,#0F3H;

MOV TL1,#0F3H

SETB TR1;

MOV SCON,#50H;

ORL PCON,#80H;

TX_ACK:MOV A,#06H;

MOV SBUF,A

WAIT1:JBC TI,RX_YES;

SJMP W AIT1

RX_YES:JBC RI,NEXT1;

SJMP RX_YES

NEXT1:MOV A,SBUF;

CJNE A,#00H,TX_ACK;

FMT_RAM0:MOV R3,#00H ;

TX_NEWS:MOV DPTR,#TABLE;

MOV A,R3

MOVC A,@A+DPTR;

MOV R0,A;

MOV SBUF,A;

WAIT3:JBC TI,NEXT2;

SJMP W AIT3

NEXT2: MOV A,R0;

MOV P1,A

LCALL DELAY

DELAY:MOV R1,#7FH;

DEL1:MOV R4,#200

DEL2:DJNZ R4,DEL2

DJNZ R1,DEL1

RX_0FH:JBC RI,IF_0FH;

SJMP RX_0FH

IF_0FH:MOV A,SBUF;

CJNE A,#0FH,TX_NEWS

INC R3

CJNE R3,#21,TX_NEWS;

SJMP FMT_RAM0;

TABLE:DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,00H;

DB 80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH;

DB 00H,0FFH;

DB 0F0H,0FH,00H;

END

接收机

PORT EQU 0CFA0H

CSEG AT 0000H

LJMP FMT_T_S

CSEG AT 4100H

FMT_T_S:MOV TMOD,#20H;

MOV TH1,#0F3H;

MOV TL1,#0F3H

SETB TR1;

MOV SCON,#50H;

MOV PCON,#80H;

FMT_RAM:MOV R6,#00H;

RX_ACK:JBC RI,IF_06H;

SJMP RX_ACK

IF_06H:MOV A,SBUF;

CJNE A,#06H,TX_15H

TX_00H:MOV A,#00H

MOV SBUF,A

WAIT1:JBC TI,RX_NEWS;

SJMP W AIT1

TX_15H:MOV A,#15H

MOV SBUF,A

WAIT2:JBC TI,HA VE1;

SJMP W AIT2

HA VE1:LJMP RX_ACK

RX_NEWS:JBC RI,HA VE3;

SJMP RX_NEWS

HA VE3:MOV A,SBUF;

MOV P1,A;

MOV A,#0FH;

MOV SBUF,A

WAIT3:JBC TI,RX_NEWS;

SJMP W AIT3

TX_ERR:MOV A,#0F0H;

MOV SBUF,A

WAIT4:JBC TI,AGAIN;

SJMP W AIT4

AGAIN:LJMP HA VE3

END

现象:8个LED小灯按表中取出的指令顺序点亮

五、设计过程中遇到的问题及解决方法

1、软件方面的问题

在设计的过程中,软件设计中主要有遇到三大问题:一、电压值采集不到,或者是采集到了也不稳定;二、发送数据不过去;三、接收程序过程时间太长,造成发送方采样不稳定,时间过短。

电压值采集不到的主要原因是中断子程序并没有用到,在用到子程序之前程

序已经返回了,后来通过修改中断程序前面的程序,使之能够顺利运行到中断子程序部分,从而得到了电压值。

接收方没有数值显示或者是出现乱码的问题主要是发送程序过程中,取用到的数值A并不是所采集到的电压值的总个数值,因此才会出现这样的结果,后面我把发送数值放在显示子程序中,在显示采集到的数值之前把数值发送过去,最终在接收方也得到了准确的电压值,并且也没有再出现乱码的情况,显示出了正确的数值。

因为接收发送过去的数值时间过长,而发送方又是等数值发送过去完全才能显示准确的数值的,所以最开始因为延时时间不够,造成了发送方的采集到的八段数码管上显示的电压值闪烁过快,而查看不到准确的数值。后来我将显示子程序中的延时时间加长以后,不仅接收方,发送方也能够准确且稳定的显示采集到的电压值。

2、硬件方面的问题

另外,在硬件设计方面,最开始根本就采集不到数值,主要是因为硬件板上的-5V的电压值是不准确的,应该另外通过万能表调节电压值到-5V来提供,否则出不来数据。

六、系统调试及使用说明

本次的课程设计必须在软件和硬件共同的作用下才能准确的进行,实现电压的采样和双机通信。

打开俩台计算机,都在DVCC试验系统下的DV51H试验系统中建立一个新的文件夹,在有5G14433的那一方建的文件夹中放入的是发送程序,而在另一台计算机里边则是放入接收子程序,并进行保存。然后按照电路图连接电路,将硬件中的各支路线都连接好以后,检查好硬件连线后,就可以接通试验箱的电源了,在试验箱上的八段数码管最后一个上边显示闪烁的P后,按键盘上的PCDBG键,然后在DB51H系统中进行联接、编译、调试、运行。在运行程序过程中有值得非常注意的一点是必须先运行接收方的程序,再运行发送方的程序,否则在接收方会接收不到数据。

本次设计的结果能够在发送方和接收方都得到通过双积分式A/D转换MC14433采样收集到的电压值,并通过旋转W1电位器可以改变电压值,在八段数码管上也会跟着随时变换数值,得到准确的结果,在接收方也能准确的得到发送方电位器改变的电压值。

七、课程设计的心得与体会

本次设计老师给了我们足够长的时间,所以我们大家基本上都很好的完成了设计任务。期间,我学到了很多宝贵的经验和相关的单片机知识,最主要的是在对于硬件的认识和编程方面都得到了很大的提高。在这次的单片机数据采集与双机通信系统的设计,单片机语言程序的编写以及原理图的设计占了很重要的部分。对于零散的芯片,通过编程、仿真、硬件电路搭建,才能形成一个完整的系统。在整个设计过程中,我深深地体会到了我们必须深入到工作的实践中,才能学到更有用的知识,也能记得更长久,因为毕竟是实践出真知。而且与此同时,在本次课程设计中,我们还必须学会如何将书本中的知识很好的应用到实践中去。

经过本次的课程设计,通过去图书馆和网上查阅很多资料后,我学到了更多关于单片机的汇编编程,了解了单片机串行通信的基本知识,对于以后的学习和工作都有很大的益处。我也学习到了如何自主的分辨资料的好坏以及是否对本次设计的有用与否。总的来说,我学会了查阅资料和分辨资料的好坏。

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

通过这次的课程设计我也深刻的认识到了,理论知识和实践相结合是教学环节中相当重要的一个环节,只有这样才能提高自己的实际操作能力,并且从中培养自己独立思考、用于克服困难、团队协作的精神。

八、参考文献

[1] 李全利单片机原理与接口技术高等教育出版社

[2] 李向军单片机原理与接口技术实验指导书自编教材,2007年

C51单片机实验报告流水灯交通灯定时器双机交互时钟

C51单片机实验报告流水灯交通灯定时器双机交互时钟学号:31100800 班级:自动化10 班姓名:张指导老师:胡 2019.12 单片机核心板实验要求 一、流水灯实验 1 、实验目的: 1 ) 简单I/O 引脚的输出 2 ) 掌握软件延时编程方法 3 ) 简单按键输入捕获判断2 、完成功能要求 1 ) 开机是点亮1 2 发光二极管,闪烁三下2 ) 按照顺时针循环依次点亮发光二极管 3 ) 通过按键将发光二极管的显示改为顺逆时针方式 二、定时器或实时时钟实验 1 、实验目的 1 ) 数码管动态显示技术 2 ) 定时器的应用 3 ) 按键功能定义2 、完成功能要求 1 ) 通过按键可以设定定时时间,启动定时器,定时时间到,让1 2 个发光二极管闪烁,完成定时 器功能。 2 ) 实时时钟,可以设定当前时间,完成钟表功能(四位数码管分别 显示分钟和秒)。 上述二个功能至少完成一种功能。 三、双机通信实验 1 、实验目的 UART 串行通信接口技术应用2 、完成功能要求 用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。 四、交通灯实验 1 、实验目的

1 )按键、数码管、发光二极管综合应用编程技术 2 )数据存储于EEPRO的技术 (也可以不使用) 3 )定时中断技术 4 )按键中断技术 2 、完成功能要求 1 )对每个路口(主干道、次干道)的绿灯时间,及黄灯时间的设定。 2 )设定参数掉电后不丢失(如果不使用EEPRO,此功能可以不实现)。 3 )紧急按键功能,当按下该键时,所有路口变成红灯,相当于交警指挥特殊车辆通过。再按该键,恢复正常显示。 实验一流水灯实验 一、实验目的 1 )简单I/O 引脚的输出 2 )掌握软件延时编程方法 3 )简单按键输入捕获判断二、实验实现的功能 1 )开机是点亮12发光二极管,闪烁三下 2 )按照顺时针循环依次点亮发光二极管 3 )通过按键将发光二极管的显示改为顺逆时针方式三、 系统硬件设计 1 )如单片机核心板所示的硬件电路。四、系统软件设计 设计思路: 1 )定义数组使得调用数组可以使led 灯能够顺时针和逆时针显示; 2 )将按键的输入端全部置零,做单独按键使用; 3 )利用“ while ”循环使得数码管可以闪烁三下; 4 )利用“ for ”循环使得小灯能够依次点亮一个周期; 5 )将以上思想汇总,编程,实现功能。程序详见附录。 五、实验过程中遇到的问题及解决方法 1 )刚开始不知道怎样只设置一个管脚(如POP),查阅相关资料后知道表示方法, 并学会了用“ sbit ”语句定义,方便多了。 2)对于C语言的很多东西都不知道,语句的用法也不清楚,重新看了C语言,用到什 么看什么很快就懂了。 3 )主程序中没有用延时程序和死循环导致led 不能点亮,请教同学以后才知道。 4 )对于按键只是不了解,看书又很模糊,看了网上“ KINGST 工作室”也就是“手把手教你学单片机”的视频后很清楚明了,之后好多东西也是从上边学到,就不再赘述了。 指导老师签字:日期: 实验二定时器或实时时钟实验 一、实验目的 1 )数码管动态显示技术 2 )定时器的应用 3 )按键功能定义二、实验实现的功能 1 )通过按键可以设定定时时间,启动定时器,定时时间到,让12个发 光二极管闪烁,完成定时器功能。 2 )实时时钟,可以设定当前时间,完成钟表功能(四位数码管

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

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

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

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

双机通讯实验报告

单片机实验报告 (自动化15级) 实验名称:串行通讯实验

一、实验目的 1.掌握单片机串行口工作方式; 2.掌握双机通讯的接口电路设计及程序设计。 二、实验设备 1. PC机; 2.单片机最小系统教学实验模块; 3. 数码管显示模块 三、实验容 1.双机通信 由两套单片机试验装置(两个实验小组)共同完成该实验。我们U1为甲机,U2为乙机。甲机发送本机(学生本人)学号后8位给乙机,乙机接收该8位数据,并显示在8位数码管上。电路如图1所示。 要求串行通信方式为方式1,波特率为2400bit/s,不加倍,单片机外部晶振频率为11.0592M。 图1 双机通信原理示意图

附加要求:乙机接收完毕后,将本机(乙机)的学号后8位发送回甲机,甲机显示在数码管上。 2.单片机与PC机通信 单片机向PC机发送数据。单片机向PC机重复发送本机(学生本人)学号,发送波特率为1200,采用方式1,单片机外部晶振频率为11.0592M。 四、实验原理 4.1 串行通讯的方式 在串行通讯中,有两种基本的通讯方式:异步通讯,同步通讯。 异步串行通讯规定了字符数据的传送格式,既每个数据以相同的帧格式发送。每个帧信息由起始位、数据位、奇偶校验位和停止位组成。本实验主要学习异步通讯的实现方法。 在异步通讯中,每一个字符要用起始位和停止位作为字符开始和结束的标志,以至占用了时间。所以在数据块传送时,为了提高通讯速度,常去掉这些标志,而采用同步通讯。同步通讯不像异步通讯那样,靠起始位在每个字符数据开始时发送和接受同步。而是通过同步字符在每个数据块传送开始时使收/发双方同步。 按照通讯方式,又可将数据传输线路分成三种:单工方式、半双工方式、全双工方式。(1)单工方式 在单工方式下,通讯线的一端联接发送器,另一端联接接收器,它们形成单向联接,只允许数据按照一个固定的方向传送。 (2)半双工方式 在半双工方式下,系统中的每个通讯设备都由一个发送器和一个接收器组成,通过收发开关接到通讯线路上,如图33-1所示。在这种方式中,数据能从A站送到B站,也能从B站传送到A站,但是不能同时在二个方向上传送,即每次只能一个站发送,另一个站接收。 图2 半双工通讯方式 图33-1中的收发开关并不是实际的物理开关,而是由软件控制的电子开关,由通讯线两端的半双工通讯协议进行功能切换。 (3)全双工(Full—duplex)方式 虽然半双工方式比单工方式灵活,但它的效率依然较低。从发送方式切换到接收方式所需的时间一般大约为数毫秒,这么长的时间延迟在对时间较敏感的交互式应用(例如远程检测监视控制系统)中是无法容忍的。重复线路切换所引起的延迟积累,正是半双工通信协议效率不高的主要原因。 半双工的这种缺点是可以避免的,而且方法很简单,即采用信道划分技术。在图33-2 的全双工连接中,不是交替发送和接收,而是可同时发送和接收。全双工通讯系统的每一端都包含发送器和接收器,数据可同时在两个方向上传送。

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

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

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

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

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”

实验报告双机通信及PCB设计

学生实验报告学院: 课程名称: 专业班级: 姓名: 学号:

学生实验报告 一、实验综述 1、实验目的及要求 熟悉51单片机的基本输入与输出应用,掌握Proteus ISIS模块的原理图推图方法及单片机系统仿真运行方法。 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、完成实验报告 2、实验仪器、设备或软件 电脑 Keil4 Proteus ISIS 二、实验过程(实验步骤、记录、数据、分析) 实验步骤: 1、提前阅读与实验六相关的阅读材料 2、完成电路原理图的绘制 3、编写与编译程序 4、利用ISIS调试功能检查程序的语法与逻辑错误 5、观察仿真结果,检验程序与电路的正确性 程序: 主机: #include unsigned char code led[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void delay(unsigned int time) { unsigned int j=0; for(;time>0;time--)

for(j=0;j<125;j++); } void main(void) { unsigned char counter=0;//定义计数器 TMOD=0x20; //T1定时方式2 TH1=TL1=0xf4; //2400b/s PCON=0; //波特率不加倍 SCON=0x50; //串口方式1,TI与RI清零,允许接收TR1=1; //启动T1 while(1) { SBUF=counter; //发送联络信号 while(TI==0); //等待发送完成 TI=0; //清除TI标志位 while(RI==0); //等待乙机回答 RI=0; if(SBUF==counter) //若返回值与发送值相同,组织新数据 { P2=led[counter];//显示已发送值 if(++counter>15) //修正计数器值 counter=0; delay(500); } } } 从机: #include unsigned char code led[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; unsigned char receiv=0;//定义计数器 void display() interrupt 4 { if(RI=1) { RI=0; //清RI标志位 receiv=SBUF; //取得接收值 SBUF=receiv; //结果返送主机 if(TI==0); //等待发送结束 TI=0; //清TI标志位 P2=led[receiv]; //显示已发送值 } } void main(void)

双机通信系统

***学校 课程设计说明书 2012/2013学年第1 学期 学院:电子与计算机科学技术学院 专业:电子科学与技术 学生姓名:****学号:*****课程设计题目:双机通信系统 起迄日期:2013年*月*日~2013年*月*日课程设计地点:电子科学与技术专业实验室指导教师:**** 系主任:**** 完成日期: 2013年*月*日

目录 引言................................................................错误!未定义书签。 1 系统整体设计......................................................错误!未定义书签。 系统设计思路 (3) 系统设计原理 (3) 串行通信 (3) 基本设计原理述 (5) 系统设计结构图 (5) 2.硬件电路设计及实现................................................错误!未定义书签。 硬件电路设计方案.............................................错误!未定义书签。 硬件电路的实现...............................................错误!未定义书签。 以89C51为核心的单片机最小系统..........................错误!未定义书签。 数码管显示模块.........................................错误!未定义书签。 主机校验指示模块.......................................错误!未定义书签。 3. 软件系统实现 (7) 软件实现方案分析 (7) 串行通信分为查询方式和中断方式 (7) 主程序 (7) 4 总结 (11) 心得体会 (11) 5 附录 (12) PROTEL软件绘制电路原理图及印刷板图 (13) Proteus仿真图 (14)

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

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

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

说明:输出“0—F”后,1#机循环发送“0—F”的数据,2#机实时接收数据,两机数据通过各自的BCD数码管显示出来。 讨论:从单片机仿真的结果上看,2#机采用中断法编程并生成HEX文件后加载到单片机上后进行仿真运行的效果与采用查询法编程的效果一致。从源程序上看,采用查询法时, CPU需要不断等待单片机发送和接收完数据后才能进行下一步的操作。采用中断法时,CPU可以依照主函数进行操作,当出现中断请求标志时,CPU保存程序断点后开始执行中断函数。由于本次2#机源程序中的主函数采用的是空运行并没能直观地反映出采用中断法与查询法的区别。但从理论上看,采用中断法能够更加高效地利用CPU的空间。 4、PCB设计图 (1)PCB原理图 图6 PCB封装原理图 (2)PCB_LED封装

串口通信实验报告全版.doc

实验三双机通信实验 一、实验目的 UART 串行通信接口技术应用 二、实验实现的功能 用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。 三、系统硬件设计 (1)单片机的最小系统部分 (2)电源部分 (3)人机界面部分

数码管部分按键部分 (4)串口通信部分 四、系统软件设计 #include #define uchar unsigned char #define uint unsigned int void send(); uchar code0[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0-9的数码管显示 sbit H1=P3^6; sbit H2=P3^7;

sbit L1=P0^5; sbit L2=P0^6; sbit L3=P0^7; uint m=0,i=0,j; uchar temp,prt; /***y延时函数***/ void delay(uint k) { uint i,j; //定义局部变量ij for(i=0;i

{ m=1; //KEY1键按下 return(m); } if(H2==0) { m=4; //KEY4键按下 return(m); } } } if(L2==0) { delay(5); if (L2==0) { L2=0;H1=1;H2=1; if(H1==0) { m=2; //KEY2键按下 return(m); } if(H2==0) { m=5; //KEY5键按下 return(m); } } } if(L3==0) { delay(5); if (L3==0) { L3=0;H1=1;H2=1; if(H1==0) { m=3; //KEY3键按下

双机通信课程设计

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

、系统整体设计 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串行口工作方式表 串行数据通信要解决两个关键问题, 据传送就是指数据以什么形式进行传送。 何把接收到的串行数据转化为并行数据,

双机通信设计实验

大学物理实验设计性实验方案 实验题目:单片机串行通信 班级:物13光电本 学号:2013450019 姓名:杨文耀 指导教师:韩伟超

摘要 (2) 一总体设计 (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单片机,串行通信,接口

一、总体设计 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

利用Socket实现双机通信(计算机网络课程设计)

目录 1、目录 (1) 2、题目 (2) 3、设计任务 (2) 4、WinSocket简介及特点原理 (2) 5、T C P简介及特点原理 (3) 6、Vis ual C++简介 (7) 7、设计方案 (8) 8、系统的原理框图和程序流程图 (10) 9、实验中的问题 (14) 10、实验结果及分析 (14) 11、课程设计的总结体会 (16) 12、参考文献 (16)

利用Socket实现双机通信 一、设计任务 1.利用WinSock来实现双机通信,理解TCP状态机图。 2.要求使用WinSock编程,采用其中的TCP面向连接方式,实现文本数据的交换。 二、WinSocket简介及特点原理 2.1、什么是socket 所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。 Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket 也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket 描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。 常用的Socket类型有两种:流式Socket(SOCK_STREAM)和数据报式Socket

串行接口实验—双机通信

数学与信息技术学院 《计算机应用课程设计》设计报告

摘要 微机与外部的信息交换称为通信,基本方式有并行与串行两种。本文主要说明串行方式,主要掌握微机串行通信的连接方法,熟悉其工作方式及其功能,运用程序流程图说明了其工作过程 详细介绍了使用串行接口芯片8251A实现双CPU系统数据传输的设计和方法,接着从8251A的基本原理、工作方式,以及硬件和软件设计方面进行了详细的说明。并在两台微处理器的目标机上,用串口通信模式实现了两机之间的高效通信。 关键词: 8251A;串口通信;数据传送

Abstract Exchange of information between computer and external as communications.Basic methods are both parallel and serial.This paper shows the serial mode, the main control computer serial communication connection method, familiar with their work and their functions, the use of process flow chart illustrates the process of their work. Described in detail using the serial interface chip 8251A dual CPU system design and method of data transmission, then the basic principle from 8251A, work, and hardware and software design aspects in detail. Two microprocessors in the target machine, achieved with a serial communication mode efficient communication between the two machines. Keywords: 8251A; serial communication; data transfer

计算机网络实验报告-双机互联

计算机网络课程实验报告 专业: 班级: 学号: 姓名:

计算机网络课程 实验名称:双机互联实验 一、实验目的 1.利用网络设备,掌握在局域网内如何把两台计算机利用对等网方式进行连接。 2.学会网络连接,了解对等网互联方式。 3.掌握基本的网络参数的设置,学会使用基本的测试命令(ping)来检测网络的设置情况。 4.掌握局域网中的计算机的软、硬件资源共享的设置和使用方法。 二、认识对等网 “对等网”也称“工作组网”,在对等网中没有“域”,只有“工作组”。对等网上各台计算机有相同的功能,无主从之分,网上任意结点计算机既可以作为网络服务器,为其它计算机提供资源,也可以作为工作站,以分享其它服务器的资源。 对等网是利用操作系统中包含的通信协议的功能来实现数据传输,实现网络中的资源共享。 利用集线器的广播技术或者交换机的选择功能来实现点对点的连接方式和通信方式。 三、实验内容及步骤: 步骤一:网络规划 经过分析,本实验考虑网络性能,成本和实现的难易程度,确定组网方案为:用对等网,达到2台计算机软硬件资源共享,预留适当扩展,费用低,易管理等特点。 拓扑结构确定为星型连接,如下图。

步骤二:硬件要求、连接、安装。 1.两台安装Windows XP 的计算机。 2.两个RJ45的网卡,如下图。 网卡是计算机局域网中最重要的连接设备,计算机主要通过网卡连接网络.在网络中,网卡的工作是双重的:一方面它负责接收网络上传过来的数据包,解包后,将数据通过主板上的总线传输给本地计算机;另一方面它将本地计算机上的数据打包后送入网络。网卡与网络进行连接,必须有一个接口使网线通过它与其它计算机网络设备连接起来,常见的接口主要有以太网的RJ45接口。如下图。 安装网卡驱动程序,安装方法较为简单,只要按照网卡驱动程序的安装向导,一步一步执行,最后检查网卡和驱动程序是否安装完整,可以在“计算机管理”里面的“设备管理器”查看,如下图:

基于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针接口进行数据通信。

基于RS232的双机通信实验程序和电路图

课程名称现场总线技术及其应用 专业班级电信1012 学号2010118504150 学生姓名朱胜强 指导教师范玉刚 实训地点德行楼 2013 年5 月10日

基于RS232的双机通信实验 一、实验目的 1、理解串行通信的基本概念和51系列单片机的串行通信接口结构。 2、理解现场仪表的通讯过程 二、实验内容 1、使用串口实现单片机1与单片机2的数据通信,实现互相控制。要求按下单片机1系统板上的按键,单片机2系统板上LED点亮。 三、实验环境 1、编程软件keil 2、仿真软件proteus 四、实验原理 MAX232芯片用于电平转换,实现RS232电平与TTL电平(单片机)的互相转换。本次实验单片机之间通信不使用握手信号,只需3根信号线:TXD(发送线),RXD(接收线),GND(地线)。单片机之间通信的原理图如图1所示,当单片机1(主机) 查询外接控制开关S3按下时,单片机1发送一个自定义信号给单片机2(从机),单片机2收到信号后点亮指示灯LED4。 图1 单片机之间通信的原理图 五、实验过程

单片机1的程序: #include #define uchar unsigned char //宏定义 #define unit unsigned int //宏定义 sbit anjian=P1^0; //定义按键的位 uchar num; uchar code table[]={0xff,0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //数码管显示数//延时函数 void delay(unit z) { unit x,y; for(x=z;x>0;x--); for(y=110;y>0;y--); } //主函数 void main() { TMOD=0x20; //定时器1工作方式2 TH1=0xFD; //11.0592Mhz 9600bps TL1=0xFD; TR1=1; //启动定时器1 SCON=0x5; //模式1:8位数据可变波特率,允许接收 EA=1; //打开总中断 ES=1; //打开串口1中断 while(1) { if(anjian==0) //判断按键 { delay(5); if(anjian==1) //按键消抖动 {

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

单片机课程设计 双机通信 一、设计目的 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)串行通信 串行数据通信要解决两个关键问题,一个是数据传送,另一个是

单片机双机通信实验报告

计算机与信息工程学院综合性实验报告 一、实验目的 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灯来提示的功能。我们发现,在程序中发送数据以后会有一个回复信息来确 认是否发送成功和信息校对,我们利用此语句来判断,如果判定成功那么语句就

相关文档
最新文档