温度传感器设计报告Word文档下载推荐.docx
- 文档编号:22023525
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:15
- 大小:32.36KB
温度传感器设计报告Word文档下载推荐.docx
《温度传感器设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《温度传感器设计报告Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
封装形式2
图4:
封装形式4(此次采用的封装)
3、单片机AT89C51
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
功能特性概述:
AT89C51提供以下标准功能:
4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
引脚功能说明:
1、Vcc:
电源电压
2、GND:
地
3、P0口:
P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在FIash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
4、P1口:
P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
FIash编程和程序校验期间,P1接收低8位地址。
5、P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。
Flash编程或校验时,P2亦接收高位地址和其它控制信号。
6、P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
作输入端时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表所示:
图5
P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
7、RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
8、ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
即使不访问外部存储器,ALE仍以时钟振荡频率的l/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对Flash存储器编程期间,该引脚还用于输入编程脉(PROG
)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的DO位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令ALE才会被激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。
9、PSEN:
程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。
在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。
10、EA/VPP:
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
11、XTAL1:
振荡器反相放大器的及内部时钟发生器的输入端。
12、XTAL2:
振荡器反相放大器的输出端。
图6AT89C51引脚图
4、ADC0809介绍
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转换器、逐次逼近
3).外部特性(引脚功能)
图7ADC0809引脚图
ADC0809芯片有28条引脚,采用双列直插式封装,如图13.23所示。
下面说明各引脚功能。
IN0~IN7:
8路模拟量输入端。
2-1~2-8:
8位数字量输出端。
ADDA、ADDB、ADDC:
3位地址输入线,用于选通8路模拟输入中的一路
ALE:
地址锁存允许信号,输入,高电平有效。
START:
A/D转换启动信号,输入,高电平有效。
EOC:
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
REF(+)、REF(-):
基准电压。
Vcc:
电源,单一+5V。
GND:
地。
ADC0809的工作过程是:
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
三、原理图
1、温度采集模块
图8温度采集模块
2、单片机控制及AD转换模块
图9单片机控制及AD转换模块
3、显示模块
图9显示模块
4、报警模块
图10报警模块
5、电源模块
图11电源模块
6、总电路原理图
图12-1总电路原理图①
图12-2电路总原理图②
四、PCB图
图13-1PCB封装图①
图13-2PCB封装图②
五、程序
#include<
reg51.h>
sbitCLK=P2^2;
sbitLED_Red=P2^6;
sbitBee=P2^5;
sbitLED_Green=P2^7;
sbitON=P1^0;
sbitCLK_164=P2^0;
sbitDATA_164=P2^1;
sbitST=P3^5;
sbitEOC=P3^7;
sbitOE=P3^6;
sbitPinA=P3^0;
sbitPinB=P3^1;
sbitPinC=P3^2;
sbitS1=P1^1;
sbitS2=P1^2;
unsignedcharcodea[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsignedcharb[]={0x76,0x38,0x3f,0x71,0x73};
unsignedintt1,t2,tp1,tp2,tp,i,g,f,z,h=30,l=10;
longdelay()
{
for(g=0;
g<
32600;
g++);
}
delayz()
delayf()
for(f=0;
f<
2600;
f++);
voiddelay(unsignedintt)
unsignedchark;
while(t--)
for(k=0;
k<
125;
k++);
voidwrite164(unsignedcharn)
unsignedchari,tmp;
for(i=0;
i<
8;
i++)
tmp=n;
DATA_164=tmp&
0x80;
CLK_164=0;
delayz();
n<
<
=1;
CLK_164=1;
voidInitIO()
P0=0xff;
PinA=0;
PinB=0;
PinC=0;
ST=1;
OE=1;
EOC=1;
voidLongDelay(unsignedinti)
unsignedintj;
for(;
i>
0;
i--)
{for(j=100;
j>
j--);
}
voidStartADC(unsignedcharAddress)
PinC=(bit)(Address&
0x04);
PinB=(bit)(Address&
0x02);
PinA=(bit)(Address&
0x01);
ST=0;
LongDelay(5);
unsignedintReadData(void)
unsignedinttemp;
while(!
EOC);
OE=0;
delay(4);
temp=P0&
0xff;
return(temp);
voidmain(void)
write164(b[3]);
write164(b[2]);
while(ON==1);
while(ON==0);
TMOD=0x02;
EA=1;
ET0=1;
TH0=0xFE;
TL0=0xFE;
InitIO();
TR0=1;
while
(1)
write164(a[h%10]);
write164(a[h/10]);
write164(b[0]);
longdelay();
write164(a[l%10]);
write164(a[l/10]);
write164(b[1]);
if(S1==0)
write164(a[tp1%10]);
write164(a[tp1/10]);
write164(a[1]);
while(S1==1);
while(S1==0);
if(S2==0)
{
write164(a[tp2%10]);
write164(a[tp2/10]);
write164(a[2]);
while(S2==1);
while(S2==0);
StartADC(0);
t1=ReadData();
tp1=(t1*100/255);
StartADC
(1);
t2=ReadData();
tp2=(t2*100/255);
tp=(tp1+tp2)/2;
write164(a[tp%10]);
write164(a[tp/10]);
write164(b[4]);
if(tp>
h)
{
LED_Red=0;
Bee=0;
delayf();
Bee=1;
}
elseif(tp<
l)
LED_Green=0;
else
LED_Red=1;
LED_Green=1;
Bee=1;
voidINTT0()interrupt1
CLK=~CLK;
六、实物展示
1、完成品
图14
图15
2、接电展示
图14-1接电实际展示
图14-2接电实际展示
图14-3接电实际展示
图14-4调节展示
七、元器件清单
八、总结
通过对温度传感器的设计和制作,我觉得自己学习到了很多,我对温度传感器的结构与原理有了很好的理解,知道了AT89C51,LM35,LM324等芯片的基本应用和原理,并能进行一些简单的使用。
加深了对数字电路的认识和理解,能将过去学到的理论知识进行运用。
再次,加强了对PROTEL等软件的应用。
在焊接电路板过程中,加强了焊接技术,以及加强我的细心和耐心。
电路板焊接要求很高,不能出错。
这点很重要。
在学习过程中,我得到了同学和老师的很多帮助,再次,对他们表示衷心的感谢,学习是要互帮互助的,这样可以共同进步。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 温度传感器 设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)