单片机双机通信系统设计详解

版权申诉
0 下载量 110 浏览量 更新于2024-07-01 收藏 180KB DOC 举报
"这篇文档是关于电子技术综合设计的一个项目,具体聚焦于单片机的双机通信系统。设计目标包括构建两个单片机最小系统,实现有线通信功能,其中一个作为发射端,另一个作为接收端。在更高层次的需求中,这两个系统还需要能够相互通信并执行校验操作。文档中提到了MCS51系列单片机的串口和并行端口在通信中的应用,以及在不同场景下如何选择合适的通信接口。文中详细介绍了单向并行通信和主从并行通信两种接口的实现方法,包括数据传输流程、控制信号线的使用以及工作模式。" 在这个电子技术综合设计项目中,单片机双机通信系统是核心内容。首先,基础设计要求两个独立的单片机最小系统,一个用于发送数据,另一个用于接收,通过有线通信链路连接。而在高级需求中,不仅要求单向通信,还要求双向通信并加入数据校验机制,以确保信息传输的准确性和完整性。 文档提到了MCS51系列单片机,这是一种广泛应用的微控制器,其内置的串行口适合简单的通信需求。然而,当需要高速数据传输或者扩展外部串行接口时,串口可能不适用。在这种情况下,可以利用单片机的并行端口进行通信。并行通信提供了更高的数据传输速率,文档中提出了两种实现方式: 1. 单向并行通信接口:适用于只需要单片机A向单片机B传输数据的情况。数据发送方会通过中断或查询方式将数据送至端口,接收方在接收到数据后通过BUSY信号回应,允许发送方继续发送下一个数据。 2. 主从并行通信接口:这种接口允许两个单片机双向通信,但需要明确主机和从机的角色。主机可以设置数据传输方向,并通过控制信号线(如STB和BUSY)与从机交互,实现数据的发送和接收。 主从并行通信接口的工作流程描述了主机发送数据和从机接收数据的步骤,涉及到主机设置数据传输方向、发出启动信号、传输数据以及等待从机确认等一系列操作。 这个项目不仅涉及硬件接口的设计,还包含了软件层面的中断和查询机制,这些都是单片机通信系统设计的关键部分。通过这样的设计,可以灵活地扩展系统的通信能力,满足不同复杂程度的应用需求。
116 浏览量
基于单片机的双机通信设计 一、实验目的 1、掌握双机通信的原理和编程方法。 2、学习8251A的使用方法 二、实验内容 1、实验原理图: 2.实验内容 如图所示,TXC和RXC分别为8251A的发送时钟和接收时钟。它由片外8253A的OUT1提供。 本实验要求以查询方式进行收发。要完成本实验,需2台DVCC系列实验系统。其中一台为 串行发送,一台为串行接收,在1号机上装串行发送程序,在2号机上装串行接收程序, 则在1号机上键入的字符显示在2号机的显示器上。 由于本系统监控中未对8253A、8251A进行初始化,因此本实验开始必须对8253、8251进 行初始化,然后才可以直接进入对串行口状态的查询。 三、程序 系统晶振是 6.0 MHz ORG 07F0H START: MOV SP,#60H mov A,#02H MOV R0,#79H MOV @R0,A INC R0 MOV A,#10H MOV @R0,A INC R0 MOV A,#01H MOV @R0,A INC R0 MOV A,#03H MOV @R0,A INC R0 MOV A,#00H MOV @R0,A INC R0 MOV A,#08H MOV @R0,A MOV A,#7EH MOV DPTR,#1FFFH MOVX @DPTR,A MOV 87H,#80H MOV SCON,#50H ;串口 方式 1 MOV TMOD,#20H ;T1 方式 1 MOV TL1,#0F3H ;波特率 9600 的常数 MOV TH1,#0F3H SETB TR1 ;开中断 CLR ET1 CLR ES WAIT: JBC RI,DIS_REC ;是否接收到数据 LCALL DISP ; SJMP WAIT ; DIS_REC: MOV A,SBUF ;读串口接收到的数据 LCALL DATAKEY ;显示输入的数字(0-F) DB 79H,7EH AJMP WAIT DATAKEY: MOV R4,A MOV DPTR,#1FFFH MOVX A,@DPTR MOV R1,A MOV A,R4 MOV @R1,A CLR A POP 83H POP 82H MOVC A,@A+DPTR INC DPTR CJNE A,01H,DATAKEY2 DEC R1 CLR A MOVC A,@A+DPTR DATAKEY1: PUSH 82H PUSH 83H MOV DPTR,#1FFFH MOVX @DPTR,A POP 83H POP 82H INC DPTR PUSH 82H PUSH 83H RET DATAKEY2: DEC R1 MOV A,R1 SJMP DATAKEY1 DISP: SETB 0D4H MOV R1,#7EH MOV R2,#20H MOV R3,#00H DISP1: MOV DPTR,#DATACO MOV A,@R1 MOVC A,@A+DPTR MOV DPTR,#0FF22H MOVX @DPTR,A MOV DPTR,#0FF21H MOV A,R2 MOVX @DPTR,A LCALL DELAY DEC R1 CLR C MOV A,R2 RRC A MOV R2,A JNZ DISP1 CLR 0D4H RET DELAY: MOV R7,#03H DELAY0: MOV R6,#0FFH DELAY1: DJNZ R6,DELAY1 DJNZ R7,DELAY0 RET DATAC DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0BFH,0CH,89H,0DEH END 四、 实验步骤 1、准备2台DVCC系列实验仪,确定1号为发送,2号为接收。 2、将1号RXD插孔和2号的TXD插孔相连。 3、将1号TXD插孔和2号的RXD插孔相连。 4、将1号GND插孔和2号的GND插孔相连(共地)。 5、将8253CS插孔和Y4插孔相连,8251CS和Y5插孔相连。 6、将SIO区D0—D7和BUS2区 XD0—XD7相连。 7、先运行2号机,在2号机提示符"P....."状态下,输入0D00后,再按EXEC键进入等待接 收状态,显示器显示"8251—2"。 8、再运行1号机,在1号机处于提示符"P....."状态下,输入0E00H后,按EXEC键,进入 串行发送状态。显示器显示"8251—1"。 9、在1号机的键盘上输入数字键,应在2号机显示器上显示对应数字值。 10、输入数字键后再按MON键,1号机显示"8251 good"。如果不输入数字键直接按MON键,则显示"Err",如果双机通信不能正常进行,也 显示"Err