




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于RS-485总线的无线遥控温控系统设计系部:电气信息工程系班级:应用电子技术0931姓名:韩俊乾(主力)杨国喜张娜指导老师:瓮嘉民时间:2011年10月24日-11月4日基于RS-485总线的无线遥控温控系统设计1设计要求采用DS18B20数字温度传感器对两处进行温度的实时测量,通过LCD1602进行显示,并通过RS-485总线上传到主机;当温度超过设定值时能够报警,同时启动相关降温设备。主机通过按键和无线遥控能够对温度报警上限值及时间进行设置。能够对重要数据进行保存。2系统方案根据设计要求,系统方案如图37-1所示,主机和从机选用AT89S52单片机,通过RS-485总线进行数据通信。主
2、机采用LCD2002显示各从机的温度和当前时间,根据按键或无线遥控的输入命令对控制温度上限值、温度报警值和时间进行设置,并通过RS-485总线传递温度报警值给从机和读取从机温度。从机通过DS18B20采集现场温度,利用LCD1602进行显示,通过RS-485总线接收温度报警值,同时上传温度检测值给主机。LCD2002|按键键盘时钟DS1302AT24C02I主机T无线遥控继电器1蜂鸣器图37-1系统方框图3硬件电路设计3.1主机硬件电路设计主机硬件电路如图37-2所示。主机实物如图37-3所示。III图37-2主机硬件电路原理图主机通过LCD2002液晶显示从机1和从机2实时采集的温度值、时间
3、和日期。采用DS1302实时时钟芯片进行年、月、日、时、分、秒刷新。可以通过按键调整或者无线遥控调整时间,并具有系统掉电后启用备用电池向DS1302继续供电的功能,使用户不必每次上电调整时间。AT24C02用于存储用户设定的温度上限值和其他重要数据。当温度大于等于用户设定的上限值时,主机蜂鸣器报警。当温度大于等于用户设定的上限值时,继电器吸合,控制电扇通风降温,同时继电器接通指示灯亮。调整按键8个,其中S2、S3、S4和S5是手动按键,P32P35用于连接无线接收模块,遥控器上的四个按键功能分别和S2、S3、S4、S5对应。通过调整按键可以对温度上限值、时间、星期、年月日的调整状态。3.2从机
4、硬件电路设计从机硬件电路如图37-3所示。从机通过DS18B20进行温度采集,然后通过LCD1602进行显示,第一行显示主机发来的温度上限值,第二行显示从机1所在位置的温度值。图37-3从机硬件电路原理图4软件设计4.1RS-485总线通信协议主机AT89S52采用查询方式,从机AT89S52采用中断方式,具体协议如下:(1)主机AT89S52发送查询地址。(2)从机AT89S52都接收查询地址,并与本从机地址比较,若一样则发送从机地址、采集温度十位、采集温度个位、采集温度小数位和累加和校验。(3)主机AT89S52接收数据。(4)主机AT89S52发送温度上限报警值十位、温度上限报警值个位。
5、(5)从机AT89S52接收温度上限报警值命令。(6)主机AT89S52未查询完所有的AT89S52,则返回(1)继续查询下一个从机。(7)通信速率9600bps,数据帧格式:一位起始位,9位数据位,一位停止位,即串行口工作于方式3。(8)主机发送从机地址和温度上限值采用奇校验(每帧数据的第8位(即D7)为奇校验位);主机接收从机发送的匹配地址和采集到的温度值时采用累加和校验。(9)从机机接收主机发送的从机地址和温度上限值采用奇校验(每帧数据的第8位(即D7)为奇校验位);从机发送匹配地址和采集到的温度值时采用累加和校验。4.2主机程序设计(1)主机主程序主机主流程图如图37-4所示。当工作状
6、态标志为1时,进入参数调整;否则进入正常工作状态。图37-4主机主程序流程图2)液晶显示功能程序1:30.5=C2011/08/102:32.816:59:33图37-5主机液晶显示界面主机LCD2002液晶显示从机1和从机2实时采集的温度值、时间和日期。如图37-5所示。(3)DS1302实时时钟功能程序采用DS1302实时时钟芯片进行年、月、日、时、分、秒刷新。可以通过按键调整或者无线遥控调整时间,并具有系统掉电后启用备用电池向DS1302继续供电的功能,使用户不必每次上电调整时间。(4)AT24C02掉电存储功能程序用于存储用户设定的温度上限值。5)蜂鸣器报警功能程序当温度大于等于用户设
7、定的上限值时,主机蜂鸣器报警。6)继电器输出控制程序当温度大于等于用户设定的上限值时,P20和P21输出低电平,通过三极管VT1和VT2驱动继电器吸合,控制电扇通风降温,同时继电器接通指示灯亮。7)按键键盘程序图37-6按键键盘布局按键功能如图37-6所示,当set键按下后进入调整模式,此时主机液晶显示界面如图37-7。2010/08/09weekl13:21:5141C图37-7进入调整模式界面当set键按下时进入调整模式,并且可以通过set键切换进入对温度上限值、时间、星期、年月日的调整状态。当进入某种调整状态时其对应值会快速闪烁,通过up键或者down键进行调整。调整完毕后按下out键保
8、存并退出调整模式。(8)无线遥控程序通过无线遥控可远距离调整各个参数值,无线遥控的键盘界面如图37-8所示。图37-8无线遥控器键盘无线遥控按键功能如下:A:对应按键键盘上的down键(调整参数减少)。B:对应按键键盘上的out键(保存退出)。C:对应按键键盘上的set键(进入参数调整模式)。D:对应按键键盘上的up键(调整参数增加)。具体操作详见(6)按键键盘。(9)主机通信程序主机通信流程图如图37-9所示。在数据发送时,采用奇校验校验;在接收数据时,使用累加和校验。图37-9主机通信流程图4.3从机程序设计1)从机主程序设计从机主程序流程图如图37-10所示。首先进行系统初始化,然后关中
9、断读取DS18B20中温度值,读完温度值后,开中断,调用温度决策函数。系统初始化关中断调读DS18B20温度|开中断:J调显示|调温度决策函数I图37-10从机主程序流程图2)从机通信程序设计图37-11从机通信流程图(3)DS18B20测温程序设计4.3主机主程序voidmain(void)uchari;flag=1;/时钟停止标志WDTA;/膿狗LCD_Initial();/液晶初始化Initial_DS1302();/时钟芯片初始化up_flag=0;/增加键Up按下标志位清0down_flag=0;/减少键Down按下标志位清0done=0;/进入默认液晶显示Relayl=l;关闭继电
10、器1输出,指示LED灭Relay2=l;关闭继电器2输出,指示LED灭wireless_4=0;wireless_3=0;wireless_2=0;wireless_1=0;/仿真用/wireless_4=l;wireless_3=l;wireless_2=l;wireless_l=l;/实物用RdFromROM(TemperatureSetUp,Oxfc,2);/从AT24C02中读出温度的上限值init_232_11m();串行口和T0初始化while(l)while(done=1)keydone();/进入时间调整模式while(done=0)进入正常工作模式WDTA;/喂狗show_t
11、emperature_time();/调液晶显示温度和时间函数flag=0;WDTA;/喂狗Setkey();/扫描各功能键for(i=0;i=(TemperatureSetUp0*10+TemperatureSetUp1)beep();Relay1=0;elseBEEP=1;Relay1=1;WDTA;/喂狗if(temp_value11*10+temp_value12)=(TemperatureSetUp0*10+TemperatureSetUp1)/从机2的温度大于温度上限值打开继电器2输出控制,指示LED亮/关闭蜂鸣器关闭继电器2输出控制,指示LED灭beep();beep();/蜂鸣
12、器响2声报警Relay2=0;elseBEEP=1;Relay2=1;4.4从机部分源程序/*从机主程序*/voidmain(void)ucharm;温度临时变量WDTRST=0 x1E;/喂狗WDTRST=0 xE1;init_232_11m();LCD_Initial();/液晶初始化addr=0 x01;/从机地址初始化wenduH=99;/温度上限值for(m=0;mwenduH)beep();beep();beep();beep();/蜂鸣器响4声elseBEEP=1;关闭蜂鸣器/*从机通信程序*/voidint_232(void)interruptINTERRUPT_UARTusi
13、ngREG_BANK_1uchardatack,rec,rec1,tran;_nop_();if(RI=1)RI=0;rec=SBUF;/读接收地址数据WDTRST=0 x1E;喂狗WDTRST=0 xE1;ck=0;if(rec6)&0 x01)=1)ck+;/对接收到的地址数据进行奇校验if(rec5)&0 x01)=1)ck+;if(rec4)&0 x01)=1)ck+;if(rec3)&0 x01)=1)ck+;if(rec2)&0 x01)=1)ck+;if(rec1)&0 x01)=1)ck+;if(rec0)&0 x01)=1)ck+;if(rec7)&0 x01)!=(ck&0
14、 x01)gotoexit;/接收到的数据的最高位为奇校验位,即第七位,若不同则表示接收的地址错误,退出串行口中断与本机地址进行比较if(rec&0 x1f)=addr)是本机地址?TXEN;发送使能,接收禁止WDTRST=OxlE;喂狗WDTRST=OxEl;flag=0 x55;/读取温度期间发生串行口中断,本次温度读取舍弃标志ES=O;关串行口中断SM2=0;TI=0;TB8=0;SBUF=addr;while(TI=0);WDTRST=0 x1E;WDTRST=0 xE1;/SM2=0,清发送中断标志准备发送数据的第九位数据发送本机地址发送等待喂狗TI=0;发送完本从机地址信号,清发送
15、完中断标志位TI发送温度整数部分奇校验ck=0;tran=(TempN%100)/10;取十位1;/SBUF=tran;发送温度整数部分的十位;while(TI=0);发送等待WDTRST=0 x1E;喂狗WDTRST=0 xE1;TI=0;发送完本从机地址信号,清发送完中断标志位TIck=0;tran=TempN%10;SBUF=tran;while(TI=0);发送等待WDTRST=0 x1E;WDTRSTTI=0;/取个位发送温度整数部分的个位喂狗=0 xE1;发送完本从机地址信号,清发送完中断标志位TIck=0;tran=TempD;SBUF=tran;while(TI=0);WDTR
16、ST=0 x1E;WDTRST=0 xE1;取小数位发送温度整数部分的个位/发送等待喂狗发送温度小数部分奇校验TI=0;发送完本从机地址信号,清发送完中断标志位TISBUF=addr+(TempN%100)/10+TempN%10+TempD;发送累加和while(TI=O);发送等待WDTRST=0 x1E;喂狗WDTRST=0 xE1;TI=0;发送完本从机地址信号,清发送完中断标志位TIRXEN;禁止发送,接收使能while(RI=O);接收等待WDTRST=0 x1E;喂狗WDTRST=0 xE1;RI=0;/接收温度上限值的十位数据,清接收标志位,准备接收下一个字节rec=SBUF;
17、读接收的数据while(RI=0);接收等待WDTRST=0 x1E;喂狗WDTRST=0 xE1;RI=0;/接收温度上限值的十位数据,清接收标志位,准备接收下一个字节rec1=SBUF;读接收的数据ck=O;if(rec6)&0 x01)=1)ck+;/奇校验if(rec5)&0 x01)=1)ck+;if(rec4)&0 x01)=1)ck+;if(rec3)&0 x01)=1)ck+;if(rec2)&0 x01)=1)ck+;if(rec1)&0 x01)=1)ck+;if(rec0)&0 x01)=1)ck+;if(rec7)&0 x01)!=(ck&0 x01)gotoexit;
18、WDTRST=0 x1E;喂狗WDTRST=0 xE1;ck=0;if(rec16)&0 x01)=1)ck+;/奇校验if(rec15)&0 x01)=1)ck+;if(rec14)&0 x01)=1)ck+;if(rec13)&0 x01)=1)ck+;if(rec12)&0 x01)=1)ck+;if(rec11)&0 x01)=1)ck+;if(rec10)&0 x01)=1)ck+;if(recl7)&0 x01)!=(ck&0 x01)gotoexit;温度上限值通过奇校验,更新温度上限值wenduH=(rec&0 x0f)vv4)I(recl&0 x0f);WDTRST=0 x1
19、E;喂狗WDTRST=0 xE1;UpTempBuffer7=(rec&0 x7f)+0;/若校验正确更新温度报警上限显示缓冲区值UpTempBuffer8=(rec1&0 x7f)+0;wenduH=(rec&0 x7f)*10+(rec1&0 x7f);更新温度的上限值exit:SM2=1;ES=1;开串行口中断RXEN;发送禁止,接收使能5实物照片主机和从机照片分别如图37-8和37-9所示。以前用手拍摄,回来改成相机重新拍摄。图37-8主机实物照片图37-9从机实物照片6元件清单主机和从机元器件清单详见表37-1和表37-2。表37-1主机元件清单名称参数数量电阻IK、10K、10欧若
20、干电位器10K2发光二极管3电源接口1电解电容22uf1电解电容220uf1独石电容1041瓷片电容30pf2按键5自锁开关1晶振11.0592M1晶振327681排针若干AT89S52单1片机SN65HVD30821EDDS13021AT24C021LCD16021ISP口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蜂鸣器2Proteus仿真设计制作要点在设计制作中注意如下事项:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《GB 1788-19792号喷气燃料》(2025版)深度解析
- 二手设备租赁合同汇编
- 甲乙丙三方股权转让合同
- 文献购销合同
- 秘密合作协议
- 与水有关的作文课件
- 山西省怀仁市重点达标名校2024-2025学年新初三入学考试物理试题含解析
- 山西省吕梁汾阳市2025年初三5月综合测试(三模)数学试题理试题含解析
- 云南省玉溪市通海县2024-2025学年四年级数学第二学期期末学业水平测试试题含解析
- 船舶科技租赁合同
- MOOC 大学体育-华中科技大学 中国大学慕课答案
- 腰椎间盘突出疑难病例讨论
- 社区便利店计划书
- 人工智能的风险与挑战
- 基层纪检委员培训课件
- 信息论与编码期末考试题(全套)
- 肺癌麻醉科教学查房
- 气体检测系统中英文对照外文翻译文献
- 死亡病例监测报告督导记录表
- 车站信号自动控制教案-TYJL-ADX型计算机联锁系统组成及功能
- 炉壁温度计算详解
评论
0/150
提交评论