c语言ad转换有什么作用,AVR AD转换的C语言编程

原标题:AVR AD转换的C语言编程

#include

#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转换速率,自由转换模式;启动器;

//延时待系统稳定;

DelayMs(3000);

while(1)

{i=ADC_Convert();

Process(i,Data);

Display(Data);

}

}

/*#pragma _handler Timer0:10

void Timer0()

{Int_Cnt+=1;

// Timer0_Init();

}*/

责任编辑:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值