📄 main.c
字号:
//============================================================
// FILE: main.c
// FUNCTION: ADC_SHOW_LCD
// DATA: 2006-07-20 By fenglover
// RESOURCE: http://www.unsp.com.cn
//============================================================
#include <SPCE061A.h>
#include "JM12864M.h"
#define AD_END_FLAG *P_ADC_MUX_Ctrl&0x8000
#define AD_EXZCTITUDE 0.96379 //误差调整
void AD_Initial(void);
unsigned int AD_1(void);
unsigned long int AD_Go(void);
int main(void)
{
unsigned int i,AdcValueEnd;
unsigned char vstr[6]={0},vstrtemp;
float AdcValueFloat=0.0;
unsigned long int AdcValueInt;
IO_Initial();
LCD_Initial();
AD_Initial();
LCD_Print_xyString(0,0,"当前电压值:(V)");
while(1)
{
AdcValueInt=AD_Go();
AdcValueFloat=(float)AdcValueInt/0xffc0*3.3; //在这里可以进行调整以实现较小误差,理论上为0xffc0,3.3v。
AdcValueFloat/=AD_EXZCTITUDE;
AdcValueEnd=(int)(AdcValueFloat*10000);
vstr[5] = (AdcValueEnd % 10) + 0x30;
vstr[4] = (AdcValueEnd / 10) % 10 + 0x30;
vstr[3] = (AdcValueEnd / 100) % 10 + 0x30;
vstr[2] = (AdcValueEnd / 1000) % 10 + 0x30;
vstr[1] = '.';
vstr[0] = (AdcValueEnd / 10000) % 10 + 0x30;
LCD_Set_xy(0,1);
for(i=0;i<6;i++)
{
*P_Watchdog_Clear=0x0001;
vstrtemp=vstr[i];
LCD_W_Data(vstrtemp);
}
for(i=100;i>=0;i--)
;
*P_Watchdog_Clear=0x0001;
}
}
//*=================================================================
unsigned int AD_1(void)
{
unsigned int uiData;
while(!AD_END_FLAG); //等待ADC转换结束
uiData=*P_ADC_LINEIN_Data;
return(uiData&0xffc0);
}
//*===============================================================
unsigned long int AD_Go(void)
{
unsigned long int adc_value=0;
unsigned int i;
for(i=0;i<16;i++) //16次取平均值
{
adc_value += AD_1();
*P_Watchdog_Clear=0x0001;
}
adc_value>>=4;
return (adc_value);
}
//*===============================================================
void AD_Initial(void)
{
unsigned int Read_Start;
*P_ADC_MUX_Ctrl=C_ADC_CH1; //选择LINE_IN1通道,从IOA0输入
*P_ADC_Ctrl= C_ADCE; //AD使能打开
Read_Start=*P_ADC_LINEIN_Data; //AD开始转换
}
//*=================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -