基于51单片机的多机通信系统设计
基于AT89C51单片机的CAN总线的多机通信

朗曙 撼
图报 送 电 理 2 发 件 原 文硬路图
度和反馈调节部分∞。用于显示温度的外部温度传感器采用数字 式温度传感器 D 1B 0 反馈调节部分主要 由两个发光二极管来 S82 。 实现 , 当温度在设置温度门限之外 , 相应的灯光代表实际中控制加 热装置或制冷装置。另外 , 采用 矩 阵键盘设置上下限温度值 , 不仅节省 I 口资源, / O 而且操作简便。根据系统原理 , 电路主要 由 图 3 报文接收硬件 电路原理 图 图 4 系统总体流程图 四大部分组成 : 智能 C N节点部分 、 A 输入控制部分 、 输出控制部分 超出适合水稻苗生长的温度范围或者低于此温度范围 ,要证 明所没计 和反馈控制部分。 如图 1 所示 , 输入输出和反馈模块统称为具体功能单 的电路是否符合实际要求 ,就必须人工设定两个门限温度值作为实际
・
2 0 0 ・
科 教 文 化
企业往往将生产经营的信息资料视为己有进行保密。这对于制造商来 3体育用品零售业供应链实现信息共享的途径 说, 如何协调链条上各节点之间的关系 , 尤其是和销售商之间的关 系, 3 加快对中小型专卖店 、 . 1 连锁店、 便利店和折扣店的整合 、 , 重组 建 尤为重要 , 此时信息共享的作用就凸显出来了。在现实实际过程 中, 立大型的、 各 多服务的体育零售店 , 实行直销和代销。有实力和影响力 的 利益相关群体因为利益和终极 目 的不统一 ,很难实现所谓的信息共 零售商要实行 自有品牌战略。首先, 标 零售商企业的经营者要有革新经营 享, 例如图 2 现实理想化模式 , . 各利益相关企业之间是关闭的环形 图, 观念 ~ 以“ 主动营销” 取代传统的“ 被动零售” ; 营销企业必须造就 其次, 信 息是为所有利益相关企业共享的。 为什么无法实现呢? 那因为现实实 和培养一批高素质的体育经营管理 ^ 因为此时的零售商不仅只销售 、 才, 践中存在诸多问题 。 商品, 还要负责做好产 品开发设计、 品牌管理 、 生产与质量检验 、 促销宣 2 体育用品零售业信息共享中存在的问题 . 3 传等一系列复杂的营销工作。 2 .我国零售业在 2 31 0世纪 9 0年代的发展可以说是 日 新月异, 主 3 针对不同地域 、 . 2 不同年龄、 不同职业、 不同爱好 的消费者 , 建立多 要表现在零售业态的发展, 即从过去单一的百货商场 、 小商店格局到现 样化的信息反馈渠道和信息流通渠道 , 例如网络 、 电视 、 报纸等多种媒 在的连锁超市 、 便利店 、 折扣店 、 专卖店等多种业态共存共荣 的发展格 介。 保证各利益相关群体 的信 息 共享的实现 , 建立快速反应的区域体育 局。零售业开始专业化后, 出现了各种专业化的零售店, 如体育用品专卖 用品零售商供应链。这建立在交易企业间“ 战略联盟 ” 的基础上 , 建立 店和综合 的体 育用品商场就是零售业专业化趋势的重要体现日然而’ “ 当的商 品、 当的时期 、 。 体 适 适 以适 当的价格 、 并在适 当的场所供给的系 育用品零售业的发展仍仅限于业态 、 店面的平面拓展, 没有进行产品的 统”1 5 1 。 立体纵深 发掘 , P 例如 B产品。 3 体育用品零售商供应链各利益相关企业之间要建立 战略合作 . 3 2 _巾国市场巨大 ,而且不同区域 ,不同空间结构信息是不一样 伙伴关系 , .2 3 在一定时期内的共享信 息、 共担风险 、 同获利 的协议关系。 共 的, 所以在大范围内实现信息共享是不现实的, 无法实现 决速反应供应 供应链上的各企业应构建 以“ 共享信息为荣 , 保守信息为耻 ” 的联盟文 链 和敏 捷化 供应链 。 化, 把整个联盟的利益放在第一位。同时联盟要尽量考虑成员的需要 , 2 .在零售业供应链巾, .3 3 供应商 、 制造商、 零售商和消费者, 彼此之 建立的第三方监督机构要在行为上保证公平 ,这样有利于成员之间的 最终使得信息共享成为一种义务 , 成为一种 间可以相互联系 , 组成各种各样的战略联盟 , 导致生产信息、 库存信息 、 相互谦让和避免恶 陛竞争 , 技术信息、对未来市场的预测信 息等视为某一利益相关企业已有进行 自觉日 。 3 . 4当今 中 国的市 场经 济正 处 于 转 型期 , 场 自身 的优 胜 劣 汰能 力 市 保密, 这样就阻碍了信息的快速流通和反馈。 以竞争和合作并存是零 所 并没正真正的发挥出来 , 因此首先要加强政府对市场 的宏观调控 , 建立 售业供应链战略联盟的重要特点。 个有序的市场 , 以使得人们对未来收益充满售 。另外 , 要逐步完善 2 . 4中国著名体育品牌企业安踏的成功启示 作为多年来保持高速增长、 在体育用品行业实现“ 中国制造 ” 升级 零售业供应链战略联盟信誉管理的法律、 法规。 结合我国现阶段的实际 为“ 1 叶同创造” 的典 代表, 对安踏而言 , 与中国奥委会签订 的合作合同 情况 , 逐步建立系统 的、 的信誉管理方面的法规体系 , 配套 依靠法律法 来保证信誉管理 的顺利实施 , 从而保证 注定是其品牌绽放 的重要历史时刻。作为 2 0 — 0 2年新周期中国奥 规的强制性规定和政策 的引导 , 09 21 。提高企业的 委会的合作伙伴, 安踏所涉权益覆盖之广、 年限之长 、 赞助金额之高, 在 零售业供应链战略联盟 中各个成员更好的实现信 息共享目 中国奥林 匹克运动史上都是空前的。 这是整个体育行业对安踏如今“ 信 息化水平 。 江 4 结论 湖地位”的肯定 ,也是安踏自身品牌和产品升级的体现。 ̄0 3 2 0 20- 05 2 1世纪的竞争将不再是企业与企业之间的竞争 , 而是供应链与供 年, 安踏完成了更为重要 的品牌转型。 在大多数 国内体育用品企业还在 为生产如何迎合每年那 3 个月的销售旺季发愁时, 安踏又领先一步 , 应链之间的竞争 。任何一个企业只有与上下游企业或竞争企业结成战 其 形成稳定的供应链 , 实现信息共享 , 并不断使供应链整体价值 产品系列首先在鞋 、 、 服 配上进行了细分和补充。2 0 0 7年 , 在其他皮拍 略联盟, 寻求如何进行鞋服配细分的时候 ,安踏已完成了各个专业运动装备市 增值 ,才有可能在竞争 中取胜。中国体育用 品市场在今后几年很有潜 我们要保护并开发 自己的品牌 , 搞好零售商的 自主创新 能力 , 多渠 场鞋服配产品系列的深度品牌细分 ,这是 引领真个体育用品也未来发 力, 展 的理念。安踏致力于为中国更多消费者精心设计和打造全方位 的专 道销售能力等。中国的体育用品零售环境正在走向成熟,正在逐步开
单片机实现双机通信自己的

单片机实现双机通信自己的单片机是一种集成电路芯片,可以实现各种功能。
双机通信是指两台或多台计算机通过网络或其他方式进行数据传输和通信的过程。
在很多应用中,需要使用单片机实现双机通信,以实现数据传输和信息交换等功能。
单片机实现双机通信的基本原理是通过通信端口(例如串口或网络接口等)进行数据的发送和接收。
在这个过程中,需要使用一些通信协议来规定数据的格式和传输的方式。
下面是一种基于串口通信的单片机双机通信的实现方法。
首先,我们需要确定通信的硬件配置。
通常情况下,可以通过串口连接两台单片机,其中一台设置为发送方,另外一台设置为接收方。
发送方将待发送的数据通过串口发送出去,接收方则接收这些数据。
在单片机程序代码的编写方面,我们需要首先配置串口的通信参数,例如波特率、数据位、停止位、奇偶校验等。
这些参数需要在发送方和接收方进行一致配置,以保证数据的正确传输。
接下来,我们需要实现发送和接收的程序。
首先,发送方需要将待发送的数据存储在发送缓冲区中,然后通过串口将数据发送出去。
接收方则需要实时监听串口接收缓冲区中是否有数据到达,并将接收到的数据存储在接收缓冲区中。
另外,为了保证数据的正确传输,通常还要实现一些数据校验机制,例如奇偶校验、循环冗余校验(CRC)等。
这些校验机制可以用于检测和纠正数据传输中的错误。
在程序编写的过程中,还需要考虑到程序的稳定性和容错性。
例如,在发送方发送数据时,可能会遇到发送缓冲区已满的情况,此时需要实现相应的处理机制,例如等待一段时间后再次发送。
同样,在接收方接收数据时,也可能会遇到接收缓冲区溢出的情况,此时需要及时处理,以避免数据的丢失。
最后,在实际应用中,还需要考虑一些高级的功能,例如数据压缩、加密、数据传输速度的控制等。
这些功能可以根据具体的需求进行实现。
总之,单片机实现双机通信是一项复杂的任务,需要考虑到硬件和软件两个方面的因素。
在程序编写的过程中,需要考虑到通信参数的配置、发送和接收的程序编写、数据校验、稳定性和容错性等方面的问题。
51单片机多机通信

一、多机通信原理在多机通信中,主机必须要能对各个从机进行识别,在51系列单片机中可以通过SCON 寄存器的SM2位来实现。
当串口以方式2或方式3发送数据时,每一帧信息都是11位,第9位是数据可编程位,通过给TB8置1或置0来区别地址帧和数据帧,当该位为1时,发送地址帧;该位为0时,发送数据帧。
在多机通信过程中,主机先发送某一从机的地址,等待从机的应答,所有的从机接收到地址帧后与本机地址进行比较,若相同,则将SM2置0准备接收数据;若不同,则丢弃当前数据,SM2位不变。
二、多机通信电路图此处,U1作为主机,U2为从机1,U3为从机2。
三、C语言程序(1)主机程序#include<reg51.h>#include<string.h>#define _SUCC_ 0x0f//数据传送成功#define _ERR_ 0xf0//数据传送失败unsigned char Table[9]={0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39}; unsigned char Buff[20]; //数据缓冲区unsigned char temp=0xff;sbit KEY1=P1^6;sbit KEY2=P1^7;//unsigned char addr;//延时1ms函数void delay_1ms(unsigned int t){unsigned int x,y;for(x=t;x>0;x--)for(y=110;y>0;y--);}//缓冲区初始化void Buff_init(){unsigned char i; //将Table里的数据放到缓冲区里for(i=0;i<9;i++){Buff[i]= Table[i];delay_1ms(100);}}//串口初始化函数void serial_init(){TMOD=0x20; //定时器1工作于方式2TH1=0xfd;TL1=0xfd; //波特率为9600PCON=0;SCON=0xd0; //串口工作于方式3TR1=1; //开启定时器TI=0;RI=0;}//发送数据函数void SEND_data(unsigned char *Buff){unsigned char i;unsigned char lenth;unsigned char check;lenth=strlen(Buff); //计算数据长度check=lenth;TI=0; //发送数据长度TB8=0; //发送数据帧SBUF=lenth;while(!TI);TI=0;for(i=0;i<lenth;i++) //发送数据{check=check^Buff[i];TB8=0;SBUF=Buff[i];while(!TI);TI=0;}TB8=0; //发送校验字节SBUF=check;while(!TI);TI=0;}//向指定从机地址发送数据void ADDR_data(unsigned addr){while(temp!=addr) //主机等待从机返回其地址作为应答信号{TI=0; //发送从机地址TB8=1; //发送地址帧SBUF=addr;while(!TI);TI=0;RI=0;while(!RI);temp=SBUF;RI=0;}temp=_ERR_; //主机等待从机数据接收成功信号while(temp!=_SUCC_){SEND_data(Buff);RI=0;while(!RI);temp=SBUF;RI=0;}}void main(){Buff_init();serial_init();while(1){if(KEY1==0){delay_1ms(5);if(KEY1==0){while(!KEY1);ADDR_data(0x01);}}if(KEY2==0){delay_1ms(5);if(KEY2==0){while(!KEY2);ADDR_data(0x02);}}}}(2)从机1程序#include<reg51.h>#include<string.h>#define addr 0x01//从机1的地址#define _SUCC_ 0x0f//数据传送成功#define _ERR_ 0xf0//数据传送失败unsigned char aa=0xff;//主机与从机之间通信标志unsigned char Buff[20];//数据缓冲区//串口初始化函数void serial_init(){TMOD=0x20; //定时器1工作于方式2TH1=0xfd;TL1=0xfd; //波特率为9600PCON=0;SCON=0xd0; //串口工作于方式3TR1=1; //开启定时器TI=0;RI=0;}//接收数据函数unsigned char RECE_data(unsigned char *Buff) {unsigned char i,temp;unsigned char lenth;unsigned char check;RI=0; //接收数据长度while(!RI);if(RB8==1) //若接收到地址帧,则返回0xfereturn 0xfe;lenth=SBUF;RI=0;check=lenth;for(i=0;i<lenth;i++) //接收数据{while(!RI);if(RB8==1) //若接收到地址帧,则返回0xfereturn 0xfe;Buff[i]=SBUF;check=check^(Buff[i]);RI=0;}while(!RI); //接收校验字节if(RB8==1) //若接收到地址帧,则返回0xfereturn 0xfe;temp=SBUF;RI=0;check=temp^check; //将从主机接收到的校验码与自己计算的校验码比对if(check!=0) //校验码不一致,表明数据接收错误,向主机发送错误信号,函数返回0xff {TI=0;TB8=0;SBUF=_ERR_;while(!TI);TI=0;return 0xff;}TI=0; //校验码一致,表明数据接收正确,向主机发送成功信号,函数返回0x00 TB8=0;SBUF=_SUCC_;while(!TI);TI=0;return 0;}void main(){serial_init();while(1){SM2=1; //接收地址帧while(aa!=addr) //从机等待主机请求自己的地址{RI=0;while(!RI);aa=SBUF;RI=0;}TI=0; //一旦被请求,从机返回自己的地址作为应答,等待接收数据 TB8=0;SBUF=addr;while(!TI);TI=0;SM2=0; //接收数据帧aa=0xff; //从机接收数据,并将数据保存到数据缓冲区while(aa==0xff){aa=RECE_data(Buff);}if(aa==0xfe)continue;P1=Buff[1]; //查看接收到的数据}}(3)从机2程序#include<reg51.h>#include<string.h>#define addr 0x02//从机2的地址#define _SUCC_ 0x0f//数据传送成功#define _ERR_ 0xf0//数据传送失败unsigned char aa=0xff;//主机与从机之间通信标志unsigned char Buff[20];//数据缓冲区//串口初始化函数void serial_init(){TMOD=0x20; //定时器1工作于方式2TH1=0xfd;TL1=0xfd; //波特率为9600PCON=0;SCON=0xd0; //串口工作于方式3TR1=1; //开启定时器TI=0;RI=0;}//接收数据函数unsigned char RECE_data(unsigned char *Buff){unsigned char i,temp;unsigned char lenth;unsigned char check;RI=0; //接收数据长度while(!RI);if(RB8==1) //若接收到地址帧,则返回0xfereturn 0xfe;lenth=SBUF;RI=0;check=lenth;for(i=0;i<lenth;i++) //接收数据{while(!RI);if(RB8==1) //若接收到地址帧,则返回0xfereturn 0xfe;Buff[i]=SBUF;check=check^(Buff[i]);RI=0;}while(!RI); //接收校验字节if(RB8==1) //若接收到地址帧,则返回0xfereturn 0xfe;temp=SBUF;RI=0;check=temp^check; //将从主机接收到的校验码与自己计算的校验码比对if(check!=0) //校验码不一致,表明数据接收错误,向主机发送错误信号,函数返回0xff {TI=0;TB8=0;SBUF=_ERR_;while(!TI);TI=0;return 0xff;}TI=0; //校验码一致,表明数据接收正确,向主机发送成功信号,函数返回0x00 TB8=0;SBUF=_SUCC_;while(!TI);TI=0;return 0;}void main(){serial_init();while(1){SM2=1; //接收地址帧while(aa!=addr) //从机等待主机请求自己的地址{RI=0;while(!RI);aa=SBUF;RI=0;}TI=0; //一旦被请求,从机返回自己地址作为应答,等待接收数据TB8=0;SBUF=addr;while(!TI);TI=0;SM2=0; //接收数据帧aa=0xff; //从机接收数据,并将数据保存到数据缓冲区while(aa==0xff){aa=RECE_data(Buff);}if(aa==0xfe)continue;P1=Buff[2]; //查看接收到的数据}}。
计算机与51系列单片机多机通讯的实现

图 1 5 单 片 机 主 从 式 多 机 通 讯 原 理 1
Fi 1 P ii e frMu t o ue mmu c to y 51 e is Mirc mp tr g. rcpl o li mp trCo c nia in b S re c o o u e
予 理 睬 , 能 激 活 中 断 标 志 . E 允 许 串 行 接 收 , 软 件 控 制 , R N: 1 , 许 接 收 . B 不 R N 由 当 E 时 允 T 8在 方 式 2和
方 式 3时 , 送 的第 9位 数 据 , 发 由软 件 置位 或 复位 .B =1表 示 该 帧 数 据 为地 址 帧 ;B =0表 示 发送 的 T8 T8
数 据 帧 .B R 8在 方 式 2和方 式 3时 , 收 的是 第 9位数 据 . I I 送/ 收 中 断标 志位 , 须 由软 件 清 0 接 T/ 发 R 接 必 .
12 5 . 1系列 单片 机 主从 式 多机 通 讯原 理
主 从 式 多 机 通 讯 系 统 是 由 1台 主 机
和 多 台 从 机 组 成 的 , 机 发 送 信 息 可 被 各 主 个 从 机 接 收 , 从 机 只 能 对 主 机 发 送 信 而
息, 机 问不 能互 相通 讯 . 原理 如 图 1 从 其
所 示 . 各从 机 串行 口工 作 方 式 为 方 式 2 当 或 方 式 3时 , S 若 M2= 1 R N= 1 利 用 此 ,E , 5 1系 列 单 片 机 串 行 口 的 通 讯 性 能 , 实 现 可
储 和 检索 、 示 界 面 的更新 、 显 从机 的 调度 等 ) 这 类 系统 中计 算 机 与单 片机 的数 据通 讯 技 术是 决 定 整 个 系 .
51单片机的多机通信原理

51单片机的多机通信原理1. 什么是51单片机的多机通信?51单片机的多机通信是指在多个51单片机之间进行数据传输和通信的过程。
通过多机通信,可以实现不同单片机之间的数据共享和协作,从而实现更加复杂的功能。
2. 多机通信的原理是什么?多机通信的原理是通过串口进行数据传输。
在多个单片机之间,可以通过串口进行数据的发送和接收。
通过定义好的协议,可以实现数据的传输和解析,从而实现多机之间的通信。
3. 多机通信的步骤是什么?多机通信的步骤包括以下几个方面:(1)定义好通信协议:在多机通信之前,需要定义好通信协议,包括数据的格式、传输方式等。
(2)设置串口参数:在单片机中,需要设置好串口的参数,包括波特率、数据位、停止位等。
(3)发送数据:在发送数据之前,需要将数据按照协议进行格式化,然后通过串口发送出去。
(4)接收数据:在接收数据之前,需要设置好串口的中断,然后在中断中接收数据,并按照协议进行解析。
(5)处理数据:在接收到数据之后,需要对数据进行处理,包括数据的存储、显示等。
4. 多机通信的应用场景有哪些?多机通信的应用场景非常广泛,包括以下几个方面:(1)智能家居系统:通过多机通信,可以实现智能家居系统中不同设备之间的数据共享和协作。
(2)工业控制系统:在工业控制系统中,多机通信可以实现不同设备之间的数据传输和控制。
(3)智能交通系统:在智能交通系统中,多机通信可以实现不同设备之间的数据共享和协作,从而实现更加智能化的交通管理。
(4)机器人控制系统:在机器人控制系统中,多机通信可以实现不同机器人之间的数据传输和控制,从而实现更加复杂的任务。
5. 多机通信的优缺点是什么?多机通信的优点包括以下几个方面:(1)实现数据共享和协作:通过多机通信,可以实现不同设备之间的数据共享和协作,从而实现更加复杂的功能。
(2)提高系统的可靠性:通过多机通信,可以实现数据的备份和冗余,从而提高系统的可靠性。
(3)提高系统的扩展性:通过多机通信,可以实现系统的模块化设计,从而提高系统的扩展性。
基于51单片机的多机通信系统设计

基于51单片机的多机通信系统设计多机通信系统是指通过一台主机与多台从机之间进行数据交互和通信的系统。
在本设计中,我们将使用51单片机实现一个基于串行通信的多机通信系统。
系统硬件设计如下:1.主机:使用一个51单片机作为主机,负责发送数据和接收数据。
2.从机:使用多个51单片机作为从机,每个从机负责接收数据和发送数据给主机。
3.串口:主机和从机之间通过串口进行通信。
我们可以使用RS232标准通信协议。
系统软件设计如下:1.主机设计:a.初始化串口:设置串口参数,如波特率、数据位、停止位等。
b.发送数据:将需要发送的数据存储在发送缓冲区中,通过串口发送给从机。
c.接收数据:接收从机发送的数据,并存储在接收缓冲区中。
2.从机设计:a.初始化串口:设置串口参数,如波特率、数据位、停止位等。
b.接收数据:接收主机发送的数据,并存储在接收缓冲区中。
c.发送数据:将需要发送的数据存储在发送缓冲区中,通过串口发送给主机。
系统工作流程如下:1.主机启动,执行初始化操作,包括初始化串口。
2.从机启动,执行初始化操作,包括初始化串口。
3.主机发送数据给从机:主机将需要发送的数据存储在发送缓冲区中,通过串口发送给从机。
4.从机接收并处理数据:从机接收主机发送的数据,并存储在接收缓冲区中,对接收到的数据进行处理。
5.从机发送数据给主机:从机将需要发送的数据存储在发送缓冲区中,通过串口发送给主机。
6.主机接收并处理数据:主机接收从机发送的数据,并存储在接收缓冲区中,对接收到的数据进行处理。
7.主机和从机循环执行步骤3-6,实现多机之间的数据交互和通信。
多机通信系统的设计考虑到以下几个方面:1.硬件设计:需要合理选择单片机和串口的类型和参数,确保系统的稳定性和可靠性。
2.软件设计:需要设计适应系统需求的通信协议和数据处理提取方法,保证数据的准确性和完整性。
3.通信协议:需要定义主机和从机之间的通信协议,包括数据的格式、传输方式等,以便实现正确的数据交互。
实时通信监测的单片机多机通信电路设计

实时通信监测的单片机多机通信电路设计*孙万麟(昌吉学院物理系,昌吉831100)*基金项目:新疆维吾尔自治区教育科学 十二五 规划课题(145006)㊂摘要:为了改善单片机通信过程中时常会产生一些异常状态,本文采用P r o t e u s 软件设计及仿真了一个主要由4个80C 51单片机㊁3个七段L E D 数码管㊁4ˑ4矩阵式键盘㊁模拟开关及电压探针等构成的改进多机通信电路,并借助P r o -t e u s 仿真图表㊁示波器及查看寄存器存储窗口等虚拟工具对仿真过程进行了验证性分析㊂仿真结果表明,改进多机通信电路能够实时监测通信是否正常,提高了单片机的通信稳定性㊂关键词:P r o t e u s ;80C 51;多机通信电路;仿真中图分类号:T P 273 文献标识码:AD e s i g n o f M u l t i -c o m p u t e r C o m m u n i c a t i o n C i r c u i t f o r R e a l -t i m e C o m m u n i c a t i o n M o n i t o r i n gS u n W a n l i n(D e p a r t m e n t o f P h y s i c s ,C h a n g j i C o l l e g e ,C h a n g ji 831100,C h i n a )A b s t r a c t :I n o r d e r t o i m p r o v e s o m e a b n o r m a l c o n d i t i o n s t h a t o f t e n o c c u r r s i n t h e c o mm u n i c a t i o n p r o c e s s o f s i n g l e c h i p m i c r o c o m pu t e r (S C M ),t h e P r o t e u s s o f t w a r e i s u s e d t o d e s i g n a n d s i m u l a t e a n i m p r o v e d m u l t i -c o m p u t e r c o mm u n i c a t i o n c i r c u i t m a i n l y c o m po s e d o f f o u r 80C 51s i n g l e c h i p m i c r o c o m p u t e r s ,t h r e e 7-s e g m e n t L E D d i g i t a l t u b e s ,4ˑ4m a t r i x k e y b o a r d ,a n a l o g s w i t c h a n d v o l t a ge p r o b e ,e t c .T h e s i m u l a t i o n p r o c e s s i s v e r if i e d a n d a n a l y z e d b y m e a n s o f P r o t e u s s i m u l a t i o n c h a r t ,o s c i l l o s c o p e a n d v i r t u a l t o o l s s u c h a s v i e w i ng r e gi s t e r s t o r a g e w i n d o w.T h e s i m u l a t i o n r e s u l t s s h o w t h a t t h e i m p r o v e d m u l t i -c o m p u t e r c o mm u n i c a t i o n c i r c u i t c a n m o n i t o r w h e t h e r t h e c o mm u -n i c a t i o n i s n o r m a l o r n o t i n r e a l t i m e a n d i m p r o v e t h e c o mm u n i c a t i o n s t a b i l i t y of S C M.K e yw o r d s :P r o t e u s ;80C 51;m u l t i -c o m p u t e r c o mm u n i c a t i o n c i r c u i t ;s i m u l a t i o n 0 引 言随着计算机技术的飞速发展,单片机技术已在各行各业应用中越来越普及㊂今天,单片机技术已由原来的单工通信㊁半双工通信发展到如今的全双工通信和无线通信,并逐渐向多机互联趋势发展,但由于单片机在多机通信过程中会出现延时㊁中断㊁通信错误等异常情况[1-6],因而本文对多机通信电路进行设计及改进,提高了单片机通信的稳定性㊂1 多机通信电路设计设计多机通信电路器件为:采用4个80C 51嵌入式单片机U 1㊁U 2㊁U 3和U 4,其中U 1为主机,U 2㊁U 3和U 4为从机,利用4ˑ4矩阵式键盘向主机U 1提供通信信息,主机U 1的P 1口作为通信信息接收端,假定通过键盘向主机U 1提供模拟信号 2 (10100100B=A 4H ),作为各机相互通信数据,在主机U 1的P 0.0~P 0.2端口设置多路开关K 1㊁K 2㊁K 3,用来分别控制主机U 1与从机U 2㊁U 3㊁U 4之间相互独立通信,并用3个七段共阳型L E D 数码管显示从机接收到的通信信息,为了实时检测主机与从机之间是否正常通信,3个从机P 2.3端口均连接一只L E D 发光二极管D 1㊁D 2㊁D 3,并设置二极管点亮表示通信正常,采用P r o t e u s 软件设计的改进电路如图1所示㊂图1中,主机U 1和3个从机U 2㊁U 3和U 4之间采用全双工通信,因而将各从机T X D 端口分别与主机R X D 端口连接,各从机R X D 端口分别与主机T X D 端口连接,并在主机U 1P 0.0~P 0.2端口设置多路开关K 1㊁K 2及K 3,各个开关功能如表1所列㊂为了直观了解通信过程,添加了虚拟分析工具仿真图表来实时监测通信过程中的时序变化㊂为了检测主机和从机程序执行情况,在主机U 1的R X D 端口和T X D 端口㊁从机U 2的P 0.0~P 0.7端口㊁三个从机R X D 端口及P 2.3端口等都添加电压探针,各个电压探针标号和引脚号如表2所列㊂除此之外,设置4组开关来模拟通信电路故障,并在主机U 1的R X D 端和T X D端接入虚拟仪器示波器,通过示波器波形与时序图对比检测主机U 1是否存在故障㊂另外,在P 0.0~P 0.7端口连图1 改进多机通信电路图接上拉电阻,用于保护电路和保证通信稳定性㊂表1 各个开关功能开 关开关功能K 1闭合K 1,U 1与U 2通信K 2闭合K 2,U 1与U 3通信K 3闭合K 3,U 1与U 4通信表2 电压探针标号和引脚号对照表单片机探针标号引脚号单片机探针标号引脚号U 1P 3.1/T X D T X D P 3.0/R X DR XDU 3P 2.3/A 11U 3(P 2.3/A 11)P 3.0/R X DU 3r x dU 4P 2.3/A 11U 4(P 2.3/A 11)P 3.0/R X DU 4r x dU 2P 2.3/A 11U 3(P 2.3/A 11)P 3.0/R X DU 3r x dU 2(P 0.0/A D 0)U 2(P 0.0/A D 0)U 2(P 0.1/A D 1)U 2(P 0.1/A D 1)U 2(P 0.2/A D 2)U 2(P 0.2/A D 2)U 2(P 0.3/A D 3)U 2(P 0.3/A D 3)U 2(P 0.4/A D 4)U 2(P 0.4/A D 4)U 2(P 0.5/A D 5)U 2(P 0.5/A D 5)U 2(P 0.6/A D 6)U 2(P 0.6/A D 6)2 软件设计本文使用C 语言编写多机通信源程序代码,利用K e i l软件对源程序代码进行调试及编译,其中图2为主机程序流程图,图3为子程序通信流程图,图4为从机程序流程图[7-10]㊂3 仿真及其分析将源程序编译生成对应的.H E X 文件,并加载到图1图2 主机程序流程图对应的主从机单片机中,点击全速运行按钮进行仿真㊂首先闭合开关K 1状态,发光二极管D 1点亮,表示主机U 1与从机U 2正常通信,从机U 2接收到主机U 1发送数据 2,同时与从机U 2相连的七段L E D 数码管显示 2㊂紧接着,断开开关K 1㊁闭合开关K 2,发光二极管D 1熄灭㊁D 2点亮,表示主机U 1与从机U 2通信中断㊁主机U 1与从机U 3通信正常,从机U 3接收到主机U 1发送数据 2,同时与从机U 3相连的七段L E D 数码管显示 2 ,当然从机U 2存储主机U 1发送的数据 2 ,故仍显示 2㊂图3 子程序通信流程图最后主机U 1与从机U 4相互通信,因为是在主机U 1与从机U 2㊁U 3通信之后,所以3个七段L E D 数码管图4 从机程序流程图均显示 2㊂3.1 仿真图表分析在主机U 1与从机U 4相互通信时,点击图1中仿真图表,其程序执行时序变化图如图5所示㊂图5中,U 1发送端u 1t x d 波形变化与从机U 2㊁U 3㊁U 4接收端u 2r x d ㊁u 3r x d ㊁u 4r x d 波形变化一致,表明主机U 1与从机U 2㊁U 3㊁U 4之间是正常通信㊂再根据全双工通信数据格式,除去起始位㊁校验位和停止位,剩余的是数据位(低位在前,高位在后),由图5数据波形得出数据位为00100101B ,则通信数据就是10100100B ,这正是通信数据 2的字段码,证实主机U 1发送端成功发送数据,从机U 2㊁U 3㊁U 4接收端成功接收数据㊂图5 主从机通信时序图3.2 内部寄存器分析采用P r o t e u s 的W a t c h W i n d o w 窗口查看单片机传输数据,以主机U 1与从机U 2相互通信为例,主机U 1接收到矩阵式键盘提供的通信数据 2 (10100100B=A 4H ),并将 A 4H 存入存储寄存器S B U F 中,如图6所示,当从机U 2接收到数据时,与从机U 2的P 0口相连的L E D 数码管立即显示 2 ,因 A 4H 就是共阳型L E D 数码管显示十进制数 2 所对应的字段码,则P 0存储A 4H ,如图7所示㊂图6 U 1寄存器数据比较图6和图7,主机S B U F 中存储数据和从机P 0口存储数据一致,且P 3口均为高电平F F H ,证实主机U 1与从机U 2成功通信㊂图7 U 2寄存器数据3.3电路故障检测及分析图8 模拟故障电路图在图1中设置4组开关模拟通信电路故障,如图8所示,并在主机U 1的R X D 端和T X D 端接入虚拟仪器示波器,通过比较示波器波形与时序图来检测主机U 1是否存在故障㊂表3 开关功能开关动作线路情况S 1闭合U 1R X D 端置高电平S 2闭合U 1T X D 端置高电平S 3闭合U 1R X D 端接地S 4闭合U 1T X D 端接地在图8中,利用开关接入高电平或者接地来模拟通信电路故障,各开关功能如表3所列㊂这里以开关S 3闭合为例,闭合S 3时,主机U 1的R X D 端接地,即主机接收端恒为0,观察示波器T X D 端和R X D 端波形,如图9所示㊂图9 S 3闭合波形图由图9示波器波形与时序图对比可知,主机U 1的R X D 端是恒为低电平的一条直线,与时序图主机u 1r x d端波形一致,而主机U 1的T X D 端有数据波形,且与各从机u 2t x d ㊁u 3t x d ㊁u 4t x d 数据波形变化一致,说明此时主机U 1在发送数据,各从机在接收数据,电路通信正常进行㊂4 结 语本文利用P r o t e u s 软件设计及仿真了一个34表1 参训学员训练考评法律意识法律要求处置程序武力适用战术意识安全距离戒备动作语言交流手枪使用能力持枪动作射击次数射击命中率结 语将虚拟现实技术应用于警务战术训练中,增强了警务人员的判定决策能力㊁战术协同能力和武力使用能力水平,确保了警务执法活动中警察武力使用的规范性㊁合法性㊁安全性和有效性,推进警务战术训练向信息化㊁实战化方向转变㊂本文将虚拟现实技术与警察战术训练相结合,以情境认知㊁表象训练和沉浸理论为支撑,构建多层级松耦合模块化架构,通过对警察物理系统功能㊁框架进行设计规划,实现警务战术的 基本训练㊁判定训练㊁战术训练 功能㊂文章最后选择了基础的持枪训练和复杂的持刀暴力情境两类典型案例来阐述实战模拟训练的实现过程,为运用虚拟仿真系统执行官警务实战化训练提供可靠的实现路径㊂参考文献[1]王振华,黄冶,张光雨.V R 反恐处突战术训练平台构建研究[J ].铁道警察学院学报,2017,27(3):5155.[2]马志磊,张麟寰,王绪东.5G 视角下V R 虚拟技术在运动训练领域的理论探究[J ].体育世界:学术版,2020(2):111112.[3]罗博峰,周清.虚拟现实技术训练应用研究综述[J ].计算机仿真,2020,37(4):14.[4]曾金明,胡永生.创新军事地形学课程实战化教学研究[J ].军事交通学院学报,2015,17(5):7982.[5]瞿杨,李培林,王崴,等.美军虚拟训练发展现状及趋势[J ].飞航导弹,2013(5):2428.[6]要进辉,赵庆海,李建华.虚拟现实技术在消防特勤模拟训练中的应用[J ].安全,2018,33(3):1517.[7]耿小兵,刘思江.洗消分队战术技术仿真训练系统研究[J ].系统仿真学报,2017,24(2):339343.[8]袁狄平,靳学胜,张晓丽,等.沉浸式灭火救援计算机模拟训练平台的开发[J ].消防科学与技术,2016,31(2):162165.[9]高桂清,马良.导弹分队战术训练系统战场环境仿真研究[J ].舰船电子工程,2019,32(5):9698.[10]廖奇.谈实战化训练环境对消防部队灭火救援能力的提升[J ].武警学院学报,2017,28(12):3032.[11]季旭升,陈志付,崔文雄.网络化火力作战单元集成训练[J ].四川兵工学报,2017,31(4):117118.[12]杨杰,陈芬,王润岗.基于H L A 的坦克分队战术训练仿真系统[J ].火力与指挥控制,2018,35(3):144146.[13]王亚,汤万刚,罗代升,等.虚拟现实技术在军事领域的应用及对未来战争的影响[J ].现代防御技术,2015(4):6872.[14]张跃,赵建元,许舟兵.虚拟仪器与虚拟实验在军队院校教育中的应用[J ].实验室研究与探索,2017(4):6467,70.[15]章小辉,张璋.警察战术训练系统仿真技术应用初探[J ].系统仿真学报,2016(S 2):945948.[16]杨宏军,韩志军.坦克分队战术综合演练仿真系统[J ].计算机仿真,2018(3):1012,15.[17]柳玉,张蓉.战术训练模拟系统M u l t i A ge n t 协同通信机制研究[J ].武汉大学学报:理学版,2018,60(3):225230.[18]孙少斌,林学华.坦克分队战术仿真训练系统的设计与实现[J ].火力与指挥控制,2018,33(11):127131.[19]陈文彪.关于加强警察查缉战术教学训练的思考[J ].公安大学学报,2017(2):106110.张帅奇(讲师),主要研究方向为警务技能㊁警务战术㊂(责任编辑:薛士然 收稿日期:2020-07-20) 改进单片机多机通信电路,并对电路仿真过程进行了验证性分析㊂仿真结果表明,改进多机通信电路能够实时监测通信是否正常,提高了单片机通信的稳定性㊂参考文献[1]袁小平,李子旋,陈烨,等.基于P r o t e u s 的电子技术综合设计虚拟实验环境建设[J ].实验技术与管理,2017,34(8):104106.[2]胡中玉,岳强,任杰,等.基于P r o t e u s 仿真的电工电子课程教学创新[J ].实验技术与管理,2016,33(4):128130.[3]邓力.基于K e i l 时序逻辑和P r o t e u s 的电路仿真[J ].实验室研究与探索,2017,36(1):8083.[4]党新安,唐鹏,杨立军.单片机控制P I D 调节的自平衡自行车[J ].机械设计与制造,2019(10):115118.[5]宋杰,丁志远.基于P r o t e u s 的X 86中断仿真异常问题探究和对策[J ].实验室研究与探索,2015,34(8):8184.[6]姚雪梅,陈永前.P r o t e u s 和K e i l 模拟交通灯的实践教学[J ].实验室研究与探索,2016,35(11):107109,136.[7]孙万麟,杨莲红,宋莉莉.单片机虚拟实验室的构建及其应用[J ].实验技术与管理,2014,31(7):229231.[8]邓力.使用P r o t e u s 仿真图表对单片机指令时序仿真[J ].科技通报,2013(5):130133.[9]孙万麟.基于P r o t e u s 的单片机通信电路设计[J ].实验室研究与探索,2016,35(10):135138.[10]田社平,方向忠,张峰.V S P D 和P r o t e u s 串口通信教学实验[J ].实验室研究与探索,2018,37(9):211214,334.孙万麟(副教授),主要从事单片机与嵌入式系统研究㊂(责任编辑:薛士然 收稿日期:2020-07-10)。
单片机双机通信接口应用

单片机双机通信接口应用在现代电子技术领域,单片机的应用越来越广泛。
单片机之间的通信成为实现复杂系统功能的关键环节之一。
双机通信接口的应用,为各种设备之间的数据交换和协同工作提供了有效的途径。
单片机,简单来说,就是在一块芯片上集成了微处理器、存储器、输入输出接口等功能部件的微型计算机。
它具有体积小、成本低、可靠性高、控制功能强等优点,被广泛应用于工业控制、智能仪表、家用电器、通信设备等众多领域。
双机通信,指的是两个单片机之间进行数据传输和信息交换。
实现双机通信的关键在于通信接口的选择和配置。
常见的双机通信接口方式有串行通信和并行通信。
串行通信是指数据一位一位地按顺序传输。
这种方式只需要少数几根数据线,就能在两个设备之间进行通信,因此硬件成本较低,连线简单。
串行通信又分为同步串行通信和异步串行通信。
异步串行通信相对简单,不需要时钟信号进行同步,通信双方按照约定的波特率和数据格式进行通信。
例如,常见的 UART(通用异步收发器)就是一种异步串行通信接口。
并行通信则是数据的各位同时进行传输。
它的传输速度快,但需要较多的数据线,硬件成本较高,连线也较为复杂。
在实际应用中,并行通信通常用于短距离、高速的数据传输。
在选择双机通信接口时,需要考虑多种因素,如通信距离、数据传输速率、系统复杂度、成本等。
如果通信距离较远,对传输速率要求不高,串行通信是一个较好的选择;如果需要高速传输大量数据,且通信距离较短,并行通信可能更为合适。
以两个基于 51 单片机的系统为例,来探讨一下双机通信的实现。
假设我们要实现一个温度监测系统,一个单片机负责采集温度数据,另一个单片机负责接收并处理这些数据,然后进行显示或控制。
对于串行通信,我们可以使用 UART 接口。
首先,需要对两个单片机的 UART 进行初始化设置,包括波特率、数据位、停止位、校验位等参数。
然后,发送方将温度数据按照约定的格式进行封装,并通过UART 发送出去;接收方则不断监测 UART 接收缓冲区,当有数据到达时,进行读取和解析。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机多机通信系统一、引言随着单片机技术的不断发展,单片机的应用已经从单机向多机互联化方向发展。
单片机在实时数据采集和数据处理方面,有着成本低、能满足一般要求、开发周期短等优点,其在智能家居、计算机的网络通信与数据传输、工业控制自动化等方面有着广泛的应用。
本系统是面向智能家居应用而设计的。
在初期,采用红外无线通信方式,其传输距离短,适于一般家庭应用,且成本相对较低;待方案成熟、成本允许,可以改用GSM无线通信方式。
二、系统原理及方案设计1 、系统框架介绍本系统为基于51单片机的多机红外无线通信系统,由三个51单片机模块组成。
其中一个作为主机(即上位机),负责接收来自从机1(即下位机)采集的数据信息,以及向从机2(即下位机)发送控制信息。
从机1是数据采集模块,采集温度、光强等室内数据,并将其发送给主机。
主机经分析处理,作出相应判断,并给从机2发送控制信息,使由从机2控制的电机作出相应反应,调节室内环境状况。
系统总体框图如下图1所示,图2为红外收发模块简图:图1 系统总体框图图2 红外收发模块简图2 、多机通信原理介绍在多机通信系统中,要保证主机与从机间可靠的通信,必须要让通信接口具有识别功能,51单片机串行口控制寄存器SCON中的控制位SM2正是为了满足这一要求而设置的。
当串行口以方式2或方式3工作时,发送或接收的每一帧信息都是11位的,其中除了包含SBUF 寄存器传送的8位数据之外,还包含一个可编程的第9位数据TB8或RB8。
主机可以通过对TB8赋予1或0,来区别发送的是数据帧还是地址帧。
根据串行口接收有效条件可知,若从机的SCON控制位SM2为1,则当接收的是地址帧时,接收数据将被装入SBUF并将RI标志置1,向CPU发送中断请求;若接收的是数据帧时,则不会产生中断标志,信息将被丢弃。
若从机的SCON控制位SM2为0,则无论主机发送的是地址帧还是数据帧,接收数据都会被装入SBUF并置1标志位RI,向CPU发出中断请求。
那么,我们规定如下通信协议:(1)置1所有从机的SM2位,使之处于只能接收地址帧的状态,并给每个从机初始化一个地址值;(2)主机发送地址帧,其中包含8位地址信息,第9位为1,进行从机寻址;(3)从机接收到地址后,将8地址信息与其自身地址值相比较,若相同则清“0“控制位SM2,若不同则保持SM2位为1;(4)主机从第二帧开始发送数据帧,其中第9位为0。
对于已经被寻址的从机,因其SM2为0,可以接收主机发送来的任何信息,而对于其他从机,因其SM2为1,将对主机发送来的数据信息不予理睬,直到发来一个新的地址帧。
(5)若主机需要要与其他从机联系,可再次发送地址帧来进行从机寻址,而先前被寻址过的从机在分析出主机发来的地址帧是对其他从机寻址时,恢复其自身的SM2为1,对主机随后发来的数据信息不予理睬。
3 、红外通信方式介绍因为本系统是面向智能家居而设计的,考虑到有线方式给用户带来的不便,我们选用无线作为各单片机间的通信方式。
且我们队员以前未做无线通信,希望在这次比赛中锻炼、提高自己。
对于无线通信方式,常见的有五种:红外通信,蓝牙通信,Zigbee通信,GSM通信,GPRS通信。
红外通信是我们在学习中接触到最多的,元件材料相对简单、容易获得,能够满足一般家庭应用,且红外通信方面的资料比较多,易学。
蓝牙设备自制不易,购买则增加系统成本。
Zigbee、GSM、GPRS 则或系统设计复杂,或成本高。
红外通信背景介绍:红外线是波长在750nm至1000nm间的电磁波,其频率高于微波而低于可见光,是一种人肉眼看不见的光线。
目前无线电波和微波已被广泛应用在长距离的无线通信中,但由于红外线的波长较短,对障碍物的衍射能力差,所以更适合应用在需要短距离无线通信场合点对点的直线数据传输。
(1)红外收发器TFDU4100介绍对于红外收发模块,我们采用TFDU4100红外收发器来实现。
TFDU4100是常用的低电压红外收发模块,以串行方式进行数据交换,遵循IrDA1.2标准,最高通信速率可以达到115.2Kbps,最大传输距离为3.0m。
TFDU4100芯片图片和管脚定义分别如图3、表1所示图3 TFDU4100芯片图片表1 TFDU4100管脚定义除了使用TFDU4100构成红外收发模块外,还可以选用其他的方案。
比如用分立元件搭建一个红外发射、接收电路:用电阻、电容组成低步振荡器,频率调在38KHz左右,由红外发光二极管发射载波;红外接收部分采用普通的红外接收头,比如LF0038U,再用二极管、晶体管、电容、电阻构成放大、解调电路。
但此方案缺点在于电路复杂、系统稳定性不强,并且成本与采用TFDU4100设计差别不大。
(2)串行红外传输控制器TOIM3232介绍根据IrDA红外传输标准,串行红外传输采用特定的脉冲编码标准,该标准与RS232串行传输标准不同。
若两设备之间进行串行红外通讯,就需要一个传输控制器,以进行RS232编码和IrDA编码之间的转换。
TOIM3232串行红外传输控制器就是Vishay公司为配合TFD U4100而设计的。
其功能结构图如图4所示:图4 TOIM3232功能结构框图在输出模式下,TOIM3232可把RS232输出信号转变成符合IrDA 标准的信号以驱动红外发射器;在接收模式下,TOIM3232可把IrDA 输入信号转变成符合RS232标准的信号;TOIM3232的红外传输速度范围为2.4Kbit/s~115.2Kbit/s。
TOIM3232内部有一个3.6864MHz 的晶振,用以实现脉冲的扩张和压缩。
该时钟信号既可以由内部晶振产生也可用外部时钟实现。
该控制器可通过RS232口进行编程控制,其输出脉冲宽度可程控为1.627μs或3/16位长。
4 、主机模块介绍主机模块以89C52单片机为控制核心,外围主要接有4X4矩阵键盘、1602液晶显示屏、TFDU4100红外收发器、串行红外传输控制器TOIM3232。
此模块中 89C52单片机作为CPU,控制整个系统的运转。
系统启动时,默认主机与从机1建立连接。
主机以串行口中断方式接受从机1发送的数据。
数据经单片机分析,显示于1602液晶上,并判断是否向从机2发送控制信息。
本系统中我们使用4*4的非独立式矩阵键盘,如下图5所示。
将行线、列线分别连接到按键开关的两端,并且连接到单片机的I/O口。
图5 4*4矩阵键盘通过矩阵键盘,可以向主机输入要寻址的从,以控制主与哪一个从通信;并能控制与主机连接的1602液晶,显示任意一项从机1测量的数据。
下面为4*4矩阵键盘的程序设计流程图如下图6所示:图6 4*4矩阵键盘的程序设计流程图1602液晶是一种专门用于显示字母、数字、符号的点阵式LCD,它有5*10和5*7两种点阵字符显示模式可供选择,5*7点阵字符下可以显示2行共32个字符。
一般其主控制驱动电路为HD44780,模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
1602液晶在此模块内的作用,是显示从机1测量的数据,验证红外通信的可靠性;当主机要切换要与之通信的从机时,用1602显示修改后与之通信的从机名。
红外通信模块主要由TFDU4100和TOIM3232构成。
TFDU4100采用IrDA红外传输标准,即串行红外传输的脉冲编码,这个标准不能和单片机接口直接兼容。
所以用串行红外传输控制器TOIM3232进行串码和IrDA编码间的转换。
TOIM3232可把单片机输出的串码信号转换成符合IrDA标准的信号以驱动TFDU4100;它还可以将IrDA输入信号转换成串码信号送入单片机。
其电路设计原理图如下图7所示:图7 51单片机、TOIM3232、TFDU4100简易连接原理图主机负责对外围器件的调度与控制,包括红外收发模块接收数据控制、键盘扫描、1602液晶的显示、是否向从机2发送消息。
其程序流程图如下图8所示:图8 主机程序流程图5 、从机1模块介绍从机1模块以89C52单片机为控制核心,外围主要接有1602液晶显示屏、TFDU4100红外收发器、串行红外传输控制器TOIM3232、ADC0809、温度传感器、光强传感器。
室内温度的测量采用温度传感器DS18B20。
选用此传感器的原因是它价格便宜,可以降低系统成本,且对于一般家庭使用,此传感器的精度足够了。
使用简单,易控制。
DS18B20提供9位二进制温度读数,指示器件的温度信息,并通过单线接口送至CPU 。
DSl820中有用于贮存测得的温度值的两个8位存贮器RAM 编号为0号和1号。
将存贮器中的二进制数求补再转换成十进制数并除以2就得到被测温度值(-550摄氏度--125摄氏度)。
光强传感器采用实验室现已有的,主要由可见光光敏电阻器、普通电阻等分立器件构成。
光敏电阻是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强时,电阻减小,入射光弱时,电阻增大。
所有传感器输出的数据均为模拟量,要输入单片机处理,必须经过A/D转换。
模数转换芯片采用ADC0809,主要原因是采集数据的路数较多(以后还可扩展),需要一个多通道的A/D,而我们以前做数电实验时用过的ADC0809正是8位8通道的模数转换芯片,它是逐次逼近式A/D转换器,可以和单片机直接接口。
红外收发模块,则负责将传感器采集的数据传至主机,其结构已在前面介绍过。
1602液晶在此处的作用是将单片机接收到的数据显示出来,与传到主机的数据作对比,验证红外通信的可靠性。
从机1的程序流程图如下图9所示:图9 从机1程序流程图6 、从机2模块介绍从机2模块以89C52单片机为控制核心,外围主要接有红外收发模块、电机驱动电路、直流电机和窗帘模型。
红外收发模块负责接收主机发送来的信息,经单片机处理,以控制电机运转。
电机驱动电路主要由L298N构成。
L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便。
电路原理图如下图10所示:图10 电机驱动电路原理图直流电机采用德国FAULHABER-2342电机,其转子转动惯量小,因而动态性能极好;FAULHABER电机采用精密合金换向器,因其接触电阻低而使性能优良。
为表征电机控制的实现,在电机后端我们做一个窗帘模型,通过电机控制窗帘的开关。
89C52单片机在此模块中,负责控制接收来自主机的信息,并产生PWM波驱动电机,以达到调速的目的。
51没有硬件的PWM,全靠软件模拟。