📄 show_temp.c
字号:
#include "VolMeasure.h" //定义了一个结构体
#include "SPLC501User.h"
#include "SPCE061A.h"
#include "logo.h"
extern float Degree;
extern int temp;
float Temp_Degree(float Vol_Value);
unsigned int AD_Read(void);
//========================================================================
//========================================================================
int Show_Temp(void)
{
float Vol_Value;
int i=0,j=0,k=0,m;
float fVolVal;
float De;
int uiVolFlag=0,uiVolFlagOne=0;
long int uiVolFlagHow=0;
unsigned int uiData;
long int liDataVol;
struct ST_VolValude VolValude;
*P_SystemClock=0x0088;
VolValude.VolTureValudeB=7; //初始化电压采集值
LCD501_SetPaintMode(0);
LCD501_FontSet(0); //清屏
fVolVal=0.0;
while(1) //主循环
{
*P_DAC_Ctrl = 0;
*P_ADC_Ctrl = C_ADCE+C_MIC_DIS+C_AGCN+C_DAC_OUT3mA+C_VEXTREF_DIS+C_V2VREFB_DIS;
uiData = *P_ADC_LINEIN_Data;
while((*P_ADC_MUX_Ctrl&0x8000)!= 0x8000);
*P_ADC_MUX_Ctrl=C_ADC_CH1;
//播放语音后会改变P_ADC_Ctrl的设置
uiData=AD_Read(); //丢掉第一个数
j=0;
for(i=0;i<20;i++) //采20个数据到VolValude.VolValudeA[j]
{
*P_Watchdog_Clear=C_WDTCLR;
uiData=AD_Read();
VolValude.VolValudeA[j]= uiData;
j++;
}
uiVolFlagOne=0xff;
uiVolFlag=0;
j=0;
uiData=0;
liDataVol=0;
for(i=0;i<20;i++)
{
liDataVol=liDataVol+VolValude.VolValudeA[j];
j++;
}
uiData=liDataVol/20;
VolValude.VolTureValudeA=(float)uiData*3.3/0xffc0; //得到电压值
fVolVal=VolValude.VolTureValudeB-VolValude.VolTureValudeA;
k=0;
Vol_Value=VolValude.VolTureValudeA; //取得要在LCD上显示的数据,存入VolValude.LCD[j]
De=Temp_Degree(Vol_Value);
VolValude.LCD[1]=(int)De/100%10;
VolValude.LCD[2]=(int)De/10%10;
VolValude.LCD[3]=(int)De%10;
VolValude.LCD[4]=temp%10;
LCD501_PutChar(86,30,('.'));
LCD501_Bitmap(99 ,33,(unsigned int *)encoding_19); //oC
LCD501_PutChar(58,30,('0'+VolValude.LCD[1])); //预留百位
LCD501_PutChar(68,30,('0'+VolValude.LCD[2]));
LCD501_PutChar(78,30,('0'+VolValude.LCD[3]));
LCD501_PutChar(90,30,('0'+VolValude.LCD[4]));
return;
// }
}
}
//================================================================
unsigned int AD_Read(void)
{
unsigned int bData;
while(!(*P_ADC_MUX_Ctrl&0x8000)); //等待采样完成
bData=*P_ADC_LINEIN_Data;
bData = bData&0xffc0;
return bData;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -