📄 main.c
字号:
/*===============================================================*/
/*函数名称: main.c */
/*函数功能: 主函数,调用各模块 */
/*基本思想: 单端输入,定时启动,由T2定时,选择AIN0.3为ADC0转化通道 */
/*修改记录: 无修改记录 */
/*编写作者: t483-4-19chenyong */
/*编写日期: 2007-4-06 */
/*===============================================================*/
#include "common.h"
#include "TS12864A.h"
#include "show.h"
#include "adc.h"
#define N 10
bit isnewdata;
int xdata k=0,count=0;
//long ad_value=0; //真实测量电压值
float xdata sum=0,average_value=0;
float xdata realvol[N];
extern long ad_value; //真实测量电压值
void main()
{
Port_Initial();
SYSCLK_Init();
LCD_Init(); //液晶初始化
CleanScreen();
adc0_initial(); //ADC0初始化
EA=1;
while(1)
{
/* if(isnewdata) //滑动滤波
{
Display_Character(0,3,19); //电压
Display_Character(2,3,20);
Display_Character(4,3,15); //单位
Display_Char(14,3,19);
realvol[k++]=ad_value;
if(k==N)
{
k=0;
}
sum=0;
for(count=0;count<N;count++)
{
sum=sum+realvol[count];
}
sum=(float)sum/100;
sum=(float)sum/100;
average_value=sum/N;
Show_FloatData(average_value,3); //显示电压值
EA=0;
Port_Initial();
adc0_initial(); //ADC0初始化
EA=1;
isnewdata=0;
} */
//=====================================================================
if(isnewdata) //滑动滤波
{
Display_Character(0,3,19); //电
Display_Character(2,3,20); //压
Display_Character(4,3,15); //:
Display_Char(14,3,19); //单位V
realvol[k]= ad_value; /*减去噪声干扰*/
sum=sum+realvol[k];
k++;
EA=0;
Port_Initial();
adc0_initial(); //ADC0初始化
EA=1;
if(k>(N-1))
{
k=0;
sum=(float)sum/100;
sum=(float)sum/1000; /*把原来100改为1000*/
average_value=sum/N;
Show_FloatData(average_value,3); //显示电压值
}
isnewdata=0 ;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -