单片机课程设计报告-高温报警系统_第1页
单片机课程设计报告-高温报警系统_第2页
单片机课程设计报告-高温报警系统_第3页
单片机课程设计报告-高温报警系统_第4页
单片机课程设计报告-高温报警系统_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

江汉大学物理与信息工程学院单片机课程设计报告 课题名称: 高温报警系统 专 业: 电子与信息工程 班 级: 电信一班 学生姓名: XXXXXXXXXX2012年12月15日一、设计要求1通过四个独立按键设置高温报警阈值温度,同时可以随时修改阈值温度。2利用温度芯片(DS18B20)实时监测当前温度并通过4位共阴数码管显示当前温度。3当检测到当前温度超过阈值温度接通蜂鸣器报警,当温度回落低于阈值温度警报解除。二、设计方案 高温报警系统主要基于NI-51-A单片机开发板设计而成,整个系统的设计如下图所示:三、系统电路电源模块: 通过USB数据线将开发板接到电脑USB端口,由1、4端口将+5V电源接入开发板,为各个部件提供标准工作电压。51最小系统模块:51最小系统模块主要实现在接入+5v电源时可简单控制整个系统的开关、复位。对获取的数据进行处理,并对相关模块进行控制。数码管显示模块:4位共阴数码管用来显示温度信息,可精确到0.01。独立按键模块:通过独立按键来控制程序进入阈值温度设置状态,并进行阈值温度调节,设置完成后通过独立按键退出设置状态,恢复温度显示。温度检测模块:实时检测当前温度并获取的温度值传送给51芯片,进行分析、处理。蜂鸣器报警模块:当温度超过阈值时,由51芯片控制蜂鸣器接通,发出警报声。四、proteus仿真电路五、程序设计通过4个独立按键设置阈值温度(超过该阈值温度发出警报),通过温度芯片(DS18B20)实时监测当前温度,蒋获取的温度数据送给51芯片进行数据分析、处理,并控制4位共阴数码管显示当前温度信息。当检测到当前温度超过阈值温度便控制蜂鸣器发出警报声,当温度回落至阈值温度以下解除警报。需要修改阈值温度时,通过4个独立按键配合使用来调节阈值温度(精度为1)。程序流程图:程序源代码:#includereg52.h#include #define uchar unsigned char#define uint unsigned intsbit fm=P34; /蜂鸣器位定义sbit key1=P20;/独立按键位定义sbit key2=P21;sbit key3=P22;sbit key4=P23;sbit s1=P24; /数码管位定义sbit s2=P25;sbit s3=P26;sbit s4=P27;sbit DQ=P35; /温度芯片位定义uchar code tab10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;uint a,keyflag;void delay1(int ms) /延时函数 uint i,j; for(i=0;ims;i+) for(j=0;j=a) for(i=0;i9;i+) fm=0; display(temp); delay1(120); fm=1; delay1(40-4*i); else display(temp); void delay(uint us)/一次大约延时28us while(us-);void reset() /DS18B20初始化程序 DQ=1; delay(5); /由仿真功能调出一次演示大约12us, DQ=0; delay(60); /延时大于480us DQ=1; delay(8); /等待15-60us while(DQ); /检测到应答信号,为ds18b20发出的低电平 while(DQ) delay(6); /检测到应答就退出循环 break; /* 启动温度转换子程序 */void tempwrite(uchar b) uint i,j; uchar btmp; for(i=0;i=1; if(btmp=0) DQ=0; delay(8); DQ=1; else DQ=0; j+;/拉低要有1us DQ=1; delay(8);/拉高后要延时60us /*启动温度转换子程序*/void tempconvert() reset(); delay(1); tempwrite(0xcc); /跳过验证序列号命令,若单总线上有多个ds18b20,则不可以使用该命令 tempwrite(0x44); /启动温度转换命令 uchar tempREAD(void) uchar i,j; / 这个地方的 i 必须设置成uchar,不知是为啥,因为如果是uint,就读不出数 uchar a,b; bit bite; b=0; for(i=0;i8;i+) DQ=0; _nop_(); /保持拉低至少1us DQ=1; for(j=0;j3;j+) /延时13us,ds18b20的输出数据有效 ; bite=DQ; a=bite; b=(ai)|b; /读取数据按照有底到高的顺序组合成一个字节 delay(3); /读间隙时间不低于60us return b; uint rdtemp() uint y,I_temp; float f_temp; uchar templ,temph; reset(); delay(1); tempwrite(0xcc); tempwrite(0xbe); /读取内部ROM的数据 templ=tempREAD();/读低8位 temph=tempREAD(); /读高8位 y=temph; y0;x-) for(y=111;y0;y-);*/ void main() uint temp; uint i,flag1,flag2,flag3,flag4; keyflag=1; a=23; flag1=flag2=flag3=flag4=0; while(1) if(key1=0)flag1=1;delay1(3);if(flag1=1&key1=1)flag1=0;delay1(3);keyflag=1;while(keyflag) display(a); if(key2=0)flag2=1;delay1(3); if(flag2=1&key2=1)flag2=0;delay1(3);a+; if(key3=0)flag3=1;delay1(3); if(flag3=1&key3=1)flag3=0;delay1(3);a-; if(key4=0)flag4=1;delay1(3); if(flag4=1&key4=1)flag4=0;delay1(3);keyflag=0; tempconvert(); /启动温度

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论