18b20 io quartus
时间: 2023-05-15 15:03:34 浏览: 53
18b20是一种数字温度传感器,可以通过IO口与FPGA板卡进行通信,用于检测周围环境的温度值。而Quartus则是基于Altera(原Intel)FPGA的设计软件,用于设计和开发FPGA。那么,在使用18b20数字温度传感器时,可以通过Quartus软件来配置IO相应的端口,实现与传感器之间的通信。FPGA通过读取18b20传感器传来的数字信号,经过处理后,将温度值显示在相关的输出设备上。这种设计可以应用于各种需要监测温度值的场合,比如工业控制、环境监测等方面。18b20数字温度传感器和Quartus软件能够协同工作,使得FPGA系统能够实现温度检测和数据处理的功能,从而提高了系统的智能化和稳定性。
相关问题
unsigned char Ds18b20Initial(void) { unsigned char Status = 0x00; unsigned int CONT_1 = 0; unsigned char Flag_1 = 1; Ds18b20OutputInitial(); Ds18b20IO = 1; //DQ复位 Ds18b20Delay(260); //稍做延时 Ds18b20IO = 0; //单片机将DQ拉低 Ds18b20Delay(750); //精确延时 大于 480us 小于960us Ds18b20IO = 1; //拉高总线 Ds18b20InputInitial();//设置IO输入 while((Ds18b20IO != 0)&&(Flag_1 == 1))//等待ds18b20响应,具有防止超时功能 { //等待约60ms左右 CONT_1++; Ds18b20Delay(10); if(CONT_1 > 8000)Flag_1 = 0; Status = Ds18b20IO; } Ds18b20OutputInitial(); Ds18b20IO = 1; Ds18b20Delay(100); return Status; //返回初始化状态 }
这是一个函数,名为 Ds18b20Initial,返回一个 unsigned char 类型的值。该函数的作用是初始化 DS18B20 温度传感器,具体实现过程为:
1. 定义了三个变量:Status、CONT_1 和 Flag_1,分别用于存储 DS18B20 的响应状态、计时器和循环标志。
2. 调用了 Ds18b20OutputInitial 函数,该函数作用是将控制 DS18B20 的引脚初始化为输出模式。
3. 将 Ds18b20IO 置为 1,即将 DQ 引脚复位。
4. 调用 Ds18b20Delay 函数,使程序稍作延时。
5. 将 Ds18b20IO 置为 0,即将 DQ 引脚拉低。
6. 调用 Ds18b20Delay 函数,使程序精确延时,确保延时时间在 480us 到 960us 之间。
7. 将 Ds18b20IO 置为 1,即将 DQ 引脚拉高。
8. 调用 Ds18b20InputInitial 函数,该函数作用是将控制 DS18B20 的引脚初始化为输入模式。
9. 进入一个 while 循环,等待 DS18B20 响应。循环中先将 CONT_1 加 1,然后调用 Ds18b20Delay 函数使程序稍作延时,然后判断 CONT_1 是否大于 8000,如果是,则将 Flag_1 置为 0,跳出循环;否则,将 Status 赋值为 Ds18b20IO 的值。
10. 调用 Ds18b20OutputInitial 函数,将控制 DS18B20 的引脚初始化为输出模式。
11. 将 Ds18b20IO 置为 1,即将 DQ 引脚拉高。
12. 调用 Ds18b20Delay 函数,使程序稍作延时。
13. 返回 Status 的值,即 DS18B20 的响应状态。
void Ds18b20Write(unsigned char infor) { unsigned int i; Ds18b20OutputInitial(); for(i=0;i<8;i++) { if((infor & 0x01)) { Ds18b20IO = 0; Ds18b20Delay(6); Ds18b20IO = 1; Ds18b20Delay(50); } else { Ds18b20IO = 0; Ds18b20Delay(50); Ds18b20IO = 1; Ds18b20Delay(6); } infor >>= 1; } }
这是一个函数,名为 Ds18b20Write,没有返回值(即返回类型为 void)。该函数的作用是向 DS18B20 温度传感器写入一个字节的数据,具体实现过程为:
1. 定义了一个变量 i,作为循环计数器。
2. 调用了 Ds18b20OutputInitial 函数,该函数作用是将控制 DS18B20 的引脚初始化为输出模式。
3. 进入一个 for 循环,循环次数为 8,即写入一个字节的数据需要循环 8 次。
4. 判断要写入的数据的最低位是否为 1,如果是,则将 DQ 引脚拉低,延时 6us,再将 DQ 引脚拉高,延时 50us;如果不是,则将 DQ 引脚拉低,延时 50us,再将 DQ 引脚拉高,延时 6us。
5. 将要写入的数据右移一位,准备写入下一位。
6. 循环结束,函数执行完毕。