题目: 多机通讯
系统 一、课题任务基本要求
* 主站可以轮循与16个
通信,每个从站有8路模拟量、5路开关量、2路控制量和4路电度量;
* 制定主机与从机间的通信规约。
二、
设计原理
串行通信是在一根传输线上一位一位地顺序传送信息,所用传输线少,速率低。
串行通信分为异步通信方式和同步通信方式。此系统采用异步通信方式实现数据通信。
异步通信的信息格式:一个传输线上的字符由起始位(1位)、字符代码数据位(5~8位)、奇偶校验位(1位,也可没有)、停止位(1位、1.5位或2位)四个部分组成。
异步通信方式传送一个字符是以起始为开始和停止位结束的。传送开始之前,发收双方要把所采用的信息格式和数据传输的速率作统一的约定。传送开始后,接收设备不断地检测传输线,看是否有起始位到来。当收到一系列的"1"之后,检测到一个"0",说明起始位出现,就开始接收所规定的数据位和奇偶校验位以及停止位。经过处理将停止位去掉,把数据位拼装成一个并行字节,并且经校验后,无奇偶错才算正确地接收到了一个字符。一个字符接收完毕,接收设备又继续测时传输线,监视"0"电平的到来和下一字符的开始,直到全部数据传送完毕。
三、
方案设计
本系统设计目标是实现主/从机之间十进制数的相互传输。
工作模式近似于对讲机,主机发送完之后主/从机模式互换,实现主/从机相互通信,信息互换。功能实现通过以下几个步骤:
1、利用一条传输线将两台MCS-96单片机的P2.0和P2.1口连接起来,配以相应的主机发送和从机接收
程序,实现两台单片机间的通信;
2、发送端主机读键盘,识别键码,并将键码转换LED显示器的段码进行发送,同时在本机上显示发送的内容;
3、接收端从机检测传输线,接收到发送端主机发送的段码信息,动态移位显示;
4、当发送端主机键盘输入"."、空格指令时,在发送端主机对其做相应处理;
5、当发送端主机键盘输入的数据是删除字符,清空LED显示器指令时,由接收端从机做相应处理;
6、当发送端主机键盘输入主/从机模式转换指令时,主机向从机发送指令后,进入从机程序,转为从机模式,接收端从机接到指令后,进入主机程序,转为主机模式。
五、方案的实现与具体设计过程
5.1主程序部分
;地址区定义1.缓冲区3200H-3250H
;地址区定义2.召唤数据存放区3300H-3321H
;地址区定义3.时间存放地址3401H-3407H
CHR EQU 40H ;发送数据中间变量
AX EQU 42H
BX EQU 44H
CX EQU 46H
DX EQU 48H
ADDRESS EQU 50H
COMMAND EQU 52H
JIAOYAN EQU 54H ;校验码=address xor command
TEMP0 EQU 6EH
TEMP1 EQU 56H ;中间变量
TEMP2 EQU 58H
TEMP3 EQU 60H
TEMP4 EQU 62H
G_CHR EQU 64H ;接收数据中间变量
FLAG EQU 66H
S_ADDRESS EQU 68H
BUFF EQU 6AH
R_JIAOYAN EQU 6CH
TEST EQU 70H
ORG 2080H
MAIN:
DI
LD SP,#0080H
;串行口初始化
ORB IOC1,#20H ;选择TXD引脚
LDB BAUDRA,#47H
LDB BAUDRA,#80H ;设置波特率9600
LD TEMP1,#SIO_INT
ST TEMP1,200CH[0] ;装载中断向量
LDB SPCON,#09H ;选择方式1,允许接收REN=1
LDB TEMP0,#20H ;TI=1
;定时器初始化
LD TEMP1,#SOFT_INT
ST TEMP1,200AH[0]
LDB INTMAS,#60H ;允许
软件定时器与串行口中断
CLRB INTPEN
LDB HSOCOM,#38H
ADD HSOTIM,TIMER1,#0FFFEH ;定时95ms
;变量初始化
CLRB FLAG
LDB S_ADDRESS,#01H
LD BUFF,#3200H
LDB R_JIAOYAN,#00H
EI ;开