历史上的今天
返回首页

历史上的今天

今天是:2025年07月21日(星期一)

正在发生

2020年07月21日 | Proteus仿真STM32实现--DS18B20和LCD1602显示

2020-07-21 来源:51hei

proteus仿真stm32103r6,实现18B20温度值在1602上显示,可测量正负温度。程序及仿真工程已上传附件,利用proteus仿真18b20温度为0和-0.1时返回值均为零,新手上路,请多指教。使用proteus8.8版本进行仿真。


原理图

原理图

时序

时序

原理图

原理图

单片机部分程序如下:

#include "stm32f10x.h"

#include "bsp-lcd1602.h"

#include "delay.h"

#include "sys.h"


#include "ds18b20.h"

#include

#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);

  }



推荐阅读

史海拾趣

Custom Connector Corporation公司的发展小趣事

Custom Connector Corporation成立于1969年,当时电子连接器行业正处于快速发展阶段。创始人看到这一市场潜力,决定投身于这一领域。在创业初期,CCC面临着资金紧张、技术瓶颈和市场认可度低等问题。然而,创始人凭借对技术的执着追求和对市场的敏锐洞察,带领团队不断研发新产品,改进生产工艺,逐渐在市场中树立了自己的品牌形象。

Condor公司的发展小趣事

随着全球化趋势的加剧,CCC意识到必须拓展国际市场才能保持竞争力。因此,公司制定了全球化战略,积极开拓海外市场。通过与国外代理商合作、参加国际展会等方式,CCC的产品逐渐打入国际市场并获得了良好的口碑。如今,CCC的产品已经出口到欧洲、亚洲等多个国家和地区。

Delus Corp公司的发展小趣事

为了降低生产成本、提高生产效率,Delus Corp公司不断优化供应链管理。公司建立了完善的供应链管理系统,实现了从原材料采购、生产制造到产品销售的全程监控和管理。同时,公司还与供应商建立了长期稳定的合作关系,确保原材料的稳定供应和质量的可靠性。这些措施的实施,使得公司的运营成本得到了有效降低,生产效率得到了显著提升。

AEMC Instruments公司的发展小趣事

随着产品的不断完善和升级,AEMC Instruments公司开始积极拓展市场。公司加强与国际市场的合作,通过参加国际展会、建立全球分销商网络等方式,将产品推向全球。同时,公司还积极寻求与国际知名企业的合作,共同研发新产品和技术,以进一步提升产品的竞争力。这些举措不仅扩大了公司的市场份额,也提高了公司的国际知名度。

Greatbatch-Sierra Inc公司的发展小趣事

随着产品的不断完善和升级,AEMC Instruments公司开始积极拓展市场。公司加强与国际市场的合作,通过参加国际展会、建立全球分销商网络等方式,将产品推向全球。同时,公司还积极寻求与国际知名企业的合作,共同研发新产品和技术,以进一步提升产品的竞争力。这些举措不仅扩大了公司的市场份额,也提高了公司的国际知名度。

ECM [ECM Electronics Limited.]公司的发展小趣事

在竞争激烈的电子行业中,品质是企业生存和发展的关键。ECM Electronics Limited.深知这一点,始终将产品质量放在首位。公司建立了严格的质量管理体系,从原材料采购到产品生产、检测、包装等各个环节都严格把关,确保每一件产品都符合高标准的质量要求。正是凭借过硬的产品品质,ECM赢得了客户的信赖和市场的认可。

问答坊 | AI 解惑

mbse技术

中科信软招 mbse兼职讲师或兼职技术支持人员,短周期的培训或技术支持,可周末. 北上广深,成都,武汉,西安,苏州等 主要城市. 内容有培训讲课,或技术支持,或项目外包. 如您想挣点外块,积累资源,充实生活,请联系我. 要求:有实际项目经历 ...…

查看全部问答>

【行空板 Python编程学习主控板】评测九、摄像头验证与AI应用体验

本帖最后由 天意无罪 于 2022-12-10 23:33 编辑         接近年关,事情真的多啊,最近忙写投标文件,连周末都没有休息,每天工作到凌晨1~2点,睡5个小时左右又得起床上班,哎,真的是累的啊。何况年龄 ...…

查看全部问答>

Sipeed 博流BL808全能板暖场

物流原因,板卡发出快一周了,依然没有到货,如我申请所说,希望能在这块板子上做一个小电子宠物,选来选去,找到两个比较合适的宠物(市面肯定找不到的) 大家帮我参考一下,哪个比较合适。 幼年狮子王 可以考虑一直养,过段时间换成 ...…

查看全部问答>

玩转RP2040之设计一个表盘

上篇文章,介绍了使用Python在LCD上显示各种类型的文字。   本篇,就来使用字体显示功能,来实现一个表盘。最终效果如下: 表盘的内容包括: 顶部的蓝牙连接图标和电量图标 蓝牙图标通过画直线来完成 ...…

查看全部问答>

麻烦大佬们指导一下有没有最新的python自动化测试用例

麻烦大佬们指导一下有没有最新的python自动化测试用例,正在学习,不是很懂 …

查看全部问答>

关于Verilog波形的一个疑问

请问波形是上面那样的还是下面那样的,怎么才能实现上面那样的 …

查看全部问答>

低电压光控LED闪光灯 面包板ok,Multisim中无法成功模拟

本帖最后由 电子路人1 于 2022-12-11 22:51 编辑 低电压光控LED闪光灯 面包板ok,Multisim中无法成功模拟   附件1, 原始线路图   附件2 面包板无光时闪光 附件3 multisim中不运行 …

查看全部问答>

Sipeed 高云GW2A PLL简单使用

哈喽,大家好~ 今天这里简单分享一下高云的PLL的使用方法,仅限于入门使用哈~ 这里直接使用IP Core Generator,在如下位置。  打开页面后,双击rPLL,会弹出设置界面。 高云的PLL分为一般模式和高级模式,因为还没有仔细研究过手 ...…

查看全部问答>

Sipeed 高云GW2A SVPWM发波测试

哈喽,大家好~ 这里分享一下将之前的计算出来的SVPWM通过IO发送出来。 先用锯齿载波测试一下,实现方式如下: always @(posedge clk) begin if (!reset) begin counter_18k <= 32\'d0; end else if (counter_ ...…

查看全部问答>

【贝能高性价比ATSAMD51评估板】KEIL环境搭建/点亮LED0/使LED闪烁

收到开发板有一些时间了,前些时间一直在忙着工作试产,没有在第一时间测评开发板。下面开始测评: 1、添加头文件: 环境搭建前找头文件找了三天,结果没有找到相关的头文件,从周三开始就一直在找有关ATSAMD51P20A.PACK文件,所以一直拖到今 ...…

查看全部问答>