基于51单片机的温度控制器Word格式文档下载.docx
- 文档编号:22177845
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:8
- 大小:52.06KB
基于51单片机的温度控制器Word格式文档下载.docx
《基于51单片机的温度控制器Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于51单片机的温度控制器Word格式文档下载.docx(8页珍藏版)》请在冰豆网上搜索。
reg52.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitDS=P1^0;
//defineinterface
uinttemp;
//variableoftemperature
ucharflag1;
//signoftheresultpositiveornegative
//sbitdula=P2^6;
//sbitwela=P2^7;
//unsignedcharcodetable2[]={0x3f,0x30,0x5b,0x4f,0x66,0x6d,0x7d,
//0x07,0x7f,0x67/*,0x77,0x7c,0x39,0x5e,0x79,0x71*/};
//unsignedcharcodetable1[]={0xbf,0xb0,0xdb,0xcf,0xe6,0xed,0xfd,
//0x87,0xff,0xe7};
//unsignedcharcodetable2[]={0x40,0x5e,0x24,0x21,0x13,0x09,0x08,
//0x63,0x00,0x03/*,0x77,0x7c,0x39,0x5e,0x79,0x71*/};
//unsignedcharcodetable1[]={0xc0,0xde,0xa4,0xa1,0x93,0x89,0x88,
//0xe7,0x8f,0x87};
unsignedcharcodetable5[]={0x77,0x22,0x6d,0x5d,0x1e,0x5b,0x7b,
0x15,0x7f,0x1f};
unsignedcharcodetable6[]={0xf7,0xa2,0xed,0xdd,0x9e,0xdb,0xfb,
0x95,0xff,0x9f};
voiddelay(uintcount)//delay
{
uinti;
while(count)
i=200;
while(i>
0)
i--;
count--;
}
///////功能:
串口初始化,波特率9600,方式1///////
voidInit_Com(void)
TMOD=0x20;
PCON=0x00;
SCON=0x50;
TH1=0xFd;
TL1=0xFd;
TR1=1;
voiddsreset(void)//sendresetandinitializationcommand18B20复位,初始化函数
DS=0;
i=103;
0)i--;
DS=1;
i=4;
bittmpreadbit(void)//readabit读1位数据函数
bitdat;
i++;
//i++fordelay
dat=DS;
i=8;
return(dat);
uchartmpread(void)//readabytedate读1字节函数
uchari,j,dat;
dat=0;
for(i=1;
i<
=8;
i++)
j=tmpreadbit();
dat=(j<
<
7)|(dat>
>
1);
//读出的数据最低位在最前面,这样刚好一个字节在DAT里
return(dat);
voidtmpwritebyte(uchardat)//writeabytetods18b20向1820写一个字节数据函数
ucharj;
bittestb;
for(j=1;
j<
j++)
testb=dat&
0x01;
dat=dat>
1;
if(testb)//write1
else
//write0
voidtmpchange(void)//DS18B20beginchange开始获取数据并转换
dsreset();
delay
(1);
tmpwritebyte(0xcc);
//addressalldriversonbus写跳过读ROM指令
tmpwritebyte(0x44);
//initiatesasingletemperatureconversion写温度转换指令
}
uinttmp()//getthetemperature读取寄存器中存储的温度数据
floattt;
uchara,b;
tmpwritebyte(0xbe);
a=tmpread();
//读低8位
b=tmpread();
//读高8位
temp=b;
temp<
//twobytecomposeaintvariable两个字节组合为1个字
temp=temp|a;
tt=temp*0.0625;
//温度在寄存器中是12位,分辨率是0.0625
temp=tt*10+0.5;
//乘10表示小数点后只取1位,加0.5是四折五入
returntemp;
voidreadrom()//readtheserial
ucharsn1,sn2;
tmpwritebyte(0x33);
sn1=tmpread();
sn2=tmpread();
voiddelay10ms()//delay
for(a=10;
a>
0;
a--)
for(b=60;
b>
b--);
voiddisplay(uinttemp)//显示程序
ucharA1,A2,A2t,A3,ser;
ser=temp/10;
SBUF=ser;
A1=temp/100;
A2t=temp%100;
A2=A2t/10;
A3=A2t%10;
//dula=0;
d4=0;
P0=table5[A1];
d4=1;
//显示百位
//dula=1;
//dula=0;
/*wela=0;
P0=0x7e;
wela=1;
wela=0;
*/
d3=0;
P0=table6[A2];
d3=1;
//显示十位
P0=0x7d;
d2=0;
P0=table5[A3];
d2=1;
//显示个位
/*P0=0x7b;
voidmain()
uchara;
Init_Com();
do
tmpchange();
//delay(200);
for(a=1;
{display(tmp());
}while
(1);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 温度 控制器
![提示](https://static.bdocx.com/images/bang_tan.gif)