




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于RS-485总线的无线遥控温控系统设计 系部:电气信息工程系 班级:应用电子技术0931 姓名:韩俊乾(主力)杨国喜 张娜 指导老师:瓮 嘉 民 时间: 2011年10月24日-11月4日基于RS-485总线的无线遥控温控系统设计1 设计要求采用DS18B20数字温度传感器对两处进行温度的实时测量,通过LCD1602进行显示,并通过RS-485总线上传到主机;当温度超过设定值时能够报警,同时启动相关降温设备。主机通过按键和无线遥控能够对温度报警上限值及时间进行设置。能够对重要数据进行保存。2 系统方案根据设计要求,系统方案如图37-1所示,主机和从机选用AT89S52单片机,通过RS-48
2、5总线进行数据通信。主机采用LCD2002显示各从机的温度和当前时间,根据按键或无线遥控的输入命令对控制温度上限值、温度报警值和时间进行设置,并通过RS-485总线传递温度报警值给从机和读取从机温度。从机通过DS18B20采集现场温度,利用LCD1602进行显示,通过RS-485总线接收温度报警值,同时上传温度检测值给主机。图37-1 系统方框图3 硬件电路设计3.1 主机硬件电路设计主机硬件电路如图37-2所示。主机实物如图37-3所示。图37-2 主机硬件电路原理图主机通过LCD2002液晶显示从机1和从机2实时采集的温度值、时间和日期。采用DS1302实时时钟芯片进行年、月、日、时、分、
3、秒刷新。可以通过按键调整或者无线遥控调整时间,并具有系统掉电后启用备用电池向DS1302继续供电的功能,使用户不必每次上电调整时间。AT24C02用于存储用户设定的温度上限值和其他重要数据。当温度大于等于用户设定的上限值时,主机蜂鸣器报警。当温度大于等于用户设定的上限值时,继电器吸合,控制电扇通风降温,同时继电器接通指示灯亮。调整按键8个,其中S2、S3、S4和S5是手动按键,P32P35用于连接无线接收模块,遥控器上的四个按键功能分别和S2、S3、S4、S5对应。通过调整按键可以对温度上限值、时间、星期、年月日的调整状态。3.2从机硬件电路设计从机硬件电路如图37-3所示。从机通过DS18B
4、20进行温度采集,然后通过LCD1602进行显示,第一行显示主机发来的温度上限值,第二行显示从机1所在位置的温度值。图37-3 从机硬件电路原理图4 软件设计4.1 RS-485总线通信协议主机AT89S52采用查询方式,从机AT89S52采用中断方式,具体协议如下:(1)主机AT89S52发送查询地址。(2)从机AT89S52都接收查询地址,并与本从机地址比较,若一样则发送从机地址、采集温度十位、采集温度个位、采集温度小数位和累加和校验。(3)主机AT89S52接收数据。(4)主机AT89S52发送温度上限报警值十位、温度上限报警值个位。(5)从机AT89S52接收温度上限报警值命令。(6)
5、主机AT89S52未查询完所有的AT89S52,则返回(1)继续查询下一个从机。(7)通信速率9600bps,数据帧格式:一位起始位,9位数据位,一位停止位,即串行口工作于方式3。(8)主机发送从机地址和温度上限值采用奇校验(每帧数据的第8位(即D7)为奇校验位);主机接收从机发送的匹配地址和采集到的温度值时采用累加和校验。(9)从机机接收主机发送的从机地址和温度上限值采用奇校验(每帧数据的第8位(即D7)为奇校验位);从机发送匹配地址和采集到的温度值时采用累加和校验。4.2 主机程序设计(1)主机主程序主机主流程图如图37-4所示。当工作状态标志为1时,进入参数调整;否则进入正常工作状态。
6、图37-4 主机主程序流程图 (2)液晶显示功能程序 图37-5 主机液晶显示界面 主机LCD2002液晶显示从机1和从机2实时采集的温度值、时间和日期。如图37-5所示。(3)DS1302实时时钟功能程序采用DS1302实时时钟芯片进行年、月、日、时、分、秒刷新。可以通过按键调整或者无线遥控调整时间,并具有系统掉电后启用备用电池向DS1302继续供电的功能,使用户不必每次上电调整时间。(4) AT24C02 掉电存储功能程序 用于存储用户设定的温度上限值。(5)蜂鸣器报警功能程序当温度大于等于用户设定的上限值时,主机蜂鸣器报警。(6)继电器输出控制程序当温度大于等于用户设定的上限值时,P20
7、和P21输出低电平,通过三极管VT1和VT2驱动继电器吸合,控制电扇通风降温,同时继电器接通指示灯亮。(7) 按键键盘程序 图37-6 按键键盘布局按键功能如图37-6所示,当set键按下后进入调整模式,此时主机液晶显示界面如图37-7。 图37-7 进入调整模式界面 当set键按下时进入调整模式,并且可以通过set键切换进入对温度上限值、时间、星期、年月日的调整状态。当进入某种调整状态时其对应值会快速闪烁,通过up键或者down键进行调整。调整完毕后按下out键保存并退出调整模式。(8)无线遥控程序通过无线遥控可远距离调整各个参数值,无线遥控的键盘界面如图37-8所示。图37-8 无线遥控器
8、键盘无线遥控按键功能如下:A :对应按键键盘上的down键(调整参数减少)。B:对应按键键盘上的out键(保存退出)。C: 对应按键键盘上的set键(进入参数调整模式)。D: 对应按键键盘上的up键(调整参数增加)。具体操作详见(6)按键键盘。(9)主机通信程序主机通信流程图如图37-9所示。在数据发送时,采用奇校验校验;在接收数据时,使用累加和校验。图37-9 主机通信流程图4.3 从机程序设计(1)从机主程序设计从机主程序流程图如图37-10所示。首先进行系统初始化,然后关中断读取DS18B20中温度值,读完温度值后,开中断,调用温度决策函数。图37-10从机主程序流程图(2)从机通信程序
9、设计图37-11从机通信流程图(3)DS18B20测温程序设计4.3 主机主程序void main(void)uchar i; flag=1; /时钟停止标志WDTA;/喂狗LCD_Initial(); /液晶初始化Initial_DS1302(); /时钟芯片初始化up_flag=0; /增加键Up按下标志位清0down_flag=0; /减少键Down按下标志位清0done=0; /进入默认液晶显示Relay1=1; /关闭继电器1输出,指示LED灭Relay2=1; /关闭继电器2输出,指示LED灭wireless_4=0;wireless_3=0;wireless_2=0;wirele
10、ss_1=0; /仿真用/wireless_4=1;wireless_3=1;wireless_2=1;wireless_1=1; /实物用RdFromROM(TemperatureSetUp,0xfc,2);/从AT24C02中读出温度的上限值init_232_11m(); /串行口和T0初始化 while(1) while(done=1) keydone(); /进入时间调整模式while(done=0)/进入正常工作模式 WDTA;/喂狗 show_temperature_time(); /调液晶显示温度和时间函数 flag=0; WDTA;/喂狗Setkey(); /扫描各功能键for
11、(i=0;i= (TemperatureSetUp0*10+TemperatureSetUp1) /从机1的温度大于温度上限值beep(); / 蜂鸣器响1声报警Relay1=0; /打开继电器1输出控制,指示LED亮elseBEEP=1; / 关闭蜂鸣器Relay1=1; /关闭继电器1输出控制,指示LED灭 WDTA;/喂狗if(temp_value11*10+temp_value12)= (TemperatureSetUp0*10+TemperatureSetUp1) /从机2的温度大于温度上限值beep(); beep(); / 蜂鸣器响2声报警Relay2=0; /打开继电器2输出控
12、制,指示LED亮elseBEEP=1; / 关闭蜂鸣器Relay2=1; /关闭继电器2输出控制,指示LED灭4.4 从机部分源程序/*从机主程序*/void main(void) uchar m;/温度临时变量 WDTRST = 0x1E; /喂狗 WDTRST = 0xE1;init_232_11m(); LCD_Initial(); /液晶初始化 addr=0x01; /从机地址初始化 wenduH=99; /温度上限值 for(m=0;mwenduH) beep();beep();beep();beep();/ 蜂鸣器响4声else BEEP=1;/关闭蜂鸣器 /*从机通信程序*/vo
13、id int_232(void) interrupt INTERRUPT_UART using REG_BANK_1uchar data ck,rec,rec1,tran; _nop_(); if(RI=1) RI=0; rec=SBUF; /读接收地址数据WDTRST = 0x1E; /喂狗 WDTRST = 0xE1;ck=0; if(rec6) & 0x01)=1) ck+; /对接收到的地址数据进行奇校验 if(rec5) & 0x01)=1) ck+; if(rec4) & 0x01)=1) ck+; if(rec3) & 0x01)=1) ck+; if(rec2) & 0x01)
14、=1) ck+; if(rec1) & 0x01)=1) ck+; if(rec0) & 0x01)=1) ck+; if(rec7) & 0x01) != (ck & 0x01)goto exit; /接收到的数据的最高位/为奇校验位,即第七位,若不同则表示接收的地址错误,退出串行口中断 /与本机地址进行比较 if( (rec & 0x1f) =addr) /是本机地址? TXEN; /发送使能,接收禁止 WDTRST = 0x1E; /喂狗 WDTRST = 0xE1;flag =0x55;/读取温度期间发生串行口中断,本次温度读取舍弃 标志ES=0; /关串行口中断 SM2=0;TI=0
15、; /SM2=0,清发送中断标志 TB8=0; /准备发送数据的第九位数据 SBUF=addr; /发送本机地址while(TI=0) ; /发送等待WDTRST = 0x1E; /喂狗 WDTRST = 0xE1; TI=0; /发送完本从机地址信号,清发送完中断标志位TI /发送温度整数部分奇校验ck=0; tran=(TempN%100)/10; /取十位 1;/ SBUF=tran; /发送温度整数部分的十位; while(TI=0) ; /发送等待WDTRST = 0x1E; /喂狗 WDTRST = 0xE1; TI=0; /发送完本从机地址信号,清发送完中断标志位TI ck=0;
16、tran=TempN%10; /取个位 SBUF=tran; /发送温度整数部分的个位 while(TI=0) ; /发送等待WDTRST = 0x1E; /喂狗 WDTRST = 0xE1; TI=0; /发送完本从机地址信号,清发送完中断标志位TI /发送温度小数部分奇校验ck=0;tran=TempD; /取小数位 SBUF=tran; /发送温度整数部分的个位 while(TI=0) ; /发送等待WDTRST = 0x1E; /喂狗 WDTRST = 0xE1; TI=0; /发送完本从机地址信号,清发送完中断标志位TI SBUF=addr+(TempN%100)/10+TempN%
17、10+TempD; /发送累加和while(TI=0) ; /发送等待WDTRST = 0x1E; /喂狗 WDTRST = 0xE1; TI=0; /发送完本从机地址信号,清发送完中断标志位TIRXEN; /禁止发送,接收使能 while(RI=0); /接收等待WDTRST = 0x1E; /喂狗 WDTRST = 0xE1; RI=0; /接收温度上限值的十位数据,清接收标志位,准备接收下一个字节 rec=SBUF; /读接收的数据while(RI=0); /接收等待WDTRST = 0x1E; /喂狗 WDTRST = 0xE1; RI=0; /接收温度上限值的十位数据,清接收标志位,
18、准备接收下一个字节 rec1=SBUF; /读接收的数据 ck=0; if(rec6) & 0x01)=1) ck+;/奇校验 if(rec5) & 0x01)=1) ck+; if(rec4) & 0x01)=1) ck+; if(rec3) & 0x01)=1) ck+; if(rec2) & 0x01)=1) ck+; if(rec1) & 0x01)=1) ck+; if(rec0) & 0x01)=1) ck+;if(rec7) & 0x01) != (ck & 0x01) goto exit;WDTRST = 0x1E; /喂狗 WDTRST = 0xE1;ck=0; if(rec
19、16) & 0x01)=1) ck+;/奇校验 if(rec15) & 0x01)=1) ck+; if(rec14) & 0x01)=1) ck+; if(rec13) & 0x01)=1) ck+; if(rec12) & 0x01)=1) ck+; if(rec11) & 0x01)=1) ck+; if(rec10) & 0x01)=1) ck+; if(rec17) & 0x01) != (ck & 0x01) goto exit; /温度上限值通过奇校验,更新温度上限值 /wenduH=(rec & 0x0f)4 ) | (rec1 & 0x0f); WDTRST = 0x1E;
20、/喂狗 WDTRST = 0xE1;UpTempBuffer7=(rec & 0x7f) +0;/若校验正确更新温度报警上限显示缓冲区值UpTempBuffer8=(rec1 & 0x7f )+0; wenduH=(rec & 0x7f ) *10+ (rec1 & 0x7f); /更新温度的上限值 exit: SM2=1;ES=1;/开串行口中断 RXEN; /发送禁止,接收使能5 实物照片主机和从机照片分别如图37-8和37-9所示。以前用手拍摄,回来改成相机重新拍摄。图37-8 主机实物照片图37-9 从机实物照片6 元件清单主机和从机元器件清单详见表37-1和表37-2。表37-1 主
21、机元件清单名称参数数量电阻1K、10K、10欧若干电位器10K2发光二极管3电源接口1电解电容22uf1电解电容220uf1独石电容1041瓷片电容30pf2按键5自锁开关1晶振11.0592M1晶振327681排针若干AT89S52单片机1SN65HVD3082ED1DS13021AT24C021LCD16021ISP口1三极管1二极管1N40073排阻10K1继电器2蜂鸣器1表37-2 从机元件清单名称参数数量电阻1K4电阻10K2电阻10欧2电位器10K4发光二极管2电阻4.7K2电解电容22uf2电解电容220uf2独石电容1042瓷片电容30pf4按键2DS18B202晶振11.0592M2排针若干AT89S52单片机2SN65HVD3082ED2LCD20022ISP口2三极管85502排阻10K1蜂鸣器27 Proteus仿真 8 设计制作要点 在设计制作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CACE 0147-2024二氧化碳矿化碱基固废制备建材工艺规程
- T/CI 583-2024临氢环境中聚乙烯管道寿命预测评价方法
- 高中化学反应热课件
- 高中信息人工智能课件
- 高三锂电池课件
- 煤矿器增压泵技术许可及市场推广合作合同
- 高端商务写字楼租赁合同样本(含物业服务)
- 商业地产租赁合同租赁面积及租金调整补充协议
- 离婚协议子女生活费支付确认书及欠款还款协议
- 髌骨骨折护理
- 语法填空公开课课件市公开课一等奖省名师优质课赛课一等奖课件
- (完整word版)个人健康体检表
- 急性肾盂肾炎护理查房课件
- JJF 1062-2022 电离真空计校准规范
- AS9100D体系标准中文版
- 中国铁塔-基站规范培训课件
- GB-T 41378-2022 塑料 液态食品包装用吹塑聚丙烯容器(高清版)
- 上海证券交易所公司债券预审核指南(三)审核和发行程序及其实施
- 食管癌颈部吻合ppt课件
- 脐针临床实战解析(案例分析)精品医学讲座课件(210页PPT)
- 陶瓷管项目可行性研究报告写作范文
评论
0/150
提交评论