




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科生开放实验报告实 验 项 目:单片机实时温度监控报警系统学 生 姓 名: 韦锐涛 学 号: 2009051138 学 院: 信息科学技术学院 学 系: 电子工程系 专 业: 电子科学与技术 指 导 教 师: 黄伟英、潘小萍 暨南大学教务处2010 年 12月 25日单片机实时温度监控报警系统摘要:本着熟悉单片机编程,系统设计的目的,增强动手合作能力,选择了做单片机实时温度监控报警系统这个实验项目。本开放性实验主要由AT89S52芯片、1602液晶显示器、DS18B20数字式温度传感器、HK4100继电器、蜂鸣器等组成。通过编程,利用单片机芯片自身的定时器和中断做一个实时时钟,可以记下发生事故时间,通过温度传感器实时采集环境温度显示在液晶屏上,并经过单片机处理,设置两个上限温度报警值,经过继电器控制外围线路。本系统可用于智能家居温控报警,车间温控等,具有一定推广价值。关键字:温度报警 温度上下限 AT89S52单片机 液晶LCD1602 温度传感器DS18B20 目录一、课程任务1.1功能说明二、整体设计方案2.1整体框架及各模块功能三、硬件电路主要模块设计3.1 各模块设计3.1.1传感器的选择3.1.2单片机的选择3.1.3液晶的选择3.2各模块分析3.2.1 单片机89S52管脚图3.2.2 DS18B20引脚及管脚功能介绍3.2.3 LCD1602液晶显示介绍四、控制软件主要模块设计及电路图4.1 单片机模块电路图及分析4.2液晶显示模块电路图及分析4.3温度传感器模块电路图及分析五、系统调试及所遇到问题六、个人总结七、参考文献八、附录 一 课程设计任务1.1功能说明1. 完成温度进行测量,理论测量范围0C+125C2. 可以通过按键进行温度上限两个报警值设定并实现功能;3. 将温度测量值和上限两个温度在LCD液晶显示模块显示;4. 当温度大于上限的较小值时会亮绿灯灯并长声报警,大于较大值时会亮红绿灯并自动断开继电器所控制回路。5. 通过定时器编一个时钟实时显示当前时间,在继电器断开外围电路时会停止时间,记下事故发生时间。二 整体设计方案2.1整体框架及各模块功能本系统共分为七个模块。1、单片机模块,这部分主要实现数据的处理,输出执行,报警设置功能(主要模块)2、液晶显示模块可以分别显示实时温度值,温度上下限。(主要模块)3、温度传感模块的主要功能是通过DS18B20的强大功能实现对温度的采集。(主要模块)4、继电器模块可以控制外围其他线路,如家居电线总开关。5、蜂鸣器模块可以发出报警声。6、LED灯模块可以显示报警信号7、按键可以设置时间和上限的两个温度值温度读取液晶显示继电器控制AT89S52控制器键盘扫描并设置蜂鸣器LED灯 图1 整体框图 图2 温度报警器总电路图开始液晶、定时器、变量初始化键盘扫描、按键处理时钟显示、温度转化并显示Yes温度小于较低温度值正常工作NoYes温度大于较低且小于温度值绿灯亮,有长报警声No温度大于较高温度值红绿灯亮,有短报警声,继电器控制开关断开,停止时钟YesNo结束单片机温度实时监控报警系统流程图三 硬件电路设计(由于继电器、蜂鸣器、LED灯、按键模块结果和线路较为简单,下面主要以单片机控制、液晶显示、温度采集模块为主来分析)3.1各模块设计3.1.1传感器的选择采用DALLAS最新单线数字温度传感器DS18B20。新的“一线器件”体积更小、适用电压更宽、更经济。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20“一线总线”数字化温度传感器也支持“一线总线”接口,测量温度范围为 -55C+125C,在-10+85C范围内,精度为0.5C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。DS18B20的特性:DS18B20可以程序设定912位的分辨率,精度为0.5C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色!继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。DS18B20使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。3.1.2单片机的选择AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。3.1.3液晶的选择采用LCD1602液晶显示模块,有体积小、功耗低、显示内容丰富、超薄轻巧等优点,在袖珍式仪表和低功耗应用系统中得到广泛的应用。目前字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件。它可以显示两行,每行16个字符,采用单5V电源供电,外围电路配置简单,价格便宜,具有很高的性价比。3.2各模块分析3.2.1单片机89S52管脚图注:引脚说明:电源引脚Vcc(40脚):典型值5V。Vss(20脚):接低电平。外部晶振X1、X2分别与晶体两端相连接。当采用外部时钟信号时,X2接振荡信号,X1接地。输入输出口引脚:P0口:I/O双向口。作输入口时,应先软件置“ 1”。P1口:I/O双向口。作输入口时,应先软件置“ 1”。P2口:I/O双向口。作输入口时,应先软件置“ 1”。P3口:I/O双向口。作输入口时,应先软件置“ 1”。控制引脚:RST/Vpd、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。RST/Vpd(9脚):复位信号输入端(高电平有效)。第二功能:加+5V备用电源,可以实现掉电保护RAM信息不丢失。ALE/-PROG(30脚):地址锁存信号输出端。第二功能:编程脉冲输入。-PSEN(29脚):外部程序存储器读选通信号。-EA/Vpp(31脚):外部程序存储器使能端。第二功能:编程电压输入端(+21V)。3.2.2 DS18B20引脚及管脚功能介绍注DQ:数字信号输入输出端。GND:电源地端。VDD:外接供电电源输入端(在寄生电源接线时此脚应接地)。3.2.3 LCD1602液晶显示介绍管脚功能1602采用标准的16脚接口第1脚:VSS为电源地第2脚:VDD接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第6脚:E(或EN)端为使能(enable)端。 第714脚:D0D7为8位双向数据端。 第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。四 控制软件主要模块设计及电路图4.1单片机模块电路图及分析 图3 单片机接线图P0接液晶数据口,P2.2和P2.3接2个发光二极管,P3接8个按钮,P2.4接蜂鸣器,P2.5接继电器,P2.6接液晶的RS,P2.7接液晶的EN,P1.2接温度传感器,其他按单片机最小系统连接。4.2液晶显示模块电路图及分析 图3 液晶接线图液晶显示模块的子程序:void write_com(uchar com)/写液晶命令函数rs=0;lcden=0;P0=com;delay(3);lcden=1;delay(3);lcden=0;void write_date(uchar date)/写液晶数据函数rs=1;lcden=0;P0=date;delay(3);lcden=1;delay(3);lcden=0;void write_sfm(uchar add,char date)/1602液晶刷新时分秒函数1为时,4为分,7为秒 char shiwei,gewei;shiwei=date/10;gewei=date%10;write_com(0x80+add);write_date(0x30+shiwei);write_date(0x30+gewei);void write_nyr(uchar add,char date)/1602液晶刷新年月日函数3为年,6为分,9为秒char shiwei,gewei;shiwei=date/10;gewei=date%10;write_com(0xc0+add);write_date(0x30+shiwei);write_date(0x30+gewei);4.3温度传感器模块电路图及分析 图4温度传感器接线图温度传感器读取温度以及显示温度的子程序:void dsreset(void) /18B20复位,初始化函数 uint i; ds=0; i=103; while(i0)i-; ds=1; i=4; while(i0)i-;bit tempreadbit(void) /读1位函数 uint i; bit dat; ds=0;i+; /i+ 起延时作用 ds=1;i+;i+; dat=ds; i=8;while(i0)i-; return (dat);uchar tempread(void) /读1个字节 uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=tempreadbit(); dat=(j1); /读出的数据最低位在最前面,这样刚好一个字节在DAT里 return(dat);void tempwritebyte(uchar dat) /向18B20写一个字节数据 uint i; uchar j; bit testb; for(j=1;j1; if(testb) /写 1 ds=0; i+;i+; ds=1; i=8;while(i0)i-; else ds=0; /写 0 i=8;while(i0)i-; ds=1; i+;i+; void tempchange(void) /DS18B20 开始获取温度并转换 dsreset(); delay(1); tempwritebyte(0xcc); / 写跳过读ROM指令 tempwritebyte(0x44); / 写温度转换指令uint get_temp() /读取寄存器中存储的温度数据 uchar a,b; dsreset(); delay(1); tempwritebyte(0xcc); tempwritebyte(0xbe); a=tempread(); /读低8位 b=tempread(); /读高8位 temp=b; temp=8; /两个字节组合为1个字 temp=temp|a; f_temp=temp*0.0625; /温度在寄存器中为12位 分辨率位0.0625 temp=f_temp+0.5; /加0.5是四舍五入 return temp; /temp是浮点型 五 系统调试及遇到的问题开始我们只是做温度报警,因为温度传感器选择的是数字式温度传感器,感觉这样做下来比较简单,所以我们就增加了按键可以调整上下限温度值,听取了老师的建设,如果能改进了下,可以做智能家居温度报警,这样就要外加一个继电器,可以控制家里的线路,但是如果我们有事出外,有时发生事故,我们还希望记下发生事故的时间,所以就增加了用定时做一个时钟的功能,这样,就构成了今天这个课题的内容啦。以下是我们在调试过程序遇到的问题以及解决方案:1、由于没有去仔细看实验拿来的三外接口的封装,以为和我自己买的单片机板上的是一样的,导致我们做出来的板焊盘和实际的管脚根本就对不是,幸好我画的是三个口的,而那个实际封装比较大,用了外面两个口,这样就只能控制一路线,本来设计是可以控制两路的。2、虽然我对单片机的原理算是比较熟悉的,但是真正当我自己去做一个系统的时候,有些细节性的地方就没有注意到啦,比如说LED灯的控制,它的正向应该是接电源的,因为单片机IO口是弱上拉的,当有驱动负载的时候,它就会变成低电平,达不到驱动LED灯的效果,而且还要接一个1K的电阻,但是我就直接把正向接到IO口啦,这样调试的时候灯总是不亮,找了好久才找到原因。3、1620的显示程序,我本来是有放在中断服务程序一部分,而在主程序有温度的显示程序,但是实际上温度的转换时间和时钟的显示时间有很大差别,导致液晶屏上存在乱码现象,这个花了我一个上午的时间还没有找出来,最后我干脆把温度显示也放在中断程序里面,这样问题就解决啦。六 个人小结刚开始的时候我altium designer一点都不会,可是要画这么复杂的电路图,有些封装还要自己画,搁了很久都没有做,借了一些关于altiumDesigner 的书也没怎么看,可以前几周老师突然说要结题啦,才拼命地学,看来人的潜力真的是逼出来,通过本次实验,学会很多东西,一个系统从画图到做板到完成调试。还有很多东西看似很简单,但是理论与实际总是存着差距,只有在实践中你才能发现很多细节的问题,才能不断地进步。七 参考文献1. 单片机C语言程序设计实训100例 编著 彭 伟2. 流行单片机实用子程序及应用实例 编著 杨振江 杜铁军 李 群 3. C51基础与应用实例 编著 常喜茂 孔英会 付小宁4. 单片机原理与接口技术 编著 刘 军5. 单片机原理与C51编程 编著 宋彩利 孙友仓 吴宏岐6. 51单片机开发入门与经典实例 编著 王守中7. 51单片机C语言教程 编著 郭天祥8. 单片机程序设计及应用 编著 杨将新 李华军 刘东骏9. 51单片机应用实例详解 编著 杨 欣 王玉凤 刘湘黔 张延强10. 百度文库 八 附录1、 实物图和PCB图2、器材清单名称型号数量液晶显示屏LCD1602c1数字温度传感器DS18B201单片机AT89S521二极管IN41481按键9电容110uF1发光二极管3电容230pF2电源开关1电位器20K1晶振12MHz1继电器HK4100蜂鸣器1接口两口1三极管S90122电阻11K5电阻2101电阻310k2排阻1电源接口13、总程序#define uchar unsigned char #define uint unsigned intsbit rs=P26;sbit lcden=P27;sbit jidianqi=P25;sbit s1=P30;/功能键sbit s2=P31;/增加键sbit s3=P33;/减小键sbit beep=P23;/蜂鸣器sbit led1=P21;sbit led2=P22;sbit ds=P12; /温度传感器uint warnl=35; /下限温度uint warnh=40; /上限温度uint temp;/整形温度数据float f_temp;/浮点型温度数据uchar count,stop,s1num,s2num;/其它变量定义char miao,shi,fen;uchar code table= : : T: ;/液晶固定显示内容uchar code table1= L: H: ;#include#includevoid delay(uint z)/延时函数uint x,y;for(x=z;x0;x-)for(y=124;y0;y-) ;void di() /蜂鸣器报警声音beep=0;delay(100);beep=1; /*=液晶操作=*/void write_com(uchar com)/写液晶命令函数rs=0;lcden=0;P0=com;delay(3);lcden=1;delay(3);lcden=0;void write_date(uchar date)/写液晶数据函数rs=1;lcden=0;P0=date;delay(3);lcden=1;delay(3);lcden=0;void write_sfm(uchar add,char date)/1602液晶刷新时分秒函数1为时,4为分,7为秒 char shiwei,gewei;shiwei=date/10;gewei=date%10;write_com(0x80+add);write_date(0x30+shiwei);write_date(0x30+gewei);void write_nyr(uchar add,char date)/1602液晶刷新年月日函数3为年,6为分,9为秒char shiwei,gewei;shiwei=date/10;gewei=date%10;write_com(0xc0+add);write_date(0x30+shiwei);write_date(0x30+gewei);/*=*/*=ds18B20程序=*/void dsreset(void) /18B20复位,初始化函数 uint i; ds=0; i=103; while(i0)i-; ds=1; i=4; while(i0)i-;bit tempreadbit(void) /读1位函数 uint i; bit dat; ds=0;i+; /i+ 起延时作用 ds=1;i+;i+; dat=ds; i=8;while(i0)i-; return (dat);uchar tempread(void) /读1个字节 uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=tempreadbit(); dat=(j1); /读出的数据最低位在最前面,这样刚好一个字节在DAT里 return(dat);void tempwritebyte(uchar dat) /向18B20写一个字节数据 uint i; uchar j; bit testb; for(j=1;j1; if(testb) /写 1 ds=0; i+;i+; ds=1; i=8;while(i0)i-; else ds=0; /写 0 i=8;while(i0)i-; ds=1; i+;i+; void tempchange(void) /DS18B20 开始获取温度并转换 dsreset(); delay(1); tempwritebyte(0xcc); / 写跳过读ROM指令 tempwritebyte(0x44); / 写温度转换指令uint get_temp() /读取寄存器中存储的温度数据 uchar a,b; dsreset(); delay(1); tempwritebyte(0xcc); tempwritebyte(0xbe); a=tempread(); /读低8位 b=tempread(); /读高8位 temp=b; tempwarnh)jidianqi=0;TR0=0;led1=0;di();delay(200);di();delay(100); if (twarnl&t=warnh)led2=0;di();delay(400);di();
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年教师招聘之《幼儿教师招聘》试题一及参考答案详解ab卷
- 2025就业援疆浙江省事业单位招聘阿克苏籍少数民族高校毕业生(7人)考试模拟试题及答案解析
- 基于2025年的跨境电商进口风险预防与品牌形象维护报告
- 基于2025年的货运代理行业服务质量提升与创新研究报告
- 教师招聘之《小学教师招聘》高分题库及参考答案详解【b卷】
- 2025年教师招聘之《小学教师招聘》考前冲刺练习题库带答案详解(突破训练)
- 教师招聘之《小学教师招聘》能力提升试题打印及答案详解(全优)
- 教师招聘之《幼儿教师招聘》练习题库附参考答案详解【研优卷】
- 2025年发展对象考试试题库及参考答案
- 教师招聘之《小学教师招聘》综合检测题型汇编及答案详解参考
- 马克思主义基本原理概论 第六章
- 大学预算绩效管理办法(试行)模板
- 西方音乐史全套完整教学课件
- 急诊急救护理教学课件
- 最新医疗安全十八项核心制度课件
- 住宅小区供配电系统设计课件
- 社保费和非税收入课件
- “三高”讲座-课件
- 年产12000吨水合肼(100%)项目环评报告书
- 建设工程施工合同(GF-2017-0201) 专用条款模板
- 普通冲床设备日常点检标准作业指导书
评论
0/150
提交评论