多级通信测温系统程序 河南理工单片机Word文档下载推荐.docx

上传人:b****6 文档编号:15835917 上传时间:2022-11-16 格式:DOCX 页数:19 大小:18.36KB
下载 相关 举报
多级通信测温系统程序 河南理工单片机Word文档下载推荐.docx_第1页
第1页 / 共19页
多级通信测温系统程序 河南理工单片机Word文档下载推荐.docx_第2页
第2页 / 共19页
多级通信测温系统程序 河南理工单片机Word文档下载推荐.docx_第3页
第3页 / 共19页
多级通信测温系统程序 河南理工单片机Word文档下载推荐.docx_第4页
第4页 / 共19页
多级通信测温系统程序 河南理工单片机Word文档下载推荐.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

多级通信测温系统程序 河南理工单片机Word文档下载推荐.docx

《多级通信测温系统程序 河南理工单片机Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《多级通信测温系统程序 河南理工单片机Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。

多级通信测温系统程序 河南理工单片机Word文档下载推荐.docx

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;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1