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

上传人:wt****50 文档编号:54682927 上传时间:2018-09-17 格式:PPTX 页数:51 大小:2.26MB
返回 下载 相关 举报
单片机基于51单片机的温度传感器设计_第1页
第1页 / 共51页
单片机基于51单片机的温度传感器设计_第2页
第2页 / 共51页
单片机基于51单片机的温度传感器设计_第3页
第3页 / 共51页
单片机基于51单片机的温度传感器设计_第4页
第4页 / 共51页
单片机基于51单片机的温度传感器设计_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《单片机基于51单片机的温度传感器设计》由会员分享,可在线阅读,更多相关《单片机基于51单片机的温度传感器设计(51页珍藏版)》请在金锄头文库上搜索。

1、小组成员 22011311 刘森林 22011312 俱子研 22011313 孙业飞,基于AD590温度显示器设计,设计要求,自动显示当前温度。 设置温度上下限报警功能。 温度上下限调整可通过串行通信接口实现。 当前温度可通过串行通信接口送给计算机。 温度超限报警。,总体方案,系统以51单片机为控制核心,加上AD590测温电路、ADC0809模数转换电路、温度数据显示电路以及外围电源等组成。 利用AD590集成温度传感器及其接口电路完成温度的测量并转换成模拟电压信号。经由模数转换器ADC0809转换成单片机能够处理的数字信号,然后送到单片机中进行处理变换,最后将温度值显示在LED显示器上。,

2、硬件原理图,AT89C51,AD590 测温电路,ADC0809 模数转换,温度显示,超量程报警,按键控制,电源及复位电路,整体电路图,系统模块介绍,AD590及外围电路,温度传感器AD590,温度转换为电流。 线性度优良、性能稳定。 每增加1,它会增加1A输出电流。 可测量范围-55至150。 供电电压范围+4V至+30V。,1脚接VCC 2脚接电流输出端 3脚一般不用,温度传感器AD590,AD590温度与电流关系,AD590模块,电阻选用9.6K 滑动变阻器选用1K 通过微调使得总电阻精确到10K,AD590模块,选用运放741做电压跟随器,提高输入阻抗。 仿真时,用滑动变阻器改变电压,

3、模拟实际中的温度变化。,放大电路,741放大器为运算放大器中最常被使用的一种,拥有反相向与非反相两输入端,由输入端输入欲被放大的电流或电压信号,经放大后由输出端输出。放大器作动时的最大特点为需要一对同样大小的正负电源,其值由12Vdc至18Vdc不等,这里使用15Vdc的电压。,放大电路,7脚、4脚分别接正负15V; 3端输入,6端输出; 构成电压跟随器。,ADC0809模数转换,ADC0809,ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

4、,ADC0809,主要特性: 8路输入通道,8位A/D转换器,即分辨率为8位。 具有转换起停控制端。 转换时间为100s(时钟为640KHz时),130s(时钟为500KHz时)。 单个+5V电源供电。 模拟输入电压范围0+5V,不需零点和满刻度校准。 工作温度范围为-40+85摄氏度。 低功耗,约15mW。,ADC0809内部结构,ADC0809各脚功能,D7-D0:8位数字量输出引脚。 IN0-IN7:8位模拟量输入引脚。 VCC:+5V工作电压。 GND:地。 REF(+):参考电压正端。 REF(-):参考电压负端。,ADC0809各脚功能,START:A/D转换启动信号输入端。 AL

5、E:地址锁存允许信号输入端。 (以上两种信号用于启动A/D转) A、B、C:地址输入线,ADC0809各脚功能,EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。 OE:输出允许控制端,用以打开三态数据输出锁存器。 CLK:时钟信号输入端(一般为500KHz)。,通道选择,当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进入转换器进行转换。,ADC0809应用说明,(1) ADC0809内部带有输出锁存器,可以与51单片机直接相连。 (2) 初始化时,使ST和OE信号全为低电平。 (3)送要转换的哪一通道的地址到

6、A,B,C端口上。 (4) 在ST端给出一个至少有100ns宽的正脉冲信号。 (5) 是否转换完毕,我们根据EOC信号来判断。 (6) 当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。,ADC0809电路连接,电压输入选择IN0通道 转换数据从OUT1OUT7口输出至单片机的P1口 START与ALE一起接P3.0 OE接P3.1 CLOCK接P3.3 A、B、C三条地址线接单片机的P3.4 P3.5 P3.6,ADC0809模块,软件实现,*函数:ADC0808初始化 void ADC_Init(void) ST=1; P34=0; P35=0; P36=0; /选择地

7、址IN1(CBA=000) ST=0; /ST为转换启动信号 EOC=1; /转换结束信号。高电平时,表明转换结束 OE=0; /输出允许信号。OE1,输出转换数据 ,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; ,*函数:触发ADC0808开始转

8、换并读取数值,单片机及数码管显示,单片机以及数码管显示,AT89C51单片机模块,80C51单片机介绍,80C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,可提供以下标准功能:4K 字节闪存,128字节内部RAM,32个I/O口线,两个16位定时计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,80C51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。,引脚图,引脚

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

10、拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(输入或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器获16位地址的外部数据存储器(例如执行 MOVX DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行 MOVX RI指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。,引脚介绍,P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(输入或输出)4个T

11、TL逻辑门电路。对P3口写入“1”时,他们被内部上拉电阻拉高并可作为输入口。此时,被外部拉低的P3口将用上拉电阻输出电流。 RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。 ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对输出时钟信号或用于定时。要注意的是:当访问外部数据存储器时将跳过一个ALE脉冲。闪存编程期时,该引脚还用于输入编程脉冲。,引脚介绍,PSEN:程序存储允许输出是外部程序存储器的读选通信号,当80

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

13、00.0100.0 * 返回值:无 */ void display(uint dat) uchar dispbuf4; dispbuf3=dat/1000; P0=dispbitcodedispbuf3; P20=0; P21=1; P22=1; P23=1; delay_ms(2); P0=0x00;,数码管动态显示代码部分,dispbuf2=dat/100%10; P0=dispbitcodedispbuf2; P20=1; P21=0; P22=1; P23=1; delay_ms(2); P0=0x00; dispbuf1=dat/10%10; P0=dispbitcodedispbu

14、f1; P07=1; P20=1; P21=1; P22=0; P23=1; delay_ms(2); P0=0x00; ;,数码管动态显示代码部分,按键及报警模块,设计要求,自动显示当前温度。 设置温度上下限功能。 温度上下限调整可通过串行通信接口实现。 当前温度可通过串行通信接口送给计算机。 温度超限报警。,设置温度上下限,具体思路,2018/9/17,1 分s1 s2 s3三个功能键 2 调整步长为0.5度 3 通过单片机编程、按键来实现,硬件连接图,2018/9/17,2018/9/17,void delay(unsigned int i) char j; for(i; i 0; i-

15、) for(j = 200; j 0; j-); ,void sett() / 标志位 if(set=0) / 按下 delay1(z); /延时消抖 if(set=0) count+; / count=1 设置上限温度 count=2 设置下限温度 count=0 正常显示温度 ,程序代码,2018/9/17,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; /下调设定值 ,程序代码,2018/9/17,小结1,长按按键,会“一直做出反应”,优点: 便于迅速进行大范围的调节 缺点: 增大调节到某一精确值的难度,温度超限报警,具体思路,2018/9/17,1 用LED灯和蜂鸣器共同实现报警功能 2 用软件程序实现单片机输出控制信号 3 搭建外围电路,实现信号对报警器的控制,硬件连接图,2018/9/17,2018/9/17,程序代码,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 机械理论及资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号