电子信息工程课程设计温度测量系统设计.docx
- 文档编号:27163443
- 上传时间:2023-06-27
- 格式:DOCX
- 页数:15
- 大小:550.11KB
电子信息工程课程设计温度测量系统设计.docx
《电子信息工程课程设计温度测量系统设计.docx》由会员分享,可在线阅读,更多相关《电子信息工程课程设计温度测量系统设计.docx(15页珍藏版)》请在冰豆网上搜索。
电子信息工程课程设计温度测量系统设计
1.课程设计要求
利用LM35D实现了局部温度范围的监测。
即利用电压型温度传感器LM35D采集室温并产生10mv/℃的电压信号;采用A/D转换器将放大后的模拟信号转化为数字信号;实时显示转换后的室温;通过单片机实现高温,低温报警。
经实验调试,用该方法对0-100℃范围温度测温时,测量误差为+0.4℃。
LM35D是精度集成的电路温度传感器,线性好(10Mv/℃),宽量程(0℃-100℃),它的输出电压与摄氏温度线性成比例,无需外部校准或微调来提供±0.4的常用的室温精度,编程时易于实现。
LM35D采集到的微弱电压信号经过放大器OP07放大十倍后送入A/D转换器(ADC0809)的输入端,ADC0809将模拟信号转化为数字信号后传给8051,选用4个共阴极8段数码显示管用于静态显示当前测量温度。
用单片机RXD和TXD外接74LS164移位寄存器驱动数码管,使LED八段数码管动态显示室温。
2.方案比较
方案一采用8031作为控制核心,以使用最为普遍的器件ADC0809作模数转换,控制上使用对电阻丝加电使其升温和开动风扇使其降温。
此方案简易可行,器件的价格便宜,但8031内部没有程序存储器,需要扩展,增加了电路的复杂性,且ADC0809是8位的模数转换,不能满足本题目的精度要求。
方案二采用比较流行的AT80C51作为电路的控制核心,AT80C51不但与8051,8052指令,管脚完全兼容,而且其片内的程序存储器采用FLASH工艺,用户可以用电的方式瞬间擦除、改写。
AT80C51单片机还支持在线编程,用户通过简单的电路连接就可以将电脑里的程序下载到单片机中,减少调试程序时不断拆卸和插入给芯片带来的损坏。
此外AT80C51单片机有8KB的程序存储器和256B的数据存储器,不需外部扩展存储芯片,可以降低硬件电路的复杂度。
此方案电路简单并且可以满足题目中的各项要求的精度。
综上所述,我们选择方案二。
3.单元电路设计
1温度采集电路
(1)电压型温度传感器LM35D
LM35D输出电压正比摄氏温度成正比,其灵敏度为10mV/℃;温度范围0℃-100℃;电压为4-30V,可直接用温控电路的电源,但要加一个隔离二极管及平滑电容C;精度为±1℃;最大线性误差为±0.5℃;静态电流为80uA;输出电压接数字万用表2V直流电压档,可读出分辨率为0.1℃的温度读数。
如表上读数为28mV,即温度为28.7℃。
该传感器的最大特点是使用时无需外围元件,也无需调试和校正(标定),把测温传感器与放大电路做在一个硅片上,形成一个集成温度传感器。
(2)放大电路
图1为系统的放大电路部分。
LM35D灵敏度为10mV/℃,如果室温为26℃,那么经LM35D采集室温后得到的电压信号为0.26mV,将此信号在整个硬件系统和软件系统中放大100倍,之后将其送入驱动电路,即可在LED数码管上显示室温。
LM35D的输出端经过15k的电阻和10uF的电容可使采集到的与温度成比例(10mV/℃)的电压信号更稳定;在放大电路中,取R6为1K是因为好计算放大倍数,R5用20K的滑动变阻器使这个0.26mV的微弱电压信号在0—20的放大倍数范围内可调试,在此,将其放大5倍。
放大电路如图2-1所示:
图2-1放大电路
2A/D转换电路由ADC0809来完成。
ADC0809的引脚功能如下:
ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。
它是逐次逼近式A/D转换器,可以和单片机直接接口。
ADC0809的引脚结构图如图2-2所示:
图2-2ADC0809的引脚结构图
IN0-IN7:
8条模拟量输入通道
ADC0809对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:
4条
ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
通选择表如下表所示。
表2-1通道选择表
C
B
A
选择的通道
0
0
0
IN0
0
0
1
IN1
0
1
0
IN2
0
1
1
IN3
1
0
0
IN4
1
0
1
IN5
1
1
0
IN6
1
1
1
IN7
数字量输出及控制线:
11条
ST为转换启动信号。
当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。
EOC为转换结束信号。
当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。
OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。
D7-D0为数字量输出线。
CLK为时钟输入信号线。
因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,
VREF(+),VREF(-)为参考电压输入。
ADC0809与8051的接线图如图2-3所示:
图2-3ADC0809与8051的接线图
38051单片机是ROM型单片机,内部有4KB的掩膜ROM,即单片机生产厂家固化在程序存储器中,8051单片机具有如下特性:
(1)面向控制的8位CPU;
(2)128B的片内数据存储器;
(3)可以寻址64KB的片外程序存储器和64KB的片外数据存储器;
(4)32根双向和可单独寻址的I/O线;
(5)一个全双工和可单独寻址的I/O线;
(6)两个16位定时/计数器;
(7)5个中断源,两个中断优先级;
(8)有片内时钟振荡器;
(9)采用高性能的HMOS生产工艺生产;
(10)有布尔处理(位操作)能力。
(11)含基本指令111条,其中单机器周期指令64种
4.4位数字显示系统
图2-5是静态显示电路示意图。
静态显示是LED数码管的各个段都与一个固定驱动端相连接,每个数码管有七段,N个数码管就有7N固定固定驱动端与其相连接。
图中外接74LS164移位寄存器对应于各个数码管。
8051的串行口设定为方式0输出。
由于被显示的字形是以字形码的形式出现。
因此,首先在程序中要建立一个字形表SEGPT。
该表以16进制数的次序,存放其相应字形码,把表格的首地址SEGPT,送入基址寄存器DPTR,把要显示的数作为偏移量送入变址寄存器A,然后执行查表指令MOVCA,@A+DPTR,从表中取出对应字符的字形码送到累加器。
另外,还要开辟一个显示缓冲区DISMO-DISMN,缓冲区中每个单元对应一个LED数码管。
显示子程序的作用就是依次将显示缓冲区中的内容(16进制数据)取出,并查表变换成要显示字符的字形码,送往数码中显示。
因此,凡是需要调整、更新显示内容时,必须先向显示缓冲区的单元送数,然后再调用显示子程序。
图2-5所示的静态显示电路是使用串行口的静态LED驱动接口。
利用串行口和移位寄存器作为显示器的驱动接口,可以简化设计,节省CPU的显示接口。
在图2-5中,串行接口工作于方式0。
RXD作为输出端接到移位寄存器74LS164的两个输入端A和B,前一个移位寄存器的输出端也与下一个移位寄存器74LS164的A、B相连,这样首尾相接,直到传送4位显示数为止。
当显示完以后,先送出的数显示在最右端,最后送出的数显示在最左边一位,所以在显示缓冲区存数时要特别注意。
图2-5静态显示电路示意图
在单片机的程序调试和运行时,有时需要用复位键进行复位,正确的复位是单片机得以正常远行的前提。
所以复位电路是单片机系统必不可少的一部分。
此处,复位电路如图2-6所示。
图2-6复位电路
4.元件选择
8051单片机的引脚图如图2-4所示:
1、主电源引脚Vcc和Vss
Vcc(40脚):
主电源接+5V
Vss(20脚):
接地
2、时钟电路引脚XTAL1和XTAL2
XTAL2(18脚):
接外部晶体振荡器的一端。
片内是
图2-48051的引脚图
一个振荡电路反相放大器的输出端。
XTAL1(19脚):
接外部晶体振荡器的另一端。
片内是一个振荡电路反相放大器的输入端。
3、控制信号RST/Vpd、ALE/(/PROG)、(/EA)/Vpp和/PSEN
RST/Vpd(9脚):
复位端。
高电平有效,宽度在24个时钟周期宽度以上,使单片机复位。
该引脚有复用功能,Vpd为备用电源输入端,防止主电源掉电。
ALE/(/PROG)(30脚):
地址锁存信号端。
访问片外存贮器时,ALE作低八位地址的锁存控制信号。
平时不访问片外存贮器时,该端以六分之一的时钟振荡频率固定输出脉冲。
ALE端负载驱动能力为8个LSTTL门。
该引脚有复用功能,为片内程序存贮器编程(固化)的编程脉冲输入。
5.整体电路
图2-84路温度采集与显示系统的整机电路
6.电路工作原理
LM35D输出电压正比摄氏温度成正比,其灵敏度为10mV/℃;温度范围0℃-100℃;电压为4-30V,可直接用温控电路的电源,但要加一个隔离二极管及平滑电容C;精度为±1℃;最大线性误差为±0.5℃;静态电流为80uA;输出电压接数字万用表2V直流电压档,可读出分辨率为0.1℃的温度读数。
LM35D灵敏度为10mV/℃,如果室温为26℃,那么经LM35D采集室温后得到的电压信号为0.26mV,将此信号在整个硬件系统和软件系统中放大100倍,之后将其送入驱动电路,即可在LED数码管上显示室温。
LM35D的输出端经过15k的电阻和10uF的电容可使采集到的与温度成比例(10mV/℃)的电压信号更稳定;在放大电路中,取R6为1K是因为好计算放大倍数,R5用20K的滑动变阻器使这个0.26mV的微弱电压信号在0—20的放大倍数范围内可调试,在此,将其放大5倍,因此需要将R5调至10K,这样经放大器OP07放大后的6脚输出就为放大十倍的电压信号2.6V。
ADC0809对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
8051的串行口设定为方式0输出。
由于被显示的字形是以字形码的形式出现。
因此,首先在程序中要建立一个字形表SEGPT。
7.困难问题及解决措施
拿8051单片机来说,没有弄明白其工作原理具体工作情况和并没有完全了解了A/D转换的实质,对DS18B20温度传感器不了解等问题。
8051单片机:
自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。
程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。
温度传感器DS18B20:
是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
以上特点使DS18B20非常适用于远距离多点温度检测系统。
8.总结与体会
此次课程设计中我投入了极大的热情和精力,使用proteus设计电路,并运用所学的汇编语言知识编程,其过程中出现了不少的问题,我没有气馁,没有退缩,积极向老师和同学请教,并且一遍又一遍的重复实践,直到我们期望的结果实现。
事实也证明我们的努力没有白费,认真严谨的实习态度给我们带来了成功的喜悦!
通过这短短一周的实践,我感觉到自己在课本上学到的理论知识和实践仍有一定的差距。
有的知识,自己感觉已经掌握得差不多了,但是实际操作起来就有问题出现了。
就拿8051单片机来说,没有弄明白其工作原理具体工作情况和并没有完全了解了A/D转换的实质,对DS18B20温度传感器不了解等问题。
我们还遇到了不少,花费了很多的时间。
这让我们重新反思我们的学习,觉得这与自己当时不注意实验课是分不开的。
通过这次单片机课程设计,我们掌握了设计一个4路温度采集与显示系统的基本方法和基本步骤,实际解决了设计中出现的问题,增强了寻找问题,解决问题的能力。
此次单片机设计的成功不仅帮助我们更好地掌握书本知识,尤其重要的是增强了我们的自信,培养了我们独立思考的能力!
9.致谢
最后特别要感谢我们的指导老师——席老师为我提供了大力的支持,全程支持我的制作,给我耐心的指导。
还要感谢在制作过程中帮助过我们的同学们,没有他们,我可能会走很多弯路,始终在精神上鼓励我,可以说他们都是我们最终成功的力量。
10.参考文献
[1]梅丽凤,王艳秋,汪毓铎.单片机原理及接口技术.北京:
清华大学出版社,2003,5
[2]余永泉,李小青,陈康林.单片机应用系统的功率接口技术.北京:
北京航空航天大学出版社,1992,9
[3]宋浩,田丰.单片机原理及应用.北京:
清华大学出版社,北京交通大学出版社,2005
[4]张建民,杨旭.利用单片机实现温度检测系统.微计算机信息(嵌入式与SOC).2007
(2):
98-100
11.程序设计
1这个系统只显示0℃-100℃温度的整数部分,整个系统的程序设计如下:
ORG0000H;
MOVR0,#22H;将显示缓存器首地址送入@R0
MOV@R0,#A1H;
INCR0;
MOV@R0,#FFH;
INCR0;
MOV@R0,#FFH;
LJMPDISPLAY;
LJMPDELAY;
LJMPDISPLAY;调用显示子程序,显示系统正常运行
MOV55H,#01H;将几路传感器工作送入22H单元
SET:
LJMPSTART;调用A/D转换程序
MOV22H,55H;显示几路传感器工作
MOV@R0,22H;
INCR0;
MOV@R0,#FFH;
INCR0;
MOV@R0,#FFH;
MOVA,55H;
INCA;
MOV55H,A;
LJMPDISPLAY;显示几路传感器工作
MOVDPTR,30H;
MOVXA,@DPTR;
LJMPDATA;调用十进制转换子程序
INCDPTR;
LJMPDISPLAY;调用显示子程序
DJNZ55H,#04H,SET;四路全部显示完成后重新显示第一路
LJMPSET;
END
2十进制转换子程序
DATA:
MOVDPTR,30H
MOVXA,@DPTR;
MOVB,#64H;
DIVAB;
MOV24H,A;百位数进24H
MOVA,B;
MOVB,#0AH;
DIVA,B;
MOV23H,A;十位数进23H
MOVA,B
MOV22H,A;个位数进22H
RET
3显示子程序
DISPLAY:
ORG60H
DISB:
DS3;示缓冲区3字节
ORG1000H
DSP:
MOVR7,#3;数位计数器值为3
MOV@R0,22H;R0指向显示器缓冲区首址
MOVA,@R0;取要显示的数据
ADDA,@0AH;加上到SGTAB的偏移量
MOVCA,@A+PC;字型的段码
MOVSBUF,A;送串行口输出
DSP2:
JNBTI,DSP2;等待输出结束
CLRTI;输出结束清TI标志
INCRO;指向显示缓冲区下一位
DJNZR7,DSP1;未显示完3为则循环
RET;显示完则返回
SGTAB:
DB08H;0
DB9FH;1
DB25H;2
DB0DH;3
DB99H;4
DB49H;5
DB41H;6
DB1FH;7
DB01H;8
DB19H;9
DBA1H;H
DBFFH;暗字符
4延时子程序,因为系统不需要精度太高的延时,所以使用这个延时子程序。
DELAY:
DEL:
MOVR5,#100;延时0.5s
DEL1:
MOVR7,#125;
DEL2:
MOVR6,200;
DEL3:
DJNZR6,DEL3;
DJNZR7,DEL2;
DJNZR5,DEL;
RET
5A/D转换程序
START:
MOVR0,#30H;RAM缓冲区地址置初值
MOVR6,#04H;通道计数器置初值
MOVR7,#04H;循环计数器置初值
CONV1:
MOVDPTR,#0FE8H;通道地址寄存器置初值
CONV2:
MOV@DPTR,A;启动A/D转换
MOVR5,#0AH;等待延时
DLX:
DJNZR5,DLX;
WAIT:
JBP3.3,WAIT;等待A/D转换结束
MOVXA,@DPTR;读取A/D转换结果
MOV@R0,A;保存A/D转换结果
INCR0;修改存储单元地址
INCDPTR;指向下一通道
DJNZR6,CONV2;8个通道全完否?
MOVR6,#03H
DJNZR7,CONV1;8次A/D转换完成否?
ACALLDATADSB;数据的数字处理
RET
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子信息工程 课程设计 温度 测量 系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)