电子温度计设计与调试实验报告文档格式.docx
《电子温度计设计与调试实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《电子温度计设计与调试实验报告文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
要求上限报警和下限报警具有明显的区别。
报警器件选择建议:
声-蜂鸣器;
光-LED;
文字-LED显示器或LCD显示器。
二、实验原理
实验电路原理图:
AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS位微处理
器,俗称单片机;
8重达林顿反相驱动器ULN2803包含8个NPM±
林顿管,是
种大功率驱动芯片,多用于智能仪器、PLG步进电机控制,具有工作电压高,
电路增益高,可以提供大功率负载的特点,适应于各种功率驱动电路;
数码管显示模块能显示电机的转速和电机的运动趋势,方便直观。
软件主要模块流程图:
*
SKI檢骑Tr
、确Y
秽J輙丄uK琴
本数字温度计设计采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20乍为检测元件,测温范围为-55〜125C,最高分辨率可达0.0625C。
DS18B2(可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的热点。
单片机89C52是本设计中的控制核心,是一个40管脚的集成芯片构成。
弓I脚部分:
单片机引脚基本电路部分与普通设计无异,40脚接VCC+5V,20脚接地。
XI,X2两脚接12MHZ勺晶振,可得单片机机器周期为1微秒。
RST脚外延一个RST复位键,一端通过10K电阻接Vcc,—端通过10K电阻接地。
AT89S52是一种低功耗、高性能的8位CMO微控制器,具有8K的可编程Flash存储器。
DS18B2(的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750msDS18B20测温
原理:
低温度系数晶振的振荡频率受温度影响很小。
四、实验内容
1、打开ISIS7Professional,参照按照实验要求设计仿真电路原理图。
2、编写程序实现:
DS18B20勺读写系统控制。
五、实验数据记录
开始时
调到10时
调到30时
调到60时
编写的程序如下:
#inelude<
reg52.h>
#ineludevintrins.h>
#defineucharunsignedchar#defineuintunsignedintsbitDQ=P2A7;
ucharT;
ucharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,0x7f,0x6f};
voiddelay1(uintz)
{
uintx,y;
for(x=z;
x>
0;
x--)
for(y=110;
y>
y--);
voiddelay(uintN)//廷迟时间为(24+N*16)us{
inti;
for(i=0;
i<
N;
i++);
/**************************************************
voidinit()
bitflag=1;
while(flag)
DQ=1;
_nop_();
DQ=0;
delay(50);
delay(3);
flag=DQ;
}
delay(10);
flag=~DQ;
DQ=1;
/***********************************************
两个初始换都可以
/********************************************/voidinit()
delay(0);
DQ=0;
delay(50);
//廷迟24+50*16=824us
delay(3);
//48us
//184us
voidwrite(uchardate){
uinti;
for(i=0;
i<
8;
i++){
0001)
DQ=date&
0x01;
=00000001
//最低位移出最低位先写入//i=0:
DQ=(01010101&
0000
低位1
delay
(2);
写入,i=1:
date>
>
=1;
将0写入
//56us
即将最
//右移一位
ucharread()
uinti,value=0;
_nop_();
i++)
value=value>
1;
//15us之内必须读完一位DQ=0;
_nop_();
if(DQ)value|=0x80;
delay
(2);
}return(value);
voiddisplay(ucharnum)
uchara,b;
a=num/10;
b=num%10;
//一个机器周期:
(1/11.0952(即晶振频率))*12=1.085us
//设i=0:
value=01010101>
1得到:
00101010
//读到的DQ=1,00101010I10000000=10101010//i=1:
value=01010101
//读到的DQ=0,value=01010101
//i=2:
value=00101010
//先读最低位
//56us
P0=table[a];
P2=0xfe;
delay1(5);
P2=0xff;
P0=table[b];
P2=0xfd;
delay1(5);
ucharread_wen_du(){
voidmain()
while
(1)
ucharHB,LB,temp;
init();
//复位
write(0xcc);
//
跳过ROM即不必读64位序列号的
ROM
write(0x44);
启动温度转换
跳过ROM即不必读64位序列号的1
write(0xbe);
读命令
LB=read();
低八位10111010
HB=read();
高八位11111010
HB=HB<
<
4;
//1011000
HB+=(LB&
0XF0)>
(LB&
0xF0)=10110000>
4:
1011
temp=HB;
returntemp;
返回温度值
+HB:
1010
T=read_wen_du();
display(T);
六、实验总结
通过本次试验我进一步了解了一线总线技术在单片机系统中的应用,
并熟悉了数字温度传感器DS18B2(扩展接口和编程方法。
同时掌握了
单片机应用系统开发步骤和方法。
然后利用其操作方法进行并完成了
电子温度计设计与调试实验。
七、实验心得
通过本次试验课,我们进一步熟悉了运用Proteus软件进行仿真调
试,使我对这个软件应用更加熟悉准确,使我掌握了在嵌入式试验中
仿真和调试的办法,以及最终实现实验的过程,并让我对Proteus这
个软件有了更深入的了解。
八、指导教师评语和成绩评定:
实验报告成绩:
指导教师签字: