200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > AD程序设计c语言 AVR AD转换的C语言编程

AD程序设计c语言 AVR AD转换的C语言编程

时间:2021-02-03 16:51:38

相关推荐

AD程序设计c语言 AVR AD转换的C语言编程

#define uchar unsigned char

#define uint unsigned int

uchar Table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

uchar Data[4]={0,0,0,0};

void DelayMs(uint i) //0.25ms

{uchar j;

for(;i!=0;i--)

{for(j=250;j!=0;j--) {;}}

}

void Display(uchar *p) //间隔5ms显示

{uchar i,sel=0x01;

for(i=0;i<4;i++)

{PORTB=sel;

PORTC=0xff-Table[p[i]];

DelayMs(20);

sel=sel<<1;

}

}

uint ADC_Convert(void)

{uint temp1,temp2;

temp1=(uint)ADCL;

temp2=(uint)ADCH;

temp2=(temp2<<8)+temp1;

return(temp2);

}

void Process(uint i,uchar *p)

{p[0]=i/1000;

i=i%1000;

p[1]=i/100;

i=i%100;

p[2]=i/10;

i=i%10;

p[3]=i;

}

/*

void Timer0_Init(void)

{SREG=SREG|0x80; //全局中断开;

TIMSK=TIMSK|0x01;//T/C0溢出中断使能;

TCCR0=0x05;//CLK/1024;128uS

TIFR=0x01;//T/C0中断标志位写1清0;

TCNT0=256-125;//125*128us=16ms

}*/

void main(void)

{uint i;

//设置A口为不带上拉输入;

DDRA=0x00;

PORTA=0x00;

//设置B口为推挽1输出;

DDRB=0xff;

PORTB=0xff;

//设置C口为推挽1输出;

DDRC=0xff;

PORTC=0xff;

//B口初始化输出1;C口初始化输出0;点亮全部数码管;

PORTB=0xff;

PORTC=0x00;

//ADC初始化;

ADMUX=0x02;//选择第三通道;

ADCSR=0xe6;//125K转换速率,自由转换模式;启动AD转换器;

//延时待系统稳定;

DelayMs(3000);

while(1)

{i=ADC_Convert();

Process(i,Data);

Display(Data);

}

}

/*#pragma interrupt_handler Timer0:10

void Timer0()

{Int_Cnt+=1;

// Timer0_Init();

}*/

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。