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