编辑: 学冬欧巴么么哒 2018-11-16

0 7FH

8 06H

1 6FH

9 5BH

2 77H A 4FH

3 7CH B 66H

4 39H C 6DH

5 5EH D 7DH

6 79H E 07H

7 71H F *****显示小数点时sp位置为1就可以了.******

二、电路仿真: 使用PROTEUS仿真软件对设计电路进行仿真,程序部分用KEIL软件进行编写.仿真图如下: 仿真中,调整DS18B20的温度,可以看到显示器上面的温度也相应的变为调整后的温度,通过按下button2或者button1可以更换温度传感器的选择.仿真中的单片机使用的程序数据文件由KEIL软件编译生成,详细的程序参考附录中的主程序.由于实际电路中要用到DS18B20的ROM_ID码,所以专门设计了提取ID码的电路,提取ID码得程序在参考附录中的提取ROM_ID码程序.提取的ID码会在显码管上以一次显示一个字节的方式显示出来,显示八组,一共是八字节的ID码.电路图如下: 3.3电路的安装与调试 ??? 电路仿真通过后,开始实际的焊接过程,焊接过程比较繁琐,需要认真小心操作,确保焊接的线路不出现错误,由于缺乏焊接经验,焊接线路比较混乱,焊接过程花费比较长的时间,完成焊接后,就是开始检查调试了,使用万用表检查电源电路无故障后,就开始安装芯片开始调试了.初次调试时发现数码管显示非常不稳定,现实的非常不连续,过分析,确定应该是程序中的扫描时间不合适,经过几次的程序修改和实物调试观察后,最终解决了这个问题. 然后就是电路性能检测,使用普通的温度计,测量室内温度后,再用制作的电路测量室内温度,数据分别为32.5和32.8,几次测量后得出的结论,精度满足0.5的要求.响应时间直接利用感官判断,系统的响应时间在1s内.两个温度传感器掘客正常测量温度,各个控制开关功能正常.经过一段时间的运行测试,工作正常,完成调试过程.

4 心得体会及建议 4.1 心得体会 经过本次设计实验,充分认识到了自身再动手实际操作方面的不足,单片机程序的编写不够熟练,电路焊接很生疏,需要多加练习. 4.2 建议 希望在以后的学习中能过再多做类似本设计的练习,提高动手能力,夯实基础知识.

5 附录 ??? 5.1 原件明细表 DS18B20两个、AT89S52一块、74HC573一块、按钮开关3个、10K电阻三个、4.7K电阻两个、10uf电解电容一个、四位八段数码管一个. 5.2 设计原理图 参看上面的仿真图. 5.3 设计的主程序: #include #define uchar unsigned char #define uint unsigned int sbit DS=P2^0;

//定义温度传感器的数据引脚 sbit button1=P3^5;

//定义按钮开关的控制位脚 sbit button2=P3^6;

uint temp;

温度值 sbit dula=P2^6;

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

uchar code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd, 0x87,0xff,0xef};

uchar code ROM_CODE1[]={0x28,0xaa,0x4b,0x27,0x03,0x00,0x00,0x06};

uchar code ROM_CODE2[]={0x28,0x1b,0x40,0x12,0x03,0x00,0x00,0x8f};

void delay(uint count)延时函数 { uint i;

while(count) { i=200;

while(i>0) i--;

count--;

} } void dsreset(18B20复位,初始化函数 { uint i;

DS=0;

i=103;

while(i>0)i--;

DS=1;

i=6;

while(i>0)i--;

} bit tmpreadbit(读1位数据函数 { uint i;

bit dat;

DS=0;

i++;

i+ DS=1;

i++;

i++;

dat=DS;

i=8;

短延时 while(i>0)i--;

return (dat);

} uchar tmpread(读1字节函数 { uchar i,j,dat;

dat=0;

for(i=1;

i1;

if(testb) //write

1 { DS=0;

i++;

i++;

DS=1;

i=8;

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题