温度检测显示与报警系统课程设计
单片机数字温度计测温报警电路课程设计报告

南京工程学院通信工程学院单片机原理及应用课程设计报告实验学生班级实验学生姓名实验学生学号实验时间实验地点指导教师实验成绩评定指导教师签字年月日目录摘要 (3)方案论证 (3)方案一 (3)方案二 (3)一.芯片介绍 (4)1.1 AT89C51 (4)1.2 DS18B20 (5)二.设计目的 (6)三.设计要求 (6)四.设计思路 (6)4.1硬件设计 (6)4.2 软件设计 (6)4.2.1 主程序 (6)4.2.2 读温度函数 (7)4.2.3 温度转换函数 (7)4.2.4 温度显示函数 (8)五电路设计 (9)5.1 外部振荡源设计 (9)5.2 1602液晶显示电路 (9)5.3 数码管报警次数电路设计 (9)5.4 LED报警闪烁电路 (10)5.5 蜂鸣器电路 (10)5.6 DS18B20与AT89C51连接电路 (10)5.7 报警温度改变电路 (11)六.程序分析 (11)6.1主函数 (11)6.2 读取温度函数 (12)6.3 温度转换函数 (12)6.4 显示函数 (12)6.5软件运行时间函数 (14)6.6改变报警温度 (14)6.7报警计数 (15)七.单片机资源配置 (15)八. 小结 (15)九.参考文献 (16)附录总电路原理图 (17)附录C程序 (18)摘要随着国民经济的发展,人们需要对各中加热炉、热处理炉、反应炉和锅炉中温度进行监测和控制。
采用单片机来对他们控制不仅具有控制方便,简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。
在日常生活及工业生产过程中,经常要用到温度的检测及控制,温度是生产过程和科学实验中普遍而且重要的物理参数之一。
在生产过程中,为了高效地进行生产,必须对它的主要参数,如温度、压力、流量等进行有效的控制。
温度控制在生产过程中占有相当大的比例。
温度测量是温度控制的基础,技术已经比较成熟。
水温报警系统课程设计

水温报警系统课程设计一、课程目标知识目标:1. 学生能理解水温报警系统的基本工作原理,掌握相关电子元件的功能和使用方法。
2. 学生能描述传感器在检测水温变化中的作用,并解释其工作原理。
3. 学生掌握如何读取传感器数据,并通过程序进行逻辑判断,实现报警功能。
技能目标:1. 学生能够运用所学知识,设计并搭建一个简单的水温报警系统。
2. 学生能够编写程序,实现对水温的实时监控和报警功能。
3. 学生能够通过实际操作,培养动手能力、团队协作能力和问题解决能力。
情感态度价值观目标:1. 学生通过学习水温报警系统,认识到科技在生活中的应用,增强对科学技术的兴趣。
2. 学生在团队协作中,学会互相尊重、沟通与协作,培养良好的合作意识。
3. 学生能够关注环境问题,认识到节能减排的重要性,树立环保意识。
本课程针对初中年级学生,结合电子技术、传感器原理和编程知识,以实用性为导向,帮助学生掌握水温报警系统的设计与制作。
课程注重理论与实践相结合,培养学生的动手能力、创新思维和团队协作能力。
通过本课程的学习,学生能够将所学知识应用于实际生活中,解决实际问题,提高对科学技术的认识和兴趣。
1. 电子元件基础知识:介绍常用电子元件(如电阻、电容、二极管、三极管等)的功能、符号和参数。
- 教材章节:第二章“常用电子元件”2. 传感器原理与应用:讲解温度传感器的工作原理、特性及应用场景。
- 教材章节:第四章“传感器及其应用”3. 编程基础:介绍Arduino编程基础,包括变量、数据类型、控制结构等。
- 教材章节:第六章“Arduino编程基础”4. 水温报警系统设计与制作:结合所学知识,设计并搭建一个简单的水温报警系统。
- 教材章节:第八章“综合项目设计与实践”5. 实践操作:分组进行水温报警系统的搭建和调试,实现报警功能。
- 教材章节:第八章“综合项目设计与实践”教学内容安排和进度:第一课时:电子元件基础知识学习,认识常用电子元件。
温度报警器课程设计

温度报警器课程设计一、引言温度报警器是一种常见的电子产品,广泛应用于各种场所和环境中。
它能够通过感应温度的变化,发出警报信号,提醒人们及时采取相应的措施,以防止事故的发生。
本课程设计以温度报警器为研究对象,旨在通过设计与制作温度报警器的过程,培养学生们的创新能力与动手能力。
二、课程设计目标1.培养学生的实践操作能力,掌握电子电路的基础原理与制作方法。
2.促进学生的动手能力,提高他们的创新思维和问题解决能力。
3.激发学生对科技创新的兴趣,培养他们对电子技术的兴趣与热情。
三、课程设计内容1.前期准备:介绍温度报警器的原理和作用,引导学生理解温度对电子元器件的影响,以及温度保护的必要性。
2.理论学习:了解电子元器件的基本知识,如电阻、电容和线路连接等内容。
同时学习温度测量的原理和方法。
3.实验设计:根据设计要求,引导学生设计并制作温度报警器电路。
要求学生能够灵活运用已学到的知识,并充分发挥他们的想象力和创造力。
4.实验操作:让学生动手进行电路的实验搭建,并进行测试和调试。
同时,指导他们记录和分析实验数据,加深对电子原理和实验结果的理解。
5.实验总结:让学生撰写实验报告,总结和归纳实验过程中的问题和经验,分析实验结果的原因和意义。
通过讨论和分享,培养学生的团队合作和表达能力。
四、课程设计评价1.实验报告:对学生的实验报告进行评价,考察学生对实验原理和结果的理解程度,以及他们对问题解决和创新思维的能力。
2.实验成果:评估学生制作的温度报警器电路是否能够准确测量和报警,以及外观是否美观、整洁。
鼓励学生进行展示和交流,分享彼此的经验和感悟。
3.课堂表现:评价学生在实验过程中的课堂表现,包括是否积极参与、是否独立思考、是否能够合理使用电子元器件等。
五、课程设计总结通过本课程设计,学生能够在实践中学习和掌握电子基础知识,培养他们的创造力和实际操作能力。
在设计和制作温度报警器的过程中,他们不仅能够理解温度对电子元器件的影响,还能提高对科技创新的兴趣和热情。
温度检测显示与报警系统

32个双向I/O口
256x8bit内部RAM
3个16位可编程定时/计数器中断
时钟频率0-24MHz
2个串行中断
可编程UART串行通道
2个外部中断源
共6个中断源
2个读写中断口线
3级加密位
低功耗空闲和掉电模式
软件设置睡眠和唤醒功能
STC89C52管脚介绍:
① 主电源引脚(2根)
delay(50); //550 us
DQ=1;
delay(6); //66 us
presence=DQ; //presence=0复位成功,继续下一步
case 2: dm=table_dm[display[2]];w2=0;delay(50);w2=1;//十位
case 3: dm=table_dm[display[3]];w3=0;delay(50);w3=1;//百位
//else{dm=table_dm[b3];w3=0;delay(50);w3=1;}
uchar code table_dm[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};
//共阴LED段码表"0""1""2""3""4""5""6""7""8""9" "不亮" "-"
uchar table_dm1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//个位带小数点的断码表
电子温度报警器课程设计

电子温度报警器课程设计一、课程目标知识目标:1. 让学生掌握温度传感器的工作原理和特性;2. 使学生了解电子温度报警器的电路构成及功能;3. 帮助学生掌握数字温度显示和报警电路的设计方法。
技能目标:1. 培养学生动手搭建电子电路的能力,提高电路连接和调试技巧;2. 培养学生运用编程软件对温度报警器进行编程和调试的能力;3. 培养学生运用所学知识解决实际问题的能力。
情感态度价值观目标:1. 培养学生对电子技术的兴趣和爱好,激发学习积极性;2. 培养学生团队协作精神和沟通能力,提高合作解决问题的能力;3. 增强学生的环保意识,认识到电子技术在节能环保方面的应用。
课程性质分析:本课程为电子技术实践课程,以项目为导向,结合理论知识,注重培养学生的动手能力和创新能力。
学生特点分析:学生为初中生,对电子技术有一定的基础知识,好奇心强,喜欢动手实践。
教学要求:1. 理论联系实际,注重知识的应用;2. 以学生为主体,充分调动学生的积极性;3. 分组合作,培养学生的团队协作能力;4. 注重过程评价,提高学生的自我评价和反思能力。
二、教学内容1. 理论知识:- 温度传感器的工作原理和特性;- 电子温度报警器的电路构成及功能;- 数字温度显示和报警电路的设计方法。
2. 实践操作:- 温度传感器的连接与调试;- 电子温度报警器的电路搭建;- 编程软件的使用,对温度报警器进行编程和调试。
3. 教学大纲:- 第一阶段:温度传感器知识学习,理解传感器工作原理和特性;- 第二阶段:电子温度报警器电路构成学习,分析电路各部分功能;- 第三阶段:数字温度显示和报警电路设计,动手搭建和调试电路;- 第四阶段:编程软件应用,对温度报警器进行编程和调试。
4. 教材章节:- 《电子技术基础》第三章:传感器及其应用;- 《电子技术基础》第四章:数字电路及其应用。
5. 教学内容安排与进度:- 第一周:温度传感器理论知识学习;- 第二周:电子温度报警器电路构成及功能分析;- 第三周:数字温度显示和报警电路设计;- 第四周:实践操作,搭建、编程和调试电子温度报警器。
电子课程设计温度报警

电子课程设计温度报警一、教学目标本课程旨在通过学习温度报警的电子课程设计,让学生掌握以下知识目标:1.理解温度报警系统的基本原理和组成;2.学习常用的温度传感器的工作原理和应用;3.学习电子电路图的阅读和分析方法;4.学习编程语言,能够编写简单的控制程序。
5.能够分析温度报警系统的设计需求;6.能够根据需求选择合适的温度传感器;7.能够阅读和分析电子电路图;8.能够编写温度报警控制程序。
情感态度价值观目标:1.培养学生的创新意识和解决问题的能力;2.培养学生的团队合作意识和沟通能力;3.培养学生对电子科技的兴趣和热情。
二、教学内容本课程的教学内容主要包括以下几个部分:1.温度报警系统的基本原理和组成;2.常用温度传感器的工作原理和应用;3.电子电路图的阅读和分析方法;4.编程语言的学习和控制程序的编写。
第1周:温度报警系统的基本原理和组成;第2周:常用温度传感器的工作原理和应用;第3周:电子电路图的阅读和分析方法;第4周:编程语言的学习和控制程序的编写。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用以下教学方法:1.讲授法:教师讲解温度报警系统的基本原理和组成,温度传感器的工作原理和应用,电子电路图的阅读和分析方法等基础知识。
2.讨论法:学生分组讨论设计温度报警系统的设计方案,并进行汇报。
3.实验法:学生动手搭建温度报警系统,并进行调试。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:电子课程设计教材;2.参考书:电子电路设计手册,编程语言教程等;3.多媒体资料:相关视频教程,PPT课件等;4.实验设备:温度传感器,电路板,编程器等。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:通过学生的课堂参与、提问、讨论等表现进行评估;2.作业:通过学生提交的作业质量进行评估,包括温度报警系统设计方案的撰写和实验报告等;3.考试:通过期末考试,考察学生对温度报警系统的基本原理、温度传感器的工作原理、电子电路图的阅读和分析方法、编程语言的控制程序编写等知识的掌握程度。
单片机课程设计---温度检测报警系统的设计

《单片机原理及接口》课程设计报告题目:专业名称:班级:学号:姓名:2010年 12月课程论文首页温度检测报警系统的设计摘要: proteus具有强大的仿真功能,通过proteus仿真可以为更快的对一些系统进行设计和性能测试,直到仿真系统可以运行。
该温度报警系统是用温度传感器18B20对温度进行采集,通过单总线结构与单片机AT89C52进行通信。
在此基础上,添加一个时钟芯片DS1302用来时钟计时。
并用液晶显示器对温度和时间进行显示,同时可以用控制按键可以切换“时间”、“日期”和“温度报警上下限”的显示,而且可以对温度报警上下限进行按键动态调整。
关键词:proteus 温度报警 AT89C52 单片机1、引言Proteus ISIS 是英国 Labcenter 公司开发的电路分析与实物仿真软件。
它运行于 Windows 操作系统上,可以仿真、分析各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和SPICE 电路仿真相结合。
②支持主流单片机系统的仿真。
③提供软件调试功能。
④具有强大的原理图绘制功能。
总之,该软件是一款集单片机和SPICE 分析于一身的仿真软件,功能极其强大。
本文是基于 PROTEUS 的单片机温度采集系统的仿真设计,由单片机对温度进行采集,由温度传感提供温度,然后通过数码管显示温度值,并通过按键设置报警温度的上下限,当温度超出范围时报警。
同时具有时间计时的功能。
2、功能及操作说明2.1 功能说明:a.具有温度采集功能。
b.具有时间计时功能。
c.液晶分两行显示,上一行显示“温度”,下一行可以对“时间”、“日期”和“温度上下限”进行切换显示。
d.可以对温度上下限进行动态设置,在超过温度的上限或低于温度的下限时蜂鸣器会响,进行报警。
e.初始化(复位)功能。
2.2 操作说明:a.按下proteus中的运行按键。
b.按下“K1”键对“时间”、“日期”和“温度上下限”进行切换显示。
图2-1 切换显示c.在显示“温度”和“温度上下限”的时候,按下“K2”键,进入“温度上下限”调整状态,调整位闪烁显示,如(图2)所示。
温度测量报警系统设计

摘要本论文介绍了一种以单片机为主要控制器件,以DS18B20为温度传感器的温度测量报警系统。
主要包括硬件电路的设计和系统程序的设计。
硬件电路主要包括主控制器,测温电路和温度显示电路等,主控制器采用单片机AT89C51,温度传感器采用美国DALLAS半导体公司生产的DS18B20,显示电路采用3位数码管显示。
本设计中系统程序主要包括DS18B20工作程序、LED显示子程序、键盘输人程序和温度检测报警程序等。
此外,还介绍了系统的调试和性能分析。
由于采用了改进型智能温度传感器DS18B20作为检测元件,与传统的温度报警系统相比,本设计具有低成本和易使用的特点。
DS18B20温度传感器还可以在远距离多点测温控制等方面进行应用开发,具有很好的发展前景。
关键词:89C51,单片机,DS18B20,传感器AbstractThis paper presents a microcontroller to the main control device to DS18B20 temperature sensor for measuring the temperature alarm system. Hardware including main circuit design and system design process. Hardware including main controller circuit, the circuit temperature and temperature display circuit, the main controller using MCU AT89C51, temperature sensors using U.S. DALLAS Semiconductor production DS18B20, showed that three digital circuits used in a dynamic scanning of the Direct Reading Show. The design of the system procedures include DS18B20 procedures, LED display routines, keyboard input process and temperature detection alarm procedures.In addition, it introduced a system of debugging and performance analysis. As a result of the improved intelligence DS18B20 as a temperature sensor detection devices, with the traditional temperature alarm system compared with the established low-cost and easy to use features. DS18B20 temperature sensor can also long-range multi-point temperature control, and other aspects of application development, has good prospects for development.Key words: 89C51MCU DS18B20 Sensor目录第一章绪论 ............................................................................................................ - 1 -1.1本课题研究的意义 ......................................................................................... - 1 -1.2目前发展状况 ................................................................................................. - 1 -第二章系统总体设计 ............................................................................................ - 3 -2.1课题要求简述 ................................................................................................. - 3 -2.2工作原理 ......................................................................................................... - 3 -2.3 课题总体设计思路 ........................................................................................ - 3 -第三章系统硬件设计 ............................................................................................ - 5 -3.1温度测量模块设计 ......................................................................................... - 5 -3.2控制模块设计 ............................................................................................... - 12 -3.3显示输出设计 ............................................................................................... - 15 -3.4报警电路设计 ............................................................................................... - 17 -3.5键盘控制器设计 ........................................................................................... - 18 -3.6电源设计 ....................................................................................................... - 18 -3.7系统硬件连接设计 ....................................................................................... - 19 -第四章系统软件设计 .......................................................................................... - 21 -4.1 系统软件总体工作过程 .............................................................................. - 21 -4.2软件程序 ....................................................................................................... - 21 -4.3 LED数码显示器显示程序 .......................................................................... - 24 -第五章结论 .......................................................................................................... - 25 -参考文献 ................................................................................................................ - 26 -致谢 ................................................................................................................ - 27 -第一章绪论1.1本课题研究的意义在当今科学研究和生产生活中,温度是一个十分重要的物理量,对它的测量与控制有十分重要的意义。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告书课设名称:温度检测、显示与报警系统年级专业及班级:姓名:学号:指导老师:指导老师签名:2014年 5月4 日摘要温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。
温度是一个十分重要的物理量,对它的测量与控制有十分重要的意义。
随着现代工农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与控制温度:如大气及空调房中温度的高低,直接影响着人们的身体健康;粮仓温度的检测,防止粮食发霉,最大限度地保持粮食原有新鲜品质,达到粮食保质保鲜的目的;工业易燃品的存放。
本次课程设计介绍了以STC89C51单片机为核心的温度检测报警系统的工作原理和设计方法。
温度信号由温度传感器芯片DS18B20采集,并以数字信号的方式传送给单片机,单片机再控制数码管驱动芯片74LS573驱动4位分立式数码管显示实时温度,当检测到的温度超出了给定的温度范围(默认下限为20℃,默认上限为35℃),系统将输出报警声。
本系统的主要硬件电路包括:温度检测电路,数码管驱动电路,报警电路。
另外本系统的软件部分占了很大的比重,主要的软件模块包括:温度传感器程序,数码管驱动及显示程序,报警程序。
系统的主要功能及工作流程 总体设计框图:单片机STC89C51温度采集(DBS18B20)阈值设定(键盘)报警(蜂鸣器)显示主要功能:1、能正确检测温度;2、在数码管上实时显示温度;3、当温度超过或低于设定的阈值时,蜂鸣器报警;4、可通过矩阵键盘调整温度报警阈值;5、默认上限报警温度为35℃,默认下限报警温度为20℃。
工作流程:系统设计思路为以单片机为控制中心,通过实时采集温度传感器DBS18B20获得当前的温度值,通过LED显示当前温度,同时使用键盘设定温度阈值,当测定温度大于温度阈值后,利用蜂鸣器报警。
系统包括包括单片机最小系统模块、LED显示模块、蜂鸣器报警模块、矩阵键盘模块、串行口下载模块和电源模块。
1、控制部分控制部分是采用单片机STC89C52。
1.1 STC89C52简介STC89C52是一种带8K字节闪烁可编程可檫除只读存储器的低电压,高性能COMOS8的微处理器,俗称单片机。
该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
单片机总控制电路如下图:1.2 复位操作本系统的复位电路采用按键电平复位方式,通过使复位端经电阻与Vcc电源接通而实现的,其电路如下图所示上述电路图中的电阻、电容参数适用于6MHz晶振,能保证复位信号高电平持续时间大于2个机器周期。
1.3 STC89C52主要功能如下表所示主要功能特性兼容MCS51指令系统8K可反复擦写Flash ROM32个双向I/O口256x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz 2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能STC89C52管脚介绍:①主电源引脚(2根)VCC(Pin40):电源输入,接+5V电源GND(Pin20):接地线②外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端③控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,接高电平则从内部程序存储器读指令。
④可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
PO口(Pin39~Pin32):8位双向I/O口线,名称为P0.0~P0.7P1口(Pin1~Pin8):8位准双向I/O口线,名称为P1.0~P1.7P2口(Pin21~Pin28):8位准双向I/O口线,名称为P2.0~P2.7P3口(Pin10~Pin17):8位准双向I/O口线,名称为P3.0~P3.72、测量部分测量部分我们采用美国DALLAS公司生产的DS18B20温度传感器。
2.1 DS18B20简介DS18B20数字温度传感器,该产品采用美国DALLAS公司生产的DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
2.2封装及接线说明:DS18B20芯片封装结构:特点:独特的一线接口,只需要一条口线通信多点能力,简化了分布式温度传感应用无需外部元件可用数据总线供电,电压范围为 3.0V 至5.5V无需备用电源测量温度范围为-55 °C至+125 ℃。
华氏相当于是-67 °F到257华氏度-10 °C至+85 °C范围内精度为±0.5 °C2.3 DS18B20控制方法DS18B20有六条控制命令:温度转换44H:启动DS18B20进行温度转换读暂存器BEH:读暂存器9个字节内容写暂存器4EH:将数据写入暂存器的TH、TL字节复制暂存器48H:把暂存器的TH、TL字节写到E2RAM中读电源供电方式B4H:启动DS18B20发送电源供电方式的信号给主CPU 2.4 DS18B20的初始化2.5 DS18B20的写操作2.6 DS18B20的读操作3、显示部分内部的四个数码管共用a~dp这8根数据线,为人们的使用提供了方便,因为里面有四个数码管,所以它有四个公共端,加上a~dp,共有12个引脚,下面便是一个共阴的四位数码管的内部结构图(共阳的与之相反)。
引脚排列依然是从左下角的那个脚(1脚)开始,以逆时针方向依次为1~12脚,上图中的数字与之一一对应。
4、报警部分本系统设计三个按键,采用查询方式,一个用于选择切换设置报警温度和当前温度,另外两个分别用于设置报警温度的加和减。
见下面报警流程图模块及程序。
二、硬件电路原理描述见附录1三、软件设计系统软件程序基于Keil uvsion3开发平台,采用C51语言编写。
本程序采用模块化程序方法,主要分为以下三个模块:◆LCD初始化显示模块◆DS18B20数据采集模块◆温度报警上下限设置模块程序流程图:开始初始化LCD1602调用DS18B20模块调用报警模块温度显示主程序流程图DS18B20是否响应?主机发出开始信号主机设置为输入模式NYDS18B20数据采集流程图等待480us接收数据拉低总线,延时45us释放总线跳出进入设置模式(按键)设置温度报警上下限TH与TL调用DS18B20模块Temp>=TH||Temp<=TL? NY报警(LED亮,蜂鸣器响)温度显示报警模块流程图本系统具有较强的实用性,我对DS18B20及一些测量温度的传感器进行了比较,DS18B20不仅测量精度高,稳定性好,体积小巧,而且价格也比较便宜。
另外,本系统还具有较高的扩展性,可以制作时钟,计算器,温度测量于一体,具有较强的实用价值。
在编写DS18B20的测量程序的过程中遇到了很多问题,刚开始总是得不到测量数据,后来仔细读DS18B20说明资料,发现写时序的时候出了点问题,然后我们又按照着DS18B20的通讯时序和接收时序将程序一条条重写,经过调试后,用Proteus仿真软件可以仿真出正确的结果。
但软件仿真与硬件还是有点区别,等我们把电路板做出来的时候,把程序烧录进去,发现出错!经过再三检查,不断的思考,最后我发现软件仿真是在硬件理想状态下运行的。
因此,我对应的将软件程序进行了一些细节修改。
最后可以在我们做的硬件电路板中进行正确的测量与显示。
在硬件方面,最初数码管都亮不了,通过测量各点的电压,发现少接了一根地线,焊电路板真的应该要很细心的,不然很容易丢三落四的。
之后还是有两个数码管不亮,经过测量,有一条导线坏了,换上导线后,还是有一个数码管不亮,经检查,导线没有问题,是虚焊。
实验过程中,不管是硬件还是软件都遇到了一些问题,不过,最老师和同学的帮助下,以及跟小组成员的积极讨论中,最终都能够解决问题。
同时也深刻意识到了,做实验要细心谨慎。
同时也进一步学习了单片机知识。
单片机原理及应用[编著] 徐敏,刘建春,关健生单片机原理与接口技术[编著] 刘军单片机原理与C51编程[编著] 宋彩利孙友仓吴宏岐51单片机开发入门与经典实例[编著] 王守中51单片机C语言教程编著] 杨将新李华军刘东骏51单片机应用实例详解[编著] 杨欣王玉凤刘湘黔附录1 系统总硬件电路原理图附录2 系统源程序代码#include "reg52.h"#include "intrins.h" //_nop_();延时函数用#define dm P0 //段码输出口#define uchar unsigned char#define uint unsigned intsbit DQ=P2^7; //温度输入口sbit w0=P2^0; //数码管4sbit w1=P2^1; //数码管3sbit w2=P2^2; //数码管2sbit w3=P2^3; //数码管1sbit beep=P1^7; //蜂鸣器和指示灯sbit set=P2^6; //温度设置切换键sbit add=P2^4; //温度加sbit dec=P2^5; //温度减int temp1=0; //显示当前温度和设置温度的标志位为0 时显示当前温度uint h;uint temp;uchar r;uchar high=35,low=20;uchar sign;uchar q=0;uchar tt=0;uchar scale;//**************温度小数部分用查表法***********//uchar code ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0 x08,0x09,0x09}; //小数断码表uchar code table_dm[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};//共阴LED 段码表"0""1""2""3""4""5""6""7""8""9" "不亮" "-"uchar table_dm1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//个位带小数点的断码表uchar data temp_data[2]={0x00,0x00}; //读出温度暂放uchar data display[5]={0x00,0x00,0x00,0x00,0x00}; //显示单元数据,共4 个数据和一个运算暂用/*****************11us 延时函数*************************/void delay(uint t){for (;t>0;t--);}void scan(){int j;for(j=0;j<4;j++){switch (j){case 0: dm=table_dm[display[0]];w0=0;delay(50);w0=1;//小数case 1: dm=table_dm1[display[1]];w1=0;delay(50);w1=1;//个位case 2: dm=table_dm[display[2]];w2=0;delay(50);w2=1;//十位case 3: dm=table_dm[display[3]];w3=0;delay(50);w3=1;//百位//else{dm=table_dm[b3];w3=0;delay(50);w3=1;}}}}//***************DS18B20 复位函数************************/ ow_reset(void){char presence=1;while(presence){while(presence){DQ=1;_nop_();_nop_();//从高拉倒低DQ=0;delay(50); //550 usDQ=1;delay(6); //66 uspresence=DQ; //presence=0 复位成功,继续下一步}delay(45); //延时500 uspresence=~DQ;}DQ=1; //拉高电平}/****************DS18B20 写命令函数************************///向1-WIRE 总线上写1 个字节void write_byte(uchar val){uchar i;for(i=8;i>0;i--){DQ=1;_nop_();_nop_(); //从高拉倒低DQ=0;_nop_();_nop_();_nop_();_nop_(); //5 usDQ=val&0x01; //最低位移出delay(6); //66 usval=val/2; //右移1 位}DQ=1;delay(1);}/****************DS18B20 读1 字节函数************************/ //从总线上取1 个字节uchar read_byte(void)uchar i;uchar value=0;for(i=8;i>0;i--){DQ=1;_nop_();_nop_();value>>=1;DQ=0;_nop_();_nop_();_nop_();_nop_(); //4 usDQ=1;_nop_();_nop_();_nop_();_nop_(); //4 usif(DQ)value|=0x80;delay(6); //66 us}DQ=1;return(value);}/*****************读出温度函数************************/read_temp(){ow_reset(); //总线复位delay(200);write_byte(0xcc); //发命令write_byte(0x44); //发转换命令ow_reset();delay(1);write_byte(0xcc); //发命令write_byte(0xbe);temp_data[0]=read_byte(); //读温度值的低字节temp_data[1]=read_byte(); //读温度值的高字节temp=temp_data[1];temp<<=8;temp=temp|temp_data[0]; // 两字节合成一个整型变量。