📄 led.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 + -