AT89C51温度传感器设计Word格式.docx

上传人:b****5 文档编号:16230757 上传时间:2022-11-21 格式:DOCX 页数:27 大小:752.09KB
下载 相关 举报
AT89C51温度传感器设计Word格式.docx_第1页
第1页 / 共27页
AT89C51温度传感器设计Word格式.docx_第2页
第2页 / 共27页
AT89C51温度传感器设计Word格式.docx_第3页
第3页 / 共27页
AT89C51温度传感器设计Word格式.docx_第4页
第4页 / 共27页
AT89C51温度传感器设计Word格式.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

AT89C51温度传感器设计Word格式.docx

《AT89C51温度传感器设计Word格式.docx》由会员分享,可在线阅读,更多相关《AT89C51温度传感器设计Word格式.docx(27页珍藏版)》请在冰豆网上搜索。

AT89C51温度传感器设计Word格式.docx

2.1.2信号调理电路的设计

实现将温度T和电阻R的对应关系转化为温度T和电压V的对应关系。

利用电桥的原理,R4的阻值变化使电桥两点的电位差改变,此两点作为运算放大器的两个输入。

2.1.3A/D采集电路的设计

实现启动、等待、采集数据。

信号调理电路的输出接0809的IN0。

0809的ALE的START连接,单片机的P2.7和WR或非后接0809的START,P2.7和RD或非后接0809的OE。

START脉冲来,A/D转换开始,以EOC作为转换完成的标志使用的是等待方式,所以EOC未连接。

2.1.4单片机电路

最小系统。

2.1.5键盘及显示电路的设计

实现键盘数据输入和温度显示。

利用四联数码管显示三位的温度值和一个‘C’代表显示的是温度。

两个键盘按键调整预设温度的高低。

2.1.6输出控制电路的设计

I/O驱动、继电器、指示灯、负载。

测得的温度值高于预设温度,红灯亮,低于则绿灯亮:

接两个发光二极管。

2.2元器件的选择

1.P89L51RD2FN

2.AD0809

3.OP07A

4.MAX232

5.驱动器ULN2003

6.四联数码管MT0546AR

7.继电器HRS2H-S-DC5V-N

8.发光二极管(红、绿色)

9.三极管9012(PNP)、9013(NPN)

11.面包板、连接线、插头座

12.周立功单片机实验箱

13.电阻200Ω×

3用于电桥,10kΩ×

2,20kΩ×

2用于减法器

2.3特殊器件的介绍

2.3.1OP07A

OP07引脚图

OP07A的特点:

超低偏移:

150μV最大。

低输入偏置电流:

1.8nA。

低失调电压漂移:

0.5μV/℃。

超稳定,时间:

2μV/month最大

高电源电压围:

±

3V至±

22V

2.3.2ADC0809

1.主要特性

1)8路8位A/D转换器,即分辨率8位。

2)具有转换起停控制端。

3)转换时间为100μs。

4)单个+5V电源供。

5)模拟输入电压围0~+5V,不需零点和满刻度校准。

6)工作温度围为-40~+85摄氏度。

7)低功耗,约15mW。

2.部结构

ADC0809是CMOS单片型逐次逼近式A/D转换器,部结构如图13.22所示,它由8路模拟

开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近,寄存器、三态输出锁

存器等其它一些电路组成。

因此,ADC0809可处理8路模拟量输入,且有三态输出能力,既可与各

种微处理器相连,也可单独工作。

输入输出与TTL兼容。

IN0~IN7:

8路模拟电压输入端,用与输入被转换的模拟电压。

D0~D7:

A/D转换后的数据输出端,

与单片机的P0口相接。

A、B、C:

模拟通道地址选择端,A为低位,C为高位。

3.A/D转换完成数据的输送

A/D转换后得到的是数字量的模拟量,这些数据应传诵给单片机进行处理。

数据串的关键是如何确定A/D转换完成。

因为只有确定数据转换完成后,才进行传送。

为此可采用以下三种方式:

定时传送方式

对于一种A时子程序。

A/D转换启动后,就调动这个子程序,延迟时间一到,转换肯定已经完成了。

接着,就可以进行数据传送A/D转换来说,转换时间作为一项技术指标是已知的和固定的。

查询方式

A/D转换芯片表明有转换完成的状态信号,例如ADC0809的E端,因此可以通过查询方式用软件测试EOC的状态,即可知道转换是否完成,若完成,则接着进行数据传送。

中断方式

中断方式ADC0809与8031的中断方式接口电路只需将0809的EOC端经过一非门连接到8031的INTl端即可。

采用中断方式可大大节省CPU的时间,当转换结束时,EOC发出一个脉冲向单片机提出中断请求,单片机响应中断请求,由外部中断1的中断服务程序读A/D结果,并启动0809的下一次转换,外部中断1采用边沿触发方式。

2.3.3ULN2003

ULN200A电路具有以下特点:

1电流增益高(大于1000);

2带负载能力强(输出电流大于500mA);

3温度围宽(-40~85℃);

4工作电压高(大于50V)。

2.3.4四联数码管(共阴)

四联数码管引脚图

2.4各单元模块的联接

2.4.1模块连接

共6个模块。

模块1:

信号调理电路:

电桥+减法器

模块2:

A/D转换器ADC0809

模块3:

单片机89C51或P89L51RD2FN

P0:

AD数据采集;

P1:

数码管段选信号(a,b,c,d,e,f,g);

P2.7:

A/D的OE;

P3.4~P3.5:

指示灯1,指示灯2;

P2.0~P2.3:

数码管位选信号(1,2,3,4);

INT0:

键+;

INT1:

键-。

模块4:

键盘输入:

连接单片机的两个外部中断。

模块5:

共阴四联数码管:

位选P2.0~P2.3,段选P1。

模块6:

控制输出:

接两个指示灯。

3软件设计

3.1开发工具及设计平台

3.1.1Proteus特点

1.Proteus软件提供数千种元器件和多达30多个元件库。

2.在Proteus软件中,理论上同一种仪器可以在一个电路中随意的调用。

3.除了现实存在的仪器外,Proteus还可以以图形的方式实时地显示线路上变化的信号。

4.虚拟仪器仪表具有理想的参数指标,可减少仪器对测量结果的影响。

5.Proteus提供了比较丰富的测试信号用于电路的测试。

这些测试信号包括模拟信号和数字信号。

3.1.2Keil特点

1.全功能的源代码编辑器;

2.器件库用来配置开发工具设置;

3.项目管理器用来创建和维护用户的项目;

4.集成的MAKE工具可以汇编、编译和连接用户嵌入式应用;

5.所有开发工具的设置都是对话框形式的;

6.真正的源代码级的对CPU和外围器件的调试器;

7.高级GDI(AGDI)接口用来在目标硬件上进行软件调试以及和Monitor-51进行通信。

3.1.3部分按键

设定温度与实际温度间的切换数据的显示

3.1.4C代码编写

#include<

reg51.h>

#include"

absacc.h"

bitflag;

//采样标志

unsignedcharcountor;

//定时器定时的循环标志

unsignedcharg,s,b,i;

unsignedcharQ=3,p=0;

//设置预设温度

unsignedcharm,n;

sbitP34=P3^4;

sbitP35=P3^5;

sbitP30=P3^0;

//为蜂鸣器提供一定频率的方波

voidDisplaySecond(unsignedchars,b);

//数码管显示函数的声明

voiddelay(void);

//延时函数的声明

floata,result=0,result1=0,T;

/*数码管动态显示*/

unsignedcharTab[]={

0x3F,//"

0"

0x06,//"

1"

0x5B,//"

2"

0x4F,//"

3"

0x66,//"

4"

0x6D,//"

5"

0x7D,//"

6"

0x07,//"

7"

0x7F,//"

8"

0x6F,//"

9"

0x39,//"

C"

};

/*定时器T0定时*/

voidt0_ser()interrupt1using1

{TL0=0xF0;

TH0=0xD8;

P30=!

P30;

//蜂鸣器产生的方波

countor++;

if(countor==10)//循环10次达到定时0.1秒

{countor=0;

flag=1;

}//定时时间到,置采样标志为1,进行采样

}

/*采样函数*/

voidsamp()

{

unsignedintc;

XBYTE[0x7FF8]=0;

//进行一个写操作,启动A/D转换

delay();

a=XBYTE[0x7FF8];

//将A/D转换的结果保存为变量a

result=a*5/256;

//将A/D转换结果换算成十进制数

if(result>

0.524&

&

result<

1.940)

{T=10.3*result+9.35;

elseif(result>

1.940&

3.720)

{T=16.99*result-4.68;

}

3.720&

4.302)

{T=37.60*result-80.86;

}//把电压转换为温度

c=T;

g=c/100;

//显示温度的百位

s=c/10;

//显示温度的十位

b=c%10;

//温度的个位

m=Q*10+p;

//预设温度

n=s*10+b;

//实际温度

if(n>

m)

{P35=1;

P34=0;

else{P35=0;

P34=1;

}//当实际温度大于预设温度时,红灯亮,反之绿灯亮

/*外部中断0,预设温度加一*/

voidint0_ser()interrupt0using0

if(INT0==0)

{p++;

if(p==10)

{Q++;

p=0;

for(i=0;

i<

50;

i++)

DisplaySecond(Q,p);

/*外部中断1,预设温度减一*/

voidint1_ser()interrupt2using2

if(INT1==0)

{p--;

if(p==0)

{Q--;

p=9;

voidmain()

{TMOD=0x01;

//定时器工作方式

TL0=0xF0;

//定时器初值

ET0=1;

//定时器中断开放

EA=1;

//总允许

TR0=1;

//启动定时器T0

EX1=1;

//外部中断1开放

EX0=1;

//外部中断0开放

PX0=1;

//外部中断0优先级置高

PX1=1;

//外部中断1优先级置高

IT0=1;

//外部中断0为边沿触发方式

IT1=1;

//外部中断1为边沿触发方式

while

(1)

{if(flag)

{flag=0;

samp();

}//采样标准为1时,调用采样函数进行采样

DisplaySecond(s,b);

//延时函数

voiddelay(void)

{

unsignedintj;

for(j=0;

j<

100;

j++);

}

//数码管动态显示函数

voidDisplaySecond(unsignedchars,b)

P2=0xf1;

//数码管1亮

P1=Tab1[g];

P2=0xf0;

P2=0xf2;

//数码管2亮

P1=Tab1[s];

P2=0xf4;

//数码管3亮

P1=Tab1[b];

P2=0xf8;

//数码管4亮

P1=0x39;

//显示C

4系统测试

4.1温度与电阻的关系:

4.2温度与电压的关系:

4.3温度分段与电压的拟合曲线:

(11℃到24℃)

4.4温度分段与电压的拟合曲线:

(25℃到35℃)

4.5温度分段与电压的拟合曲线:

(36℃到48℃)

4.6温度分段与电压的拟合曲线:

(49℃到64℃)

4.7温度分段与电压的拟合曲线:

(65℃到80℃)

5小结和体会+

这次的电子系统综合设计在理论上不仅用到了单片机的知识,还用到了模电的知识。

然而理论必须联系实际。

在这次的元器件的选择上不仅考虑了其适用功能,还要考虑元件的适用环境。

就像ULN2003APG是用来驱动四位共连数码管的位选与段选的:

因为单片机出来的电流太小,就算能驱动数码管,但数码管的亮度会比较低。

实践总是能帮助理论知识的学习。

通过这次系统设计,我理解了一些以前在理论课上没有注意到的问题:

1.A/D转换中XBYTE[0x7ff8]=0,这句程序是用来给单片机的WR口提供信号,再通过或非门后将信号传给ADC0809的START端,用来启动A/D转换;

2.在单片机与A/D转换的连接方法上有了更多的了解。

三种连接方式:

中断方式、查询方式、延时等待。

其中,中断方式为EOC接非门;

查询方式为EOC接到单片机的任一接口,不断查询if(EOC==1);

延时等待为EOC悬空,估计A/D转换的时间。

3.对一些管脚的认识更加深刻:

OE=“1”时,读取信号;

在平时OE为低电平;

4.继电器的连接与功能问题;

通过这次系统设计,知道了许多设计系统的方法,熟悉了系统设计的一般步骤。

在搭建电路后的原件选择上考虑的方面更加广了。

设计程序时的思路也比以前更加宽了。

在这次的设计中可以是预置温度的显示更加人性化。

在按键按一次后就显示预置温度,接着再按则开始加减预置温度;

在调节预置温度时不要显示当前温度;

等调节好后,再显示当前温度。

6参考文献

[1]胡宴如,耿燕.模拟电子技术基础.:

高等教育,2004.213-216.

[2]闫玉德,龙,俞虹.单片机微型计算机原理与设计.中国电力,2010.112-154,197-199,.

[3]朱蕴璞.传感器原理与应用.国防工业.

[4]黄锦安.电路.:

机械工业,2007.

附录:

系统原理图:

软件仿真图:

信号调理电路

控制电路图

AD采集电路与单片机电路

数码管显示图

系统连接图

代码

unsignedcharTab1[]={

0x77,//"

A"

0x7C,//"

B"

0x5E,//"

D"

0x79,//"

E"

0x71,//"

F"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1