下载此文档

串口发送温度给上位机.docx


文档分类:论文 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
/*====DS18B20 实现温度转换。当 MCU 接收到上位机
发送的 01 时,将当前温度返回上位机 ============*/
#include <>
#include<>
#define uchar unsigned char
#define uint unsigned int
sbit DS=P2^2; // 温度传感器信号线
uint temp,n;
uchar a,signal,t,time0_1s,b,flag,flag_on;
sbit dula=P2^6;
sbit wela=P2^7;
sbit beep=P2^3;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,// 不带小数的 0~9 编码
0xbf,0x86,0xdb,0xcf,
0xe6,0xed,0xfd,0x87,
0xff,0xef};// 带小数的 0~9 编码
void delay(uint count) //delay
{
uint i,j;
for(i=count;i>0;i--)
for(j=110;j>0;j--);
}
void dsreset(void) //DS18B20 初始化
{ //1,先将数据线置高电平
uint i; //2 ,延时 要求不严格但尽可能短些
DS=0; //3,将数据线置低电平
i=103; //4 ,延时( 480~960 微秒)
while(i>0)i--; //5 ,将数据线置高电平
DS=1; //6,延时( 15~60 微秒) DS18B20 返回低电平确定它的存在
i=4; //7, CPU 读到低电平并延时最少 480 微秒
while(i>0)i--; //8 ,将数据线置高电平
}
bit tmpreadbit(void) // 读一位数据
{ //1,将数据线拉高
uint i; //2,延时 2 微秒
bit dat; //3 ,将数据线拉低
DS=0;i++; //i++ 起延时作用
DS=1;i++;i++; //4,延时 6 微秒
dat=DS; //5,将数据线拉高
i=8;while(i>0)i--; //6 ,延时 4 微秒
return (dat); //7 ,读一位数据
} //8 ,延时 30 微秒,重复 1~7 步读完一个字节
uchar tmpread(void) // 读一个字节
{
uchar i,j,dat;
dat=0;
for(i=1;i<=8;i++)
{
j=tmpreadbit();
dat=(j<<7)|(dat>>1); // 读出的数据最低位在最前面,这样刚好一个字节在 DAT 里
}
return(dat);
}
void tmpwritebyte(uchar dat) //write a byte to ds18b20
{ //1 ,数据线拉低
uint i; //2,延时确定的时间 15 微秒
uchar j; //3,按从低位到高位的顺序发送数据(一次只发送一位)
bit testb; //4 ,延时 

串口发送温度给上位机 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人buhuixin1314
  • 文件大小17 KB
  • 时间2018-10-06
最近更新