#include<iom128v.h>
#include<macros.h>
#include<math.h>
#include<delay.h>
#define uchar unsigned char //数据类型预定义
#define uint unsigned int
#define longint long int
#define N 300
uint x,y,z;
//float DATA[N]={0,};
/**************************************************************
**函数功能:端口初始化
**输入参数:无
**返回值:无
**在本函数外定义变量:无
**调用的函数:delay()
**************************************************************/
void INIT_PORT()
{
DDRA|=BIT(0); //ADC0输入通道
PORTA&=~BIT(0);
}
/**************************************************************
**函数功能:ADC功能函数
**输入参数:无
**返回值:无
**在本函数外定义变量:无
**调用的函数:delay()
**************************************************************/
void ADC_128 ()
{
INIT_PORT();
ADMUX=0X00; //外部AREF,左对齐,ADC0单端输入
ADCSRA=0x86; //使能,单次转换模式,64分频
ADCSRA|=BIT(ADSC); //启动首次转换
while(!(ADCSRA&(1<<ADIF))); //等待转结束循环
ADCSRA|=(1<<ADIF); //清除ADIF位
x=ADCL;
y=ADCH;
z=x+y*256;
//z=999;
}
/**************************************************************
**函数功能:主函数
**输入参数:无
**返回值:无
**在本函数外定义变量:无
**调用的函数:delay()
**************************************************************/
void main()
{
uchar i=0;
//float DATA_MAX;
//float DATA_MIN;
//uint MAX=0;
//uint MIN=0;
//INIT_PORT();
while(1)
{
ADC_128();
/*for(i=0;i<N;i++)
{
DATA_MAX=DATA[0];
DATA_MIN=DATA[0];
if(DATA_MAX<DATA[i])DATA_MAX=DATA[i];
if(DATA_MIN>DATA[i])DATA_MIN=DATA[i];
}
MAX=DATA_MAX*1000;
MIN=DATA_MIN*1000;
RUN_1602(MAX,MIN);*/
RUN_1602(z,0);
}
}
|