找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 25431|回復: 45
收起左側(cè)

Proteus仿真STM32實現(xiàn)--DS18B20和LCD1602顯示

  [復制鏈接]
ID:484657 發(fā)表于 2019-5-16 00:27 | 顯示全部樓層 |閱讀模式
proteus仿真stm32103r6,實現(xiàn)18B20溫度值在1602上顯示,可測量正負溫度。程序及仿真工程已上傳附件,利用proteus仿真18b20溫度為0和-0.1時返回值均為零,新手上路,請多指教。使用proteus8.8版本進行仿真。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)

原理圖

原理圖

時序

時序

原理圖

原理圖



單片機部分程序如下:
#include "stm32f10x.h"
#include "bsp-lcd1602.h"
#include "delay.h"
#include "sys.h"

#include "ds18b20.h"
#include <stdio.h>
#include "math.h"


short tem,tem1;
u8 a,b,c,t;
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif


void Delay_DS18B20(int num)
{
        while(num--) ;
}


int main(void)
        
{

        SystemCoreClockUpdate ();
         LCD1602_Init();
        LCD1602_ShowStr(2,0,"tempe=000.0C",13);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
        GPIO_InitTypeDef g;
        g.GPIO_Mode = GPIO_Mode_Out_PP;
        g.GPIO_Speed = GPIO_Speed_10MHz;
        g.GPIO_Pin = GPIO_Pin_8  ;
        GPIO_Init(GPIOB,&g);
         GPIO_SetBits(GPIOB,GPIO_Pin_8);    //輸出1

   t=DS18B20_DQ_IN;
while(t){
                DS18B20_IO_OUT();         //SET PG11 OUTPUT

    DS18B20_DQ_OUT=0;         //拉低DQ
          Delay_DS18B20(750);             //拉低750us
    DS18B20_DQ_OUT=1;         //DQ=1
          Delay_DS18B20(15);             //15US
                DS18B20_IO_IN();        //SET PG11 INPUT         
    Delay_DS18B20(100);
                t=DS18B20_DQ_IN;
//                 LCD_ShowNum(13,0,t);
}
tem=DS18B20_Get_Temp();
                Delay_DS18B20(1000000);

while(1)
        {        
    tem=DS18B20_Get_Temp();
                if(        tem>0)
                {        a=tem/100;
                b=tem%100/10;
                c=tem%10;
                LCD_ShowChar(8,0,'+');
        LCD_ShowNum(9,0,a);        
        LCD_ShowNum(10,0,b);
        LCD_ShowNum(12,0,c);
                          
                }
        else
        {        
//                tem1=(int)tem;
//                tem1=abs(tem1);
                tem1=-(tem);
                tem1=tem1+1;
                a=tem1/100;
                b=tem1%100/10;
                c=tem1%10;
        LCD_ShowChar(8,0,'-');
        LCD_ShowNum(9,0,a);        
        LCD_ShowNum(10,0,b);
        LCD_ShowNum(12,0,c);
               
        }
        Delay_DS18B20(100000);
  }

全部資料51hei下載地址:
STM32+1602+18B20.7z (327.43 KB, 下載次數(shù): 1805)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:496408 發(fā)表于 2019-6-9 00:12 | 顯示全部樓層
下載了這個工程,是可以像截圖一樣運行,但是我尋思著沒有接熱源,這溫度傳感器是測誰的溫度呢?應該少了一部分東西吧,心疼我僅有的黑幣
回復

使用道具 舉報

ID:438506 發(fā)表于 2019-6-12 08:39 | 顯示全部樓層
justablackcat 發(fā)表于 2019-6-9 00:12
下載了這個工程,是可以像截圖一樣運行,但是我尋思著沒有接熱源,這溫度傳感器是測誰的溫度呢?應該少了一 ...

沒用過protues? 可以設置啊
回復

使用道具 舉報

ID:484657 發(fā)表于 2019-6-18 20:45 | 顯示全部樓層
justablackcat 發(fā)表于 2019-6-9 00:12
下載了這個工程,是可以像截圖一樣運行,但是我尋思著沒有接熱源,這溫度傳感器是測誰的溫度呢?應該少了一 ...

雙擊18B20就可以 設置大當前溫度計調(diào)整溫度
回復

使用道具 舉報

ID:484657 發(fā)表于 2019-6-18 20:46 | 顯示全部樓層
justablackcat 發(fā)表于 2019-6-9 00:12
下載了這個工程,是可以像截圖一樣運行,但是我尋思著沒有接熱源,這溫度傳感器是測誰的溫度呢?應該少了一 ...

雙擊18B20就可以
設置當前溫度計調(diào)整溫度
回復

使用道具 舉報

ID:603234 發(fā)表于 2019-8-25 15:41 | 顯示全部樓層
點18B20溫度傳感器的加或減號 就可以實時顯示設定值
回復

使用道具 舉報

ID:603234 發(fā)表于 2019-8-25 15:48 | 顯示全部樓層
很好的仿真運行資料 謝謝分享
回復

使用道具 舉報

ID:248705 發(fā)表于 2019-9-27 20:37 | 顯示全部樓層
樓主,有沒有遇到32仿真速度慢的情況,甚至不如51快,同8.8
回復

使用道具 舉報

ID:617305 發(fā)表于 2019-9-28 14:02 | 顯示全部樓層
這個真心不錯,要支持下
回復

使用道具 舉報

ID:617594 發(fā)表于 2019-9-28 15:07 | 顯示全部樓層
沒有黑幣來學習一下,感謝分享!
回復

使用道具 舉報

ID:140706 發(fā)表于 2019-10-15 17:31 | 顯示全部樓層
有了porteus學stm32更方便了
回復

使用道具 舉報

ID:671136 發(fā)表于 2019-12-30 11:41 | 顯示全部樓層
是什么通信啊,植入系統(tǒng)了么
回復

使用道具 舉報

ID:689546 發(fā)表于 2020-2-13 16:04 | 顯示全部樓層
我學的不知道為啥沒顯示
回復

使用道具 舉報

ID:689546 發(fā)表于 2020-2-14 15:48 | 顯示全部樓層
為啥我仿真沒顯示出東西
回復

使用道具 舉報

ID:16031 發(fā)表于 2020-2-14 18:10 | 顯示全部樓層
下載這個工程,學習學習
回復

使用道具 舉報

ID:16031 發(fā)表于 2020-2-14 18:12 | 顯示全部樓層
沒有黑幣了
回復

使用道具 舉報

17#
無效樓層,該帖已經(jīng)被刪除
18#
無效樓層,該帖已經(jīng)被刪除
19#
無效樓層,該帖已經(jīng)被刪除
ID:693219 發(fā)表于 2020-3-10 12:36 | 顯示全部樓層
想請問%這個符號報錯是什么原因呢 要添加什么文件嗎
回復

使用道具 舉報

ID:650508 發(fā)表于 2020-3-17 12:34 | 顯示全部樓層
下載這個工程,學習學習,軟件自帶的仿真工程不方便
回復

使用道具 舉報

ID:249826 發(fā)表于 2020-3-24 16:05 | 顯示全部樓層
運行起來為什么調(diào)整溫度比較快時就會卡死
回復

使用道具 舉報

23#
無效樓層,該帖已經(jīng)被刪除
24#
無效樓層,該帖已經(jīng)被刪除
25#
無效樓層,該帖已經(jīng)被刪除
ID:130743 發(fā)表于 2020-5-1 15:26 | 顯示全部樓層
為什么我一調(diào)節(jié)溫度就會卡死,然后軟件閃退
回復

使用道具 舉報

ID:742667 發(fā)表于 2020-5-2 15:52 | 顯示全部樓層
//輸出1   像這種//后面有漢字的是解說嗎?還是也是程序的一部分的?
回復

使用道具 舉報

ID:497375 發(fā)表于 2020-5-3 22:03 | 顯示全部樓層
8.6版本同樣的圖無法仿真?
回復

使用道具 舉報

ID:547542 發(fā)表于 2020-5-10 09:48 | 顯示全部樓層
感謝
回復

使用道具 舉報

ID:646541 發(fā)表于 2020-5-14 10:27 | 顯示全部樓層
白七 發(fā)表于 2020-2-14 15:48
為啥我仿真沒顯示出東西

不能用嗎?
回復

使用道具 舉報

31#
無效樓層,該帖已經(jīng)被刪除
ID:647558 發(fā)表于 2020-5-25 22:53 | 顯示全部樓層
謝謝樓主
回復

使用道具 舉報

ID:773622 發(fā)表于 2020-6-11 08:45 | 顯示全部樓層
sunshiner_pl 發(fā)表于 2020-3-24 16:05
運行起來為什么調(diào)整溫度比較快時就會卡死

我也是 問題解決了嗎
回復

使用道具 舉報

ID:773622 發(fā)表于 2020-6-14 22:16 | 顯示全部樓層
樓主能留個聯(lián)系方式 有點問題想請教一下
回復

使用道具 舉報

ID:130743 發(fā)表于 2020-6-16 15:50 | 顯示全部樓層
justablackcat 發(fā)表于 2019-6-9 00:12
下載了這個工程,是可以像截圖一樣運行,但是我尋思著沒有接熱源,這溫度傳感器是測誰的溫度呢?應該少了一 ...

你不懂仿真啊
回復

使用道具 舉報

ID:87715 發(fā)表于 2020-6-25 10:50 | 顯示全部樓層
有問題,跑著跑著就掛死了。主頻才8M
回復

使用道具 舉報

ID:790012 發(fā)表于 2020-6-26 10:25 | 顯示全部樓層
感謝分享
回復

使用道具 舉報

ID:470702 發(fā)表于 2020-6-28 19:05 | 顯示全部樓層
justablackcat 發(fā)表于 2019-6-9 00:12
下載了這個工程,是可以像截圖一樣運行,但是我尋思著沒有接熱源,這溫度傳感器是測誰的溫度呢?應該少了一 ...

DS18B20有三個引腳,在仿真的時候有兩個按鈕,可以調(diào)節(jié)溫度的大小,這個按鈕實際上就是模擬實際DS18B20所測到的溫度的
回復

使用道具 舉報

ID:774190 發(fā)表于 2020-7-3 15:47 | 顯示全部樓層
請問最后獲取溫度的數(shù)值的是哪個參數(shù)呢
回復

使用道具 舉報

ID:541606 發(fā)表于 2020-7-21 11:16 | 顯示全部樓層
感謝樓主哇,學習一下ds18b20
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表