#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();
}
}
|