cuteftp可以上传网站吗,wordpress 帝国cms速度,自己做电影网站需要的成本,杭州系统开发一.管脚芯片寄存器
1.芯片 2.了解封装以及引脚的用法 3.相关寄存器 报警功能 二#xff0c;如何使能DS18B20芯片
1.初始化芯片比赛提供的驱动代码 比赛提供的底层驱动代码
/* # 单总线代码片段说明1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考…一.管脚芯片寄存器
1.芯片 2.了解封装以及引脚的用法 3.相关寄存器 报警功能 二如何使能DS18B20芯片
1.初始化芯片比赛提供的驱动代码 比赛提供的底层驱动代码
/* # 单总线代码片段说明1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。2. 参赛选手可以自行编写相关代码或以该代码为基础根据所选单片机类型、运行速度和试题中对单片机时钟频率的要求进行代码调试和修改。
*///
void Delay_OneWire(unsigned int t)
{unsigned char i;while(t--){for(i0;i12;i);}
}//
void Write_DS18B20(unsigned char dat)
{unsigned char i;for(i0;i8;i){DQ 0;DQ dat0x01;Delay_OneWire(5);DQ 1;dat 1;}Delay_OneWire(5);
}//
unsigned char Read_DS18B20(void)
{unsigned char i;unsigned char dat;for(i0;i8;i){DQ 0;dat 1;DQ 1;if(DQ){dat | 0x80;} Delay_OneWire(5);}return dat;
}//
bit init_ds18b20(void)
{bit initflag 0;DQ 1;Delay_OneWire(12);DQ 0;Delay_OneWire(80);DQ 1;Delay_OneWire(10); initflag DQ; Delay_OneWire(5);return initflag;
}2.执行ROM指令
仅使用单个DS18B20芯片可以跳过ROM指令跳过ROM的指令是0xCC 功能指令 3.执行DS18B02功能指令
写在onewire.c 文件里面 在.h文件中声明 再在main函数里面引入.h文件
//读取温度函数 返回值温度高低两个字节
//函数功能完成温度转换 并返回转换后的温度
float rd_temperature (void)
{unsigned char low,high; //返回温度的高低八位init_ds18b20(); //初始化Write_DS18B20(0xcc); //跳过ROMWrite_DS18B20(0x44); //进行温度转换init_ds18b20(); //初始化Write_DS18B20(0xcc); //跳过ROMWrite_DS18B20(0xbe); //读取温度low Read_DS18B20(); //读取低位high Read_DS18B20(); //读取高位return ((high8)|low) /16.0;}
在main.c文件中
float t;
t rd_temperature(); //让温度一直读取//强制类型转换显示数据
Seg_Buf[0] (unsigned cahr)t / 10 % 10; //个位
Seg_Buf[1] (unsigned cahr)t % 10; //十位
Seg_Buf[2] (unsigned cahr)(t * 10) % 10; //小数点位//为了避免一上电显示85的初始值在上电之前先读取数值 延时750ms再显示
void Delay750ms() //12.000MHz
{unsigned char i, j, k;i 35;j 51;k 182;do{do{while (--k);} while (--j);} while (--i);
}void main()
{t rd_temperature();Delay750ms();
}
延时函数在stc中可生成将nop删除即可 PS读取数据的顺序