基于RS485总线的多机通信系统设计(6)

2019-01-07 17:55

河南理工大学毕业设计(论文)说明书

若是,则置SM2为‘0’,继续接收主机送来的数据;若不是,则禁止T0定时,不在接收后面的数据。当被寻址从机接收完一帧信息后,字符间隔定时器会产生定时中断,进入TO中断服务程序。图5-5是TO中断服务程序流程图。

图5-5 TO中断服务程序流程图

进入TO中断服务程序后,首先清除TO中断请求标志,停止TO定时器,接着判断是接收完成还是发送超时,若是接收完成,再判断校验和是否正确,若正确,对接收的命令进行解释,看是主机读还是主机写操作,若是主机读,则将数据打包,送到专门用于通信的数组,接着,禁止接收,置本机为应答工作方式,最后启动发送,发送第一个字节,同时启动发送时限定时器TO。当一个字节发送完后,便进入通信中断服务程序,继续发送余下数据。如果在上边判校验和时,发现不正确,则置SM2为‘1’,恢复本机

- 22 -

河南理工大学毕业设计(论文)说明书

的侦听状态,以便接收主机的重发信息。

5.3.2 主机通信软件设计

该系统主机的主要任务是循环读取从机的检测结果,并送终端显示,其通信软件由3部分组成:主程序中负责寻址从机的寻址模块、通信中断服务程序和TO中断服务程序。寻址模块程序流程图见图5-6。

图5-6 寻址模块程序流程图

对从机寻址是按照从机的编号顺序进行的,即从1号从机开始,主机发送该从机信息帧的第1个字节启动寻址,同时启动发送超时定时器TO,然后检测通信结束标志.当主机成功的接收到该从机的应答信息后,便会置位该标志,完成与该从机的通信。接下来,寻址下一从机,直到所有从机都被寻址。最后,主机完成其它功能后,又从1号从机开始下一循环的寻址。通信中断服务程序和TO中断服务程的设计方法与从机的大同小异,在此不再介绍。

- 23 -

河南理工大学毕业设计(论文)说明书

第6章 程序设计

程序是单片机灵魂,没有对应的程序,单片机系统是无法完成任何动作的,解决所涉及的问题的。编写程序必须对机器的指令系统非常的熟悉,而且不能脱离具体的机器,因此程序不能在不同的机器上通用。未了使本系统能够成功运行,程序是必不可少的,所以这次编写了一个主机程序,两个从机程序。

6.1 主机程序如下:

#include #include #include unsigned char cort=0; sbit P3_5=P3^5;

/********************************* 按键扫描子程序

*********************************/ key_serial() interrupt 0 using 1 {

++cort; }

/********************************* 发送子程序

*********************************/ void master(void) {

if(cort==1) {

SBUF=0x01; while(TI!=1);TI=0; P3_5=0; SM2=0;

while (RI!=1);RI=0; P2=SBUF;

- 24 -

河南理工大学毕业设计(论文)说明书

}

}

SM2=1; P3_5=1;

if(cort==2) {

SBUF=0x02; }

if(cort==3)cort=1; SM2=1;

while(TI!=1);TI=0; SM2=0; P3_5=0;

while(RI!=1);RI=0; P2=SBUF; SM2=1; P3_5=1;

/***************主程序****************/ void main(void) {

P2=0xff; TMOD=0x20; TL1=0xfd; TH1=0xfd; PCON=0x00; TR1=1; SCON=0xf8; EA=1; EX0=1; IT0=1; P3_5=1;

- 25 -

河南理工大学毕业设计(论文)说明书

while(1) {

master(); } }

//发送

6.2 从机1程序如下:

#include #include #include

unsigned char serial_receiver; sbit P3_5=P3^5;

/**************************************** 串行口中断子程序

****************************************/ void serial (void) interrupt 4 using 1 { }

/*****************主程序******************/

ES=0; RI=0;

if(SBUF==0x01) {

P3_5=1; SM2=0; P1=0x10; SBUF=0x10; while(TI!=1);TI=0;

}

SM2=1; ES=1; P3_5=0;

- 26 -


基于RS485总线的多机通信系统设计(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《上海市建设工程安全防护、文明施工措施费用管理暂行规定》的通

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: