91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 72KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-07
  • 語言: 其他
  • 標簽: DS18B20??課程設計??

資源簡介

DS18B20 多點溫度測量 用proteus仿真 課程設計 單片機 51。我設計的是3個溫度器,程序課改成8個溫度。只需在仿真圖上加上即可

資源截圖

代碼片段和文件信息

//頭文件包含
#include?
#include?
#include?“DS18B20.H“

//引腳定義
sbit? DQ?=?P2^7; //數據線端口

//DS18B20序列號通過調用GetROMSequence()函數在P1口讀出(讀8次)
const?unsigned?char?code?ROMData1[8]?=?{0x28?0x33?0xC5?0xB8?0x00?0x00?0x00?0xD7}; //U1
const?unsigned?char?code?ROMData2[8]?=?{0x28?0x30?0xC5?0xB8?0x00?0x00?0x00?0x8E}; //U2
const?unsigned?char?code?ROMData3[8]?=?{0x28?0x31?0xC5?0xB8?0x00?0x00?0x00?0xB9}; //U3
//const?unsigned?char?code?ROMData4[8]?=?{0x28?0x32?0xC5?0xB8?0x00?0x00?0x00?0xE0}; //U4
//const?unsigned?char?code?ROMData5[8]?=?{0x28?0x34?0xC5?0xB8?0x00?0x00?0x00?0x52}; //U5
//const?unsigned?char?code?ROMData6[8]?=?{0x28?0x35?0xC5?0xB8?0x00?0x00?0x00?0x65}; //U6
//const?unsigned?char?code?ROMData7[8]?=?{0x28?0x36?0xC5?0xB8?0x00?0x00?0x00?0x3C}; //U7
//const?unsigned?char?code?ROMData8[8]?=?{0x28?0x37?0xC5?0xB8?0x00?0x00?0x00?0x0B}; //U8

//延時16us子函數
void?Delay16us()
{
unsigned?char?a;

for?(a?=?0;?a?}

//延時60us子函數
void?Delay60us()
{
unsigned?char?a;

for?(a?=?0;?a?}

//延時480us子函數
void?Delay480us()
{
unsigned?char?a;

for?(a?=?0;?a?}

//延時240us子函數
void?Delay240us()
{
unsigned?char?a;

for?(a?=?0;?a?}

//延時500ms子函數
void?Delay500ms()
{
unsigned?char?a?b?c;

for?(a?=?0;?a? for?(b?=?0;?b? for?(c?=?0;?c?}

//芯片初始化
void?Initialization()
{
while(1)
{
DQ?=?0;
Delay480us();? //延時480us
DQ?=?1;
Delay60us(); //延時60us
if(!DQ)?? //收到ds18b20的應答信號
{
DQ?=?1;
Delay240us(); //延時240us
break;
}
}
}

//寫一個字節(從低位開始寫)
void?WriteByte(unsigned?char?btData)
{
unsigned?char?i?btBuffer;

for?(i?=?0;?i? {
btBuffer?=?btData?>>?i;
if?(btBuffer?&?1)
{
DQ?=?0;
_nop_();
_nop_();
DQ?=?1;
Delay60us();
}
else
{
DQ?=?0;
Delay60us();
DQ?=?1;
}
}
}

//讀一個字節(從低位開始讀)
unsigned?char?ReadByte()
{
unsigned?char?i?btDest;

for?(i?=?0;?i? {
btDest?>>=?1;
DQ?=?0;
_nop_();
_nop_();
DQ?=?1;
Delay16us();
if?(DQ)?btDest?|=?0x80;?
Delay60us();
}

return?btDest;
}

//序列號匹配
void?MatchROM(const?unsigned?char?*pMatchData)
{
unsigned?char?i;

Initialization();
WriteByte(MATCH_ROM);
for?(i?=?0;?i?}

//得到64位ROM序列(在P1口顯示必須與Proteus聯調且在單步調試下才能得到)
/*void?GetROMSequence()
{
unsigned?char?i;

Initialization();
WriteByte(READ_ROM);
for?(i?=?0;?i? P1?=?ReadByte();
}*/

//讀取溫度值
bit?ReadTemperature(TEMPDATA?*?pTempData)
{
unsigned?int?iTempDataH;
unsigned?char?btDot?iTempDataL;
static?unsigned?char?i?=?0;

pTempData->btNegative?=?0; //為0溫度為正
i++;
if?(i?==?4)?i?=?1;
Initialization();
WriteByte(SKIP_ROM); //跳過ROM匹配
WriteByte(TEMP_SWITCH); //啟動轉換
Delay500ms();?? //調用一次就行
Delay500

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????????457??2009-05-30?19:05??設計1\Keil\Include\1602.H

?????文件???????1692??2009-10-31?11:10??設計1\Keil\Include\DS18B20.H

?????文件???????2385??2014-12-02?21:43??設計1\Keil\Keil.Opt

?????文件???????2325??2014-12-02?21:43??設計1\Keil\Keil.Uv2

????.......??????2358??2009-11-22?16:11??設計1\Keil\Keil_Opt.Bak

????.......??????2192??2009-10-31?11:10??設計1\Keil\Keil_Uv2.Bak

?????文件????????849??2014-12-02?21:43??設計1\Keil\LST\1602驅動.lst

?????文件????????864??2014-12-02?21:43??設計1\Keil\LST\DS18B20驅動.lst

?????文件??????11760??2009-11-22?16:02??設計1\Keil\LST\STARTUP.lst

?????文件????????839??2014-12-02?21:43??設計1\Keil\LST\主函數.lst

?????文件??????20837??2014-12-02?21:43??設計1\Keil\LST\多點溫度測量.m51

?????文件???????1380??2009-07-25?15:01??設計1\Keil\Source\1602驅動.C

?????文件???????4509??2014-12-02?21:27??設計1\Keil\Source\DS18B20驅動.c

?????文件???????5115??2002-04-16?15:32??設計1\Keil\Source\STARTUP.A51

?????文件????????540??2014-12-02?21:43??設計1\Keil\Source\主函數.c

?????文件???????6470??2014-12-02?21:43??設計1\Keil\Target\1602驅動.obj

?????文件??????11335??2014-12-02?21:43??設計1\Keil\Target\DS18B20驅動.obj

?????文件????????126??2014-12-02?21:43??設計1\Keil\Target\DS18B20驅動.__i

?????文件????????826??2009-11-22?16:02??設計1\Keil\Target\STARTUP.obj

?????文件???????4616??2014-12-02?21:43??設計1\Keil\Target\主函數.obj

?????文件??????20226??2014-12-02?21:43??設計1\Keil\Target\多點溫度測量

?????文件???????3091??2014-12-02?21:43??設計1\Keil\Target\多點溫度測量.hex

?????文件????????164??2014-12-02?21:43??設計1\Keil\Target\多點溫度測量.lnp

?????文件???????3010??2014-12-02?21:43??設計1\Keil\Target\多點溫度測量.plg

?????文件?????124343??2009-10-19?10:17??設計1\Last?Loaded?多點溫度測量.DBK

?????文件?????119919??2014-12-02?21:30??設計1\多點溫度測量.DSN

?????文件???????3030??2014-12-09?10:45??設計1\多點溫度測量.PWI

?????目錄??????????0??2014-12-02?21:01??設計1\Keil\Include

?????目錄??????????0??2014-12-02?21:43??設計1\Keil\LST

?????目錄??????????0??2014-12-02?21:01??設計1\Keil\Source

............此處省略6個文件信息

評論

共有 條評論