多级通信测温系统程序 河南理工单片机Word文档下载推荐.docx
- 文档编号:15835917
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:19
- 大小:18.36KB
多级通信测温系统程序 河南理工单片机Word文档下载推荐.docx
《多级通信测温系统程序 河南理工单片机Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《多级通信测温系统程序 河南理工单片机Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
TH0=(65535-45872)/256;
TL0=(65536-45872)%256;
EA=1;
TR1=1;
TR0=1;
ET0=1;
ES=1;
TI=0;
}
voiddelay(uintnum)
{
while(num--);
}
voidkey()
{H1=0;
if(L1==0)
delay(10);
{RecData='
b'
;
wei=11;
}
while(!
L1);
if(L2==0)
c'
wei=12;
L2);
voiddisplay(uinttemp)//显示程序
{
ucharA1,A2,A2t,A3;
A1=temp/100;
A2t=temp%100;
A2=A2t/10;
A3=A2t%10;
P1=table[wei];
P0=0XFE;
delay(50);
P1=table[A1];
//显示十位
P0=0XFD;
P1=table[A2]|0x80;
//显示个位
P0=0XFB;
P1=table[A3];
//显示分位
P0=0XF7;
voidwarn(uints)
{uchari;
i=s;
beep=0;
P2=0x00;
while(i--)
{display(tmp);
beep=1;
P2=0xff;
voiddeal(uintt)
{
if(t<
=50)
{warn(10);
if(t>
50&
&
t<
=300)
{warn(50);
300)
voidputc_to(ucharc)
{SBUF=c;
while(TI==0)
voidmain()
P1M0=0xff;
P1M1=0x00;
UART_int();
while
(1)
{key();
display(tmp);
TB8=1;
putc_to(RecData);
deal(tmp);
com_int(void)interrupt4
{if(RI)
{tmp=SBUF;
RI=0;
voidintt0()interrupt1
{ucharmiao,a,num;
num++;
if(num==20)
{num=0;
miao++;
if(miao==5)
{miao=0;
a++;
if(a==1)
{RecData='
}
if(a==2)
a=0;
2、B从机
#include<
sbitDQ=P2^2;
sbitbeep=P2^3;
sbitled=P2^0;
/******************************************************
函数名称:
voidInit_DS18B20(void)
返回值:
无
参数:
作用:
初始化18B20
*******************************************************/
charx=0;
DQ=1;
//稍作延时
DQ=0;
delay(800);
//延时>
480us540us
//拉高总线15-60us
x=DQ;
//读总线状态为0复位成功,为1则不成功
delay(30);
//释放总线
ucharReadOneChar(void)
uchardat
无
读1820一个字节
*******************************************************/
uchari;
uchardat=0;
for(i=0;
i<
8;
i++)
{
dat>
>
=1;
//给脉冲
if(DQ){dat|=0x80;
}//读1///读0右移处理
delay(20);
//15us内读完一个数
return(dat);
voidWriteOneChar(uchardat)
uchardat
写1820一个字节
/////****写DS18B20***///写060us读完,写130us内读完
{uinti;
ucharj;
bittestb;
for(j=1;
j<
=8;
j++)
testb=dat&
0x01;
dat=dat>
1;
if(testb)//write1
i++;
i++;
i=15;
while(i>
0)i--;
else
//write0
intReadOneTemperature(void)
intt
读温度值
voidtmpchange(void)//DS18B20beginchange
Init_DS18B20();
delay
(1);
WriteOneChar(0xcc);
//addressalldriversonbus
WriteOneChar(0x44);
//initiatesasingletemperatureconversion
intReadOneTemperature(void)////////***读取温度值***********/////每次读写均要先复位
{uinta,b,t;
floattep;
//发跳过ROM命令
WriteOneChar(0xbe);
//读寄存器,共九字节,前两字节为转换值
a=ReadOneChar();
//a存低字节
b=ReadOneChar();
//b存高字节
t=b;
t<
<
//高字节转换为10进制
t=t|a;
tep=t*0.0625;
//转换精度为0.0625/LSB
t=tep*10+0.5;
//保留1位小数并四舍五入****后面除10还原正确温度值)
return(t);
voiddisplay(uinttemp)//显示程序
P1=table[11];
P1=table[A2]|0X80;
voidwarn(uints)
led=0;
{display(ReadOneTemperature());
led=1;
voidinit_com(void)
{TMOD=0X20;
PCON=0X00;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多级通信测温系统程序 河南理工 单片机 多级 通信 测温 系统 程序 河南 理工