数电课程设计 数字温度计-

合集下载

数字电路温度计设计

数字电路温度计设计

数字电路温度计设计
数字电路温度计设计涉及许多不同的技术和组件。

以下是一个基本的设计流程,这有助于创建一个基于数字电路的温度计:
1. 温度传感器选择:选择一个合适的温度传感器,例如热敏电阻、DS18B20温度传感器等,它们能够将温度转换为可被数字电路处理的信号。

2. 信号调理电路:设计一个信号调理电路来处理从温度传感器获取的信号。

这个电路可能包括一个电压跟随器、运算放大器(用于信号放大或减小的功能)等。

3. 模数转换器(ADC):模数转换器将模拟信号转换为数字信号,以便微控制器或数字信号处理器可以处理。

选择一个适合你应用需求的模数转换器。

4. 微控制器或数字信号处理器:选择一个微控制器或数字信号处理器来读取和处理来自模数转换器的数字信号。

这可能涉及到编写或获取一个固件/软件程序,用于读取模数转换器的输出并显示温度值。

5. 显示接口设计:选择一种方式来显示温度值。

这可能涉及到使用七段显示器、液晶显示屏(LCD)或其他类型的显示技术。

你可能需要设计一个驱动电路或接口来连接微控制器和显示器。

6. 电源和封装:为温度计设计一个合适的电源和封装。

这可能涉及到使用电池、电源适配器或其他电源方案,并考虑将所有组件集成到一个适合应用的封装中。

7. 校准和测试:在设计过程中进行充分的校准和测试,确保温度计在预期工作范围内具有足够的准确性和可靠性。

这只是一个基本的框架,具体的设计细节将取决于你的应用需求和所选择的组件。

在设计和实施过程中,你可能需要使用电子设计自动化(EDA)工具、电路板布局软件、编程语言等工具和技术。

(数电)数字温度计的设计

(数电)数字温度计的设计

数字温度计的设计一、总体方案的选择1.拟定系统方案框图(1)方案一:本方案采用AD590单片集成两段式敢问电流源温度传感器对温度进行采集,采集的电压经过放大电路将信号放大,然后经过3.5位A/D转换器转换成数字信号,在进行模拟/数字信号转换的同时, 还可直接驱动LED显示器,将温度显示出来。

系统方框图如下:图1.1 系统方案框图(2)方案二:使用数字传感器采集温度信号,然后将被测温度变化的电压或电流采集过来放大适当的倍数,进行A/D转换后,将转换后的数字进行编码,然后再经过译码器通过七段数字显示器将被测温度显示出来。

图1.2系统方案框图2. 方案的分析和比较方案一中的模数转换器ICL7107集A/D转换和译码器于一体,可以直接驱动数码管,不仅省去了译码器的接线,使电路精简了不少,而且成本也不是很高。

ICL7107只需要很少的外部元件就可以精确测量0到200mv电压,AD590可以将温度线性转换成电压输出。

而方案二经过A/D转换后,需要先经过编码器再经过译码器才能将数字显示出来。

比较上述两个方案,方案一明显优越于方案二,它用AD590采集温度信号,用ICL7107驱动数码管直接实现数字信号的显示,实现数字温度计的设计;省去了另加编码器和译码器的设计,所以线路更简单、直观;即采用方案一。

二、单元电路的设计通过AD590对温度进行采集,通过温度与电压近乎线性关系,以此来确定输出电压和相应的电流,不同的温度对应不同的电压值,故我们可以通过电压电流值经过放大进入到A/D 转换器和译码器,再由数码管表示出来。

2.1传感电路AD590是半导体结效应式温度传感器,PN 结正向压降的温度系数为-2mV/℃ , 利用硅热敏晶体管PN 结的温度敏感特性测量温度的变化测量温度,其测量温度范围为-50~150。

AD590输出电流值(μA 级)等于绝对温度(开尔文)的度数。

使用时一般需要将电流值转换为电压值, 如图2.1.1图中,Ucc 为激励电压, 取值为4~40 V;输出电流I0以绝对温度零度-273℃为基准, 温度每升高1℃ ,电流值增加1μA。

数字温度计-数电课设

数字温度计-数电课设

1电路的设计随着当代科学技术的发展,电子产品在人们的日常生活中占据着越来越重要的地位。

人们也越来越重视电子类的产品的精密程度。

而设计出一个数字式温度计可以为人们带来很多方便,可以打破以往人们用肉眼看温度计中直接读数,可以减少一些不必要的误差等。

数字温度计电路原理系统方框图,如图1.1.图2.1 电路原理方框图通过温度传感器LM35采集到温度信号,经过整形电路送到A/D转换器,然后通过译码器驱动数码管显示温度。

ICL7107集A/D转换和译码器于一体,可以直接驱动数码管,省去了译码器的接线,使电路精简了不少,而且成本也不是很高。

ICL7107只需要很少的外部元件就可以精确测量0到200mv电压,LM35本身就可以将温度线性转换成电压输出。

综上所述,采用LM35采集信号,用ICL7107驱动数码管实现信号的显示。

2电路原理及其电路组成数字温度计的设计原理图见附录1。

它通过LM35对温度进行采集,通过温度与电压近乎线性关系,以此来确定输出电压和相应的电流,不同的温度对应不同的电压值,故我们可以通过电压电流值经过放大进入到A/D 转换器和译码器,再由数码管表示出来。

2.1传感电路LM35具有很高的工作精度和较宽的线性工作范围,该器件输出电压与摄氏温度线性成比例。

因而,从使用角度来说,LM35与用开尔文标准的线性温度传感器相比更有优越之处,LM35无需外部校准或微调,可以提供±1/4℃的常用的室温精度。

LM35具有以下特点:(1)工作电压:直流4~30V ; (2)工作电流:小于133μA (3)输出电压:+6V ~-1.0V (4)输出阻抗:1mA 负载时0.1Ω; (5)精度:0.5℃精度(在+25℃时); (6)漏泄电流:小于60μA ; (7)比例因数:线性+10.0mV/℃; (8)非线性值:±1/4℃;(9)校准方式:直接用摄氏温度校准;(10)封装:密封TO-46 晶体管封装或塑料TO-92 晶体管封装; (11)使用温度范围:-55~+150℃额定范围传感器电路采用核心部件是 LM35AH ,供电电压为直流15V 时,工作电流为120mA ,功耗极低,在全温度范围工作时,电流变化很小。

数电课程设计数字温度计

数电课程设计数字温度计

1.设计务任和要求、大体范围-55℃——125℃、精度误差小于℃、LED 数码直读显示、能够任意设定温度的上下限报警功能2. 系统整体方案及硬件设计数字温度计设计方案论证2.1.1方案一由于本设计是测温电路,能够利用热敏电阻之类的器件利用其感温效应,在将随被测温度转变的电压或电流搜集过来,进行A/D 转换后,就能够够用单片机进行数据的处置,在显示电路上,就能够够将被测温度显示出来,这种设计需要用到A/D 转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。

而且在对搜集的信号进行放大时容易受温度的阻碍从而显现较大的误差。

2.1.2 方案二考虑到用温度传感器,在单片机电路设计中,大多都是利用传感器,因此这是超级容易想到的,因此能够采纳一只温度传感器DS18B20,此传感器,能够很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且利用单片机的接口便于系统的再扩展,知足设计要求。

从以上两种方案,很容易看出,采纳方案二,电路比较简单,费用较低,靠得住性高,软件设计也比较简单,故采纳了方案二。

系统整体设计温度计电路设计整体设计方框图如下图,操纵器采纳单片机STC89C52,温度传感器采纳DS18B20,用4位LED 数码管以串口传送数据实现温度显示。

图有了整体设计方案后,下面确实是原理图的制作了。

原理图如以下图及图示。

将数码管电路与主操纵电路分开画,最后二者是用导线连接。

数码管位选接P20—P23,段选接P0口。

图数码管电路图单片机操纵电路模块简介系统由单片机最小系统、显示电路、按键、温度传感器等组成。

2.3.1 主操纵器单片机STC89C52 具有低电压供电和体积小等特点,四个端口只需要两个口就能够知足电路系统的设计需要,很适合便携手持式产品的设计利用系统可用二节电池供电。

晶振采纳12MHZ。

复位电路采纳上电加按钮复位。

2.3.2 显示电路显示电路采纳4 位共阴极LED 数码管,P0 口由上拉电阻提高驱动能力,作为段码输出并作为数码管的驱动。

数字温度计的设计-数字电子技术课程设计报告

数字温度计的设计-数字电子技术课程设计报告

数字电子技术课程设计报告数字温度计的设计专业:电子信息科学与技术班级:2015级2 班姓名:巩光众学号: 201501100206_______指导老师:张瑞电子通信与物理学院日期:2016年12 月23 日目录设计目的 (3)设计要求 (4)总体方案 (4)电路设计及原理 (5)各单元电路剖析 (5)仿真调试 (7)设计中遇到的困难 (9)结论 (9)附录 (10)实践目的数字电子技术基础课程设计是继“数字电子技术基础”理论课之后开出的实践环节,是锻炼学生动手能力,巩固所学理论知识的重要教学环节。

数字电子技术基础课程设计的目的是通过指导学生循序渐进独立完成数字电路的设计任务,加深学生对理论知识的理解,提高学生的动手能力,独立分析问题、解决问题的能力。

训练学生综合运用学过的数字电子技术基础的基本知识,独立设计比较复杂的数字电路系统的能力。

数字电子技术课程设计是通过数字电子技术课程的各教学环节(课堂教学和实验)学习之后进行的,应选取综合性和实用性较强的课题,内容的复杂程度和工作量应适中,应使学生达到如下要求:1、让学生初步掌握典型数字电路的试验、设计方法。

根据设计任务、技术指标、对课题进行分析;通过查阅资料、理论计算,得到设计方案;选择元器件,搭接线路,实现方案;画出电路原理图,进行仿真,分析实验结果,写出设计总结报告。

2、通过对典型数字电路的设计和仿真,掌握利用EDA软件设计电路的方法。

3、培养学生一定的自学能力和独立分析问题、解决问题的能力。

学会自己分析解决问题的方法,对设计中遇到的问题,通过独立思考,查阅工具书,参考文献,寻找答案;掌握电路调试的一般规律,对实验中出现一般故障,能通过“观察、判断、实验、再判断”的基本方法去解决;能对实验结果进行独立分析和评价。

4、学会使用电子仪器仪表进行逻辑电路的检测、故障分析和排除。

通过独立思考问题、查阅工具书、参考文献、寻找解决问题的途径;掌握常用基本电路调试、测试的一般规律、测试仪器仪表的使用。

数字电路温度计设计

数字电路温度计设计

数字电路温度计设计全文共四篇示例,供读者参考第一篇示例:数字电路温度计设计数字电路温度计的设计原理主要是利用数字电路的优势,通过传感器将物体的温度信号转换为电信号,再通过数字电路进行处理和显示,从而实现温度的测量和显示。

数字电路温度计的设计原理主要包括传感器、模数转换器、显示器等几个关键部分。

首先是传感器部分,传感器是将温度信号转换为电信号的关键部件。

常用的传感器有热敏电阻、热电偶、半导体传感器等。

传感器的选择直接影响到数字电路温度计的测量精度和灵敏度。

在设计数字电路温度计时,我们需要根据实际需求选择合适的传感器,以确保温度测量的准确性。

最后是显示器部分,显示器是将数字信号转换为可视化信息的关键部件。

在设计数字电路温度计时,我们通常选择LED数码管、液晶显示屏等作为显示器。

显示器的选择不仅要考虑显示效果和美观度,还要考虑功耗、驱动电路等因素。

通过合理选择和设计显示器,我们可以实现数字电路温度计的数据显示和人机交互功能。

数字电路温度计的工作原理主要是通过传感器实时监测物体的温度变化,将温度信号转换为电信号后经过模数转换器转换为数字信号,最终通过显示器显示出温度数值。

在工作过程中,数字电路温度计还可以设置报警功能,当温度超出设定范围时会发出警报,提醒使用者及时处理。

制作数字电路温度计的流程主要包括以下几个步骤:第一步,设计电路原理图。

根据数字电路温度计的设计要求,我们需要设计出完整的电路原理图,包括传感器、模数转换器、显示器等各个部分的连接关系和工作原理。

第三步,焊接电路板。

在选择好电子元器件后,我们需要进行电路板的焊接工作,将各个元器件按照设计原理图连接到电路板上,并进行焊接和固定,以组成完整的数字电路温度计电路。

第四步,进行测试和调试。

在焊接完成后,我们需要进行测试和调试工作,确保数字电路温度计正常工作。

在测试中,我们需要测试传感器的灵敏度、模数转换器的精度和显示器的正确性等。

第五步,封装和外壳设计。

数字温度计课程设计

数字温度计课程设计

课程设计(论文)题目名称数字温度计课程名称电子技术课程设计学生姓名学号系、专业指导教师2011年12 月16 日温度计是工农业生产及科学研究中最常用的测量仪表。

使用温度测量仪,首先经过AD590集成温度传感器的作用,使外界温度转换为电流用表示。

因为上述为绝对温度K和电流之间的转换关系,而在设计中我们需要采用℃,所以我们必须使其转换成摄氏温度℃和电流之间的关系,这就要用到K—℃变换器。

通过K—℃变换器的作用,我们便得到想要的℃和电流之间的直接转换关系。

得到的电流再经过放大器的放大,即可直接用电压表读出被测对象的温度值。

然后放大后的电压接一比较器,比较器的输出端接报警设备。

报警设备可由一个发光二极管组成。

在设置了预警温度后,由比较器输出端的电压决定二极管是否发光,从而起到警报作用。

经TC7017AD转换后,再通过数码管显示。

关键词:AD590放大器TC7107 数码管摘要……………………………………………………………………….1 系统总体设计 (1)1.1 总体方案设计 (1)1.2 系统原理框图及电路图 (1)2 系统详细设计 (2)2.1 温度传感器 (2)2.2 转换与放大电路 (3)2.2.1 K-C转换电路 (3)2.2.2 放大器 (4)2.2.3 比较器 (4)2.2.4 报警设备 (5)2.2.5 电路原理图 (5)2.3 A/D转换电路 (6)2.4 数码管显示 (10)3 仿真与调试 (11)3.1 电路的仿真 (11)3.2 仿真结论 (13)4 总结 (13)附录元件清单 (14)参考文献................................... 错误!未定义书签。

1.1 总体方案设计图1所示为数字温度计的原理框图。

其工作原理是将被测的温度信号通过传感器转换成温度变化的电压信号,此电压信号经过放大电路后,通过模-数转换器把模拟量转变成数字量,最后将数字量送显示电路,用4位LED 数码管显示。

电子温度计数电课程设计

电子温度计数电课程设计

电子温度计数电课程设计一、课程目标知识目标:1. 理解电子温度计的基本原理,掌握温度传感器的工作方式和特点;2. 学会读取电子温度计数据,并能进行简单的数据转换;3. 了解电子温度计在不同领域的应用,培养跨学科思维能力。

技能目标:1. 能够正确使用电子温度计进行温度测量,熟练操作相关设备;2. 学会分析电子温度计测量数据,解决实际生活中的温度相关问题;3. 掌握利用电子温度计进行实验设计和数据处理的方法。

情感态度价值观目标:1. 培养学生对电子技术及物理量的兴趣,激发学习热情;2. 增强学生的团队协作意识,培养合作解决问题的能力;3. 培养学生严谨的科学态度,提高对实验数据的尊重和责任感。

本课程针对中学生设计,结合学生年龄特点和知识水平,注重理论知识与实际操作相结合。

课程旨在帮助学生掌握电子温度计的使用方法,培养实际操作能力,同时提高学生分析问题和解决问题的能力,激发学生对科学的热爱和兴趣。

通过本课程的学习,使学生能够将所学知识应用于生活实际,为未来的学习和工作打下坚实基础。

二、教学内容1. 电子温度计原理:介绍温度传感器的工作原理,包括热敏电阻、热电偶等类型,结合教材相关章节,阐述电子温度计的测量机制。

2. 电子温度计的使用与操作:详细讲解电子温度计的操作步骤,包括设备的准备、测量方法、数据读取等,结合实际操作演示,确保学生掌握正确使用方法。

3. 数据处理与分析:教授如何对电子温度计测得的数据进行处理和分析,例如数据转换、误差分析等,引用教材案例,指导学生解决实际问题。

4. 电子温度计的应用:介绍电子温度计在生活、工业、医疗等领域的应用,结合教材相关实例,拓宽学生知识面,激发创新意识。

5. 实验设计与实践:制定实验项目,让学生自行设计实验方案,利用电子温度计进行温度测量,培养实验操作能力和团队协作精神。

6. 教学进度安排:共4课时。

第一课时介绍电子温度计原理;第二课时学习使用与操作;第三课时进行数据处理与分析;第四课时讲解应用及实验设计。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.设计务任和要求1.1、基本范围-55℃——125℃1.2、精度误差小于0.5℃1.3、LED 数码直读显示1.4、可以任意设定温度的上下限报警功能2. 系统总体方案及硬件设计2.1数字温度计设计方案论证2.1.1方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D 转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。

而且在对采集的信号进行放大时容易受温度的影响从而出现较大的偏差。

2.1.2 方案二考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。

从以上两种方案,很容易看出,采用方案二,电路比较简单,费用较低,可靠性高,软件设计也比较简单,故采用了方案二。

2.2系统总体设计温度计电路设计总体设计方框图如图2.1所示,控制器采用单片机STC89C52,温度传感器采用DS18B20,用4位LED 数码管以串口传送数据实现温度显示。

图2.1有了总体设计方案后,下面就是原理图的制作了。

原理图如下图2.2及图2.3示。

将数码管电路与主控制电路分开画,最后两者是用导线连接。

数码管位选接P20—P23,段选接P0口。

图2.2数码管电路图2.3单片机控制电路2.3模块简介系统由单片机最小系统、显示电路、按键、温度传感器等组成。

2.3.1 主控制器单片机STC89C52 具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。

晶振采用12MHZ。

复位电路采用上电加按钮复位。

图2.4晶振电路图2.5复位电路2.3.2 显示电路显示电路采用4 位共阴极LED 数码管,P0 口由上拉电阻提高驱动能力,作为段码输出并作为数码管的驱动。

P2 口的低四位作为数码管的位选端。

采用动态扫描的方式显示。

2.3.3温度传感器DS18B20 温度传感器是美国DALLAS 半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

DS18B20 的性能特点如下:1、独特的单线接口仅需要一个端口引脚进行通信;2、多个DS18B20 可以并联在惟一的三线上,实现多点组网功能3、无须外部器件;4、可通过数据线供电,电压范围为3.0~5.5V;5、零待机功耗;6、温度以9或12位数字;7、用户可定义报警设置;8、报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;9、负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;DS18B20 可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20 的1 脚接地,2 脚作为信号线,3 脚接电源。

为保证在有效的DS18B20 时钟周期内提供足够的电流,可用一个MOSFET 管来完成对总线的上拉。

当DS18B20 处于写存储器操作和温度A/D 转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。

采用寄生电源供电方式时VDD 端接地。

由于单线制只有一根线,因此发送接口必须是三态的。

图2.6温度传感器与单片机的连接2.3.4报警温度调整按键本系统设计三个按键,采用查询方式,一个用于选择切换设置报警温度和当前温度,另外两个分别用于设置报警温度的加和减。

均采用软件消抖。

图2.7按键电路3. 系统软件算法分析系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序,按键扫描处理子程序等。

3.1主程序流程图主程序的主要功能是负责温度的实时显示、读出并处理DS18B20 的测量的当前温度值,温度测量每1s 进行一次。

这样可以在一秒之内测量一次被测温度,其程序流程见图3.1 所示。

图3.1 主程序流程图3.2读出温度子程序读出温度子程序的主要功能是读出RAM 中的9 字节,在读出时需进行CRC 校验,校验有错时不进行温度数据的改写。

其程序流程图如图3.2 示3.3温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12 位分辨率时转换时间约为750ms,在本程序设计中采用1s 显示程序延时法等待转换的完成。

温度转换命令子程序流程图如图3.3 所示图3.2读文读流程图图3.3温度转换流程图3.4 计算温度子程序计算温度子程序将RAM 中读取值进行BCD 码的转换运算,并进行温度值正负的判定,其程序流程图如图3.4 所示。

3.5 显示数据刷新子程序显示数据刷新子程序主要是对分离后的温度显示数据进行刷新操作,当标志位位为1时将符号显示位移入第一位。

程序流程图如图3.5。

图3.4 计算温度流程图图3.5显示数据刷新流程图3.6按键扫描处理子程序按键采用扫描查询方式,设置标志位,当标志位为1 时,显示设置温度,否则显示当前温度。

如下图3.6 示。

图3.6按键扫描处理流程图4. 电路仿真通过仿真软件验证该原理图的可行性。

采用protues软件对电路仿真,可以得到预期效果。

因protues软件中没有STC89C52故用AT89C52代替。

仿真图如图4.1示。

图4.1电路仿真图右图4.2为温度传感器的仿真效果图,此图验证了传感器的温度与数码管显示的数字一致。

当按下SET 键一次时,进入温度报警上线调节,此时显示软件设置的温度报警上线,按ADD或DEC 分别对报警温度进行加一或减一。

当再次按下SET 键时,进入温度报警下线调节,此时显示软件设置的温度报警下线,按ADD或DEC 分别对报警温度进行加一或减一。

当第三次按下SET 键时,退出温度报警线设置。

显示当前温度。

共阳极七段式数码管上拉电阻一般多少欧?可以使470欧姆控制在5mA到10mA之间就好了。

电流大了亮度就高。

共阴极数码管共阴就把黑表笔(地)随便接一个管脚上,然后用红表笔在其他管脚上试没有亮的就把黑表笔换个管脚,有亮的记得是第几个数码管亮。

在电路图中,数码管左下端由ABCDEFGDP字母,把他们所对应的数码管上的脚与单片机32-39脚相连,数码管有下端有1234,它们就是COM1234.注意单片机插座 AT89C52复位系统10K电阻10uF、2M的晶振、30pF×2按钮开关4位共阴极数码管DS18B20按键4,1K电阻3个、10K一个,三极管8550 200欧姆12个蜂鸣器杜邦线20根程序源代码#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 ,0x08,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;//xiaoshu case 1: dm=table_dm1[display[1]];w1=0;delay(50);w1=1;//gewei case 2: dm=table_dm[display[2]];w2=0;delay(50);w2=1;//shiwei case 3: dm=table_dm[display[3]];w3=0;delay(50);w3=1;//baiwei // 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]; // 两字节合成一个整型变量。

相关文档
最新文档