环境试验箱[易尔昌博客|Seo.YrcKJ.CN] 温湿度模拟|防水防尘试验箱|光老化试验|耐臭氧老化试验箱|盐雾污秽装置等

单片机应用-​温度传感器的内部函数[易尔昌]

单片机应用-温度传感器的内部函数[易尔昌]

//Code的作用是告诉单片机,我定义的数据要放在ROM(程序存储区)里面,其实是相当与汇编里面的寻址MOVX(好像是),因为C语言中没办法详细描述存入的是ROM还是RAM(寄存器),所以在软件中添加了这一个语句起到代替汇编指令的作用,对应的还有data是存入RAM的意思

//Ds18b20ReadTemp()这个函数 就是头文件里的 应该是省略了一些物理的计算

 类似于 电流的大小 电压 在根据产品的材料 算出 温度的值 传给你

 这个值还是要处理一下

 逻辑不必去思考 毕竟这是人家算好给出来的值 既然它让我们去这么处理 我们就这么处理

 //留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点

 //后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就

 //算加上0.5,还是在小数点后面。

 这句话 其实有点重要 c语言会自动帮你做类型转化

 所以四舍五入就没有用函数 我记得js还要MATH函数处理 下次我也这么写四舍五入

 会不会出问题不太清楚


#include “reg52.h” //此文件中定义了单片机的一些特殊功能寄存器

 #include"temp.h" //这里面有个温度的函数

 u8 code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

 void DigDisplay()

 {

 u8 i;

 for(i=0;i<6;i++)

 {

 switch(i) //位选,选择点亮的数码管,

 {

 case(0):

 LSA=0;LSB=0;LSC=0; break;//显示第0位

 case(1):

 LSA=1;LSB=0;LSC=0; break;//显示第1位

 case(2):

 LSA=0;LSB=1;LSC=0; break;//显示第2位

 case(3):

 LSA=1;LSB=1;LSC=0; break;//显示第3位

 case(4):

 LSA=0;LSB=0;LSC=1; break;//显示第4位

 case(5):

 LSA=1;LSB=0;LSC=1; break;//显示第5位 

 }

 P0=DisplayData[5-i];//发送数据

 delay(100); //间隔一段时间扫描 

 P0=0x00;//消隐

 } 

 } 

这个函数 就是一秒执行几百次

 然后 你就能看到多个数组

 像我这种动态视力优秀的人 看着 就是一堆闪烁的灯 花里胡哨的

 人类的动态视力真弱 这就被欺骗了;


sbit LSA=P2^2;

 sbit LSB=P2^3;

 sbit LSC=P2^4;

 这三个 只要用到了数码管

 三个数字 就是2的三次方 就是 有八种情况 然后这八种情况对应一个数字

 一个数字有八个二极管[老化试验箱

 所以就是

 P0=DisplayData[5-i];就是 1111 1110 ,随便写的 控制八个灯的亮的方式

 就是用三个开关控制8个灯的开关 ;

 u8 code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

 所以这里是设计好的10个亮灯的方式 ;


这个可以看出温度给出的是个四位数字 再把这个四位数字拆出来 放到led里面显示

 P0=0x00;//消隐 这个我不太了解 他是加我就加吧  

Tags: 老化试验

发布: xf 分类: 实用技术 评论: 0 浏览: 2
留言列表
发表留言
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。