简易数字直流电压表电路及程序
[09-11 23:01:46] 来源:http://www.88dzw.com 单片机学习 阅读:8334次
文章摘要:{ while(--i); }//---void led_show(double f){ unsigned char i,s; unsigned int k,*j; if (f<2) { k=f;//取整数 部分 i=k; P0=led_seg_code[i] | 0x80; P2=0xfb; delay(50); i=f*10; i=i%10; P0=led_seg_code[i]; P2=0xfd; delay(50); i=f*
简易数字直流电压表电路及程序,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com{ while(--i); }
//---------------
void led_show(double f)
{ unsigned char i,s;
unsigned int k,*j;
if (f<2)
{ k=f;//取整数 部分
i=k;
P0=led_seg_code[i] | 0x80;
P2=0xfb;
delay(50);
i=f*10;
i=i%10;
P0=led_seg_code[i];
P2=0xfd;
delay(50);
i=f*100; //取小数后1位
i=i%10;
P0=led_seg_code[i];
P2=0xfe;
delay(50);
else //超限报警,显示“---”
{ P0=0x40;
P2=0xfb;
delay(50);
//---------
P2=0xfd;
delay(50);
//-----------
P2=0xfe;
delay(50);
}
}
//----读取ADC转换器TLC549的数据----
unsigned char receive_data()
{unsigned char i,d;
d=0;
ad_cs=1; // /CS置高,片选无效
ad_clk=0;
ad_cs=0;
_nop_();
for(i<0;i<8;i++)
{ ad_clk=1;
d=d<<1;
if (ad_dout)
{ d++;}
ad_clk=0;
}
ad_cs=1;
for(i=0;i<10;i++) // 适当延时超过17us
_nop_();
return d;
}
//-------------
main()
{T_cnt=0;
TMOD=0x01; //定时器设置T0
TH0=0x4c; //50000us=(65536-0x4c00)*12/11.0592
TL0=00;
EA=0;
TR0=1;
re_data=0x00;
volt=0;
xishu=2.5/255.0;
//-----------------------------
while(1)
{ if(TF0==1)
{ TF0=0;
TH0=0x4c; //50000us=(65536-0x4c00)*12/11.0592
TL0=0x0;
if (T_cnt<2) //T0为50毫秒溢出一次,每100ms读取一次AD转换器数据
{T_cnt++;}
else
{ T_cnt=0;//计时到100ms了
re_data=receive_data();
//转换为电压值
volt=re_data;
volt=volt*xishu;
}
}
led_show(volt);
}
}
Tag:单片机学习,单片机开发,单片机原理,单片机教程,单片机学习
《简易数字直流电压表电路及程序》相关文章
- › 简易数字直流电压表电路及程序
- 在百度中搜索相关文章:简易数字直流电压表电路及程序
- 在谷歌中搜索相关文章:简易数字直流电压表电路及程序
- 在soso中搜索相关文章:简易数字直流电压表电路及程序
- 在搜狗中搜索相关文章:简易数字直流电压表电路及程序
分类导航
最新更新