




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
項目智能測溫系統(tǒng)的實現(xiàn)智能測溫系統(tǒng)主要內(nèi)容2液晶顯示系統(tǒng)的實現(xiàn)3多路測溫系統(tǒng)的實現(xiàn)4藍(lán)牙電子溫度計的實現(xiàn)1電子溫度計的實現(xiàn)電子溫度計任務(wù)演示任務(wù)分析電子溫度計程序包括溫度的采集、溫度數(shù)據(jù)的處理以及溫度值在數(shù)碼管的顯示等DS18B20的引腳功能測溫范圍為-55℃~125℃,輸出12位數(shù)字溫度值1-GND,地3-Vdd,外供電時為電源接入端,總線供電時接地2-DQ,數(shù)據(jù)輸入/輸出。數(shù)據(jù)傳輸端,“單總線”DS18B20的內(nèi)部結(jié)構(gòu)存儲器64位ROM64bit的ROM編碼是器件的身份標(biāo)識非易失性存儲器E2PROM非易失性存儲器E2PROM共3字節(jié),包括高溫觸發(fā)器TH、低溫觸發(fā)器TL和配置寄存器高溫觸發(fā)器TH低溫觸發(fā)器TL配置寄存器配置寄存器R1R0分辨率轉(zhuǎn)換時間00993ms0110187ms1011375ms1112750msTM是測試位,用戶不改動R1R0設(shè)置分辨率高速RAM序號高速存儲器RAM0溫度值低位1溫度值高位2高溫報警寄存器3低溫報警寄存器4配置寄存器5保留6保留7保留8CRC校驗字節(jié)輸出溫度值時先低8位,再高8位溫度值存放格式S為符號位,正溫度S=0,負(fù)溫度S=1溫度值以補碼形式存放,當(dāng)測得的溫度是負(fù)數(shù)時,應(yīng)作補碼到原碼的轉(zhuǎn)換20~26為7位整數(shù)部分2-1~2-4為4位小數(shù)部分復(fù)位時序和流程復(fù)位操作首先在t0時刻發(fā)出最短為480μs的低電平,在t1時刻釋放總線進(jìn)入接收狀態(tài),DS18B20檢測到總線變高后,等15~60μs,在t2時刻發(fā)出低電平信號表示響應(yīng)DQ=1DQ=0讀DQ狀態(tài):0表示成功;1表示失敗延時480~960usDQ=1延時15~60us延時240~480us復(fù)位函數(shù)bitreset(void) //復(fù)位DS18B20{biterr;DQ=0; //在數(shù)據(jù)線上產(chǎn)生600us的低電平delay1us(600); DQ=1; //數(shù)據(jù)線拉高delay1us(60); //延時60userr=DQ; //讀取數(shù)據(jù)線狀態(tài),err=0:復(fù)位成功delay1us(540); //err=1:復(fù)位失敗return(err);}DQ=1DQ=0讀DQ狀態(tài):0表示成功;1表示失敗延時480~960usDQ=1延時15~60usDQ=1保持240~480us寫時序和流程總線拉至低電平的t0時刻開始的15μs之內(nèi)將要寫的數(shù)據(jù)位送到總線上,在t0后的15~60μs內(nèi)若為低電平寫入的是0;若為高電平寫入的為1。連續(xù)寫2位之間的間隙應(yīng)大于1μsDQ=1DQ=0DQ=1保持1us表示寫1位結(jié)束延時15usDQ=1或DQ=0延時15~60us寫函數(shù)DQ=0; //產(chǎn)生15us的低電平delay1us(15);DQ=dat0; //將需要寫的數(shù)據(jù)0或1送DQ線delay1us(15);//延時15usDQ=1;//數(shù)據(jù)線拉高,為寫入下一位做準(zhǔn)備DQ=1DQ=0DQ=1保持1us表示寫1位結(jié)束延時15usDQ=1或DQ=0延時15~60us寫一個字節(jié)函數(shù)voidwrbyte(uchard) {uchari;dat=d;for(i=8;i>0;i--)//循環(huán)寫8位(先低位,后高位){DQ=0; delay1us(15);
DQ=dat0; dat=dat>>1;//將下一位要寫入的數(shù)據(jù)移到最低位 delay1us(15); //延時15us DQ=1;//數(shù)據(jù)線拉高,為寫入下一位做準(zhǔn)備}}DQ=1DQ=0延時15usDQ=1或DQ=0延時15~60usDQ=1保持1us數(shù)據(jù)》1位寫字節(jié)數(shù)據(jù)存dat,以下操作重復(fù)8次讀時序和流程單片機在t0時刻將總線從高拉至低電平,幾個μs后的t1時刻釋放總線。DS18B20通過保持總線為高表示發(fā)送“1”,將總線拉低表示發(fā)送“0”,并在t2時刻釋放總線。單片機必須在t2之前讀取總線狀態(tài)。讀時序至少需要60μs,且兩次讀時序之間至少需要1μs的恢復(fù)時間DQ=0延時幾usDQ=1延時幾us讀取DQ延時60usDQ=1表示讀結(jié)束讀函數(shù)DQ=0延時幾usDQ=1延時幾us讀取DQ延時60usDQ=1表示讀結(jié)束DQ=0;//產(chǎn)生負(fù)脈沖delay1us(3);DQ=1; //數(shù)據(jù)總線拉高delay1us(3);//延時3usdat7=DQ; //讀取數(shù)據(jù)delay1us(60);//延時,為讀下一位做準(zhǔn)備讀一個字節(jié)函數(shù)DQ=0延時幾usDQ=1延時幾us讀取DQ延時60usDQ=1表示讀結(jié)束讀取字節(jié)數(shù)據(jù)dat=0,以下操作重復(fù)8次DQ=0延時幾usDQ=1延時幾us讀取DQ延時60usDQ=1表示讀結(jié)束ucharrdbyte(void) //從DS18B20讀取一個字節(jié){uchari;dat=0; //讀出數(shù)據(jù)初值為0for(i=8;i>0;i--) //循環(huán)讀8位(先低位,后高位){dat=dat>>1; //讀出數(shù)據(jù)先右移一位DQ=0;delay1us(3);DQ=1; delay1us(3);//延時3usdat7=DQ; //讀取數(shù)據(jù)delay1us(60);} return(dat);}DS18B20的基本操作指令名稱代碼功能跳過ROM0XCC單片機可用這一命令同時訪問總線上的所有設(shè)備而不需送出ROM序列號信息讀ROM0X33單片機發(fā)該命令,要求從ROM讀出8個字節(jié)序列號匹配ROM0X55執(zhí)行該命令后,單片機必須接著向DS18B20發(fā)送8個字節(jié)的產(chǎn)品序列號,以選中單總線上指定的DS18B20,只有完全匹配的DS18B20才能對隨后由單片機發(fā)出的讀暫存器操作命令進(jìn)行響應(yīng)溫度轉(zhuǎn)換0X44該命令開始一次溫度轉(zhuǎn)換讀暫存器0XBE用該命令可讀DS18B20中9個暫存器中由低到高的內(nèi)容溫度的采集處理發(fā)送ROM命令0XCC,表示跳過ROM發(fā)送RAM命令0X44,要求傳感器轉(zhuǎn)換溫度發(fā)送ROM命令0XCC,表示跳過ROM發(fā)送RAM命令0XBE,要求從傳感器讀取溫度從傳感器讀取溫度值的低字節(jié)和高字節(jié)將高字節(jié)溫度值左移8位+低字節(jié)溫度值合并成一個16位二進(jìn)制補碼形式的溫度值,以備后續(xù)顯示處理發(fā)送0X44命令延時發(fā)送0XCC命令發(fā)送0XBE命令讀溫度低字節(jié)讀溫度高字節(jié)發(fā)送0XCC命令高字節(jié)左移8位+低字節(jié)形成完整溫度值溫度的采集處理發(fā)送0X44命令延時發(fā)送0XCC命令發(fā)送0XBE命令讀溫度低字節(jié)讀溫度高字節(jié)發(fā)送0XCC命令高字節(jié)左移8位+低字節(jié)形成完整溫度值voidconvert(void)//啟動DS18B20開始溫度轉(zhuǎn)換{biterr;err=reset(); //復(fù)位傳感器wrbyte(0xcc);//跳過多傳感器識別wrbyte(0x44);//啟動溫度轉(zhuǎn)換}intreadt(void) //讀取DS18B20暫存器中的溫度值{ucharh,l;biterr;err=reset(); //復(fù)位傳感器wrbyte(0xcc); //跳過多傳感器識別wrbyte(0xbe); //讀暫存器指令l=rdbyte(); //讀溫度低位h=rdbyte(); //讀溫度高位return(h*256+l);}溫度值的顯示處理16位溫度值的補碼進(jìn)行正負(fù)處理處理后數(shù)據(jù)右移4位就是實際溫度值的整數(shù)部分處理后數(shù)據(jù)中的低4位就是實際溫度值的小數(shù)部分t取反+1求補碼t右移4位得到整數(shù)部分,分離出百位、十位、個位并轉(zhuǎn)換成數(shù)碼管字形碼并處理顯示格式溫度值t>0?溫度正負(fù)標(biāo)記zf=1是否溫度正負(fù)標(biāo)記zf=0t&0X0F得到小數(shù)部分,轉(zhuǎn)換成數(shù)碼管字形碼并處理顯示格式溫度值的顯示處理溫度值的顯示處理t取反+1求補碼t右移4位得到整數(shù)部分,分離出百位、十位、個位并轉(zhuǎn)換成數(shù)碼管字形碼并處理顯示格式溫度值t>0?溫度正負(fù)標(biāo)記zf=1是否溫度正負(fù)標(biāo)記zf=0t&0X0F得到小數(shù)部分,轉(zhuǎn)換成數(shù)碼管字形碼并處理顯示格式voidformat(intt){bitzf; //正負(fù)標(biāo)記,0:正數(shù)1:負(fù)數(shù)
zf=0; if(t<0) {zf=1; t=-t+1; }dbuf[0]=dp[t&0x0f]; //求出溫度的小數(shù)t=t>>4; dbuf[3]=t/100; //求出百位t=t%100;dbuf[2]=t/10; //求出十位dbuf[1]=t%10; //求出個位if(zf==1) //如果是負(fù)數(shù){if(dbuf[2]==0) //如果十位為0{dbuf[3]=0x13;dbuf[2]=0x12; }//顯示格式為'-x.x'elsedbuf[3]=0x12;//如果十位不為0顯示格式為'-xx.x'}else {if(dbuf[3]==0) //否則,如果是正數(shù)
{if(dbuf[2]==0)
dbuf[2]=0x13;dbuf[3]=0x13;}}}任務(wù)實現(xiàn)液晶顯示系統(tǒng)任務(wù)分析液晶顯示系統(tǒng)任務(wù)演示液晶固定字符串顯示驅(qū)動程序包括液晶的初始化函數(shù)、固定字符串的初始化以及液晶循環(huán)顯示字符串函數(shù)等LCD1602的引腳功能LCD1602是將液晶顯示器、控制與驅(qū)動等外圍電路、背光源做成了PCB板,提供了標(biāo)準(zhǔn)的用戶接口并用結(jié)構(gòu)件將其裝配在一起的一個模組可以顯示2行*每行16個字符1602即16*2LCD1602的引腳功能編號符號引腳說明1GND地2Vcc電源正極3Vo對比度調(diào)節(jié)4RS數(shù)據(jù)/命令選擇5R/W讀/寫選擇6E模塊使能端7~14D0~D7雙向數(shù)據(jù)口線15BLA背光源正極16BLK背光源地LCD1602的讀寫時序?qū)懼噶頡S=0,RW=0,E下降沿(用于初始化、清屏等)讀指令RS=0,RW=1,E下降沿(用于讀LCD是否忙等)寫數(shù)據(jù)RS=1,RW=0,E下降沿(用于寫入顯示內(nèi)容)讀數(shù)據(jù)RS=1,RW=1,E下降沿(反讀DDRAM中的數(shù)據(jù)等)LCD1602的指令名稱編碼說明D7D6D5D4D3D2D1D0清屏00000001顯示空白,并清DDRAM,AC清0,光標(biāo)移至左上角歸位0000001╳顯示回車,AC請0,光標(biāo)移至左上角,原屏幕顯示內(nèi)容不變輸入模式000001I/DSI/D=1,讀/寫一個字符后,AC加1,光標(biāo)加1I/D=0,讀/寫一個字符后,AC減1,光標(biāo)減1S=1,讀寫一個字符后整屏顯示移動(移動方向由I/D確定)S=0,讀寫一個字符時,整屏顯示不動LCD1602的指令名稱編碼說明D7D6D5D4D3D2D1D0顯示開關(guān)控制00001DCB顯示開關(guān):D=1,開;D=0,關(guān)。DDRAM中內(nèi)容不變光標(biāo)開關(guān):C=1,開;C=0,關(guān)。光標(biāo)閃爍開關(guān):B=1,光標(biāo)閃爍;B=0,光標(biāo)不閃爍顯示移位0001S/CR/L╳╳S/C=1,移動顯示字符;S/C=0,移動光標(biāo);R/L=1,右移一個字符位;R/L=0,左移一個字符位;LCD1602的指令名稱編碼說明D7D6D5D4D3D2D1D0顯示模式001DLNF╳╳DL=1,8位數(shù)據(jù)接口;DL=0,4位數(shù)據(jù)接口;N=1,雙行顯示;N=0,單行顯示;F=1,采用5╳7點陣字符;F=0,采用5╳10點陣字符。地址設(shè)置01A5A4A3A2A1A0設(shè)置CGRAM地址1A6A5A4A3A2A1A0設(shè)置DDRAM地址LCD1602寫指令程序引腳寫入值RS0RW0E下降沿D0-D7命令字RS=0;RW=0;E=1命令送P0口E=0LCD1602寫指令程序RS=0;RW=0;E=1命令送P0口E=0voidlcd_cmd(ucharcmd){LCD=cmd;RS=0; RW=0; E=1;delay1us(1);E=0; delay1us(1);while(1){LCD=0xff;//總線變高RS=0; RW=1; E=1; delay1us(1);E=0;delay1us(1);E=1; delay1us(1);if(BF==0)break;//就緒才返回}}sfrLCD=0x80;//P0口作為總線端口sbitBF=P0^7;//BF忙標(biāo)志在P0.7LCD1602寫數(shù)據(jù)程序引腳寫入值RS1RW0E下降沿D0-D7顯示數(shù)據(jù)RS=1;RW=0;E=1數(shù)據(jù)送P0口E=0LCD1602寫數(shù)據(jù)程序RS=1;RW=0;E=1數(shù)據(jù)送P0口E=0voidlcd_dat(uchardat){LCD=dat;RS=1;RW=0;E=1;delay1us(1);E=0;delay1us(1);//while(1){LCD=0xff;RS=0;RW=1;E=0;delay1us(1);E=1;delay1us(1);if(BF==0)break;//如果就緒,返回dat=LCD;}}LCD1602初始化函數(shù)寫指令0X01寫指令0X3c寫指令0X0c清屏幕設(shè)置顯示模式:雙行、5*10點陣設(shè)置顯示開關(guān):開顯示,關(guān)閉光標(biāo)LCD1602初始化函數(shù)寫指令0X01寫指令0X3c寫指令0X0cvoid lcd_init(){Lcd_cmd(0x01);//清屏幕lcd_cmd(0x3c);//設(shè)置雙行顯示,5X10點陣lcd_cmd(0x0C);//開顯示,關(guān)閉光標(biāo)}LCD初始化定義顯示字符串發(fā)送第一個字符位置的DDRAM命令取出字符數(shù)據(jù)并等待LCD就緒發(fā)送數(shù)據(jù)到LCD數(shù)據(jù)=0?返回是否1、初始化成功后,將需要顯示的字符串定義到一個字符數(shù)組中。2、確定第一個字符要顯示在LCD屏的位置,自動增量方式下DDRAM地址會自動加1。3、循環(huán)將要顯示字符數(shù)組中的數(shù)據(jù)寫到數(shù)據(jù)接口直到數(shù)據(jù)為“0”結(jié)束顯示。LCD1602液晶顯示驅(qū)動程序設(shè)計LCD1602液晶顯示驅(qū)動程序設(shè)計voidmain(){uchar*p;ucharstr1[16]="STC15W4K32S4";ucharstr2[16]="temperature";P0M0=0X00;P0M1=0X00;P1M0=0X00;P1M1=0X00;lcd_init();lcd_cmd(0x80);//第一個字符顯示在第一行p=str1;while(*p)lcd_dat(*p++);//顯示"STC15W4K32S4"lcd_cmd(0xc0);//顯示在第二行p=str2;while(*p)lcd_dat(*p++);//顯示"temperature";while(1);}LCD初始化定義顯示字符串發(fā)送第一個字符位置的DDRAM命令取出字符數(shù)據(jù)并等待LCD就緒發(fā)送數(shù)據(jù)到LCD數(shù)據(jù)=0?返回是否LCD1602液晶顯示系統(tǒng)的實現(xiàn)謝謝觀看!多路測溫系統(tǒng)演示任務(wù)分析多路測溫程序包括循環(huán)讀取四片溫度傳感器的溫度值函數(shù)、每個溫度值的格式處理及液晶顯示等函數(shù),因為系統(tǒng)中每個DS18B20的序列號不同,首先必須讀取DS18B20的序列號,在進(jìn)行溫度采集前每次還要發(fā)序列號匹配命令讀取DS18B20序列號編寫一段readid()函數(shù)得到溫度傳感器序列號在ProteμsS環(huán)境用鼠標(biāo)指向該器件,先右鍵后左鍵,分別打開各傳感器的屬性設(shè)置窗口,將“ROMSerialNumber”中的默認(rèn)值“B8C530”改為其它十六進(jìn)制數(shù),然后運行讀序列號函數(shù),讀出8個字節(jié)的序列號讀取DS18B20序列號編寫一段readid()函數(shù)得到溫度傳感器序列號4個傳感器的序列號設(shè)置為{0x28,0x30,0xc5,0xb8,0x00,0x00,0x00,0x8e},{0x28,0x31,0xc5,0xb8,0x00,0x00,0x00,0xb9},{0x28,0x32,0xc5,0xb8,0x00,0x00,0x00,0xe0},{0x28,0x33,0xc5,0xb8,0x00,0x00,0x00,0xd7}讀序列號函數(shù)//4個傳感器的序列號放在二維數(shù)組ucharcodeid[4][8]={{0x28,0x30,0xc5,0xb8,0x00,0x00,0x00,0x8e},{0x28,0x31,0xc5,0xb8,0x00,0x00,0x00,0xb9},{0x28,0x32,0xc5,0xb8,0x00,0x00,0x00,0xe0},{0x28,0x33,0xc5,0xb8,0x00,0x00,0x00,0xd7}};voidreadid(ucharid[])//讀取序列號{ ucharn;reset(); //復(fù)位DS18B20wrbyte(0x33); //發(fā)READROM命令for(n=0;n<=8;n++) //讀取8個字節(jié)的序列號
復(fù)位id[n]=rdbyte();}多路測溫方法1、復(fù)位所有傳感器,跳過ROM,發(fā)啟動溫度轉(zhuǎn)換命令,所有DS18B20開始轉(zhuǎn)換2、轉(zhuǎn)換結(jié)束后,單片機依次發(fā)匹配ROM命令,將預(yù)先存儲的各傳感器的序列號通過單總線送出,選中指定的DS18B20讀入溫度值多路測溫程序voidgettemp(inttemp[])//檢測4個傳感器溫度值送數(shù)組temp{ ucharm,n;ucharh,l;reset(); //復(fù)位所有DS18B20wrbyte(0xcc);wrbyte(0x44);//跳過ROM啟動所有DS18B20轉(zhuǎn)換late(); //延時750msfor(m=0;m<4;m++) //循環(huán)檢測各DS18B20{reset(); //復(fù)位wrbyte(0x55); //發(fā)匹配ROM命令for(n=0;n<8;n++) wrbyte(id[m][n]);//發(fā)8字節(jié)的序列號wrbyte(0xbe); //發(fā)讀暫存器命令l=rdbyte(); //讀取溫度低字節(jié)、高字節(jié)h=rdbyte();temp[m]=h*256+l;
}}多路測溫主程序1、LCD初始化2、巡回檢測各測溫點的溫度值并將其轉(zhuǎn)換成字符串3、在LCD顯示屏的對應(yīng)位置顯示溫度值多路測溫主程序main(){ inttemp[4];//用來存放四個傳感器的溫度值ucharstr[6]={0,0,0,0,0,0};//用于將溫度值轉(zhuǎn)換為字符串bitzf; //正負(fù)標(biāo)記
溫度在0度以下為1,否則為0uchari;init_lcd(); //液晶屏初始化str[1]=':'; //在屏幕指定位置顯示
for(i=0;i<4;i++) {str[0]=0x41+i; disp_str(i/2,(i%0x02)*9,str);}多路測溫主程序while(1){gettemp(temp); //巡回檢測出4個傳感器的溫度值送數(shù)組tempfor(i=0;i<4;i++)//依次顯示數(shù)組temp中的溫度值{zf=0;if(temp[i]<0) //如果溫度小于0{zf=1; //正負(fù)標(biāo)志置1temp[i]=-temp[i]; //求出溫度的絕對值 }str[4]=dp[temp[i]&0x0f]+0x30;//求出一位小數(shù)的ASCII碼temp[i]=temp[i]>>4; //舍去小數(shù)部分str[0]=temp[i]/100+0x30; //求出百位的ASCII碼temp[i]=temp[i]%100;str[1]=temp[i]/10+0x30; //求出十位的ASCII碼str[2]=temp[i]%10+0x30; //求出個位的ASCII碼str[3]='.'; //填上小數(shù)點
多路測溫主程序if(zf==1) //如果是負(fù)數(shù){if(str[1]=='0') //如果十位為0{str[0]=''; //顯示格式為'-x.x'str[1]='-'; }else str[0]='-'; //如果十位不為0
顯示格式為'-xx.x'}else //如果是正數(shù){if(str[0]=='0') //如果百位、十位都是0{if(str[1]=='0')//顯示格式為'x.x'str[1]=''; //如果只有百位為0str[0]='';//顯示格式為'xx.x'}}disp_str(i/2,(i%0x02)*9+2,str);}}}多路測溫系統(tǒng)調(diào)試如果某個傳感器的溫度值總是為0,應(yīng)檢查它的序列號是否與二維數(shù)組id中所定義的值一致注意4個傳感器的序列號為ucharcodeid[4][8]={{0x28,0x30,0xc5,0xb8,0x00,0x00,0x00,0x8e},{0x28,0x31,0xc5,0xb8,0x00,0x00,0x00,0xb9},{0x28,0x32,0xc5,0xb8,0x00,0x00,0x00,0xe0},{0x28,0x33,0xc5,0xb8,0x00,0x00,0x00,0xd7}};謝謝觀看!藍(lán)牙電子溫度計演示將溫度值實時顯示在本地LED數(shù)碼管上,還能將溫度值通過藍(lán)牙模塊顯示到手機屏幕上任務(wù)分析藍(lán)牙電子溫度計的軟件在電子溫度計程序基礎(chǔ)上增加串口發(fā)送功能,包括單片機串口初始化函數(shù),主函數(shù)中增加溫度發(fā)送函數(shù),將溫度值實時發(fā)送到手機HC-05藍(lán)牙模塊接口引腳功能HC-05藍(lán)牙通信模塊主要用于短距離無線數(shù)據(jù)傳輸,可與手機等智能終端的藍(lán)牙設(shè)備相連Vcc接+5V電源GND接地,數(shù)據(jù)發(fā)送TXD和
單片機的P3.0(RXD)相連,數(shù)據(jù)接收RXD和
單片機的P3.1(TXD)相連STATE為連接狀態(tài)引腳,未連接輸出低,連接輸出高EN配合AT命令使用,高電平有效藍(lán)牙溫度計程序設(shè)計藍(lán)牙溫度計程序在電子溫度計基礎(chǔ)上增加串口初始化函數(shù),串口設(shè)置為波特率為9600bps,8位數(shù)據(jù)位,無校驗數(shù)據(jù)格式//串口初始化,時鐘11.0592MHz,9600bps,1位起始,8位數(shù)據(jù),1位停止,無校驗voidUartInit(void) //串口初始化函數(shù){SCON=0X40;
//8位數(shù)據(jù),可變波特率AUXR|=0x40; //定時器1時鐘為Fosc,即1TAUXR&=0xFE; //串口1選擇定時器1為波特率發(fā)生器TMOD&=0x0F; //設(shè)定定時器1為16位自動重裝方式TL1=0xE0; //設(shè)定定時初值(對應(yīng)波特率9600)TH1=0xFE; //設(shè)定定時初值ET1=0; //禁止定時器1中斷TR1=1; //啟動定時器1}藍(lán)牙溫度計程序設(shè)計在溫度值格式處理函數(shù)void
format(t)中將溫度值存放在一個全局變量tempblue,以備主函數(shù)發(fā)送voidformat(intt){bitzf=0; //正負(fù)標(biāo)記,0:正數(shù)1:負(fù)數(shù)
if
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 處理廢物運輸合同范本
- 房產(chǎn)土地測繪合同范本
- 老舊樓改造合同范本
- 工地入股合作合同范本
- 剪紙裝裱合同范本
- 種子資金資助合同范本
- 異地搬家服務(wù)合同范本
- 吉林移動施工合同范本
- 老年住宅出租合同范本
- 酒店開發(fā)行業(yè)
- DZ∕T 0215-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 煤(正式版)
- 一例透析高血壓患者護理查房
- 云南麗江鮮花餅市場推廣調(diào)查研究報告
- 鹽酸右美托咪定鼻噴霧劑-臨床用藥解讀
- 《學(xué)習(xí)遵義會議精神》班會課件
- 干部基本信息審核認(rèn)定表
- 2024年英語B級考試真題及答案
- 2024年社會工作者職業(yè)水平《社會工作實務(wù)(初級)》考試題及答案
- 施工升降機安裝拆卸安全教育
- 長輸管線焊接技術(shù)交底
- 醫(yī)院保安服務(wù)方案(技術(shù)方案)
評論
0/150
提交評論