找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1787|回復(fù): 4
收起左側(cè)

溫度報(bào)警器仿真,溫度顯示錯(cuò)誤

[復(fù)制鏈接]
ID:1060653 發(fā)表于 2023-1-8 13:04 | 顯示全部樓層 |閱讀模式
求教請(qǐng)教,寫得程序在單片機(jī)的板子上可以運(yùn)行,但是在proteus上仿真就有問題了。那個(gè)LCD一直顯示溫度是-0.006,蜂鳴器還一直響。請(qǐng)問大佬怎么回事呀。我在網(wǎng)上查了查說是DS18B20的關(guān)于延時(shí)的地方錯(cuò)誤了。我把這一段程序粘貼在下面,如果不是那里的錯(cuò),我也把這一整個(gè)的程序代碼寫在附件了。
#include <REGX52.H>

//引腳定義
sbit OneWire_DQ=P3^7;

/**
  * @brief  單總線初始化
  * @param  無
  * @retval 從機(jī)響應(yīng)位,0為響應(yīng),1為未響應(yīng)
  */
unsigned char OneWire_Init(void)
{
        unsigned char i;
        unsigned char AckBit;
        EA=0;
        OneWire_DQ=1;
        OneWire_DQ=0;
        i = 247;while (--i);                //Delay 500us
        OneWire_DQ=1;
        i = 32;while (--i);                        //Delay 70us
        AckBit=OneWire_DQ;
        i = 247;while (--i);                //Delay 500us
        EA=1;
        return AckBit;
}

/**
  * @brief  單總線發(fā)送一位
  * @param  Bit 要發(fā)送的位
  * @retval 無
  */
void OneWire_SendBit(unsigned char Bit)
{
        unsigned char i;
        EA=0;
        OneWire_DQ=0;
        i = 4;while (--i);                        //Delay 10us
        OneWire_DQ=Bit;
        i = 24;while (--i);                        //Delay 50us
        OneWire_DQ=1;
        EA=1;
}

/**
  * @brief  單總線接收一位
  * @param  無
  * @retval 讀取的位
  */
unsigned char OneWire_ReceiveBit(void)
{
        unsigned char i;
        unsigned char Bit;
        EA=0;
        OneWire_DQ=0;
        i = 2;while (--i);                        //Delay 5us
        OneWire_DQ=1;
        i = 2;while (--i);                        //Delay 5us
        Bit=OneWire_DQ;
        i = 24;while (--i);                        //Delay 50us
        EA=1;
        return Bit;
}

/**
  * @brief  單總線發(fā)送一個(gè)字節(jié)
  * @param  Byte 要發(fā)送的字節(jié)
  * @retval 無
  */
void OneWire_SendByte(unsigned char Byte)
{
        unsigned char i;
        for(i=0;i<8;i++)
        {
                OneWire_SendBit(Byte&(0x01<<i));
        }
}

/**
  * @brief  單總線接收一個(gè)字節(jié)
  * @param  無
  * @retval 接收的一個(gè)字節(jié)
  */
unsigned char OneWire_ReceiveByte(void)
{
        unsigned char i;
        unsigned char Byte=0x00;
        for(i=0;i<8;i++)
        {
                if(OneWire_ReceiveBit()){Byte|=(0x01<<i);}
        }
        return Byte;
}


溫度報(bào)警器開.png

13-2 DS18B20溫度報(bào)警器.rar

88.28 KB, 下載次數(shù): 18

回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2023-1-8 16:13 | 顯示全部樓層
既然實(shí)物可以運(yùn)行,你搭理仿真這個(gè)破爛東西干什么?
回復(fù)

使用道具 舉報(bào)

ID:1060653 發(fā)表于 2023-1-9 09:16 | 顯示全部樓層
是呀,但任務(wù)要求說還得有仿真,嗚嗚嗚
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2023-1-9 11:31 | 顯示全部樓層
附件項(xiàng)目有問題
2023-01-09_095439.png 2023-01-09_095233.png 2023-01-09_095610.png



寫之前拉高
2023-01-09_112734.png

讀之后也要拉高
2023-01-09_112748.png

回復(fù)

使用道具 舉報(bào)

ID:1060653 發(fā)表于 2023-1-9 13:17 | 顯示全部樓層
哦哦抱歉,下面這個(gè)附件是對(duì)的

溫度報(bào)警器.rar

75.8 KB, 下載次數(shù): 11

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表