、基于单片机的数字温度计设计-要点.pdf

上传人:tbuqq 文档编号:5198736 上传时间:2020-02-19 格式:PDF 页数:20 大小:909.92KB
返回 下载 相关 举报
、基于单片机的数字温度计设计-要点.pdf_第1页
第1页 / 共20页
、基于单片机的数字温度计设计-要点.pdf_第2页
第2页 / 共20页
、基于单片机的数字温度计设计-要点.pdf_第3页
第3页 / 共20页
、基于单片机的数字温度计设计-要点.pdf_第4页
第4页 / 共20页
、基于单片机的数字温度计设计-要点.pdf_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《、基于单片机的数字温度计设计-要点.pdf》由会员分享,可在线阅读,更多相关《、基于单片机的数字温度计设计-要点.pdf(20页珍藏版)》请在三一文库上搜索。

1、单 片 机 课 程 设 计 题目基于单片机的数字温度计设计 系 (部) 电子与信息工程系 班级 11级计算机科学与技术 姓名陈庄柱 学号 2011222236 指导教师张兴辉 2014 年 12 月 1 日 电子与信息工程系 单片机课程设计任务书 计算机教研室制 设计题目 基于单片机的数字温度计设计 已知技术 参数和设 计要求 1、 线性平滑滤波器包括领域平均法(均值滤波器),非线性平滑滤波器 有中值滤波器 2、参数 type和parameters用于确定噪声的类型和相应的参数。 3、利用H(u,v)使 F(u,v)的高频分量得到衰减,得到G(u,v)后再经过反 变换就得到所希望的图像g(u,

2、v) 设 计 内 容 与 步 骤 1、 探求一种既能去除噪声又不至于使图像模糊的方法 2、 利用单片机STC89C52 单片机作为本系统的中控模板。单片机可由DS18B20 读出来的数据利用软件来进行处理,从而把数据传输到LED数码管显示模 块中,实现温度的显示。 3、 频域低通滤波具有更好的选择性,对噪声在一定范围内也可以起到抑制作 用,同时也对图像的边缘细节和高频信息分量有更好的保持作用 设 计 工 作 计 划 与 进 度安排 1、图像平滑方法 2、图 像 平 滑 处 理 与 调 试 设计考核 要求 1 考勤 10% 2 作品 60% 3 课程设计总结报告30% 2011222236 陈庄

3、柱 1 基于单片机的数字温度计设计 陈庄柱 安康学院计算机科学与技术11 级陕西省安康市725000 摘要: 本设计选择82c52 为核心控制元件,设计一个数字温度计。随着时代的进步和发展,单 片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术。本 文主要介绍了一个基于89S51 单片机的测温系统,详细描述了利用数字温度传感器 DS18B20 开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模 块系统流程进行了详尽分析,特别是数字温度传感器DS18B20 的数据采集过程。 对各部分的 电路也一一进行了介绍,该系统可以方便的实现实现温度采集和显示,并

4、可根据需要任意设定 上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗 低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块 嵌入其它系统中,作为其他主系统的辅助扩展。AT89c52 和 DS18b20 结合实现最简温度检测 系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的 应用前景。 关键字: 微电子技术,通信技术,单片机系统,数字温度计 1 概述 1.1 设计背景 随着人们生活水平的提高,单片机的应用也越来越广泛,在日常生活中,与温度有关的 也常见,例如:烧开水的锅炉需要测温度、家庭用的电磁炉需要测温度等等

5、;所以数字温度 计也普遍存在于人们的生活当中,而本电路就是结合这种思路和参考一些资料所设计的电路, 这种电路可以很方便的应用到我们的现实生活中,为人们带来便利。本文主要从单片机的应 用上来实现温度的测量及显示。 1.2 设计任务 1)测温范围 -50 110 2)精度误差不大于0.1 3)LED数码直读显示 4)实现语音报数 5)可以任意设定温度的上下限报警功能 基于单片机的数字温度计设计 2 2 系统总体方案 2.1 设计思路方案一 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测 温度变化的电压或电流采集过来,进行 A/D 转换后,就可以用单片机进行数据的处理,在

6、 显示电路上,就可以将被测温度显示出来,这种设计需要用到 A/D 转换电路,其中还涉及 到电阻与温度的对应值的计算,感温电路比较麻烦。而且在对采集的信号进行放大时容易受 温度的影响出现较大的偏差。 2.2 设计思路方案二 进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非 常容易想到的,所以可以采用一只温度传感器 DS18B20,此传感器,可以很容易直接读取被 测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系 统的再扩展,满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比较简单, 费用较低,可靠性高,软件设计也比较简单,故采用了

7、方案二。 2.3 设计方框图 温度计电路设计总体设计方框图如图2.3 所示,控制器采用单片机 AT89S51,温度传感 器采用 DS18B20,用 3 位 LED 数码管以串口传送数据实现温度显示。 图 2-3 上电 +按钮电平复位电路原理图 2.4 温度传感器 DS18B20 温度传感器是美国 DALLAS 半导体公司最新推出的一种改进型智能温度传感 2011222236 陈庄柱 3 器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过 简单的编程实现位的数字值读数方式。 DS18B20 的性能特点如下: 1、独特的单线接口仅需要一个端口引脚进行通信; 2、多个

8、DS18B20 可以并联在惟一的三线上,实现多点组网功能 3、无须外部器件; 4、可通过数据线供电,电压范围为 3.05.5; 5、零待机功耗; 6、温度以或位数字; 7、用户可定义报警设置; 8、报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; 9、负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; 2.5 AT89C52 管脚说明 VCC :电源 GND :接地 P0口:P0 口是一个8位漏级开路的双向I/O 口。作为输出口, 每位能驱动8 个 TTL逻辑电平。 对 P0 口端口写“ 1”时,引脚作高阻抗输入。当访问外部程序和数据存储器时,P0 口也被作 为

9、低 8 位地址 / 数据复用。在这种模式下,P0具有内部上拉电阻。 在 flash编程时, P0 口也用来接受指令字节:在程序效验时,输出指令字节。程序效验时, 需要外部上拉电阻。 P1 口: P1 口是一个具有内部上拉电阻的8 位是双向I/O 口, P1的输出缓冲级可驱动(吸收 或输出电流) 4 个 TTL逻辑电平。对P1口写“ 1”时,内部上拉电阻的原因,将输出电流ILL 。 此外,与AT89C51不同之处是, P1.0 和 P1.1 还可分别作为定时/ 计数器2 的外部计数输入 (P1.0/T2 )和输出( P1.1/T2EX ) ,具体如下所示: P1.0 T2 (定时 / 计数器 2

10、 外部计数脉冲输入) ,时钟输出 P1.1 T2EX定时 / 计数 2 捕获 / 重装载触发和方向控制 在 Flash 编程和校验时,P1口接收低8 位地址字节。 P2 口: P2口是一个具有内部上拉电阻的8 位双向 I/O 口, P2输出缓冲级可驱动吸收或输出 电流 4 个 TTL 逻辑电平。对P2 口写“ 1”时,通过内部上拉电阻把端口拉高,此时可以作为 输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流ILL 。 在访问外部好曾许存储器或用16 位地址读取外部数据存储器时,P2 口送出高8 位地址。 在这 种应用中, P2 口使用很强的内部上拉发送1。在使用8 位

11、地址访问外部数据存储器时,P2 口 输出 P2锁存器的内容。在Flash 编程和校验时,P2 口接收低8 位地址字节和一些控制信号。 基于单片机的数字温度计设计 4 P3口:P3 口是一个具有内部上拉电阻的8 位双向 I/O 口,P3输出缓冲级可驱动(吸收或输出 电流) 4 个 TTL 逻辑电平。对P3口写“ 1”时,内部上拉电阻把端口拉高,此时可以作为输入 端口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流ILL 。P3 口除了作为一般、的I/O 口线外,更重要的是它的第二功能,如下所示: P3.0 RXD(串行输入) P3.1 TXD(串行输出) P3.2 INT0

12、(外部中断0) P3.3 INT1 (外部中断1) P3.4 T0 (定时器0 外部输入) P3.5 T1 (定时器1 外部输入) P3.6 WR(外部数据存储器写选通) P3.7 RD (外部数据存储器读选通 在 Flash 编程和校验时,P3口也接收一些控制信号。 RST :复位输入。晶振工作时,RST脚持续 2 个机器周期以高电平将使用单片机复位。 ALE/PROG :地址锁存器控制信号(ALE )是访问外部程序存储器时,锁存低8 位地址的输出脉 冲。在 Flash 编程时,此引脚(PROG )也使用作编程输入脉冲。 在一般情况下, ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部

13、定时器或时钟使用。 然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。 如果需要,通过将地址为8EH的 SFR的第 0 位置“ 1” ,ALE操作无效。这一位置“1” ,ALE仅 在执行 MOVX 或 MOVC 指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位的设置对微 控制器处于外部执行模式下无效。 PSEN:外部程序储存器选通信号 (PSEN )是外部程序存储器选通信号。当AT89C52 从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据储 存器时, PSEN将不被激活。 /EAVPP :访问外部程序存储器控制信号。为使能从0000H

14、FFFFH的外部程序存储器读取指令, EA端必须保持低电平(接地)。 为了执行内部程序指令,EA应该接 VCC 。 在 flash编程期间, EA也接受 12 伏 VPP电压。 XTA L1:振荡器反相放大器及内部时钟发生器的输入端。 TA L2:振荡器反相放大器的输出端 2011222236 陈庄柱 5 3 具体实现步骤 3.1 主控制器 图 3-1-1 晶振电路 图 3-1-2 复位电路 单片机AT89S51 具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路 系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。晶振采用 12MHZ 。复位电路采用上电加按钮复位

15、。 基于单片机的数字温度计设计 6 3.2 显示电路 图 3-2 数码管显示电路 显示电路采用 4 位共阴极 LED 数码管, P0 口由上拉电阻提高驱动能力,作为段码输 出并作为数码管的驱动。P2 口的低四位作为数码管的位选端。采用动态扫描的方式显示:数 码管显示电路 3.3 温度传感器 图 3-3 温度传感器与单片机的连接 DS18B20 可以采用两种方式供电, 一种是采用电源供电方式, 此 DS18B20 的 1 脚接地, 2 脚作为信号线,3 脚接电源。另一种是寄生电源供电方式,如图 4 所示单片机端口接单 线总线,为保证在有效的 DS18B20 时钟周期内提供足够的电流,可用一个 M

16、OSFET 管来完成 对总线的上拉。当 DS18B20 处于写存储器操作和温度 A/D 转换操作时,总线上必须有强的 上拉,上拉开启时间最大为 10us 。采用寄生电源供电方式时 VDD 端接地。由于单线制只有 一根线,因此发送接口必须是三态的。 2011222236 陈庄柱 7 3.4 报警温度调整按键 图 3-4 按键电路 本系统设计三个按键,采用查询方式,一个用于选择切换设置报警温度和当前温度,另 外两个分别用于设置报警温度的加和减。均采用软件消抖。 3.5 报警电路 图 3-5 报警电路 通过设置一个上限和下限温度,超出这个温度电路会发出蜂鸣 基于单片机的数字温度计设计 8 3.6 温

17、度上下限 图 3-6 温度上下限 通过这个装置来设置数字温度计的上下限温度 4 程序清单 #include #include #define uchar unsigned char #define uint unsigned int sbit DATA = P11; /DS18B20接入口 uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0 x79,0x71;/共阴极字型码 int temp; /温度值 int ss; / 中间的一个变量 int dd; int j;

18、uchar data b;/定时器中断次数 uchar data buf4;/字型显示中间变量 int alarmH=320; /默认报警值 int alarmL=100; / 定义开关的接入口 sbit k1=P25;/+ sbit k2=P26;/- sbit k3=P27;/确认 2011222236 陈庄柱 9 sbit k4=P24; /切换 sbit bell=P10; /蜂鸣器 sbit HLight=P12; /正温指示灯 sbit LLight=P13; /负温度指示灯 sbit warn=P14; /报警指示灯 sbit Red=P16; /温度上限设置指示灯 sbit G

19、reen=P17; /温度下限设置指示灯 bit set=0; / 初始化 bit Flag=0; /设置标志 int n; / 函数的声明区 void key_to1(); void key_to2(); void delay(uint); void key(); void Show(); / 函数的定义区 /* 延时子函数 */ void delay(uint num) while(num-) ; /DS18b20 温度传感器所需函数,分为初始化,读写字节,读取温度4 个函数 Init_DS18B20(void) /传感器初始化 uchar x=0; DATA = 1; /DQ复位 del

20、ay(10); /稍做延时 DATA = 0; /单片机将DQ拉低 delay(80); /精确延时大于 480us /450 DATA = 1; /拉高总线 delay(20); x=DATA; /稍做延时后如果 x=0 则初始化成功 x=1 则初始化失败 delay(30); ReadOneChar(void) /读一个字节 uchar i=0; uchar dat = 0; for (i=8;i0;i-) 基于单片机的数字温度计设计 10 DATA = 0; / 给脉冲信号 dat=1; DATA = 1; / 给脉冲信号 if(DATA) dat|=0x80; delay(8); re

21、turn(dat); WriteOneChar(unsigned char dat) /写一个字节 uchar i=0; for (i=8; i0; i-) DATA = 0; DATA = dat delay(10); DATA = 1; dat=1; delay(8); int ReadTemperature(void) /读取温度 uchar a=0; uchar b=0; int t=0; float tt=0; Init_DS18B20(); WriteOneChar(0xCC); / 跳过读序号列号的操作 WriteOneChar(0x44); / 启动温度转换 Init_DS18

22、B20(); WriteOneChar(0xCC); /跳过读序号列号的操作 WriteOneChar(0xBE); /读取温度寄存器等(共可读9 个寄存器)前两个就是温度 a=ReadOneChar();/低位 b=ReadOneChar();/高位 t=b; t=1100) temp=-550; if(set=0) alarmH=temp; else alarmL=temp; 基于单片机的数字温度计设计 14 void key_to2() TR0=0; /关定时器 temp-=10; if(tempalarmH|temp=0) HLight=1;LLight=0;display(); if

23、(temp0) HLight=0;LLight=1;display00(); 2011222236 陈庄柱 15 void main() TCON=0x01; /定时器 T0 工作在 01 模式下 TMOD=0X01; TH0=0XD8;/ 装入初值 TL0=0XF0; EA=1; /开总中断 ET0=1; /开 T0 中断 TR0=1; /T0开始运行计数 EX0=1; /开外部中断0 for(n=0;n500;n+)/显示启动 LOGo“- - - -“ bell=1;warn=1;logo(); Red=0; while(1) key(); ss=ReadTemperature(); S

24、how(); alarm(); /报警函数 if(Flag=1) bell=!bell; warn=!warn; /蜂鸣器滴滴响 else bell=1; warn=1; void time0(void) interrupt 1 using 1 /每隔 10ms执行一次此子程序 TH0=0X56; TL0=0XDC; temp=ss; 基于单片机的数字温度计设计 16 5 总电路及 PCB 图 5.1 总电路图 图 5-1 总电路图 5.2 PCB 图 图 5-2 PCB 图 2011222236 陈庄柱 17 6 结论与不足 通过这次对数字温度计的设计与制作,让我了解了设计电路的程序,也让我

25、了解了关 于数字温度计的原理与设计理念,要设计一个电路总要先用仿真仿真成功之后才实际接线 的 。但是最后的成品却不一定与仿真时完全一样,因为,再实际接线中有着各种各样的条 件制约着。 而且,在仿真中无法成功的电路接法, 在实际中因为芯片本身的特性而能够成功。 所以,在设计时应考虑两者的差异,从中找出最适合的设计方法。 参 考 文 献 : 1 马忠梅,张凯,等 . 单片机的 C 语言应用程序设计(第四版 ) 北京航空航天大学出版社 2 薛庆军,张秀娟,等 . 单片机原理实验教程 3 廖常初 . 现场总线概述 J. 电工技术, 1999.北京航天航空大学出版社 4 张毅刚,彭喜元,彭宇单片机原理及其应用 课程设计成绩评定表 出勤 情况 出勤天数 缺勤天数 成 绩 评 定 出勤情况及设计过程表现 (20分) 论文( 20 分) 设计成果( 60 分) 总成绩( 100 分) 综 合 评 定 指导教师签名: 年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1