欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
單片機(jī)ds18b20數(shù)碼管顯示問(wèn)題
[打印本頁(yè)]
作者:
行走在消逝中1
時(shí)間:
2019-5-23 21:00
標(biāo)題:
單片機(jī)ds18b20數(shù)碼管顯示問(wèn)題
我在用中斷讀取溫度值的時(shí)候,送到數(shù)碼管中顯示的時(shí)候會(huì)閃爍,源程序如下
#include<reg52.h>
#include<intrins.h>
typedef unsigned int ui;
typedef unsigned char uc;
sbit dq=P3^7;
sbit a1=P1^7;
sbit a2=P1^6;
sbit a3=P1^5;
bit flag;
uc num;
ui m,c=0;
uc code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uc code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,
0xed,0xfd,0x87,0xff,0xef};
void delay(uc x)
{
uc a,b;
for(a=x;a>0;a--)
for(b=10;b>0;b--);
}
void delay1(uc x)
{
while(--x);
}
void delay2(ui x)
{
ui a,b;
for(a=x;a>0;a--)
for(b=500;b>0;b--);
}
void inti() //初始化
{
uc i;
dq=1;
_nop_();
_nop_();
dq=0;
delay(20); //大概延時(shí)640us
dq=1;
while((dq)&&(i<200))
i++;
delay1(50); //延時(shí)114us讓ds18b20保持低電平
dq=1;
}
void write_time(uc dat) //寫(xiě)操作
{
uc i,a;
for(i=0;i<8;i++)
{
a=dat&0x01;
dat>>=1;
if(a==0) //判斷是否寫(xiě)0;
{
dq=0;
delay1(27); //延時(shí)64us,至少60us
dq=1;
}
else //否則寫(xiě)1
{
dq=0;
_nop_();
_nop_();
dq=1;
delay1(27);//延時(shí)了64us,從拉低總線開(kāi)始到這兒至少60us
}
}
dq=1;
}
uc read_time() //讀操作
{
uc i,date=0,a=0;
for(i=0;i<8;i++)
{
dq=0;
_nop_();
dq=1;
_nop_();
_nop_();
a=dq;
date=(date>>1) | (a<<7);
delay1(27); //延時(shí)64us
}
return date;
}
ui duwendu()
{
uc a=0,b=0;
float k=0;
inti();
delay(35);
write_time(0xcc);
write_time(0x44);
delay2(300);
inti();
delay(35);
write_time(0xcc);
write_time(0xbe);
a=read_time();
b=read_time();
c=b; //C為整形數(shù)據(jù),一般占用2個(gè)字節(jié)
c<<=8;
c=c|a;
k=c*0.0625;
c=k*10+0.5;
return c;
}
void display(uc bai,uc shi,uc ge)
{
a1=1;
a2=1;
a3=0;
P0=table[bai];
delay(5);
a1=0;
a2=0;
a3=1;
P0=table1[shi];
delay(5);
a1=1;
a2=0;
a3=1;
P0=table[ge];
delay(5);
}
void main()
{
EA=1;
ET1=1;
TMOD=0X10;
TH1=0X4C;
TL1=0X00;
TR1=1;
while(1)
{
// duwendu();
display(c/100,c%100/10,c%10);
}
}
void zd1() interrupt 3 //中斷
{
TH1=0x4c;
TL1=0x00;
num++;
if(num==10)
{
num=0;
duwendu();
}
}
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1