file:///c:/users/administrator.user-20140308fi/appdata/roaming/360se6/User Data/temp/eb05e7b8-4046-496a-a76e-9acaedd4d97a.jpgfile:///c:/users/administrator.user-20140308fi/appdata/roaming/360se6/User Data/temp/eb05e7b8-4046-496a-a76e-9acaedd4d97a.jpg
嗯,但他没有用译码器而是直接用下面一段程序实现完成代码的转换
unsigned int datpro(void)//ADC0804 读出的数据处理
{
unsigned char x;
unsigned int dianyah,dianyal; //用于存储读出数据的高字节和低字节
unsigned int dianya="0"; //存储最后处理完的结果 注意数据类型
for(x=0;x<10;x++) //将 10次测得的结果存储在dianya中
{
dianya=adc0804()+dianya;
}
dianya=dianya/10; //求平均值
dianyah=dianya&0xf0; //屏蔽低四位
dianyah=dianyah>>4; //右移四位 取出高四位
dianyal=dianya&0x0f; //屏蔽高四位 取出低四位
dianya=dianyal*20+dianyah*320; //最后的结果是一个四位数,便于显示
return(dianya); //返回最后处理结果
}
void Led()
{
unsigned int date;
date=datpro(); //调用数据处理最后结果
P2=P2&0xef;
P0=seg7code[date/1000]|0x80; //输出个位数和小数点
Delay(8);
P2=P2|0xf0; P2=P2&0xdf;
P0=seg7code[date%1000/100]; //输出小数点后第一位
Delay(8);
P2=P2|0xf0; P2=P2&0xbf;
P0=seg7code[date%100/10]; //输出小数点后第二位
Delay(8);
P2=P2|0xf0; P2=P2&0x7f;
P0=seg7code[date%10]; //输出小数点后第三位
Delay(8);
P2=P2|0xf0;
}
|