好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

温度采集报警系统的设计—课程设计.doc

25页
  • 卖家[上传人]:aa****6
  • 文档编号:29226762
  • 上传时间:2018-01-23
  • 文档格式:DOC
  • 文档大小:185.50KB
  • / 25 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 课 程 设 计课程名称 单片机课程设计 题目名称 温度采集报警系统的设计 学生学院 物理科学与工程技术学院 专业班级 xx 学 号 学生姓名 xx 2013 年 11 月 12 日目录一、设计任务与要求 ...........................2二、方案设计与论证 ...........................21、单片机的选取 ..................................22、温度传感器的选取 ..............................23、显示器的选取 ..................................24、温度采集显示系统电路的总体设计框图 ............3三、电路基本原理及单元电路设计 ...............3四、调试和仿真: .............................7六、总结 .....................................9七、附录 ....................................10温度采集报警系统的设计2温度采集报警系统的设计一、设计任务与要求1、可以显示被测的温度并存储2、可以设置报警温度3、到达报警温度时声光报警二、方案设计与论证1、单片机的选取本系统采用简答的 51 单片机为控制核心优点突出,,它能够运行各种程序,综合考虑单片机的各部分资源,,且因为我们学习的是 51 单片机,因此此次设计选用 AT89C51 单片机作为核心处理器。

      2、温度传感器的选取方案一:采用温度传感器 AD590KAD590K 具有较高精度和重复性,良好的非线性保证±0.1℃的测量精度加上软件非线性补偿可以实现高精度测量AD590 将温度转化为电流信号,因此要加相应的调理电路,将电流信号转化为电压信号送入 8 位 A/D 转换器,可以获得 255 级的精度,基本满足题目要求 方案二:采用数字温度传感器 DS18B20DS18B20 为数字式温度传感器,无需其他外加电路,直接输出数字量可直接与单片机通信,读取测温数据,电路简单 基于以上分析和现有器件所限,温度采集模块选用方案二DS18B20 能够直接读出被测温度并且可根据实际要求通过简单的编程实现 9~12 位的数字值读数方式并且从DS18B20 读出的信息或写入 DS18B20 的信息仅需要一根口线(单线接口)读写,因而使用DS18B20 可使系统结构更趋简单,可靠性更高他在测温精度、转换时间、传输距离、分辨率等方面带来了令人满意的效果3、显示器的选取显示系统是单片机控制系统的重要组成部分,主要用于显示各种参数的值,常用的显温度采集报警系统的设计3示器有 CRT、LED、LCD 等方案一:采用 LED 数码管显示。

      颜色鲜艳,经济实惠,由于本设计显示的内容较多,过多地增加数码管显然不行,进行轮流显示则控制复杂,占用较多的 I/O 资源,加上数码管需要较多连线,使得电路复杂,功耗较大若采用 Max7219 驱动,可以减少占用的接口数目,但是数码管只能显示有限的数字和符号,不能直观地显示出本设计的内容 方案二:采用 1604 液晶显示其内置 128 个 5*7 点 ASCII 字符集,可以直观地显示出较多内容,利用该模块灵活的接口方式和简单、方便的操作指令,可构成较好人机交互图形界面,使得显示内容丰富,易于人机交流,并且节约了 I/O 口资源 由于本设计要求用 1604 显示,在本设计中采用 1604 作为显示模块,不仅可以显示温度值,而且可以显示英文字符,比数码管具有明显的优越性,所以本系统采用方案二4、温度采集显示系统电路的总体设计框图如图 1:AT89C51电源电路复位及晶振电路键 盘温度采集电路显示电路报警电路图 1:系统电路的总体设计框图三、电路基本原理及单元电路设计本设计使系统可以检测 0~99℃范围内的温度,考虑到测温精度,设置显示数值精确到1℃,并且设置温度的上下限,当温度值超过上下限温度时,报警电路中的蜂鸣器鸣响,报警灯闪。

      根据 AT89C51 的引脚特性,本设计中采用 P2.0~P2.2 和 P0 口作为 1604 的驱动引脚,P1.0~P1.3 作为按键的输入,P1.4,P1.5 分别作声光报警输出P1.7 负责与 DS18B20 的 IO 连接RST 作为复位输入,当振荡器工作时,RST 引脚出现 2 个机器周期以上高电平使单片机复位XTAL1 振荡器反相放大器及内部时钟发生器的输入端XTAL2 振荡器反相放温度采集报警系统的设计4大器的输出端1、总电路图如下图 2 示:图 2:电路总图2、晶振电路瓷片电容 C1、C2 是用来驱动晶振 Y1 的,因为晶振的大小是 16M,所以选用 20P 的电容,如下图 3 示图 3:晶振电路温度采集报警系统的设计53、复位电路复位电路选用了 1uF 的电解电容和 10K 的电阻,如下图 4 示4、按键电路电路如下图 5 示:按键 SET 用来设置,BACK 键用于返回,INC 键用于调整,每按一次加一,MOVE 键用于移动5、显示电路显示采用 16*4 字符 LCD,如下图 6 示图 4:复位电路图 5:按键电路温度采集报警系统的设计65、蜂鸣器和发光二极管如图 7:三极管 NPN 采用 9013 是作为蜂鸣器的驱动的作用的,R6、R4 作为限流电阻使用。

      6、实现上述任务的控制器整体流程图如图 8 所示:图 6:显示电路图 7:声光报警电路温度采集报警系统的设计7四、调试和仿真:1、调试选划分系统的功能,按单元一个一个调试正确后,组成整个电路2、仿真部分仿真图如下:图 8:整体流程图温度采集报警系统的设计8图 10,主界面未报警图 11,主界面已报警图 12,设置界面温度采集报警系统的设计9六、总结这次课程设计是自己第一次设计一个系统,包括前期的方案选取,原理图的绘制,程序的编写和 PROTUES 仿真等等,使我对之前的理论知识有了较好的巩固,同时也提高了自己的动手能力,然而也发现自己在理论知识方面存在很多不足,比如说,对单片机的中断控制系统的掌握还不够,和对 LCD 的菜单界面编程能力不足今后,我将更加努力地学习,提高自己的专业水平图 13,设置成功界面图 14,设置不成功界面温度采集报警系统的设计10七、附录1.1602 接口程序/******************************************file name:1602.h****************************************/#include#define uchar unsigned char#define uint unsigned int#define IO P0sbit RS=P2^0;sbit RW=P2^1;sbit E=P2^2;void check_busy(void);void write_cmd(uchar com);void write_data(uchar dat);void LCD_init(void);void write_str(uchar x ,uchar y,uchar *s);void lcd_test(void);void delay(uint); //1ms 延时程序void delay(uint j){uchar i;for(;j>0;j--)for(i=0;i0;i--){DQ = 0; // 给脉冲信号dat>>=1;DQ = 1; // 给脉冲信号if(DQ)dat|=0x80;delay_18B20(4);}return(dat);}/*************ds18b20 写一个字节 ********/ void WriteOneChar(uchar dat){unsigned char i=0;for (i=8; i>0; i--){DQ = 0;DQ = datdelay_18B20(5);DQ = 1;dat>>=1;}}/**************读取 ds18b20 当前温度******/void ReadTemp(void)温度采集报警系统的设计16{unsigned char a=0;unsigned char b=0;unsigned char t=0;Init_DS18B20();WriteOneChar(0xCC); // 跳过读序号列号的操作WriteOneChar(0x44); // 启动温度转换delay_18B20(100); // this message is wery importantInit_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0xBE); //读取温度寄存器等(共可读 9 个寄存器) 前两个就是温度delay_18B20(100);a=ReadOneChar(); //读取温度值低位b=ReadOneChar(); //读取温度值高位temp_value=b>4; //温度整数部分temp_dot=a //温度小数部分}void temp_to_1602() //温度数据转换成液晶字符显示{ ReadTemp(); Temp[0]=temp_value/10+'0'; //十位Temp[1]=temp_value%10+'0'; //个位Temp[2]='.';Temp[3]=temp_dot*0.625+'0';Temp[4]=0xdf;Temp[5]='\0';}温度采集报警系统的设计17#endif3.主程序/*****************************************file name:BJQ.C****************************************/#include#include"1602.h"#includeSET";uchar code BACK[]="->BACK";uchar code HIGHS[]="HIGHT:";温度采集报警系统的设计18uchar code LOWS[ ] =" LOW :";uchar HIGHT=40,LOW=10;uchar move,base;uchar dis_temp[6];bit MENU_FLAG3;void delay_100us(uchar x){uchar y;while(x--) for(y=0;y9) tem=0;dis_temp[adjust]=tem;if(adjustMOVE");write_str(3,14,BACK);write_str(2,14,"+:INC");set_xy(1,7);write_data(HIGHT/100+'0');write_data(HIGHT/10%10+'0');write_data(HIGHT%10+'0');write_data(0xdf);write_data('C');set_xy(2,7);write_data(LOW/100+'0');write_data(LOW/10%10+'0');write_data(LOW%10+'0');write_data(0xdf);write_data('C');write_cmd(0xc6);//write_cmd(0x0f);}else{writ。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.