当前位置:文档之家› 单片机基于51单片机的温度传感器设计

单片机基于51单片机的温度传感器设计


硬件原理图
温度显示 ADC0809 模数转换
超量程报警
AT89C51
按键控制 AD590 测温电路 电源及复位电路
整体电路图
系统模块介绍
•AD590及外围电路 •ADC0809模数转换
•按键控制模块
•报警模块
温度传感器AD590
温度转换为电流。 线性度优良、性能稳定。 每增加1℃,它会增加1μA输出电流。 可测量范围-55℃至150℃。 供电电压范围+4V至+30V。
ADC0809应用说明
(1) ADC0809内部带有输出锁存器,可以与51单片 机直接相连。 (2) 初始化时,使ST和OE信号全为低电平。 (3)送要转换的哪一通道的地址到A,B,C端口上。 (4) 在ST端给出一个至少有100ns宽的正脉冲信号。 (5) 是否转换完毕,我们根据EOC信号来判断。 (6) 当EOC变为高电平时,这时给OE为高电平,转换 的数据就输出给单片机了。
引脚介绍


P1口:P1是一个带有内部上拉电阻的8位双向I/O口。P1的输出缓 冲级可驱动(输入或输出)4个TTL逻辑门电路。对端口写“1”,通 过内部的上拉电阻把端口拉到高电平,此时可做输入口。因为内部 存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。 P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓 冲级可驱动(输入或输出电流)4个TTL逻辑门电路。对端口写“1”, 通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。因为 内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。 在访问外部程序存储器获16位地址的外部数据存储器(例如执行 MOVX @DPTR指令)时,P2口送出高8位地址数据。在访问8位地 址的外部数据存储器(如执行 MOVX @RI指令)时,P2口线上的内 容(也即特殊功能寄存器(SFR)区中R2寄存器的内容),在整个 访问期间不改变。
*函数:触发ADC0808开始转换并读取数值
uchar ADC_Read(void) { uchar getdataV; OE=0; //OE=0时输出呈高阻态 ST=1; //上跳沿时,内部寄存器清零 ST=0; //下跳沿时,进行A/D转换 while(EOC==0); //空循环,直到转换结束 OE=1; //允许输出 getdataV=P1; //转换数据输出给单片机P1口 OE=0; //传输结束,OE重新变为0 return getdataV; }
基于AD590温度显示器设计
小组成员 22011311 22011312 22011313
刘森林 俱子研 孙业飞
设计要求
自动显示当前温度。 设置温度上下限报警功能。 温度上下限调整可通过串行通信接口实现。 当前温度可通过串行通信接口送给计算机。 温度超限报警。

总体方案
系统以51单片机为控制核心,加上AD590测 温电路、ADC0809模数转换电路、温度数据 显示电路以及外围电源等组成。 利用AD590集成温度传感器及其接口电路完 成温度的测量并转换成模拟电压信号。经由模 数转换器ADC0809转换成单片机能够处理的 数字信号,然后送到单片机中进行处理变换, 最后将温度值显示在LED显示器上。

温度传感器AD590
1脚接VCC 2脚接电流输出端 3脚一般不用
AD590温度与电流关系
AD590模块
电阻选用 9.6K 滑动变阻器 选用1K 通过微调使 得总电阻精确 到10K
AD590模块
选用运放741做电压跟随器,提高输入阻抗。 仿真时,用滑动变阻器改变电压,模拟实际中的温度变化。来自引脚介绍

PSEN:程序存储允许输出是外部程序存储器的读选通 信号,当80C51由外部程序存储器取指令(或数据) 时,每个机器周期两个PSEN有效,即输出两个脉冲。 在此期间,当访问外部数据存储器,这两次有效的 PSEN信号不出现。 EA/VPP:外部访问允许。要使CPU仅访问外部程序存 储器(地址为0000H---FFFFH),EA端必须保持低电平 (接地)。需注意的是; 如果加密位LB1被编程,复位 时内部会锁存EA端状态。如 EA端为高电平(接VCC 端),CPU则执行内部程序存储器中的指令。 XTAL1:振荡器反相放大器及内部时钟发生器的输入端。 XTAL2 :振荡器反相放大器的输出端。
引脚图

引脚功能说明 Vcc:电源电压 GND:地 P0口:P0口是一组8位漏极开 路型双向I/O口,即地址/数据总 线复位口。作为输出口用时,每 位能吸收电流的方式驱动8个逻 辑门电路,对端口写“1”可 作 为高阻抗输入端用。在访问外部 数据存储器或程序存储器时,这 组口线分时转换地址(低8位) 和数据总线复用,此时P0激活 内部的上拉电阻。
引脚介绍


P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3 口输出缓冲级可驱动(输入或输出)4个TTL逻辑门电路。 对P3口写入“1”时,他们被内部上拉电阻拉高并可作为输 入口。此时,被外部拉低的P3口将用上拉电阻输出电流。 RST:复位输入。当振荡器工作时,RST引脚出现两个机器 周期以上高电平将使单片机复位。 ALE/PROG:当访问外部程序存储器或数据存储器时, ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。 即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出 固定的正脉冲信号,因此它可对输出时钟信号或用于定时。 要注意的是:当访问外部数据存储器时将跳过一个ALE脉冲。 闪存编程期时,该引脚还用于输入编程脉冲。
结束
软件实现
*函数:ADC0808初始化 void ADC_Init(void) { ST=1; P34=0; P35=0; P36=0; //选择地址IN1(CBA=000) ST=0; //ST为转换启动信号 EOC=1; //转换结束信号。高电平时,表明转换结束 OE=0; //输出允许信号。OE=1,输出转换数据 }
单片机以及数码管显示
AT89C51单片机模块
80C51单片机介绍

80C51是美国ATMEL公司生产的低电压,高性能 CMOS8位单片机,可提供以下标准功能:4K 字节闪 存,128字节内部RAM,32个I/O口线,两个16位定 时/计数器,一个5向量两级中断结构,一个全双工 串行通信口,片内振荡器及时钟电路。同时,80C51 可降至0HZ的静态逻辑操作,并支持两种软件可选的 节电工作模式。空闲方式停止CPU的工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续 工作。掉电方式保存RAM中的内容,但振荡器停止 工作并禁止其它所有部件工作直到下一个硬件复位。
放大电路
741放大器为运算放大器中最常被使用的一 种,拥有反相向与非反相两输入端,由输入端 输入欲被放大的电流或电压信号,经放大后由 输出端输出。放大器作动时的最大特点为需要 一对同样大小的正负电源,其值由±12Vdc至 ±18Vdc不等,这里使用±15Vdc的电压。
放大电路
7脚、4脚分别接正负15V; 3端输入,6端输出; 构成电压跟随器。
ADC0809
ADC0809是美国国家半导体公司 生产的CMOS工艺8通道,8位逐次 逼近式A/D模数转换器。其内部有 一个8通道多路开关,它可以根据 地址码锁存译码后的信号,只选通 8路模拟输入信号中的一个进行A/D 转换。
ADC0809
主要特性:
8路输入通道,8位A/D转换器,即分辨率为8位。 具有转换起停控制端。 转换时间为100μs(时钟为640KHz时),130μs (时钟为500KHz时)。 单个+5V电源供电。 模拟输入电压范围0~+5V,不需零点和满刻度校 准。 工作温度范围为-40~+85摄氏度。 低功耗,约15mW。
硬件连接图
2014-6-2
程序代码
void delay(unsigned int i) { char j; for(i; i > 0; i--) for(j = 200; j > 0; j--); } void sett() { if(set==0) { delay1(z); if(set==0) { count++; // 标志位 // 按下 //延时消抖 // count=1 设置上限温度 count=2 设置下限温度 count=0 正常显示温度
ADC0809电路连接
电压输入选择IN0通道
转换数据从OUT1~OUT7口输
出至单片机的P1口
START与ALE一起接P3.0
OE接P3.1
CLOCK接P3.3
A、B、C三条地址线接单片
机的P3.4 P3.5 P3.6
ADC0809模块
开始 取数据 初始化 读数 据结 束
启动转换
转换 结束
设计要求
自动显示当前温度。 设置温度上下限功能。 温度上下限调整可通过串行通信接口实现。 当前温度可通过串行通信接口送给计算机。 温度超限报警。

2014-6-2
设置温度上下限

具体思路
1 分s1 s2 s3三个功能键 2 调整步长为0.5度 3 通过单片机编程、按键来实现
2014-6-2
}
2014-6-2
程序代码
if(count==1) { if(add==0) { delay1(z); //延时消抖 if(add==0) { highlimt=highlimt+5; //上调设定值 } } if(sub==0) { delay1(z); //延时消抖 if(sub==0) { highlimt=highlimt-5; //下调设定值 } }
数码管显示模块
开始 初始化 P2.0=1
读P0口
P2.1=1
读P0口
P2.2=1
读P0口
结束
P2.3=1
读P0口
数码管显示流程图
相关主题