还剩3页未读,继续阅读
文本内容:
学院XXXX实验报告Experimentation Reportof TaiyuanNormal University想告内察
一、实验目的
四、实验方法
二、实验原理
五、实验记录及数据处理
三、实验仪器及材料
六、误差分析及讨论系部计算机年级大三课程单片机原理与接口技术同组者日期姓名____________数码管显示温度学号
一、实验目的
1、了解单片机顺序执行的特点;
2、掌握C语言的编写和keilc51的使用;
3、熟悉DS18B20温度传感器的使用
二、实验仪器硬件资源单片机开发板笔记本电脑;软件资源:软件Keil uVision5;
1、流程图
三、实验原理
2、连接图
四、实验结果数码管显示当前温度,用手握住温度传感器,数码管显示的温度值变大
四、实验代码及分析〃主函数void main{while1{LcdDisplayDsl8b20ReadTemp;〃显示读取到的温度值}void LcdDisplayint temp〃lcd显示float tp;iftemp0〃当温度值为负数{DisplayData
[0]=0x40;〃因为读取的温度是实际温度的补码,所以减1,再取反求出原码temp=temp-l;temp=temp;〜tp=temp;temp=tp*
0.0625*100+
0.5;〃留两个小数点就*100,+
0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点后面的数自动去掉,〃不管是否大于
0.5,而+
0.5之后大于
0.5的就是进1了,小于
0.5〃的就算加上
0.5,还是在小数点后面else{DisplayData
[0]=0x00;tp=temp;〃因为数据处理有小数点所以将温度赋给一个浮点型变量〃如果温度是正的那么,那么正数的原码就是补码它本身temp=tp*O.0625*100+
0.5;〃留两个小数点就*100,+
0.5是四舍五入,因为C语言浮点数转换〃为整型的时候把小数点后面的数自动去掉,不管是否大于
0.5,而+
0.5之〃后大于
0.5的就是进1了,小于
0.5的就算加上
0.5,还是在小数点后面10000];DisplayData
[2]=DIG_CODE[temp%10000/1000];DisplayData[l]=DIG_CODE[tempDisplayData
[3]=DIG_CODE[temp%1000/100]|0x80;DisplayData
[4]=DIG_CODE[temp%100/10];DisplayData
[5]=DIG CODE[temp%10];DigDisplay;〃扫描显示〃使用数码管显示void DigDisplayunsignedchar i;unsigned intj;for i=0;i8;i++switchi〃位选,选择点亮的数码管,{case0:LSA=0;LSB=0;LSC=0;break;//显示第0位case1:LSA=1;LSB=0;LSC=0;break;//显示第1位case2:LSA=0;LSB=1;LSC=0;break;〃显示第2位case3:LSA=1;LSB=1;LSC=0;break;〃显示第3位case4:LSA=0;LSB=0;LSC=1;break;〃显示第4位case5:LSA=1;LSB=0;LSC=1;break;〃显示第5位case6:LSA=0;LSB=1;LSC=1;break;〃显示第6位case7:LSA=1;LSB=1;LSC=1;break;〃显示第7位GPIO_DIG=DisplayData[i];〃发送段码j=50;〃扫描间隔时间设定while(j一);GPIO_DIG=OxOO;〃消隐}}
六、心得体会通过此次实验我学会了单片机上温度传感器的使用,以及将温度值显示在数码管上的方法亲自动手的实验过程使我对单片机的理论知识有了更好的掌握,明白了理论与实践相结合的重要性在不断的调试程序的过程中,我深刻意识到动手操作的好处,在日后的学习中一定要提高自己的动手能力,注重实践,在一次次的实验操作中提高自身的综合能力。
个人认证
优秀文档
获得点赞 0