单片机智能仪器设计温度测量显示报告.docx
- 文档编号:1933003
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:15
- 大小:596.66KB
单片机智能仪器设计温度测量显示报告.docx
《单片机智能仪器设计温度测量显示报告.docx》由会员分享,可在线阅读,更多相关《单片机智能仪器设计温度测量显示报告.docx(15页珍藏版)》请在冰点文库上搜索。
单片机智能仪器设计温度测量显示报告
辽宁科技学院
智能仪器设计基础课程设计
温度测量显示报警
院系:
专业:
班级:
姓名:
学号:
指导老师:
1.设计要求:
热电阻温度设计:
①温度传感器铂PT100
2显示温度数值,精度0.1C
3温度超限报警
2.方案设计:
方案说明:
本设计的采用STC89C5为核心,DA0804数据采集。
将外部的模拟信号经过A/D(ADC0804转换后送给单片机STC89C52进行处理。
处理后将显示数据传送给数码管显示。
在到达设定的报警温度时进行报警。
温度测量显示报警是通过铂电阻的阻值随温度的变化而变化,将阻值的变化
通过电桥电路转化成电压变化,用运放把电压放大到AD可以接受的范围,AD将
电压信号转换成数字信号传输到单片机,经过单片机处理,将温度数值显示到七
段数码管上。
当温度大于80C时蜂鸣器进行报警提示。
3.硬件设计:
3.1单片机及其最小应用系统
STC89C52是一个高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口。
各引脚的功能如下:
Vss(20):
接地。
Vcc(O):
接+5V电源。
XTAL1(19)和XTAL2(18):
在使用单片机内部振荡电路时,这两个端子用来外接石英晶体和微调电容。
如图3.1所示,本硬件图使用11.0592MHz石英晶振。
RST/Vd(9):
RST是复位信号输入端。
当此输入端保持两个机器周期(24
个振荡周期)的高电平时,就可以完成复位操作。
ALE/PROG(30):
ALE是地址锁存允许信号,在访问外部存储器时,用来锁存由P0口送出的低8位地址信号。
在不访问外部存储器时,ALE以振荡频率1/6
的固定速率输出脉冲信号。
因此它可用作对外部输出脉冲信号。
因此它可用作对
外输出的时钟。
但要注意,只要外接有存储器,ALE端输出的就不再是连续的周
期脉冲信号。
PSEN(29):
它是外部程序存储器ROM的读选通信号。
在执行访问外部ROM指令时,会自动产生PSEN信号;而在访问外部数据存储器RAM或访问内部ROM时,不产生PSEN言号。
EA/Up(31):
访问外部存储器的控制信号。
当EA为高电平时,访问内部程序存储器;但当程序计数器PC的值超过0FFFH(对8051/80C51/8751)或1FFFH(对8052)时,将自动转向执行外部程序存储器内的程序。
当EA保持低电平时,
只访问外部程序存储器,不管是否有内部程序存储器。
第二功能Vpp为对8751片
内EPROI的21V编程电源输入。
P0.0~P0.7(39~32):
双向I/O口P0。
第二动能是访问外部存储器时,可分时用作低8位地址和8位数据线;在对8751编程和效验时,用于数据的输入/输出。
P0口能以吸收电流的方式驱动8个LS型TTL负载。
P1.0~P1.7(1~8):
双向I/O口P1。
P1口能驱动(吸收或输出电流)4个LS型TTL负载。
在对EPROMS程和程序验证时,它接收低8位地址。
在8052单片机中,.P1.0还用作定时器2的记数触发输入端T2,P1.1还用作定时器2的外
部控制端T2EX
P2.0~P2.7(21~28):
双向I/O口P2。
P2口可以驱动(吸收或输出电流)4个LS型TTL负载。
第二功能是访问外部存储器时,输出高8位地址。
在对EPROM编程和效验时,它接收高位地址。
P3.0~P3.7(10~17):
双向I/O口P3oP3口能驱动(吸收或输出电流)4个LS型TTL负载。
P3口的每条引脚都有各自的第二功能。
图3.1单片机最小应用系统
复位电路:
本硬件图使用手动复位电路,在按下复位按钮后,电容C通过R1放点,同时电源Vcc通过R1和R2分压。
而R2要比R1大许多,大部分电压降落到R2上,从而使RST端得到一个高电平导致单片机复位。
同时EA=1
3.2PT100电阻温度传感器
电阻温度传感器分为两部分:
一部分为电桥电路,另一部分为放大电路。
在3.2图中,测温元件是铂电阻(测温范围0~200C),铂电阻阻值变化在100~175.86Q,用电桥来测量RX的变化,将电阻的阻值变化转变成电压的变化。
通过计算可得电桥差模输出为0~0.15V,由于AD转化器件能接受的电压范围为0~5V,所以电桥差模输出要经过运发放大输出。
差模运算放大器如图所接,放大倍数"30o将电压放大到0~4.5V,这时就可通过AD转换,将数据传送到单片机处理。
图3.2PT100电阻调理电路
3.3AD0804转换
ADC0804是集成A/D转换器。
它采用CMOS工艺20引脚集成芯片,分辨率8位,转换时间100us,输入电压范围在0~5V,芯片具有三态输出数据锁存器,可直接连接到数据总线上。
图3.3AD0804转换
各引脚名称及作用:
Vn(+),Vn(-)――两模拟信号输入端,用以接受单极性、双极性和差模
输入信号。
DB7~DB——具有三态特性数字信号输出口。
AGN——模拟信号地。
DGN——数字信号地。
CL时钟信号输入端。
CLK■—内部时钟发生器的外接电阻端。
CS片选信号输入端,低电平有效。
W——写信号输入,低电平启动A/D转换。
RD读信号输入,低电平有效。
INTA/D转换结束信号,低电平表示本次转换已完成
VREF/参考电平输入,决定量化单位。
VCC电源5V输入。
AD0804时序图如下:
3.4七段LED数码管动态显示
测温范围是0~200C,我们需要精确到小数点后一位,所以需要四个七
段LED数码管。
为了节约单片机的P口,所以我们使用两片74HC573锁存器连接到P0口进行数据传输,来实现动态显示的“段选”和“位选”,U2为段选锁存器,U3为位选锁存器。
P2.6和P2.7端口来控制锁存器的锁存端。
图3.4数码管显示
3.5声报警电路
如图3.5所示,蜂鸣器一端连接电源,一端连接PNP三极管e端,三极管c端接地,三极管b端加电阻连接单片机的P2.3口。
当单片机的P2.3口给低电平“0”时,蜂鸣器响起。
3.6硬件设计图
完整的的电路图如下:
1
Jrf*
L-
……llllllllll1
7S—
4.软件设计
4.1程序流程图
4.2程序C语言编程
程序实现温度测量显示,并在超过80C的时候报警
#include
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitdula=P2A6;
sbitwela=P2A7;
sbitadwr=P3A6;
sbitadrd=P3A7;
sbitbeep=P2A3;
uintadnum;
unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,//不带小数点的0~9编码
0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,
0x87,0xff,0xef};//带小数点的0~9编码
voiddelayms(uintxms)//延时程序
{
uinti,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
voiddisplay(ucharqian,ucharbai,ucharshi,ucharge)//显示程序
{
dula=1;
P0=table[ge];
dula=0;
P0=0xff;
wela=1;
P0=0x5f;
wela=0;
delayms(5);
dula=1;
P0=table[shi+10];dula=O;
PO=Oxff;
wela=1;
P0=0x6f;
wela=O;
delayms(5);
dula=1;
P0=table[bai];
dula=0;
P0=0xff;
wela=1;
P0=0x77;
wela=0;
delayms(5);
dula=1;
P0=table[qian];dula=0;
P0=0xff;
wela=1;
P0=0x7b;
wela=0;
delayms(5);
}
数据米集
ucharadnumber(void)//ad
{
adwr=1;
_nop_();
adwr=O;
_nop_();
adwr=1;
PO=Oxff;
adrd=1;
_nop_();
adrd=O;
_nop_();
adnum=P1;
adrd=1;
returnadnum;
}
main()
{uinta,a1,a2,a3,a4;
uinttemp;
wela=1;//AD初始化
P0=0x7f;
wela=0;
while
(1)
{
adnumber();
数据处理
//数据显示
temp=adnum*10*44.444444*0.0195+0.5;//
a1=temp%10;
a2=temp%100/10;
a3=temp%1000/100;
a4=temp/1000;
for(a=0;a<10;a++)
{display(a4,a3,a2,a1);}
报警检测
if(temp>800)//
{beep=0;
delayms(50);for(a=0;a<10;a++){display(a4,a3,a2,a1);}beep=1;
}
}
}
5.开发板调试
按照上述流程图编写程序,下载到开发板上,模拟电压输入值,在数码管上显示温度值,如图
(1)
(2)所示:
当模拟输入1.15V时,输出温度值是51.1To
PPP口
•Q£510壬口!
:
厂o臣
IKi
-snw-m*
!
|f日日&眶:
(图1)
当模拟输入2.65V时,输出温度值是117.9C
6.参考文献
《智能化测量控制仪表原理与设计(第三版)》
徐爱钧徐阳编著
北京航空航天大学出版社
《单片机实用技术与应用》
徐成波杨数强李彦林金纯编著清华大学出版社
《单片机原理及应用一一基于Proteus与KeilC》
孟祥莲咼洪志编著
哈尔滨工业大学出版社
《新概念51单片机C语言教程-入门、提高、开发、拓展全攻略》
郭天祥编著
电子工业出版社
7.心得体会
本次实习我们使用开发板,keil软件编制了C语言程序,并将程序下载到开发板上进行了调试,验证了我们所设计的程序的可用性。
这次实习还使我理解了编写程序的一些技巧。
单片机应用系统一般包含多个模块的主程序和各种子程序组成。
每个模块都能完成一个明确的任务,实现某个具体的功能,如温度接收、延时、发送、显示等。
采用模块化程序设计的方法,就是讲这些具体的功能程序独立设计和分别调试,最后将这些模板程序连接在一起进行联合调试。
模板化的设计有点:
一个模板可以多个程序共享;单个功能设计和调试比较方便,容易完成。
利用已编好的成熟模板,将大大缩短开发时间。
通过这次实习我发现,只有不断地从实践中获取理论知识的薄弱点,才能让我们得到真正的提高。
这次实习十分有意义,这次实习我们知道了理论和实践的距离,也知道了理论和实践相结合的重要性。
回顾这次课程设计,感觉受益匪浅,从确定题目到完成编程设计,从理论到实践,学习了很多课堂理论没有学到的东西。
同时在程序调试的过程中提高自己发现问题、解决问题、实际动手和独立思考的问题。
在本次实习中同样让我了解到团队合作的重要性,我们团队通过讨论分工合作,很快在规定的时间内完成设计课程。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 智能 仪器 设计 温度 测量 显示 报告