版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 五邑大学信息工程学院2011-2012学年第二学期课程:单片机原理与应用课程设计任课教师:班级:.:彬哥学号:.题目:基于MCS51的温度监控与报警设计一、 概述:在实际生活和生产中,有很多场合需要对温度进行监测和控制。我们利用MSC51单片机,完成一个完整的温度测控系统,包括:温度采集、温度控制策略、工作点温度限设定、实时监测温度的变化情况并显示、存储相关数据、报警输出等。可应用于水温检测和控制、室温度检测和控制等。本课程设计是基于89C51单片机用数码管与DS18B20设计的温度监控与报警系统。DS18B20将采集到的数字量写入到单片机当中,经单片机处理后送到数码管上显示。报警设置是通过
2、将采集到的温度信息与串口设定的温度上限和下限比较,若不在设定的围,系统将产生报警声音,且对应的LED同步闪烁。当温度低于设定的下限温度时,系统自动加温;当温度高于设定的上限温度时,系统停止加温。二、系统整体设计:系统框图AT89C51串口模块数码管显示模块加热模块5V电源输入LED灯报警蜂鸣器报警DS18B20温度采集按键复位晶振电路AT89C51核心模块设计单片微型计算机是随着超大规模集成电路技术的发展而诞生的,由于它具有体积小、功能强、性价比高等特点,所以广泛应用于电子仪表、家用电器、节能装置、军事装置、机器人、工业控制等诸多领域,使产品小型化、智能化,既提高了产品的功能和质量,又降低了成
3、本,简化了设计。MCS-51系列单片机无论是片RAM容量,I/O口功能,系统扩展能力还是指令系统和CPU的处理功能都非常的强。尤其是MCS-51系列就是所特有的布尔处理机,在逻辑处理和控制方面具有突出优点。MCS-51系列单片机适合于实时控制,可构成工业控制器、智能仪表、智能接口以与通用的测控单元等。元件图:89C51单片机的复位电路和振荡电路对应的电路图如下:DS18B20温度采集模块DS18B20是DALLAS公司生产的一线式数字温度传感器,它具有微型化、低功耗、高性能抗干扰能力、强易配处理器等优点,特别适合用于构成多点温度测控系统,可直接将温度转化成串行数字信号(按9位二进制数字)给单片
4、机处理,且在同一总线上可以挂接多个传感器芯片,它具有三引脚TO-92小体积封装形式,温度测量围55125,可编程为912位A/D转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,业可采用寄生电源方式产生,多个DS18B20可以并联到三根或者两根线上,CPU只需一根端口线就能与多个DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。从而可以看出DS18B20可以非常方便的被用于远距离多点温度检测系统。综上,在本系统中我采用温度芯片DS18B20测量温度。该芯片的物理化学性很稳定,它能用做工业测温元件,且此元件线形较好
5、。在0-100摄氏度时,最大线形偏差小于1摄氏度。该芯片直接向单片机传输数字信号,便于单片机处理与控制。 外部封装形式 DS18B20模块电路:LED灯与蜂鸣器报警模块报警上下限温度设为70和-20度。LED灯报警:蜂鸣器报警:数码管显示模块本设计采用LED显示驱动器芯片74LS47驱动四个共阳极的数码,通过它译码,直接把数字显示在数码管上。加热模块模块J2接入220V电压电源,经变压器降压再稳压输出为5V,R5为加热电阻,U5为光电耦合开关。当heat端输入电平为低电平时,U5接通,加热电阻R5,达到升温目的。串口通信模块本设计加入了串口通信模块,实现人机交互。本模块采用MAX232串口通信
6、芯片,可实现短距离传输。通过串口小助手软件可以再电脑上设置温度的报警上下限值,非常方便。三、硬件设计:原理图设计:PCB设计:四、程序设计:18 / 18#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit DQ=P37;/ds18b20 DQ 接口sbit beep=P36; /蜂鸣器sbit high=P10; /温度上限报警位sbit low=P11; /温度下限报警位sbit point=P33;/小数点位sbit heat=P
7、32; /加热控制位/*数码管段码*/uchar code duan_table=0,1,2,3,4,5,6,7,8,9,0x0f;/*小数位对照*/uchar code df_table=0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9;uchar temp_value=0x00,0x00;/从DS18B20读取的温度值uchar display_digit=0,0,0,0,0;/显示的温度数位char warn_temp_hl2=70,-20;/报警温度上下限,ds18b20测温围是-50+125bit high_warn=0, low_warn=0;/高低温报警标志bit
8、ds18b20_well = 1;/ds18b20正常uchar current=0;/ 温度整数部分uint time0=0;/定时器0延时累加/*/*延时程序,约为1us*/void delay(uint x) while(-x);/*ds18b20初始化*/uchar ds12b20_init()uchar status;DQ=1; delay(8);DQ=0; delay(90);DQ=1; delay(8);status=DQ;delay(100);DQ=1;return status;/初始化成功返回值/*读一字节*/uchar read_one_byte()uchar i,dat
9、 =0;DQ=1;_nop_();for(i=0;i<8;i+)DQ=0;dat>>=1;DQ=1; _nop_();_nop_();if(DQ) dat|=0x80; delay(30); DQ=1;return dat;/*写一字节*/void write_one_byte(uchar dat) uchar i;for(i=0;i<8;i+)DQ=0;DQ= dat & 0x01;delay(5); DQ=1; dat>>=1;/*读取温度值*/void read_temp()if(ds12b20_init()=1)ds18b20_well=0;
10、/ds18b20故障else write_one_byte(0xcc);/跳过序列号write_one_byte(0x44);/启动温度转换ds12b20_init();/初始化write_one_byte(0xcc);/跳过序列号write_one_byte(0xbe);/读取温度寄存器temp_value0=read_one_byte();/温度低8位temp_value1=read_one_byte();/温度高8位warn_temp_hl0=read_one_byte();/报警温度上限warn_temp_hl1=read_one_byte();/报警温度下限ds18b20_well=
11、1;/*设置DS18B20温度报警值*/void set_warn_temp_value()ds12b20_init();write_one_byte(0xcc);/跳过序列号write_one_byte(0x4e);/将设定的温度报警值写入ds18b20write_one_byte(warn_temp_hl0);/写温度上限write_one_byte(warn_temp_hl1);/写温度下限write_one_byte(0x7e);/精度设置ds12b20_init();write_one_byte(0xcc);/跳过序列号write_one_byte(0x48);/温度报警值出入ds1
12、8b20/*在数码管上显示温度*/void display_temp()uchar i;uchar t=150;/延时值uchar ng=0,np=0x01;/负数标志与其位置char signed_current_temp;/有符号的当前温度值/*负数转换,取反加一*/if(temp_value1& 0xf8)=0xf8) temp_value1=temp_value1;temp_value0=temp_value0+1;if(temp_value0=0x00) temp_value1+;ng= 1; /*/display_digit0=df_tabletemp_value1 &am
13、p;0x0f;/小数温度部分current=(temp_value0&0xf0)>>4)|(temp_value1&0x07)<<4);/获取温度整数部分signed_current_temp=ng? -current:current;/有符号的当前温度值high_warn=signed_current_temp>=warn_temp_hl0 ? 1:0;low_warn=signed_current_temp<=warn_temp_hl1 ? 1:0;/高低温报警标志位/*整数部分分解*/display_digit3=current/100
14、;display_digit2=current%100/10;display_digit1=current%10;if(display_digit3=0) display_digit3=10;/高位为0不显示np=0x01;/调整负号位置if(display_digit2=0) display_digit2=10;np=0x02; for(i=0;i<30;i+)point=1;P0=duan_tabledisplay_digit0;P2=0X08; delay(t);P2=0X00;/小数位P0=duan_tabledisplay_digit1;point=0;P2=0X04; del
15、ay(t);P2=0X00;/个位与小数点point=1;P0=duan_tabledisplay_digit2;P2=0X02; delay(t);P2=0X00;/十位显示 point=1;P0=duan_tabledisplay_digit3;P2=0X01; delay(t);P2=0X00;/个位显示if(ng=1) /point=1; P0=0X0c;/译码器显示不了负号,用这个代替P2=np;/显示负号delay(t);P2=0X00;/负号没有显示 /*串口发送字符函数*/void uart_sendchar(uchar sch)SBUF = sch; while(TI=0);
16、 TI=0; /*串口发送字符串函数*/void uart_sendstring(uchar *s)uchar c;for (;)c = *s;if ( c = '0' ) break;s+;uart_sendchar(c);/*定时器中断,控制报警声音*/void time_warn() interrupt 1TH0=-1000/256;TL0=-1000/256;beep=!beep; if(+time0=4)time0=0;if(high) high= high; heat=1; else high=1;if(low) low=low; heat=0; else low=
17、1;/*串口接收中断函数*/void uart_receive() interrupt 4 int value;if(RI)/接收到一字节RI=0;/清除串口中断标志位value=SBUF;if(value>0) warn_temp_hl0=SBUF;if(value<0) warn_temp_hl1=SBUF; /*主函数*/void main(void) uchar *s="please set :/n HI_Alarm= /n LO_Alarm=" heat=1; ET0=1; ES=1; EA=1; SCON=0X50; PCON=0X00;TMOD=0
18、X21;TH0=-1000/256;TL0=-1000/256;TH1=0XFD;TL1=0XFD;TR0=0;TR1=1;high=1;low=1;point=1;set_warn_temp_value();read_temp();delay(50000);delay(50000);uart_sendstring(s);while(1)read_temp();if ( ds18b20_well ) if(high_warn=1 | low_warn=1) TR0=1;else TR0=0;display_temp();else P0=P2=0X00; 五、PROTEUS仿真:系统温度正常仿真图:系统温度上限报警仿真图:系统温度下限报警仿真图:六、总结:温度检测和控制都直接与安全生产、节约能源等技术经济指标相联系。温度测量在工业、民用、军事等领域占着重要的地位。航空、家电、科研等领域都需要温度测试设备,用于测试和确定电工、电子与其它产品与材料进行高温、低温、交变温度或恒定试验的温度环境的变化,判断当检测目标的温度值达到警示条件时发出警告信号。在工业生产和日常生活中,对温度控制系统的要求,主要是保证温度在一定温度围变化,稳定性好,不振荡,对系统的快速性要求不高。在本设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年工程勘察设计行业知识管理现状
- 2026年增强现实(AR)广告互动体验设计
- 2026年PMO如何引入并推广项目管理工具
- 胸痹护理应急预案与演练
- 战略地图绘制与战略评估合同协议
- 2026届高考作文话题预测及主题素:诗意的生命
- 2026年平安建设工作基础知识手册
- 聚焦战略2026年数据共享协议
- 2026年民族服饰与特殊面料清洗技术培训
- 线上企业培训平台运营合同
- 【答案】《以案说法》(中南财经政法大学)章节作业慕课答案
- 云南省2025年普通高中学业水平合格性考试历史试题
- 小小科学家《物理》模拟试卷A(附答案)
- 如何加快发展新质生产力
- 四川省安全员《A证》考试题库及答案
- 雷达探测介绍课件
- 易普拉格科研管理系统
- 成品仓年终总结
- GB/T 39844-2021可靠性增长统计试验和评估方法
- GB/T 20641-2014低压成套开关设备和控制设备空壳体的一般要求
- GB/T 13454.2-2013塑料粉状三聚氰胺-甲醛模塑料(MF-PMCs)第2部分:试样制备和性能测定
评论
0/150
提交评论