找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2049|回复: 0
打印 上一主题 下一主题
收起左侧

基于stm32单片机Proteus仿真温度采集DS18B20实验

[复制链接]
跳转到指定楼层
楼主
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


这里展示主函数

#include "system.h"
#include "led.h"
#include "ds18b20.h"


//打印浮点型数据,proteus不能有效打印浮点型数据
void PrintfFloat(float value)
{
                int tmp,tmp1,tmp2,tmp3,tmp4,tmp5,tmp6;
        tmp=(int)value;
        tmp1=(int)((value-tmp)*10)%10;
        tmp2=(int)((value-tmp)*100)%10;
        tmp3=(int)((value-tmp)*1000)%10;
        tmp4=(int)((value-tmp)*10000)%10;
        tmp5=(int)((value-tmp)*100000)%10;
        tmp6=(int)((value-tmp)*1000000)%10;
        
        printf("%d.%d%d%d%d",tmp,tmp1,tmp2,tmp3,tmp4);
}


int main()
{
        u8 i=0;
        u16 temper;
        float value;
        
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //中断优先级分组 分2组
        LED_Init();
        USART1_Init(115200);
        while(DS18B20_Init())
        {
                printf("DS18B20检测失败,请插好!\r\n");
                delay_ms(500);
        }
        printf("DS18B20检测成功!\r\n");
        
        while(1)
        {
                i++;
                if(i%20==0)
                {
                        LED1=!LED1;
                }
               
                if(i%50==0)
                {
                        temper=DS18B20_Get_Temp();

                        if((temper&0xf800)==0xf800)
                        {
                                temper=(~temper)+1;
                                
                        printf("检测的温度为:- ");
                                
                        }
                        else
                        {
                        printf("检测的温度为: ");
                        }

                 value=(float)temper*0.0625;
                        PrintfFloat(value);
                        printf("\r\n");
                        
                }
                delay_ms(10);
        }
}

Keil代码下载: Keil工程.7z (313.62 KB, 下载次数: 114)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表