温度计设计电子工艺实习报告.docx
《温度计设计电子工艺实习报告.docx》由会员分享,可在线阅读,更多相关《温度计设计电子工艺实习报告.docx(14页珍藏版)》请在冰豆网上搜索。
温度计设计电子工艺实习报告
广东石油化工学院
电子工艺实习报告本
学生姓名:
__________________
专业:
电子信息科学与技术_______________
班级:
___电子11-2____________________
学号:
_34_____________________________
指导教师:
__邱金波______________________
茂名学院计算机与电子信息学院电工电子实验室
实验日期:
2013年9月23日——9月30日
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitds=P2^2;//温度传感器信号线
uinttemp;
floatf_temp;
unsignedcharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90,0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0xff};
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voidfuwei()
{
uinti;
ds=0;
i=103;
while(i>0)i--;
ds=1;
i=4;
while(i>0)i--;
}
bittempreadbit(void)
{
uinti;
bitdat;
ds=0;i++;
ds=1;i++;i++;
dat=ds;
i=8;while(i>0)i--;
return(dat);
}
uchartempread(void)
{
uchari,j,dat;
dat=0;
for(i=1;i<=8;i++)
{
j=tempreadbit();
dat=(j<<7)|(dat>>1);
}
return(dat);
}
voidtempwritebyte(uchardat)
{
uinti;
ucharj;
bittestb;
for(j=1;j<=8;j++)
{
testb=dat&0x01;
dat=dat>>1;
if(testb)
{
ds=0;
i++;i++;
ds=1;
i=8;while(i>0)i--;
}
else
{
ds=0;
i=8;while(i>0)i--;
ds=1;
i++;i++;
}
}
}
voidtempchange(void)
{
fuwei();
delay
(1);
tempwritebyte(0xcc);
tempwritebyte(0x44);
}
uintgettemp()
{
uchara,b;
fuwei();
delay
(1);
tempwritebyte(0xcc);
tempwritebyte(0xbe);
a=tempread();
b=tempread();
temp=b;
temp<<=8;
temp=temp|a;
f_temp=temp*0.0625;
temp=f_temp*10+0.5;
f_temp=f_temp+0.05;
returntemp;
}
voiddisplay(ucharnum,uchardat)
{
uchari;
P1=table[dat];
i=0xff;
i=i&(~((0x10)<<(num)));
P2=i;
delay(5);
}
voiddis_temp(uintt)
{
uchari;
i=t/100;
display(0,i);
i=t%100/10;
display(1,i+10);
//i=t%100%10;
//display(2,i);
}
voidmain()
{
while
(1)
{
uinti;
tempchange();
for(i=10;i>0;i--)
{
dis_temp(gettemp());
}
}
}