⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led.c

📁 温度传感器ds18b20调试源代码
💻 C
字号:
#include "ptr.h"
#define P_ADC_MUX_Data (volatile unsigned int *)0x702C

unsigned int LEDCode(int i)					//LED显示
{
	int temp;
	switch(i)
	{
		case 0:return 0x003f;break;
		case 1:return 0x0006;break;
		case 2:return 0x005b;break;
		case 3:return 0x004f;break;
		case 4:return 0x0066;break;
		case 5:return 0x006d;break;
		case 6:return 0x007d;break;
		case 7:return 0x0027;break;
		case 8:return 0x007f;break;
		case 9:return 0x0067;break;
	}
}

void FaSong(int t)
{
	int i;
	i=*P_SIO_Start;
	i&=0x0080;
	while(i){           
	    i=*P_SIO_Start;
		i&=0x0080;
	} 
 	*P_SIO_Data=t;
}
void show_temp(float value)
 {
 int a1,a2,a3,a4,i,b1,b2,b3,b4;
 a1=value/10;
 b1= LEDCode(a1);
 a2=value-a1*10;
 b2=LEDCode(a2);
 a3=(value-10*a1-a2)*10;
 b3=LEDCode(a3);
 a4=(value-a1*10-a2-0.1*a3)*100;
 b4=LEDCode(a4);
  
  *P_SIO_Start=1;
  FaSong(b4);
  FaSong(b3);
  FaSong(b2);
  FaSong(b1);
  for(i=0;i<10;i++);
  *P_SIO_Stop=1;
  *P_Watchdog_Clear =0x0001;
 }
float get_temp(unsigned int temp)
{
   int flag=0;float data=0;
   if(temp>0xfff8)flag=1;
    else  {
               if(temp&0x0001)                  data+=0.0625;
               if(temp&0x0002)                  data+=0.1250;
               if(temp&0x0004)                  data+=0.2500;
               if(temp&0x0008)                  data+=0.5000;
               if(temp&0x0010)                  data+=1.0000;
               if(temp&0x0020)                  data+=2.0000;
               if(temp&0x0040)                  data+=4.0000;
               if(temp&0x0080)                  data+=8.0000;
               if(temp&0x0100)                  data+=16.000;
               if(temp&0x0200)                  data+=32.000;
               if(temp&0x0400)                  data+=64.000;
           }
    return(data);
}
   



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -