freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)和ds18b20的巡回溫度檢測系統(tǒng)-資料下載頁

2025-08-14 11:10本頁面
  

【正文】 d char a。 for (a = 0。 a 78。 a++)。}//延時500ms子函數(shù)void Delay500ms(){ unsigned char a, b, c。 for (a = 0。 a a++) for (b = 0。 b 3。 b++) for (c = 0。 c 220。 c++)。}//芯片初始化void Initialization(){ while(1) { DQ = 0。 Delay480us()。 //延時480us DQ = 1。 Delay60us()。 //延時60us if(!DQ) //收到ds18b20的應(yīng)答信號 { DQ = 1。 Delay240us()。 //延時240us break。 } }}//寫一個字節(jié)(從低位開始寫)void WriteByte(unsigned char btData){ unsigned char i, btBuffer。 for (i = 0。 i 8。 i++) { btBuffer = btData i。 if (btBuffer amp。 1) { DQ = 0。 _nop_()。 _nop_()。 DQ = 1。 Delay60us()。 } else { DQ = 0。 Delay60us()。 DQ = 1。 } }}//讀一個字節(jié)(從低位開始讀)unsigned char ReadByte(){ unsigned char i, btDest。 for (i = 0。 i 8。 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 8。 i++) WriteByte(*(pMatchData + i))。 }//得到64位ROM序列(在P1口顯示,必須與Proteus聯(lián)調(diào)且在單步調(diào)試下才能得到)/*void GetROMSequence(){ unsigned char i。 Initialization()。 WriteByte(READ_ROM)。 for (i = 0。 i 8。 i++) P1 = ReadByte()。 }*///讀取溫度值bit ReadTemperature(TEMPDATA * pTempData){ unsigned int iTempDataH。 unsigned char btDot, iTempDataL。 static unsigned char i = 0。 pTempDatabtNegative = 0。 //為0溫度為正 i++。 if (i == 9) i = 1。 Initialization()。 WriteByte(SKIP_ROM)。 //跳過ROM匹配 WriteByte(TEMP_SWITCH)。 //啟動轉(zhuǎn)換 Delay500ms()。 //調(diào)用一次就行 Delay500ms()。 Initialization()。 //多個芯片的時候用MatchROM(ROMData)換掉WriteByte(SKIP_ROM) switch (i) { case 1 : MatchROM(ROMData1)。 break。 //匹配1 case 2 : MatchROM(ROMData2)。 break。 //匹配2 case 3 : MatchROM(ROMData3)。 break。 //匹配3 case 4 : MatchROM(ROMData4)。 break。 //匹配4 case 5 : MatchROM(ROMData5)。 break。 //匹配5 case 6 : MatchROM(ROMData6)。 break。 //匹配6 case 7 : MatchROM(ROMData7)。 break。 //匹配7 case 8 : MatchROM(ROMData8)。 break。 //匹配8 } //WriteByte(SKIP_ROM)。 //跳過ROM匹配(單個芯片時用這句換掉上面的switch) WriteByte(READ_MEMORY)。 //讀數(shù)據(jù) iTempDataL = ReadByte()。 iTempDataH = ReadByte()。 iTempDataH = 8。 iTempDataH |= iTempDataL。 if (iTempDataH amp。 0x8000) { pTempDatabtNegative = 1。 iTempDataH = ~iTempDataH + 1。 //負(fù)數(shù)求補(bǔ) } //為了省去浮點(diǎn)運(yùn)算帶來的開銷,而采用整數(shù)和小數(shù)部分分開處理的方法(沒有四舍五入) btDot = (unsigned char)(iTempDataH amp。 0x000F)。 //得到小數(shù)部分 iTempDataH = 4。 //得到整數(shù)部分 btDot *= 5。 //btDot*10/16得到轉(zhuǎn)換后的小數(shù)數(shù)據(jù) btDot = 3。 //數(shù)據(jù)處理 pTempDatabtThird = (unsigned char)iTempDataH / 100。 pTempDatabtSecond = (unsigned char)iTempDataH % 100 / 10。 pTempDatabtFirst = (unsigned char)iTempDataH % 10。 pTempDatabtDecimal = btDot。 return 1。}/***********************************/ifndef __1602_H__define __1602_H__//判斷忙指令void Busy()。//寫指令程序void WriteCommand(unsigned char btCommand)。//寫數(shù)據(jù)程序void WriteData(unsigned char btData)。//清屏顯示void Clear()。//初始化void Init()。//顯示一個字符void DisplayOne(bit bRow, unsigned char btColumn, unsigned char btData, bit bIsNumber)。//顯示字符串子程序void DisplayString(bit bRow, unsigned char btColumn, unsigned char *pData)。endifinclude include //接口定義sbit RS= P2^0。sbit RW= P2^1。sbit E= P2^2。define DATA P1//判斷忙指令void Busy(){ DATA = 0xff。 RS = 0。 RW = 1。 while(DATA amp。 0x80) { E = 0。 E = 1。 } E = 0。}//寫指令程序void WriteCommand(unsigned char btCommand){ Busy()。 RS = 0。 RW = 0。 E = 1。 DATA = btCommand。 E = 0。}//寫數(shù)據(jù)程序void WriteData(unsigned char btData){ Busy()。 RS = 1。 RW = 0。 E = 1。 DATA = btData。 E = 0。}//清屏顯示void Clear(){ WriteCommand(1)。}//初始化void Init(){ WriteCommand(0x0c)。 //開顯示,無光標(biāo)顯示 WriteCommand(0x06)。 //文字不動,光標(biāo)自動右移 WriteCommand(0x38)。 //設(shè)置顯示模式:8位2行5x7點(diǎn)陣}//顯示單個字符void DisplayOne(bit bRow, unsigned char btColumn, unsigned char btData, bit bIsNumber){ if (bRow) WriteCommand(0xC0 + btColumn)。 else WriteCommand(0x80 + btColumn)。 if (bIsNumber) WriteData(btData + 0x30)。 else WriteData(btData)。}//顯示字符串函數(shù)void DisplayString(bit bRow, unsigned char btColumn, unsigned char *pData){ while (*pData != 39。\039。) { if (bRow) WriteCommand(0xc0 + btColumn)。 //顯示在第1行 else WriteCommand(0x80 + btColumn)。 //顯示在第0行 WriteData(*(pData++))。 //要顯示的數(shù)據(jù) btColumn++。 //列數(shù)加一 }} 40
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1