跳到主要内容

基于AT89C51和LM35的摄氏温度计

本文展示了使用LM35温度传感器和AT89C51单片机设计、开发和操作摄氏温度计的过程。该电路包含模拟温度传感器LM35,其优势在于能够直接输出与摄氏温度成正比的信号,无需校准。

本项目还包含一个8位模数转换器(ADC0804),它采用逐次逼近转换技术。ADC0804由单片机控制,单片机处理其输出,以在LCD显示屏上显示摄氏温度读数。本文详细介绍了单片机程序、电路设计和电路操作。

1. 基于AT89C51和LM35的摄氏温度计

1.1 电路原理

该电路基于模数转换原理工作。温度由模拟温度传感器(LM35)感应,该模拟值通过模数转换器(ADC0804)转换为数字值。单片机(AT89C51)随后处理数字信号,以在显示屏(16×2 LCD)上显示摄氏温度读数。

1.2 摄氏温度计电路图

alt text

1.3 所需元件

  • 8051单片机(AT89C51)
  • 8051开发板
  • 8051编程器
  • 16 × 2 LCD显示屏
  • 10KΩ电位器
  • ADC0804 - ADC芯片
  • 10KΩ电阻(1/4瓦)
  • 150pF陶瓷电容 - 编码:151
  • LM35 - 温度传感器
  • 连接线
  • 电源
  • Keil µVision IDE
  • Willar软件
  • 如果没有8051开发板,你可能需要以下元件:
    • 11.0592 MHz石英晶体
    • 2 × 33pF电容
    • 2 × 10KΩ电阻(1/4瓦)
    • 10µF电容(有极性)
    • 按钮

1.4 摄氏温度计电路设计

电路设计主要涉及单片机电路的设计,以及将ADC、LM35和LCD与AT89C51单片机的接口设计。

1.4.1 单片机电路设计

振荡器电路:振荡器电路由一个11.0592 MHz的石英晶体振荡器和两个33pF的陶瓷电容组成,以确保稳定性。

复位电路:复位电路使用一个按钮、一个10KΩ的电阻和一个10µF的电解电容设计,以确保复位脉冲宽度为100ms,复位电压为1.2V。

EA引脚:由于我们没有使用外部存储器,EA引脚通过一个10KΩ的电阻拉高。

1.4.2 ADC和LM35的接口

LM35温度传感器IC和ADC0804 ADC IC构成了电路的输入部分。LM35有三个引脚:GND、VOUT和VS。LM35的VOUT连接到ADC0804 IC的模拟输入引脚VIN(+)(第6引脚)。

ADC0804的第20引脚(VCC)连接到+5V电源。ADC0804的第1、2、7、8和10引脚(CS'、RD'、VIN(-)、AGND和GND)连接到地。一个10KΩ的电阻连接在ADC0804的时钟引脚CLKR和CLKIN(第19和4引脚)之间。一个150pF的陶瓷电容连接在CLKIN(第4引脚)和地之间。第3和5引脚(WR'和INTR')连接在一起。

ADC0804的8个数据输出引脚DB0 - DB7(第11至18引脚)连接到8051单片机的PORT2引脚。

1.4.3 LCD接口

RS、RW和EN引脚分别连接到端口引脚P3.6、GND和P3.7。数据引脚连接到单片机的PORT1。

2. 摄氏温度计电路的工作原理

环境温度由LM35温度传感器感应,该传感器产生与温度成正比的输出电压,每摄氏度变化10mV。这个模拟电压被送入模数转换器(ADC0804),它是一个基于逐次逼近转换原理的8位ADC。

模数转换器ADC0804被配置为连续读取输入模拟信号,并在其数字输出引脚上连续产生数字输出。为了使ADC0804能够连续读取模拟输入值,需要将INTR'引脚和WR'引脚连接在一起。此外,为了使ADC0804的数字输出引脚上连续提供数字数据,CS'和RD'引脚必须被拉低。

模数转换器连续从LM35获取模拟信号,并将其转换为数字值。ADC0804的数字输出以8位二进制数据的形式呈现,并且这些数据也是连续可用的。

8051单片机接收这些数字数据,并执行简单的数学计算。这个计算将从ADC0804接收到的数字数据转换为摄氏度温度。

现在,单片机将这些数据发送到LCD并显示。由于ADC连续从LM35温度传感器读取模拟数据,并通过数字引脚将其发送到单片机,温度将始终更新,并在LCD上显示。

alt text
alt text
alt text
alt text
alt text

2.1 编写摄氏温度计电路代码的算法步骤

以下是用C语言编写代码需要遵循的算法:

  1. 从ADC0804读取数据。
  2. 对接收到的数据进行简单的计算。
  3. 通过发送适当的命令初始化LCD。
  4. 将包含温度读数的数据发送到LCD。

2.2 摄氏温度计电路的应用

  1. 可用于移动场所,如汽车,以跟踪温度。
  2. 可用于根据温度控制负载(如电机、加热器)的开关。
  3. 可用于家庭中获取温度读数。

2.3 摄氏温度计电路的局限性

  1. 需要额外的模数转换。
  2. 该电路只能测量摄氏度值。