基于51单片机数字温度计

合集下载

基于51单片机的测温数字温度计的最小系统

基于51单片机的测温数字温度计的最小系统

●第一章设计目的——————————————3 ●第二章设计内容————————————— 3 ●第三章分析———————————————7 ●第四章示例程序——————————————7 ●第五章总结———————————————13一、设计目的:利用51单片机和ds18b20等元件设计一个实时的测量温度和报警的小系统。

系统可以通过数码管显示实时的温度值,显示的温度的精度是0.01℃。

然后,还可以利用按键进行最高温度值和最低温度值的设定,当温度超过设定的最高温度值的时候,蜂鸣器会响,并且会有一个led灯亮起;当温度值低于设定的最低温度值的时候,蜂鸣器会响,但是led灯不会亮。

二、设计内容:温度计电路设计总体设计方框图如图1所示,控制器采用单片机8051,温度传感器采用DS18B20,显示部分是一个四位一体的数码管,设置电路部分是3个按键和3个用于指示的led灯,报警电路部分是一个led灯和一个蜂鸣器。

图11、 温度传感器DS18B20与8051单片机连接非常简单,只需将DS18B20信号线与单片机一位I/O 线相连,且一位I/O 线可连接多个DS18B20,以实现单点或多点温度测量。

温度计仿真电路部分如图2所示。

图2单片机复位 时钟震荡主 控制 器数码管显示温度传感器报警电路设置电路Ds18b20需要严格的协议以确保数据的完整性。

协议包括集中单线信号类型:复位脉冲.存在脉冲.写0.写1.读0和读1。

所有这些信号,处存在脉冲外,都是由总线控制器发出的。

和ds18b20间的任何通讯都是需要以初始化序列开始,初始化序列见图3,一个复位脉冲跟着一个存在脉冲表明ds18b20已经准备好发送和接收数据。

图3Ds18b20的读写时序图如图4所示,Ds18b20的几个常用的功能命令如下: CCH 跳过ROM指令44H 温度转换指令BEH 读SRAM4EH 写SRAM三、分析:1.程序一开始测得温度并储存,然后对按键1进行判断,若按键1未按下则直接跳到第四步;2.若按键1按下,则开始设置最高温度,然后再判断按键2(3)是否按下,若按下,则对应设置十(个)位。

51单片机数字温度计设计与应用

51单片机数字温度计设计与应用

51单片机数字温度计设计与应用数字温度计在现代生活中有着广泛的应用,它能够将环境温度转换为数字信号,提供直观、准确的温度数据。

本文将介绍基于51单片机的数字温度计的设计与应用。

设计思路:1. 硬件设计首先,我们需要选取一个合适的温度传感器,例如DS18B20。

该传感器具有高精度、数字输出、带有内部校准和非易失性存储器等特点,非常适合作为数字温度计的传感器。

其次,我们需要引入一个51单片机,常用的有AT89C51、AT89S52等。

单片机负责控制传感器和显示器,并处理温度数据。

接下来,我们需要一个LED数码管或液晶显示屏作为温度显示器。

数码管简单且易于操作,而液晶显示屏可以提供更多的信息显示。

最后,我们还需添加一些辅助电路,如稳压电路、时钟电路等,以确保正常的运行。

2. 软件设计在单片机的程序设计方面,我们需要考虑以下几个步骤:(1)初始化各个引脚和外部设备,如温度传感器和显示屏。

(2)读取温度传感器输出的数字信号,通过数据线将其与单片机相连。

(3)通过一系列算法将数字信号转换为实际的温度值。

因为DS18B20传感器提供数字输出,所以支持该类算法的编程非常简单。

(4)将计算得到的温度值通过数码管或液晶显示屏进行显示。

如果是数码管,可以通过数码管驱动芯片来实现多位数的显示。

(5)可选的增加报警功能,当温度超过一定阈值时,触发报警。

应用场景:数字温度计可以在许多场景中应用,下面介绍几个常见的应用场景:1. 家庭温度监测在家庭中,我们可以将数字温度计放置在客厅、卧室等常用区域,用于监测室内温度。

通过数字温度计,我们可以实时了解室内的温度状况,根据需要进行调节,提供舒适的生活环境。

2. 温室控制在温室种植中,保持适宜的温度对于植物的生长至关重要。

数字温度计可以帮助种植者实时监测温室内的温度,并及时采取相应的措施,维持温室内的温度在适宜的范围内。

3. 实验室温度监测实验室需要严格控制温度,以确保实验的准确性和稳定性。

数字温度计(基于51单片机的设计思路)

数字温度计(基于51单片机的设计思路)

一.设计目的
1.理解掌握MCS-51系列单片机的功能和实际应用。

2.掌握仿真开发软件的使用。

3.掌握数字式温度计电路的设计、组装与调试方法。

二.设计要求
1.以MCS-51系列单片机为核心器件,组成一个数字式温度计。

2.采用数字式温度传感器为检测器件,进行单点温度检测,检测精度为0.4 C
3.温度显示采用4位LED数码管显示,三位整数,一位小数。

三.设计思路
1.根据设计要求,选择AT89C52单片机为核心器件。

2.温度检测器件采用DS18B20数字式温度传感器。

与单片机的接口为
P3.6引脚。

硬件电路设计总体框图为图4.1:
四、系统的硬件构成及功能
1.主控制器
图5.1
2.显示电路
显示电路采用四位共阳LED数码管,从P3口RXD,TXD串口输出段码。

LED数码管在仿真软件中如图5.2
图5.2
3.温度传感器
图5.3. 五.系统整体硬件电路
六.技术难点
1.程序设计
2.电路设计
3.电路焊接
4.硬件调试。

基于51单片机的数字温度计设计与实现

基于51单片机的数字温度计设计与实现

基于51单片机的数字温度计设计与实现数字温度计是一种能够测量环境温度并将其以数字形式显示出来的仪器。

它被广泛应用于各种领域,例如家庭、工业和实验室。

本文将介绍基于51单片机的数字温度计的设计与实现。

首先,我们需要了解51单片机的基本知识。

51单片机是一种8位微控制器,具有强大的计算和控制能力。

它是目前应用最广泛的单片机之一。

接下来,我们需要选择合适的温度传感器。

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

在本设计中,我们将使用LM35半导体温度传感器。

LM35具有精确度高、响应快的特点,非常适合用于数字温度计。

设计硬件电路是实现数字温度计的重要一步。

电路的核心是将传感器输出的模拟电压转换成数字信号。

我们可以使用ADC(模数转换器)将模拟信号转换为数字信号。

51单片机的内部有一个8位ADC,可以用来实现此功能。

在编程方面,我们可以使用C语言来编写单片机的程序。

使用51单片机的开发环境,如Keil C等,可以帮助我们更方便地编写程序。

算法的编写是实现数字温度计的关键。

我们需要将ADC转换出的数字信号进行处理,得到具体的温度数值。

这个数值可以通过一些公式来计算得出。

以LM35传感器为例,根据其数据手册可以得知,输出电压与温度之间的关系为温度(℃)=(传感器输出电压-0.5)/0.01。

通过这个公式,我们可以将ADC转换出的数字信号转换为实际的温度数值。

最后,我们需要将得到的温度数值以数字形式显示出来。

此时,我们可以使用数码管来进行显示。

51单片机具有多个IO口,可以直接驱动数码管进行数字的显示。

综上所述,基于51单片机的数字温度计的设计与实现主要包含选择温度传感器、设计硬件电路、编写单片机程序和显示温度数值这几个步骤。

通过合理的硬件设计和算法编写,我们可以实现一个准确可靠的数字温度计。

同时,我们也可以通过不断改进和增加功能,使其适应更多的应用场景。

希望本文对您的数字温度计设计与实现提供了一些参考。

基于51单片机的数字温度计

基于51单片机的数字温度计

引言:数字温度计是一种基于51单片机的温度测量装置,它通过传感器感知环境的温度,并使用单片机将温度值转换为数字形式,并显示在液晶屏上。

本文将详细介绍数字温度计的设计原理、硬件连接、软件编程以及应用领域。

概述:数字温度计基于51单片机的设计理念,其基本原理是通过传感器将温度转换为电信号,然后通过ADC(模数转换器)将电信号转换为数字信号,最后使用单片机将数字信号转换为温度值。

同时,数字温度计还将温度值显示在液晶屏上,方便用户直观地了解环境温度。

正文内容:1. 硬件连接:1.1 使用温度传感器感知环境温度:常用的温度传感器有NTC热敏电阻和DS18B20数字温度传感器。

通过将传感器连接到51单片机的引脚上,可以实现对环境温度的感知。

1.2 连接ADC进行模数转换:ADC是将模拟信号转换为数字信号的关键部件。

通过将51单片机的引脚连接到ADC芯片的输入端,可以将模拟的温度信号转换为数字信号。

1.3 连接液晶屏显示温度值:通过将51单片机的引脚连接到液晶屏的控制引脚和数据引脚,可以将温度值以数字形式显示在液晶屏上。

2. 软件编程:2.1 初始化引脚和ADC:在软件编程中,需要初始化51单片机的引脚设置和ADC的工作模式。

通过设置引脚为输入或输出,以及设置ADC的参考电压和工作模式,可以确保硬件正常工作。

2.2 温度测量算法:根据传感器的工作原理和电压-温度特性曲线,可以编写相应的算法将ADC测得的电压值转换为温度值。

例如,对于NTC热敏电阻,可以使用Steinhart-Hart公式进行温度计算。

2.3 温度值显示:将温度值以数字形式显示在液晶屏上。

通过设置液晶屏的控制引脚和数据引脚,可以控制液晶屏的显示内容,并将温度值以数字形式显示在屏幕上。

3. 基于51单片机的数字温度计应用:3.1 家庭温度监测:数字温度计可以安装在家庭中的不同区域,实时监测室内温度,并通过数字显示提供直观的温度信息。

这对于家庭的舒适性和节能都有重要意义。

基于51单片机的数字温度计

基于51单片机的数字温度计

基于AT89S51的温度计院系:电子和信息工程学院专业:电子信息科学和技术班级:09信本学生姓名:刘辉学号:093621059第一部分 设计要求:采用AT89C51单片机和LCD 液晶显示器设计一个数字温度计,当外界温度变化时,显示屏上的温度值也随着变化。

数字温度计的测温范围为-55°C 到125°C 之间。

第二部分 硬件原理框图:硬件部分主要分为晶振振荡电路、复位电路、LCD 液晶显示电路、DS18B20温度传感器采集电路、电源电路等部分组成。

第三部分 硬件原理图:硬件模块原理图:AT89C51单片机晶振振荡电路 复位电路 L CD 液晶显示电路温度传感器采集电路电 源 电 路一、晶振振荡电路该电路是由两个电容和一个晶振组成,晶振产生基本的时钟信号它给单片机提供时钟信号。

二、复位电路复位的主要作用是把特殊功能寄存器的数据刷新为默认数据,单片机在运算过程中由于干扰等外界原因造成寄存器中数据混乱不能使其正常继续执行程序或产生的结果不正确时均需要复位,以使程序重新开始运行。

三、LCD液晶显示电路经过温度传感器,将采集到的温度信息传给单片机,单片机处理后又将信息发给P0口,P0口和LCD的数据口相连接,液晶屏上会显示采集到的温度值。

四、温度传感器采集电路单线数字温度传感器DS18B20测量温度范围为-55°C~+125°C,-10~+85°C范围内,精度为±0.5°C。

DS1822的精度较差为± 2°C 。

DS18B20的管脚排列如下: DQ 为数字信号输入/输出端;GND 为电源地;VDD 为外接供电电源输入端(在寄生电源接线方式时接地)。

根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM 指令,最后发送RAM 指令,这样才能对DS18B20进行预定的操作。

基于51单片机数字温度计设计

基于51单片机数字温度计设计

课题:基于51单片机数字温度计设计专业:电子信息工程班级:(1)班学号:姓名:峰指导教师:周冬芹设计日期:成绩:重庆大学城市科技学院电气学院基于51单片机数字温度计设计一、设计目的1、掌握单片机电路的设计原理、组装与调试方法。

2、掌握LED数码显示电路的设计和使用方法。

3、掌握DS18B20温度传感器的工作原理及使用方法。

二、设计要求1、本次单片机课程设计要求以51系列单片机为核心,以开发板为平台。

2、设计一个数字式温度计,要求使用DS18B20温度传感器测量温度。

3、经单片机处理后,要求用4位一体共阴LED数码管来设计显示电路,以显示测量的温度值。

4、另外还要求在设计中加入报警系统,如果我们所设计的系统用来监控某一设备,当设备的温度超过或低于我们所设定的温度值时,系统会产生报警。

5、要求在设计中加入上下限警报温度设置电路。

三、设计的具体实现1数字温度计设计的方案在做数字温度计的单片机电路中,对信号的采集电路大多都是使用传感器,这是非常容易实现的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。

采集之后,通过使用51系列的单片机,可以对数据进行相应的处理,再由LED显示电路对其数据进行显示。

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

此外,还添加了报警系统,对温度实施监控。

3主控器AT89C51芯片对于单片机的选择,可以考虑使用8031与8051系列,由于8031没有内部RAM,系统又需要大量内存存储数据,因而不适用。

AT89C51 以低价位单片机可为提供许多高性价比的应用场合,可灵活应用于各种控制领域,对于简单的测温系统已经足够。

单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要该器件是INTEL公司生产的MCS一5l系列单片机中的基础产品,采用了可靠的CMOS工艺制造技术,具有高性能的8位单片机,属于标准的MCS—51的CMOS产品。

基于51单片机的数字温度计设计及优化

基于51单片机的数字温度计设计及优化

基于51单片机的数字温度计设计及优化数字温度计是一种常见的电子测量设备,用于测量周围环境的温度,并将温度以数字形式显示。

本文将介绍一种基于51单片机的数字温度计的设计及其优化。

首先,为了设计一个基于51单片机的数字温度计,我们需要以下材料和器件:51单片机、温度传感器、LCD显示屏、电阻、电容、晶体振荡器等。

在电路设计方面,我们可以将温度传感器连接到单片机的模拟输入引脚上,通过读取模拟输入,可以获取传感器测量到的温度值。

接下来,我们可以通过串口通信将温度值发送到PC机,并通过PC机上的软件进行温度的实时显示和记录。

在软件设计方面,我们需要首先编写单片机的程序,以读取传感器的模拟信号,并将其转换为数字温度值。

然后,我们可以通过串口通信将温度值发送给PC机。

在PC机上的软件中,我们需要编写一个接收温度数据的程序,并通过图形界面显示温度值。

为了进一步优化数字温度计设计,我们可以考虑以下几个方面:1. 精度优化:通过选用更高精度的温度传感器,可以提高温度测量的准确性。

此外,在单片机的程序中,我们可以进行数学运算和滤波算法的优化,以提高温度测量的精度。

2. 功耗优化:在设计数字温度计时,我们应该尽可能降低系统的功耗。

例如,可以选择低功耗的单片机,合理设置时钟频率和休眠模式,以减少系统能耗。

3. 可靠性优化:数字温度计在长时间使用时应保持可靠性,尽量减少出现故障的可能性。

为此,我们可以对电路进行严格的电气设计,使用高质量的电子元器件,并进行必要的温度校准和测试。

4. 功能扩展:基于数字温度计的设计还可以考虑添加一些额外的功能,如报警功能、记录功能和远程监测功能等。

这些功能可以通过扩展硬件和改进软件来实现。

总结一下,本文介绍了基于51单片机的数字温度计的设计及其优化。

通过合理的电路设计和软件编程,我们可以实现一个精度高、功耗低、可靠性强的数字温度计。

此外,我们还可以通过优化算法和添加额外功能来进一步提升数字温度计的性能。

基于51单片机和DS18B20的数字温度计设计说明

基于51单片机和DS18B20的数字温度计设计说明

基于51单片机和DS18B20的数字温度计设计说明
1.硬件设计:
-51单片机:选择合适的型号,如STC89C52或AT89C52等。

-DS18B20温度传感器:该传感器是一种数字温度传感器,具有单总线接口和高精度测量能力。

-接口电路:将51单片机和DS18B20传感器连接起来,要注意电平转换和信号线的阻抗匹配。

2.软件设计:
-初始化:在主函数中,首先对单片机进行初始化设置,包括时钟设置、串口配置等。

-DS18B20通信协议:使用单总线协议与DS18B20传感器进行通信,包括发送复位信号、读写数据等操作。

-温度测量:通过向DS18B20发送读取温度的命令,从传感器中读取温度值并保存。

-数据传输:将温度值转换为可显示的格式,如摄氏度或华氏度,并通过串口输出或LED显示。

3.程序流程:
-初始化单片机,设置时钟和串口参数。

-进入主循环,循环执行以下操作:
-发送复位信号,启动温度转换。

-等待转换完成,发送读取温度命令。

-读取温度值,并进行数据处理转换。

-输出温度值。

4.其他功能:
-可以添加LCD显示模块,将温度值显示在液晶屏上。

-可以添加按键输入模块,通过按键切换温度单位或进行其他操作。

需要注意的是,该设计只是一个简单的示例,实际应用中可能需要根据具体需求进行扩展和修改。

同时,在程序设计过程中,也要注意低功耗和数据稳定性等方面的考虑。

基于51单片机数字温度计系统设计与实现

基于51单片机数字温度计系统设计与实现

基于51单片机数字温度计系统设计与实现数字温度计是一种可以测量环境温度并将结果以数字方式显示的设备。

在本次任务中,我们将基于51单片机设计和实现一个数字温度计系统。

本文将介绍数字温度计的原理、硬件设计、软件设计以及系统的实施过程。

首先,让我们来了解一下数字温度计的工作原理。

数字温度计通过传感器获取环境温度的模拟信号,然后将其转换为数字信号进行处理,并最终在数字显示器上显示温度值。

通常,我们使用的传感器是温度敏感电阻或数字温度传感器。

接下来,我们将讨论硬件设计。

在本次任务中,我们使用的是51单片机作为主控制器。

我们需要连接一个温度传感器来测量温度,并将温度值转换为数字信号。

同时,我们还需要连接一个数字显示器,用于显示温度值。

为了实现这些功能,我们需要设计一个电路板,并正确布局电子元件。

另外,我们还需要通过键盘或按钮来控制系统的操作,例如切换温度单位等。

在软件设计方面,我们需要编写程序来完成以下任务:首先,我们需要初始化51单片机的引脚和中断。

然后,我们需要编写一个温度转换的函数,将传感器输出的模拟信号转换为数字信号。

接下来,我们需要编写一个显示函数,将转换后的数字温度值显示在数字显示器上。

最后,我们还可以添加一些功能,例如设置温度单位(摄氏度或华氏度)和存储温度数据等。

在系统实施过程中,我们需要按照以下步骤进行操作:首先,进行硬件的连接和组装。

确保所有电子元件正确连接并固定在电路板上。

然后,烧录编写好的程序到51单片机中。

接下来,我们可以通过设置开关或按键来控制系统的操作。

最后,我们可以测试系统的功能和性能,确保数字温度计正常工作。

值得注意的是,在设计和实现数字温度计系统时,我们需要考虑一些问题。

例如,温度传感器的精度和响应时间,数字显示器的显示精度和分辨率,以及系统的稳定性和可靠性等。

通过合理的设计和选择高质量的元件,我们可以提高系统的性能和可靠性。

总结起来,本次任务中我们基于51单片机设计和实现了一个数字温度计系统。

基于51单片机的数字温度计设计及应用

基于51单片机的数字温度计设计及应用

基于51单片机的数字温度计设计及应用数字温度计是一种测量环境温度的设备,它使用数字技术来转换和显示温度值。

基于51单片机的数字温度计设计及应用,我们将使用51单片机作为主控芯片,采集传感器的温度数据并将其转换为数字信号,然后通过数码管显示出来。

首先,我们需要选择合适的温度传感器。

常见的温度传感器有热敏电阻、热电偶和数字温度传感器等。

在本设计中,我们将使用DS18B20数字温度传感器。

DS18B20具有高精度、数字输出、通信简单等优点,非常适合于数字温度计的设计。

接下来,我们需要设计硬件电路。

首先,将DS18B20传感器连接到51单片机的GPIO引脚,并通过一条数据线进行通信。

接下来,将51单片机的引脚连接到数码管显示模块,用于将温度值显示出来。

此外,还可以添加其他功能,如按键开关用于控制菜单切换、蜂鸣器用于报警等。

在软件设计上,首先需要初始化51单片机的GPIO引脚,配置为输入或输出模式,通信时需要配置为模拟输入模式。

然后,利用51单片机的定时器模块生成一定频率的时钟信号,用于与DS18B20传感器通信。

在温度读取过程中,我们需要发送一系列的指令给DS18B20传感器,然后接收传感器返回的温度值。

根据DS18B20传感器的数据手册,我们可以编写相应的C语言代码进行数据的读取和解析。

接着,我们需要将读取到的温度值进行转换和显示。

由于DS18B20传感器输出的温度值为16位二进制补码形式,我们可以使用移位和逻辑运算等操作进行转换。

转换后的温度值可以直接显示在数码管上,通过扫描显示的方式实时更新温度数值。

在应用方面,基于51单片机的数字温度计可以广泛应用于各种温度测量场景。

例如,可以应用于室内温度测量,工业过程控制,农业温室监测等。

由于51单片机具有低功耗、成本低廉等优点,这种数字温度计可以在各种资源有限的环境中使用。

除了基本功能外,我们还可以进行功能扩展。

例如,可以添加存储功能,将温度数据保存到外部存储器中,以便进行后续分析和处理。

基于51单片机的数字温度计实时监测方案探究

基于51单片机的数字温度计实时监测方案探究

基于51单片机的数字温度计实时监测方案探究数字温度计是一种能够实时监测环境温度的仪器。

本方案通过使用51单片机,将温度传感器与单片机相连接,以实现对环境温度的实时监测。

以下是本方案的详细内容。

一、硬件设计1. 硬件器材准备:准备一个51单片机开发板,一个温度传感器(如DS18B20)、若干杜邦线、一个电阻和一个LCD液晶显示屏。

2. 连接电路:将温度传感器的Vcc引脚连接到单片机的VCC引脚,将GND引脚连接到单片机的GND引脚。

将传感器的DATA引脚连接到单片机的一个IO引脚,并通过一个4.7kΩ的上拉电阻连接到VCC引脚。

将LCD显示屏的引脚连接到单片机相应的IO引脚和电源引脚。

3. 编写单片机程序:使用C语言编写单片机程序,通过读取传感器数据并将结果显示到LCD屏幕上。

程序中需要包括初始化函数、温度读取函数以及数据显示函数。

二、软件设计1. 初始化函数:在初始化函数中设置单片机的工作模式、引脚功能和相关参数,如为LCD显示屏设置数据总线引脚和控制引脚等。

2. 温度读取函数:通过单片机的IO口读取传感器数据。

使用51单片机的串行通信功能与温度传感器进行通信,并读取传感器发送的数据。

根据传感器的规格说明书,将接收到的数据转换为温度值。

3. 数据显示函数:将读取到的温度值显示到LCD屏幕上。

先清除LCD屏幕上的内容,然后使用LCD屏幕上的光标控制函数将温度值显示到特定位置。

可以选择在LCD屏幕上显示华氏度或摄氏度。

三、实时监测方案1. 循环读取温度值:在主函数中,使用一个无限循环来实现连续地读取温度值。

在每次循环中调用温度读取函数,读取传感器当前的温度值。

2. 设置温度报警:根据实际需求,在主函数中添加一个判断语句,当温度值超过或低于某个阈值时,触发温度报警。

可以通过LED灯、蜂鸣器等外设来实现报警。

3. 数据保存和上传:根据需求,可以将读取的实时温度值保存到相应的存储介质中,如SD卡或EEPROM。

基于51单片机的数字温度计设计

基于51单片机的数字温度计设计

基于51单片机的数字温度计设计数字温度计是一种广泛使用的电子测量设备,通过传感器将温度转化为数字信号,并显示出来。

本文将介绍基于51单片机的数字温度计的设计。

该设计将使得使用者能够准确、方便地测量温度,并实时显示在液晶显示屏上。

1. 硬件设计:- 传感器选择:在设计数字温度计时,我们可以选择使用NTC(负温度系数)热敏电阻或者DS18B20数字温度传感器作为温度传感器。

这里我们选择DS18B20。

- 信号转换:DS18B20传感器是一种数字传感器,需要通过单总线协议与51单片机进行通信。

因此,我们需要使用DS18B20专用的驱动电路,将模拟信号转换为数字信号。

- 51单片机的选择:根据设计要求选择合适的51单片机,如STC89C52、AT89S52等型号。

单片机应具备足够的IO口来与传感器和液晶显示屏进行通信,并具备足够的计算和存储能力。

- 显示屏选择:为了实时显示温度,我们可以选择使用1602型字符液晶显示屏。

该显示屏能够显示2行16个字符,足够满足我们的需求。

通过与51单片机的IO口连接,我们可以将温度数据显示在屏幕上。

2. 软件设计:- 采集温度数据:通过51单片机与DS18B20传感器进行通信,采集传感器传输的数字温度数据。

通过解析传感器发送的数据,我们可以获得当前的温度数值。

- 数据处理:获得温度数据后,我们需要对其进行处理。

例如,可以进行单位转换,从摄氏度到华氏度或者开尔文度。

同时,根据用户需求,我们还可以对数据进行滤波、校准等处理。

- 显示数据:通过与液晶显示屏的连接,我们可以将温度数据显示在屏幕上。

可以使用51单片机内部的LCD模块库来控制液晶显示屏,显示温度数据以及相应的单位信息。

- 用户交互:可以设置一些按键,通过与51单片机的IO口连接,来实现用户与数字温度计的交互。

例如,可以设置一个按钮来进行温度单位的切换,或者设置一个按钮来启动数据保存等功能。

3. 功能拓展:- 数据存储:除了实时显示当前温度,我们还可以考虑增加数据存储功能。

基于51单片机的数字温度计实现

基于51单片机的数字温度计实现

基于51单片机的数字温度计实现数字温度计是一种能够精确测量温度的仪器,利用数字技术将温度传感器测得的模拟信号转换成数字信号,以显示出实时温度数值。

在这个任务中,我们要使用51单片机来实现一个基于数字技术的温度计。

首先,我们需要一种温度传感器,常用的有热敏电阻传感器和数字温度传感器。

在这里,我们选择使用热敏电阻传感器,因为它价格低廉且性能稳定。

热敏电阻传感器的电阻值会随着温度的变化而发生改变,我们可以利用这个特性来测量温度。

51单片机是一种常用的微型计算机芯片,具有强大的计算和控制能力,非常适合用于实现温度计。

我们可以将热敏电阻传感器连接到单片机的模拟输入引脚上,通过读取引脚上的电压值来获取温度值。

接下来,我们需要编写51单片机的程序来实现温度的转换和显示。

首先,我们需要将模拟信号通过模数转换器(ADC)转换成数字信号。

然后,我们可以通过一定的算法将数字信号转换成对应的温度数值。

为了实现温度的显示,我们可以连接一个LCD液晶屏到51单片机上。

LCD屏幕可以显示数字和字符,我们可以在屏幕上显示实时的温度数值。

除了温度的显示,我们还可以添加一些功能来增强温度计的实用性。

例如,我们可以设置一个温度报警功能,在温度超过一定阈值时发出声音或亮起警示灯。

这样可以方便用户随时知晓温度是否正常。

另外,我们还可以为温度计添加保存数据的功能。

通过连接一个存储器芯片,我们可以将温度数据存储下来,方便后续分析和查看。

总之,基于51单片机的数字温度计实现可以通过连接热敏电阻传感器并编写相应的程序来实现温度的测量和显示。

通过添加额外的功能,例如温度报警和数据存储,可以增强温度计的实用性和功能性。

这样的温度计可以广泛应用于室内温度检测、工业控制和科研实验等领域。

(完整版)基于51单片机数字温度计毕业设计论文

(完整版)基于51单片机数字温度计毕业设计论文

课程设计题目:基于51单片机的数字温度计设计姓名:张鹏班级名称:采矿1109班学号:指导老师:曹金燕2015年设计任务书目录第1章概述 (1)1.1简述 (1)1.2任务描述 (1)1.3设计思路 (2)第2章系统主要元器件介绍 (2)2.1单片机的选用及功能介绍 (2)2.2DS18B20温度传感器介绍 (5)2.2.1引脚功能 (6)2.2.4 DS18B20的测温原理 (12)2.374LS244反相器简介 (14)第3章硬件电路的设计 (15)3.1接口设计 (15)3.2主板电路设计 (15)3.3其他电路设计 (16)第4章软件设计 (19)4.1主程序 (19)4.2读出温度子程序 (19)4.3温度转换命令子程序 (20)4.5显示数据刷新子程序 (21)4.6主要设计程序 (21)4.7调试 (23)第5章结束语 (24)参考文献 (25)致谢 (26)附录一 (27)摘要本文主要介绍了一种基于AT89S51单片机和DS18B20数字温度传感器来进行测温的方法。

具体设计时,作者对AT89S51和DS18B20进行了接口电路设计,同时利用74LS244进行段码驱动、实现数码管的显示输出;并在此基础上,通过软件设计实现温度的数据采集和传输。

由于DS18B20数字温度传感器是单总线器件,与AT89S51单片机组成一个测温系统,具有线路简单、体积小等特点,并且由于是在同一根通信线上,因此可以扩展、挂接很多这样的测温系统,十分方便。

关键词:数字温度计;AT89S51;DS18B20;74LS2第一章概述1.1 简述单片机在测控领域中具有十分广泛的应用,它既可以直接处理电信号,也可以间接处理温度、湿度、压力等非电信号。

由于该特点,因而被广泛应用于工业控制领域。

另一方面,由于单片机的接口信号是数字信号,因此使用它来进行温度、湿度、压力等这类非电信号的信息处理,必须使用对应的传感器进行AD或DA转换,最后再传输给单片机进行最终的数据处理和显示。

基于51单片机数字温度计的设计与实现

基于51单片机数字温度计的设计与实现

基于51单片机数字温度计的设计与实现数字温度计是一种能够测量环境温度并显示数值的设备。

基于51单片机的数字温度计设计与实现是指利用51单片机作为核心,结合温度传感器和其他辅助电路,实现一个能够测量温度并通过数码管显示温度数值的系统。

本文将从硬件设计和软件实现两个方面介绍基于51单片机数字温度计的具体设计与实现过程。

一、硬件设计1. 温度传感器选取在设计数字温度计时,首先需要选取合适的温度传感器。

市面上常用的温度传感器有热敏电阻、功率型温度传感器(如PT100)、数字温度传感器(如DS18B20)等。

根据设计需求和成本考虑,我们选择使用DS18B20数字温度传感器。

2. 电路设计基于51单片机的数字温度计的电路设计主要包括单片机与温度传感器的连接、数码管显示电路和电源电路。

(1)单片机与温度传感器的连接在电路中将51单片机与DS18B20数字温度传感器相连接,可采用一线总线的方式。

通过引脚的连接,实现单片机对温度传感器的读取控制。

(2)数码管显示电路为了能够显示温度数值,我们需要设计一个数码管显示电路。

根据温度传感器测得的温度值,通过数字转换和数码管驱动,将温度数值显示在数码管上。

(3)电源电路电源电路采用稳压电源设计,保证整个系统的稳定供电。

根据实际需求选择合适的电源电压,并添加滤波电容和稳压芯片,以稳定电源输出。

3. PCB设计根据电路设计的原理图,进行PCB设计。

根据电路元件的布局和连线的走向,绘制PCB板的线路、元件和连接之间。

二、软件实现1. 单片机的编程语言选择对于基于51单片机的数字温度计的软件实现,我们可以选择汇编语言或者C语言进行编程。

汇编语言的效率高,但编写难度大;C语言的可读性好,开发效率高。

根据实际情况,我们选择使用C语言进行编程。

2. 温度传感器数据获取利用单片机的IO口与温度传感器相连,通过一线总线协议进行数据的读取。

根据温度传感器的通信规则,编写相应的代码实现数据的读取。

基于51单片机数字温度计设计与实现

基于51单片机数字温度计设计与实现

基于51单片机数字温度计设计与实现数字温度计是一种常见的电子仪器,用于测量和显示温度。

本文将介绍如何基于51单片机设计和实现一个数字温度计。

首先,我们需要了解51单片机的基本原理和工作方式。

51单片机是一款广泛应用于嵌入式系统中的微控制器,具有低成本、易编程、可扩展等特点。

它由中央处理器、存储器、输入输出端口和定时器等组成,可以实现各种功能。

接下来,我们可以开始设计数字温度计的硬件部分。

首先,我们需要一个温度传感器,如DS18B20数字温度传感器。

该传感器具有高精度和数字输出的特点,可以直接与51单片机进行通信。

然后,将传感器与51单片机的引脚相连,通过读取传感器输出的温度值,即可得到实时的温度数据。

为了方便用户查看温度,我们可以通过数码管或LCD显示屏显示温度值。

数码管是一种7段显示器件,可以显示数字0-9的字符。

我们可以通过将温度值拆分成各个位数,然后将对应的数字发送到数码管上,实现温度的显示。

此外,我们还可以为温度计添加一些附加功能。

例如,可以通过按键切换温度的单位,从摄氏度切换到华氏度。

还可以设置温度报警功能,当温度超过一定阈值时,触发蜂鸣器或LED灯进行报警。

在软件设计方面,我们需要编写51单片机的固件程序来实现温度计的功能。

首先,我们需要初始化51单片机的引脚和定时器。

然后,可以设置一个定时器中断,用于定时读取温度传感器的数值。

在定时器中断的处理函数中,读取温度传感器的数值,并将其转换为摄氏度或华氏度,然后发送到数码管或LCD显示屏上。

此外,我们还可以添加一些交互功能,例如按键实现温度单位切换或报警阈值的设置功能。

通过按键检测的方式,可以在主循环中判断按键的按下和释放,并根据按键的状态进行相应的操作。

最后,我们需要将编写好的固件程序下载到51单片机的存储器中。

可以使用ISP编程器或者串口下载方式进行下载。

下载完成后,将51单片机与硬件连接好,就可以通过操作按键和观察数码管或LCD显示屏来实现数字温度计的功能了。

基于51单片机的数字温度计开发及应用

基于51单片机的数字温度计开发及应用

基于51单片机的数字温度计开发及应用数字温度计是一种利用数字技术来实现温度测量和显示的仪器。

它具有测量精度高、响应迅速、体积小、易于携带等优点,广泛应用于工业控制、生活中的温度测量和监控。

本文将介绍基于51单片机的数字温度计的开发及应用。

一、硬件设计1. 温度传感器选择:常见的温度传感器有热电偶、热敏电阻、半导体温度传感器等。

根据应用需求选择合适的温度传感器,如DS18B20数字温度传感器。

2. 电路设计:根据温度传感器的工作原理,设计合适的电路进行温度测量。

一种常用的电路是将温度传感器与单片机相连,通过单片机来读取传感器的温度数值。

电路设计要注意电源稳定性、信号放大和滤波等。

3. 显示器选择:可以选择液晶显示器、LED数码管等来显示温度数值。

液晶显示器可以显示更多信息,LED数码管则结构简单、适合简单的温度显示。

4. 控制器选择:选择一款合适的51单片机作为控制器,具有丰富的外设接口和较高的性价比。

如常用的STC89C52单片机。

二、软件开发1. 编程语言选择:使用C语言进行开发,具有相对较高的运行效率和开发效率。

2. 温度测量算法:根据温度传感器的特性和电路设计,编写测量算法来准确读取温度数值。

对于DS18B20传感器,可以参考其提供的通信协议进行编程。

3. 数据处理与显示:读取到温度数值后,通过算法和数据处理来获得最终的温度值。

将温度值显示在选定的显示器上,可以实现数字显示、小数点显示等功能。

4. 控制模块设计:可以根据需求设计控制模块,如报警功能、温度范围设定、温度记录等。

根据温度数值进行判断和控制,实现相应的控制逻辑。

三、应用场景1. 家庭温度监控:将数字温度计应用于家中,实时监测室内温度。

可以设置温度报警阈值,当温度超过设定值时发出警报提示。

2. 工业控制:在工业生产中,温度是一个重要的参数。

将数字温度计应用于控制系统中,实时监测生产环境的温度变化,保持生产过程的稳定性和安全性。

3. 温室农业:数字温度计可以应用于温室农业中,实时监测温室内外的温度差异,帮助农民掌握温室环境,并进行相应的调节和控制。

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

课题:基于51单片机数字温度计设计专业:电气工程及其自动化班级:学号:姓名:指导教师:设计日期:2014年6月6日成绩:重庆大学城市科技学院电气学院单片机原理及应用课程设计报告一、设计目的作用1、掌握单片机电路的设计原理、组装与调试方法。

2、掌握DS18B20温度传感器的工作原理及使用方法。

二、设计要求(1).由4位数码管显示当前温度。

(2).具备报警设置和LED指示灯。

三、设计的具体实现1、系统概述a)方案选择由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。

进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。

b)系统框图该系统可分为以下七个模块:(1)控制器:采用单片机STC89C52对采集的温度数据进行处理;(2)温度采集:采用DS18B20直接向控制器传输12位二进制数据;(3)温度显示:采用了4个LED共阳极七段数码管显示实际温度值;(4)门限设置:主要实现模式切换及上下门限温度的调节;(5)报警装置:采用发光二极管进行报警,低于低门限或高于高门限均使其发光;(6)复位电路:对整个系统进行复位;(7)时钟振荡模块:为整个系统提供统一的时钟周期。

图a 系统框图2、单元电路设计与分析a)晶振晶振为单片机提供时钟信号。

单片机XIAL1和XIAL2分别接30PF的电容,中间再并个12MHZ的晶振,形成单片机的晶振电路。

图1 晶振电路b)复位电路单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。

89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。

当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。

单片机系统的复位方式有:手动按钮复位和上电复位。

图2 复位电路C)温度传感器系统DS18B20温度传感器电路,如图3.图3 温度传感器电路d)4位一体共阳数码管电路如图4图4 共阳LED电路e)工作原理及原理图系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,状态显示电路,报警电路,单片机主板电路等,如图2所示。

1.1 温度传感器部分温度传感器用DS18B20。

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

本设计电路的DS18B20采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。

在使用DS18B20时,首先初始化温度传感器。

然后将已保存的温度的上下限值从EEPRAM调到RAM中。

再读取温度。

读取温度后,将温度的值发送到单片机中,并检查温度是否在设置的范围内。

如果在,不发出报警信号。

如果不在,就发出报警信号到单片机中。

随后,再读取温度,然后将温度的值发送到单片机中,并检查温度是否在设置的范围内。

最后,不断地循环此过程。

1.2 单片机部分单片机为此次电路的核心,它起到了控制整个电路的作用。

第一,它能够控制温度传感器还能够读取温度传感器的相关信息。

第二,他能够控制数码管显示温度,两个发光二极管显示状态,并在异常状态下发出报警。

最后,单片机能够扫描按键,并处理按键信息。

单片机先将温度传感器初始化。

然后发送重调EEPRAM命令。

将已保存的温度的上下限值从EEPRAM调到RAM中。

这样就可以根据上次已经设定好的温度的上下限值进行报警,而且设定好的温度的上下限值关机后不会消失。

各项准备做完后,发送温度转换命令,并读取温度。

读完温度后,就将十六进制的温度值转换成是十进制的温度值。

最后将温度的值从P0口传递给数码管显示出来。

而且单片机还时刻判断接收到了报警信号没有。

如果没有,则判断为正常状态,绿色发光二极管亮。

如果接收到了,则判断为异常状态。

此时,红色发光二极管亮,并且发出报警信号。

如果确认键按下后,程序就跳到温度的上下限值调整程序。

当温度的上下限值调整完后,能将调整的数值保存到存储单元中。

然后,单片机向温度传感器发出指令,将数值发送到DS18B20的RAM中,再将数值从DS18B20的RAM中复制到DS18B20的EEPROM中。

使调整好的温度的上下限值关机后不消失。

1.3显示部分本电路采用两位数码管静态显示。

由于每个数码管都接了译码器7447或接上拉电阻,节省了接口资源。

1.4 状态显示部分电路中的两个发光二极管为状态显示电路。

如果状态正常或状态异常,则LED指示灯会亮。

扬声器为报警电路。

但状态为异常时,发出报警。

也可以在电路中接了集成运放LM386,可以报警声更洪亮。

图5 电路原理图图6 实物图四、总结在本次的课程设计过程中,在焊接电路板时,会出现线路的接触不良,造成数码管不能显示数值。

在解决的过程中,认真查看电路图,用万用表检测线路,找出原因并重新焊接其中错误的地方。

注意一点就系设计电路走线的时候最好要清晰易见,尽可能的避免跳线,这样在检查电路出错时候简捷方便得多。

觉得应该注意程序的设计。

虽然不是很难,但很多细小的问题需要认真的对待,稍有不注意问题就会在具体的应用程序调试过程中出现,这要求在实践的过程中除了要了塌实的理论知识还要细心,有耐心。

当然在本次的设计过程中还出现了其他不少的问题,问题随着设计思想的深入而不断变化,不断的产生新问题,而在这过程中不断的解决问题,正是在这一过程中,加深了对原理的认识,完善了设计思想,使自己分析问题解决问题的能力得到进一步的加强。

另外还充分体会了从事单片机开发工作需要特别严谨认真的态度和作风,一点都马虎不得。

每一个细微的细节都必须十分的注意,如果不认真思考决策,就会出现或大或小的错误,如果早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时要推倒很多前面做的工作重来。

有时候,自己觉得写的程序非常的正确,但是就是编译通不过,在查找错误的过程中,面临着否认自己的过程,非常的痛苦,而且由于自己的经验及各方面的能力的不足,所以进展的速度非常的缓慢,往往几天的时间还没有一点进展。

这时候,一般是先自己通过书本,手册和资料找解决办法,实在没辙了才向老师请教。

尽管向老师请教解决问题比较快,自己钻研花的时间较多,但强迫自己独立的思考对学习提高帮助非常大。

反反复复的学习,辛勤努力有了回报,终于做出了一个简单的系统,虽然这个系统的功能非常的简单,而且在实际的运用中,还有些不足。

比如断电后不能工作等问题。

由于知识浅薄,经验不足及阅历颇浅,因此,在该系统的设计方面还有很多不足,比如功能不够完善,界面不够醒目等问题,会在工作的使用过程中,根据工作的具体要求不断的修改,完善,争取使该系统慢慢趋向完美,并希望老师批评指点五、附录元器件明细表(列出本次课程设计中所用的全部元器件)。

附录一附录二源程序代码#include<reg51.h>#define uchar unsigned charsbit DQ=P3^6;sbit voice=P3^7;sbit light=P1^4;sbit din=P1^0; //MAX7221数据输入端sbit cs=P1^1; //MAX7221片选输入端sbit clk=P1^2;sbit key_rst=P1^5;sbit key_min=P1^6;sbit key_hour=P1^7;//sbit key_clr=P3^6;//unsigned int flag;unsigned int temp;unsigned char second;unsigned char minute;unsigned char hour;unsigned char dis[4]={0,0,0,0};unsigned charled[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0xf f,0xbf};//分别为0-9,不显示,负号unsigned charled1[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//带小数点显示uchar code dispcode[]={0x7e,0x30,0x6d,0x79, //’0’,’1’,’2’,’3’0x33,0x5b,0x5f,0x70, //’4’,’5’,’6’,’7’0x7f,0x7b,0x01,0x00 //’8’,’9’,’-’,无显示};unsigned char str2[8]={" "};void delay(unsigned int i) //如果i是unsigend char类型,则会出现错误结果{while(i--);}void Init(void)//初始化{//unsigned char flag=0;DQ = 0; //单片机将DQ拉低delay(100); //精确延时大于 480us小于960usDQ = 1; //拉高总线delay(30);//flag=DQ; //稍做延时后如果flag=0则初始化成功 flag=1则初始化失败//delay(20);}unsigned char Read(void)//读字节{unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){DQ = 0; // 给脉冲信号dat>>=1;DQ = 1; // 给脉冲信号if(DQ)dat|=0x80;delay(5);}return(dat);}void Write(unsigned char dat)//写字节{unsigned char i=0;for (i=8; i>0; i--){DQ = 0;DQ = dat&0x01;delay(5);DQ = 1;dat>>=1;}}void Display(unsigned int temp) //显示程序{if(temp<=0x0800){ temp>>=4; //右移4位,相当于乘0.0625,将温度化为十进制temp*=10; //扩大10倍,显示一位小数dis[0]=temp/1000; //千位dis[1]=temp%1000/100; //百位dis[2]=temp%1000%100/10; //十位dis[3]=temp%1000%100%10; //个位}else{temp=~temp;temp+=1;temp>>=4;dis[0]=0x0c; //负数dis[1]=temp%100/10; //百位dis[2]=temp%100%10; //十位dis[3]=0; //个位}P2=0x01; //先片选,在段选,反过来就不能正常显示P0=led[dis[0]];delay(200);delay(200);P2=0x02;P0=led[dis[1]];delay(200);delay(200);P2=0x04;P0=led1[dis[2]];delay(200);delay(200);P2=0x08;P0=led[dis[3]];delay(200);delay(200);}void clr_alarm(void){voice=0;light=1;}void set_alarm(void){voice=1;light=0;}void alarm(int temp){//if(flag==0)// {if(temp>1500){set_alarm();}else{voice=0;light=1;}// }}void Timer() interrupt 1 { static uchar numval=20; TH0=(65536-50000)/256;TL0=(65536-50000)%256; numval--;if(numval==0){numval=20;second++;if(second==60){second=0;minute++;if(minute==60){minute=0;hour++;if(hour==24)hour=0;}}str2[0]=hour/10;str2[1]=hour%10;str2[3]=minute/10;str2[4]=minute%10;str2[6]=second/10;str2[7]=second%10;}}void Write_7221(uchar com,uchar da){uchar temp,i,j;cs=0; //片选有效clk=0; //时钟低for (i=0;i<8;i++) //发送显示位置{temp=com;if ((temp&(0x80>>i))!=0) //先发高位依次到低位din=1;else din=0;clk=1; //时钟高上升沿锁数据 for (j=0;j<5;j++);clk=0;}for (i=0;i<8;i++) //发送数据{temp=da;if ((temp&(0x80>>i))!=0) //先发高位依次到低位din=1;else din=0;clk=1;for (j=0;j<5;j++);clk=0;}cs=1;}/***************MAX7221初始化*****************/void Init_MAX7221(void){Write_7221(0x0c,0x01); //正常工作状态,关断模式Write_7221(0x09,0x00); //译码选择,非BCD码Write_7221(0x0a,0x0f); //亮度调节 Write_7221(0x0b,0x07); //显示位数 }void keyscan1(void){ if(key_rst==0){hour=0;minute=0;second=0;}}void keyscan2(){ if(key_min==0){ while(!key_min );minute++;if(minute==60){ minute=0; }}}void keyscan3(){ if(key_hour==0){ while(!key_hour);hour++;if(hour==24){ hour=0; }}}main(){unsigned char tl=0,th=0;clr_alarm();Init_MAX7221();hour=22;minute=33;second=2;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;while(1){Write_7221(0x01,dispcode[str2[0]]);Write_7221(0x02,dispcode[str2[1]]);Write_7221(0x03,0x01);Write_7221(0x04,dispcode[str2[3]]);Write_7221(0x05,dispcode[str2[4]]);Write_7221(0x06,0x01);Write_7221(0x07,dispcode[str2[6]]);Write_7221(0x08,dispcode[str2[7]]);keyscan1();keyscan2();keyscan3();Init();Write(0xCC); // 跳过读序号列号的操作Write(0x44); // 启动温度转换delay(100);Init();Write(0xCC); //跳过读序号列号的操作Write(0xBE); //读取温度寄存器等delay(100);tl=Read(); //读取温度值低位th=Read(); //读取温度值高位temp=th<<8;temp|=tl;Display(temp);alarm(temp);}}六、参考文献[1]阎石.数字电子技术基础(第三版).北京:高等教育出版社,1989[2]方佩敏编著.新编传感器原理·应用·电路详解[M].北京:电子工业出版社,1993[3]李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,1998[4]周明德, 蒋本珊, 微机原理与接口技术(第二版)[M].北京:人民邮电出版社,2007,1-103。

相关文档
最新文档