求单片机温度测量报警系统可设置上下限 用STM32、LCD1602、DS18B20的程序

求单片机温度测量报警系统可设置上下限 用STM32、LCD1602、DS18B20的程序,第1张

硬件方面,你的电路应该采用扫描方式显示,这样段输出需要很大的电流,单片机IO恐怕不能直接驱动,建议P2.0-P2.3后加三极管驱动。这时候如果软件没有问题的话,才能点亮LED。下限负值的时候SPEAKER应该是软件做负值比较的时候有问题。要注意你用的编程语言的负值的表达方式。

我之前遇到过一个问题,弄了两天,就是初始化最后要释放总线,不知道你是不是这个问题,你可以试试,祝好运!

下面是我当时用ATmega128调的,希望有帮助

u8t ds18b20_Reset(void)

{

    u8t bus_flag=0

    DDRE  |= DQ_18B20                 //输出            

    PORTE |= DQ_18B20                 //输出高

delay_100us(1)                     //保持100us

PORTE &= ~DQ_18B20                //输出低电平

    delay_100us(5)                     //低电平延时500us

PORTE |= DQ_18B20                 //输出高 

delay_100us(1)                    //延时100us

    DDRE &= ~DQ_18B20                 // 释放总线

char j=0

j=PINE                            //读取DQ

    if(!(j&0x04))

{

bus_flag=1

}

while(!(PINE&DQ_18B20))         //很重要,等待复位完成

    return(bus_flag)

}

unsigned char ds18b20_Read()

{

unsigned char i,j,Temp=0

for(i=0i<8i++)

{

Temp >>= 1 //数据右移

DDRE  |= DQ_18B20 //DQ为输出状态

PORTE &= ~DQ_18B20 //拉低总线,启动输入     

delay_5us()

PORTE |= DQ_18B20

DDRE  &= ~DQ_18B20 //DQ为输入状态

j=PINE

if(j&DQ_18B20) 

{

Temp|=0x80

}

delay_60us()

}

return Temp

}

void ds18b20_Write(u8t Data)

{

u8t i

DDRE |= DQ_18B20 //DQ为输出

for(i=0i<8i++)

{

PORTE &= ~DQ_18B20 //拉低总线

delay_5us()    //2us

asm("nop")

asm("nop")

if(Data&0x01) 

{

    

PORTE |= DQ_18B20

delay_60us()

}

else

{

delay_60us()

PORTE |= DQ_18B20

delay_5us()

}

Data >>= 1

}

}

void Read_Temperature(void)

{

u8t Temp1=0,Temp2=0

ds18b20_Reset()      //DS18b20复位

  ds18b20_Write(0xCC)  //跳过ROM

ds18b20_Write(0x44)  //温度转换

delay_100ms(5)        //等待转换完成 

ds18b20_Reset()      //DS18b20 复位8

ds18b20_Write(0xCC)  //跳过RO

ds18b20_Write(0xBE)  //读取RAM

Temp1=ds18b20_Read()  //读低八位,LSByte,RAM0

Temp2=ds18b20_Read()  //读高八位,MSByte,RAM1

Uart0_Tx(Temp1)

Uart0_Tx(Temp2)

ds18b20_Reset()      //DS18b20 复位,表示读取结束

//return (((Temp2<<8)|Temp1)*6.25)//0.0625=xx, 0.625=xx.x,6.25=xx.xx

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/7762931.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-09
下一篇2023-04-09

发表评论

登录后才能评论

评论列表(0条)

    保存