欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2040|回復: 2
打印 上一主題 下一主題
收起左側

STC15系列單片機18B20調試(1T)

[復制鏈接]
跳轉到指定樓層
樓主
ID:247604 發表于 2017-11-9 16:12 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
在用STC89單片機的代碼一直到STC15系列的單片機的時候,出先調試得不出正確溫度的問題,后來才執拗89S52 是12T的 15系列的是1T的 單片機的時鐘周期存在區別,新手初學,不喜勿噴啊,下邊吧整理的源碼粘在下邊,親測,可用!!

DS18B20.C文件

#include <\stc\stc15f2k60s2.h>
#include "userdef.h"
#include"ds18b20.h"

/****************************************************************************
**STCμ¥Ƭ»úËù¶è±è8051Ëù¶è¿ì£¬êôóú1¸öê±Öó/»úÆ÷ÖüÆú¸ßËùμ¥Ƭ»ú¡£Ëù¶è¿ìêÇÆäóÅμã**
*******μ«êǶÔóúòaòÆÖ2′«í3μÄ80513ìDò¶øÑÔ£¬DèòaDT¸Äê±Dò¡£à′êμÏÖÄ31|Äü**********
***òÔÏÂ3ìDòêÇDS18B20¼òμ¥μÄÇy¶ˉ3ìDò£¬ÔúSTC12C5A60S2ÖDμ÷êÔí¨1y£¬×îÖÕ·μ»Øò»¸ö***
***unsigned int,μí12λ¾íêÇζèêy¾Y¡£ÔúÖ÷3ìDòàïÔËDDÔËËã¼′¿éμÃμ½êμ¼êμÄζèÖμ***
****************************************************************************/
/***********ds18b20×ó3ìDò*************************/
/***********ds18b20Ñóê±oˉêy(¾§Õñ11.0592MHz )*******/
void delay_18B20(unsigned int i)
{
while(i--);
}
/**********ds18b203õê¼»ˉoˉêy**********************/
void Init_DS18B20(void)
{
unsigned char x=0;
DQ = 1;           //DQ¸′λ
delay_18B20(80);  //éÔ×÷Ñóê±
DQ = 0;           //μ¥Ƭ»ú½«DQà-μí
delay_18B20(800); //¾«è·Ñóê± ′óóú 480us
DQ = 1;           //à-¸ß×üÏß
delay_18B20(140);
x=DQ;   
delay_18B20(200);
}
/***********ds18b20¶áò»¸ö×Ö½ú**************/
unsigned char ReadOneChar(void)
{
uchar i=0;
uchar dat = 0;
for (i=8;i>0;i--)
{
    DQ = 0; // ¸øÂö3åDÅoÅ
    dat>>=1;
    DQ = 1; // ¸øÂö3åDÅoÅ
    if(DQ)
    dat|=0x80;
    delay_18B20(40);     //40
}
   return(dat);
}
/*************ds18b20D′ò»¸ö×Ö½ú****************/
void WriteOneChar(uchar dat)
{
   unsigned char i=0;
   for (i=8; i>0; i--)
   {
    DQ = 0;
    DQ = dat&0x01;
    delay_18B20(50); //50
    DQ = 1;
    dat>>=1;
         }
}
/**************¶áè¡ds18b20μ±Ç°Î¶è************/
unsigned int ReadTemp(void)
{
       
unsigned char a=0;
unsigned char b=0;
unsigned int temp_value=0;
Init_DS18B20();
WriteOneChar(0xCC);     
WriteOneChar(0x44);  
delay_18B20(1000);      
Init_DS18B20();
WriteOneChar(0xCC);  
WriteOneChar(0xBE);  
delay_18B20(1000);
a=ReadOneChar();    //¶áè¡Î¶èÖμμíλ
b=ReadOneChar();    //¶áè¡Î¶èÖμ¸ßλ
temp_value = b<<8;
temp_value |= a;
return temp_value;

       
          
}

DS18B20.H文件

#ifndef __DS18B20_H_
#define __DS18B20_H_


//--¶¨òåê1óÃμÄIO¿ú--//
sbit DQ=P1^2;

//--éùÃ÷諾Öoˉêy--//

void Init_DS18B20(void) ;
void delay_18B20(unsigned int i);
unsigned char ReadOneChar(void);
void WriteOneChar(uchar dat);
unsigned int ReadTemp(void);

#endif



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2017-11-10 01:55 | 只看該作者
有亂碼  能分享個壓縮包嗎?
回復

使用道具 舉報

板凳
ID:256970 發表于 2020-7-18 21:34 | 只看該作者
admin 發表于 2017-11-10 01:55
有亂碼  能分享個壓縮包嗎?

亂碼部分是注釋,不影響程序,最近正需要這個東西,測試沒有問題,非常感謝樓主分享!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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