📄 adc_0804.c
字号:
#include <reg52.h>
#include <absacc.h>
#define adc XBYTE[0xb000]
#define led_wei XBYTE[0x8000]
#define led_duan XBYTE[0x9000]
unsigned char idata adc_val[31];
unsigned char code ledseg[]={
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, //0-7
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E, //8-15
0xFF };
unsigned char code ledsel[]={0x01,0x02,0x04,0x08};
unsigned char adc_dat[4];
void delayms(unsigned int t)
{
unsigned char i;
while(--t)
for(i=0;i<125;i++)
{ ; }
}
void adc_start(void)
{
adc=0xff;
}
unsigned char adc_change(void)
{
unsigned char V;
adc_start();
while(INT0==1);
V=adc;
return(V);
}
void adc_bcd(void)
{
float x;
unsigned char i, aver;
unsigned int sum=0;
for(i=0;i<31;i++)
adc_val[i]=adc_change();
for(i=0;i<31;i++)
sum+=adc_val[i];
aver=sum/30;
//x=adc_change()*1000./51.;
x=aver/51.0;
x=x*1000.0;
adc_dat[0]=(int)x/1000;
adc_dat[1]=(int)x/100%10;
adc_dat[2]=(int)x/10%10;
adc_dat[3]=(int)x%10;
}
void Display(void)
{
unsigned char i;
adc_bcd();
for(i=0;i<4;i++)
{
if(i==0)
led_duan=ledseg[adc_dat[i]]&0x7f;
else
led_duan=ledseg[adc_dat[i]];
led_wei =ledsel[i];
delayms(5);
led_wei&=0xf0;
}
}
void main(void)
{
while(1)
{
Display();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -