标题: Proteus仿真STM32实现--DS18B20和LCD1602显示 [打印本页]

作者: 家家家    时间: 2019-5-16 00:27
标题: Proteus仿真STM32实现--DS18B20和LCD1602显示
proteus仿真stm32103r6,实现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, 下载次数: 1805)


作者: justablackcat    时间: 2019-6-9 00:12
下载了这个工程,是可以像截图一样运行,但是我寻思着没有接热源,这温度传感器是测谁的温度呢?应该少了一部分东西吧,心疼我仅有的黑币
作者: legendss13    时间: 2019-6-12 08:39
justablackcat 发表于 2019-6-9 00:12
下载了这个工程,是可以像截图一样运行,但是我寻思着没有接热源,这温度传感器是测谁的温度呢?应该少了一 ...

没用过protues? 可以设置啊
作者: 家家家    时间: 2019-6-18 20:45
justablackcat 发表于 2019-6-9 00:12
下载了这个工程,是可以像截图一样运行,但是我寻思着没有接热源,这温度传感器是测谁的温度呢?应该少了一 ...

双击18B20就可以 设置大当前温度计调整温度
作者: 家家家    时间: 2019-6-18 20:46
justablackcat 发表于 2019-6-9 00:12
下载了这个工程,是可以像截图一样运行,但是我寻思着没有接热源,这温度传感器是测谁的温度呢?应该少了一 ...

双击18B20就可以
设置当前温度计调整温度
作者: 万古琴    时间: 2019-8-25 15:41
点18B20温度传感器的加或减号 就可以实时显示设定值
作者: 万古琴    时间: 2019-8-25 15:48
很好的仿真运行资料 谢谢分享
作者: 的花朵    时间: 2019-9-27 20:37
楼主,有没有遇到32仿真速度慢的情况,甚至不如51快,同8.8
作者: rgbgirl    时间: 2019-9-28 14:02
这个真心不错,要支持下
作者: wave_tracy    时间: 2019-9-28 15:07
没有黑币来学习一下,感谢分享!
作者: YXDZGD5    时间: 2019-10-15 17:31
有了porteus学stm32更方便了

作者: caivivi    时间: 2019-12-30 11:41
是什么通信啊,植入系统了么

作者: 白七    时间: 2020-2-13 16:04
我学的不知道为啥没显示
作者: 白七    时间: 2020-2-14 15:48
为啥我仿真没显示出东西
作者: longwang    时间: 2020-2-14 18:10
下载这个工程,学习学习
作者: longwang    时间: 2020-2-14 18:12
没有黑币了
作者: VickyVickyYee    时间: 2020-3-10 12:36
想请问%这个符号报错是什么原因呢 要添加什么文件吗
作者: chenqiandong    时间: 2020-3-17 12:34
下载这个工程,学习学习,软件自带的仿真工程不方便
作者: sunshiner_pl    时间: 2020-3-24 16:05
运行起来为什么调整温度比较快时就会卡死
作者: c山水    时间: 2020-5-1 15:26
为什么我一调节温度就会卡死,然后软件闪退
作者: 阿迪H    时间: 2020-5-2 15:52
//输出1   像这种//后面有汉字的是解说吗?还是也是程序的一部分的?
作者: greenberet    时间: 2020-5-3 22:03
8.6版本同样的图无法仿真?
作者: 静静的咸鱼1    时间: 2020-5-10 09:48
感谢

作者: beiyouliangcgen    时间: 2020-5-14 10:27
白七 发表于 2020-2-14 15:48
为啥我仿真没显示出东西

不能用吗?
作者: 123456578900    时间: 2020-5-25 22:53
谢谢楼主
作者: cold66    时间: 2020-6-11 08:45
sunshiner_pl 发表于 2020-3-24 16:05
运行起来为什么调整温度比较快时就会卡死

我也是 问题解决了吗

作者: cold66    时间: 2020-6-14 22:16
楼主能留个联系方式 有点问题想请教一下
作者: c山水    时间: 2020-6-16 15:50
justablackcat 发表于 2019-6-9 00:12
下载了这个工程,是可以像截图一样运行,但是我寻思着没有接热源,这温度传感器是测谁的温度呢?应该少了一 ...

你不懂仿真啊
作者: asd46528863    时间: 2020-6-25 10:50
有问题,跑着跑着就挂死了。主频才8M
作者: f414158949    时间: 2020-6-26 10:25
感谢分享
作者: yy海皇姬    时间: 2020-6-28 19:05
justablackcat 发表于 2019-6-9 00:12
下载了这个工程,是可以像截图一样运行,但是我寻思着没有接热源,这温度传感器是测谁的温度呢?应该少了一 ...

DS18B20有三个引脚,在仿真的时候有两个按钮,可以调节温度的大小,这个按钮实际上就是模拟实际DS18B20所测到的温度的
作者: zxla    时间: 2020-7-3 15:47
请问最后获取温度的数值的是哪个参数呢
作者: 覃覃覃覃    时间: 2020-7-21 11:16
感谢楼主哇,学习一下ds18b20
作者: gemxie    时间: 2020-8-14 09:54
我下载进去根本不得
作者: XXCCXXCC    时间: 2020-10-29 16:33
这个是protues哪个版本的呀。我用8.6怎么打不开呢?
作者: 51hei电控200522    时间: 2020-12-26 20:11
为啥我什么都看不到呢
作者: QcRoot    时间: 2021-4-20 11:12
DS18B20的STM32显示,非常需要,感谢作者的分享
作者: 小黑屋。    时间: 2021-7-4 16:50
有STM32的配置吗
作者: xjj850205    时间: 2021-11-22 18:33
有了porteus学stm32更方便了
作者: liuyiyi    时间: 2021-12-30 10:27
发现在实验板上不能正常使用,proteus上面是可以的
作者: xjj850205    时间: 2022-3-13 20:43
很好的仿真运行资料 谢谢分享
作者: xjj850205    时间: 2022-3-14 20:29
liuyiyi 发表于 2021-12-30 10:27
发现在实验板上不能正常使用,proteus上面是可以的

运行起来为什么调整温度比较快时就会卡死
作者: xjj850205    时间: 2022-3-15 15:53
liuyiyi 发表于 2021-12-30 10:27
发现在实验板上不能正常使用,proteus上面是可以的

下载下来,学习下
作者: homedang    时间: 2022-3-15 23:38
你是怎么做到的
作者: cooldog123pp    时间: 2022-10-29 07:20
工程应该是有点问题的
作者: da'da'l'k    时间: 2023-4-22 10:38
很好的仿真运行资料 谢谢分享,学习一下





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1