- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
无线温度采集系统设计c基本语言程序
发射主程序(附录1)
#includereg52.h
#include18b20.h
#include7279.h
sbit d3=P1^3;
sbit d2=P1^2;=
sbit d1=P1^1;
sbit d0=P1^0;
sbit te=P1^4;
void delay_us(unsigned int us)//调用此函数24us,每循环一次16us
{
unsigned int s;
for(s=0;sus;s++);
}
void send(unsigned char j)
{
te=1;
j=0x0f;
P1=j;
te=0;
delay_us(10000);//1s
te=1;
delay_us(10000);//1s
}
void send_tem()
{
send(t_feng);
send(t_ge);
send(t_shi);
}
void display()
{
ReadTemperature();
temp_data_turn(temp);
write7279(DECODE0+2,t_shi);
write7279(DECODE0+1,(t_ge+128));
write7279(DECODE0,t_feng);
}
void main()
{
send_byte(CMD_RESET);
while(1)
{
send(0x0f);
send_tem();
delay_us(30000);//480ms
display();
}
}
接收主程序(附录2)
#includereg52.h
#include18b20.h
#include7279.h
sbit d3=P1^3; sbit d2=P1^2; sbit d1=P1^1;
sbit d0=P1^0; sbit vt=P1^4;
void delay_us(unsigned int us)//调用此函数24us,每循环一次16us
{
unsigned int s;
for(s=0;sus;s++);
}
unsigned char receive_four()
{
unsigned char k;
unsigned int i=4000;//i=4000时
while((--i)(!vt));//43ms ,不能用
if(i==0)
{ i=4000;
P1=0x0f;
k=P1;
return k;
}
else
return receive_four();
}
void receive()//接收
{ delay_us(17358);//接收标志0x0f后的延时
t_feng=receive_four();
delay_us(17358);//280ms
t_ge=receive_four();
delay_us(17358);
t_shi=receive_four();
delay_us(17358);//17361附近
}
void display()
{
write7279(DECODE0,t_feng);
write7279(DECODE0+1,(t_ge+128));
write7279(DECODE0+2,t_shi);
}
void main()
{
unsigned char i;
for (tmr=0;tmr0x2000;tmr++);
send_byte(CMD_RESET);
for(i=0;i2;i++)
delay_us(65535);
while(1)
{
while(receive_four()==0x0f)//标志
文档评论(0)