#include<STC15F2K60S2.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
void delay(uint z);
unsigned uint a;
uchar code wela[8]={0xef,0xdf,0xcf,0xbf};
uchar code dula[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char adval() //ad转换函数
{
ADC_CONTR|=0x80; //10000000 开启转换电源
P1ASF|=0x08; //p1.3为ad转换kou
ADC_CONTR|=0xe3; //11100011 开启P1.3通道开始转换
delay(1); //延时一端时间,使输入电压达到稳定
ADC_RES=0; //清A/D转换结果寄存器
ADC_RESL=0;
ADC_CONTR|=0x08; //ADC_START=1,开始转换
_nop_();
while(!(ADC_CONTR&0x10)); //0001,0000 等待A/D转换结束
ADC_CONTR&=0xe7;
a=ADC_RES*4+ADC_RESL;
return(i);
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=40;y>0;y--);
}
void display()
{
P0=wela[3];
P2=dula[a%10];
delay(1);
P0=wela[2];
P2=dula[a%100/10];
delay(1);
P0=wela[1];
P2=dula[a%1000/100];
delay(1);
P0=wela[0];
P2=dula[a/1000];
delay(1);
}
void main()
{
while(1)
{
adval();
display();
}
}
|