ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:186.50KB ,
资源ID:12700036      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12700036.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(温度报警器.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

温度报警器.docx

1、温度报警器1、远程温度报警器的功能与任务1、数字远程温度报警器的功能指标要求及任务1、功能指标要求.项目名称项目名称:设计制作远程温度报警器.项目要求1)用keilC51、Proteux、EAXY下载软件作开发工具;2)用AT8951单片机作控制,采用串行通信方式传送数据。3)主机LED作显示,显示时间、报警温度值。4)从机LED显示,具有测试温度,高于20oC ,低于0oC自动报警和传送温度数据的功能5)信号距离810m6)发挥扩充功能,如温度巡查,记录及读出报警时间、报警温度、报警位置, 清除报警数据、声音报警等。 2、任务 1)拟定总体设计制作方案;2)拟定硬件电路;3)编制软件流程图及

2、设计相应源程序;4)仿真调试远程温度报警器;5)安装元件,制作远程温度报警器,调试功能指标;6)完成项目评估。2、总体设计思路实现思路与框图设计基本功能部分的实现思路是:用一 个AT89C51单片机从机,控制温度,读出数据,判断温度是否进行本地报警,发送温度数据及本地地址。用一个AT89C51单片机作主机,控制时钟电路,读出温度数据,并显示时间,接受从机报警信号。报警采用输出脉冲控制发光二极管实现。采用DX18B20为单总线器件,可用一个单片机控制多个DX48B20,设计时可以用点对点双机通信构成多点温度测试报警器。为了通信的稳定和数据的识别,用简单的通信协议:主机、从机工作在通信方式1,波特

3、率为9600bpx。当温度超出正常范围,从机发送主机的编号(如06)主机发送答应信号(如主机编号06)从机接到应答后发送数据长度3,接着发送2字节尾部数据和本机编号(01),主机接送完温度数据和本机编号(3字节数)据后发送接收成功信号(如0f)。从机受到接受成功信号后停止发送数液晶显示AT89C51主机时钟电路电源电路键盘复位电路通信DS1302DS18B20电源电路复位电路时钟电路数码管显通信AT89C51从机2远程器温度报警器程序设计发送程序#include#include#define uchar unsigned char#define uint unsigned intsbit DQ

4、=P37;#define duan P0#define wei P2uchar mu;uchar code seg_w=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;uchar code seg_d=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77, 0x7c,0x39,0x5e,0x79,0x71,0x40;/*延时毫秒子函数*/void delay(uint mun) uint x,y;for(x=mun;x0;x-) for(y=10;y0;y-);/*延时微秒函数*/void delay_ms

5、(uint i) while(i-);/* ds18b20复位信号*/reset() DQ=1; delay_ms(4); DQ=0; delay_ms(100); DQ=1; delay_ms(40);/*写八位子函数*/void write_byte(uchar val) uchar i; for(i=8;i0;i-) DQ=0; DQ=val&0x01; delay_ms(10); DQ=1; val=1; /*读八位函数*/uint read_byte() uchar i; uchar val=0; for(i=8;i0;i-) DQ=0; val=1; DQ=1;if(DQ) val

6、|=0x80; delay_ms(10); return(val);/*读温度子函数*/uint read_temp()uchar a,b;uint temp,tt;reset();write_byte(0xcc);write_byte(0x44);reset();write_byte(0xcc);write_byte(0xbe); a=read_byte(); b=read_byte(); temp=b; temp=8; temp=temp|a; if(temp999) /高位消隐wei=0xff;duan=seg_dbai;wei=seg_w3;delay(10);wei=0xff;dua

7、n=seg_dshi;wei=seg_w2;delay(10);wei=0xff;duan=seg_dge+0x80; wei=seg_w1;delay(10);wei=0xff;duan=seg_ddian;wei=seg_w0;delay(10);/*主函数*/main() uint temp;uchar bai,shi,ge,dian,zong; while(1) init_ser(); temp=read_temp(); /读取温度 send(temp/10); /发送温度 zong=temp; bai=temp/1000; shi=temp%1000/100; ge=temp%100

8、/10; dian=temp%10; display(bai,shi,ge,dian,zong); 接收程序#include#define uchar unsigned char#define uint unsigned intuchar buf=0;sbit RS=P25; /1602的数据/指令选择控制线 sbit RW=P26; /1602的读写控制线 sbit en=P27; /1602的使能控制线 uchar code table=dz1002NO.2; uchar code table1=0123456789 c.; #define lcd1602 P0uchar g,s,b;sb

9、it fm=P20;sbit led=P21;/*延时子函数*/void delay(uint mun) uint i,j;for( i=0;imun;i+ )for( j =0;j110;j+ );/*初始化*/void init_ser()TMOD=0X20;TL1=0XFD;TH1=0XFD;TR1=1;SCON=0X50;PCON=0X00;/*接收一个字符*/void jieshou()while(!RI);buf0=SBUF;RI=0;b=buf0/100;s=buf0%100/10;g=buf0%10; /*1602写命令函数*/void lcd_xm(uchar com) RS

10、=0; /选择指令寄存器 RW=0; /选择写 lcd1602=com; delay(1); EN=1; EN=0; /*1602写数据函数*/void lcd_xs(uchar dat) RS=1; /选择数据寄存器 RW=0; /选择写 lcd1602=dat; delay(1); EN=1; EN=0; /*1602初始化函数*/void lcd_init() /1602初始化函数 lcd_xm(0x38); lcd_xm(0x0c); lcd_xm(0x06); lcd_xm(0x01); /*二极管收到显示部分*/void LED_XS()led=0;delay(100);led=1

11、; /*蜂鸣器接收蜂鸣部份*/ void fenming()fm=0; delay(10); fm=1; delay(10); LED_XS(); fm=0; delay(50); fm=1; delay(50); LED_XS(); fm=0; delay(100); fm=1; delay(100); LED_XS(); fm=0; delay(200); fm=1; delay(200); LED_XS();/*主函数*/void main() uchar n,m=0;lcd_init(); /液晶初始化 init_ser();while(1) jieshou(); lcd_xm(0x8

12、0); for(m=0;m16;m+) lcd_xs(tablem); lcd_xm(0x80+0x44); lcd_xs(table1s); lcd_xs(table1g); lcd_xs(table110); lcd_xs(table112); lcd_xs(table1b); lcd_xs(table111);n=1; if(g=2) while(n-) fenming(); 3、原理图设计远程器温度报警器原理图设计4、程序设计远程器温度报警器程序设计 5、仿真仿真模型与结果发送仿真模型接收仿真模型 6、元器件的安装安装效果图7、远程温度报警器调试调试指标1. 报警和温度显示2. 串口通

13、信调试方法步骤步骤:1.利用Keil uVixixon2的调试功能,根据错误提示,双击提示找到错误代码,排除各种语法错误。 2通过对端口、子函数入口参数赋值、变量赋值,对存储空间、端口数据、变量数据进行观察,以单步调试的方式调试子程序和主程序。 3.编译成.HEX文件。 4.用Proteux按原理图电路,放置元件电阻(res、pullup)、电容(cap)、晶振(cryxtal)、AT89C51、DS18B20、数码管、液晶(LM016L)、发光二极管(LED)、二极管(BAX16)、按键(button)、电位器(PTO-HK)、电源、地等。设计仿真模型图,设置好元件属性,以发光二极管指示开锁

14、继电器状态进行仿真调试。5.仿真调试成功后,按原理图把元件安装焊接在实验板上,下载程序,并进行静态和动态检测。6烧录,hex文件到AT89C51芯片,运行程序,如不能运行,先排除各种故障(供电、复位、时钟、内外存储空间选择、软硬件端口分配是否一致等)。7测试远程温度报警器功能、性能分析测试是否达到性能指标。8.如没有达到性能指标,根据性能指标,调整电路或元件参数、优化程序,重新调试、编译、下载、运行程序、测试性能指标。调试 数据 记录主机温度显示:14c 从机温度显示:14c 主机温度显示:20c 从机温度显示:20c主机温度显示:45c 从机温度显示:45c结果及分析在本次的的制作远程温度报警器过程中,初步掌握了对串口通信的使用和DX18B20的使用,并对单片机的了解更加的多了。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1