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

正文內(nèi)容

基于labview的溫度檢測系統(tǒng)設(shè)計畢業(yè)論文-資料下載頁

2025-06-19 12:33本頁面
  

【正文】 for(i=0。i8。i++) { writebit1(datamp。0x01)。 //從最低位寫起 dat=1。 } } ///////////////////////////////////////////////////////// ///////////溫度轉(zhuǎn)換 //////////////////////// void tmp1change1(void) //DS118B20 begin change 發(fā)送溫度轉(zhuǎn)換命令 { DS1=1。if(DS1reset()) //初始化 DS118B20 {writebyte1(0xcc)。 // 跳過序列號命令 writebyte1(0x44)。 //發(fā)送溫度轉(zhuǎn)換命令 }} //////////獲取溫度值//////////////////////////////////////////uint tmp1() //get the temp1erature 獲得溫度 { float tt。 DS1=1。if(DS1reset()){writebyte1(0xcc)。 writebyte1(0xbe)。 //發(fā)送讀取數(shù)據(jù)命令 a1=readbyte1()。 //連續(xù)讀兩個字節(jié)數(shù)據(jù) b1=readbyte1()。 temp1=a1|b18。 tt=temp1*。 //得到真實十進(jìn)制溫度值,因為 DS118B20 //可以精確到 度,所以讀回數(shù)據(jù)的最低位代表的是 temp1=tt*100+。//*10+。 //放大十倍,這樣做的目的將小數(shù)點(diǎn)后第一位 return temp1。//返回溫度值 }} //////////DS18B20 初始化函數(shù) //////////////////////////////bit dsreset() { bit dat。 DS=1。 //數(shù)據(jù)線置高電平DS=0。 //*數(shù)據(jù)線拉低置 0*/Delay(32)。 //*為保險起見,延時 495us */DS=1。 //*數(shù)據(jù)線置高電平 1*/ Delay(4)。 //*需要等待 15~60us,這里延時 75us 后可以保證接受到的是存在脈沖 */ dat=DS。 //讀數(shù)據(jù)線值DS=1。 //*數(shù)據(jù)線置高電平 1*/ Delay(32)。 //495usreturn ~dat。 //初始化成功返回 1,反之返回 0} /////////////讀一位 ////////////////////////////////////// bit readbit(void) //read a bit 讀一位 { bit dat。 DS=1。 //數(shù)據(jù)線置高電平 DS=0。 //*數(shù)據(jù)線拉低置 0*/ _nop_()。 _nop_()。 //總線拉低大于 1us DS=1。//數(shù)據(jù)線置高電平,釋放總線 _nop_()。 _nop_()。_nop_()。_nop_()。 dat=DS。//讀時隙產(chǎn)生 7 us 后讀取總線數(shù)據(jù)。把總線的讀取動作放在 15us 時間限制的后面是為了保證數(shù)據(jù)讀取的有效性 Delay(3)。//延時 60us,滿足讀時隙的時間長度要求 DS=1。//數(shù)據(jù)線置高電平,釋放總線 _nop_()。 _nop_()。 //延時周期恢復(fù)時間 return dat。 //返回讀取到的數(shù)據(jù) } /////////////讀一個字節(jié) /////////////////////////////////////// uchar readbyte(void) //read a byte date 讀一個字節(jié) { uchar i,dat。 for(i=0。i8。i++) { dat=1。//最低位在前if(readbit()) dat|=0x80。 else {dat|=0x00。}} return dat。 //將一個字節(jié)數(shù)據(jù)返回 } ///////////////////////////////////////////////////////// /////////////寫一位 //////////////////////////////////////////void writebit(bit i) { DS=1。 //數(shù)據(jù)線置高電平 DS=0。 //*數(shù)據(jù)線拉低置 0*/ Delay(0)。//延時 15us,滿足讀時隙的時間長度要求 DS=i。 //寫 0 或 1 Delay(3)。//延時 60us,等待 ds18b20 采樣讀取 DS=1。//釋放總線 _nop_()。 _nop_()。 //延時周期恢復(fù)時間} /////////////寫一個字節(jié) ///////////////////////////////////////////void writebyte(uchar dat) //write a byte to ds18b20 { //寫一個字節(jié)到 DS18B20 里 uint i。 for(i=0。i8。i++) { writebit(datamp。0x01)。 //從最低位寫起 dat=1。 } } ///////////////////////////////////////////////////////// ///////////溫度轉(zhuǎn)換 //////////////////////// void tmpchange(void) //DS18B20 begin change 發(fā)送溫度轉(zhuǎn)換命令 { DS=1。if(dsreset()) //初始化 DS18B20 {writebyte(0xcc)。 // 跳過序列號命令 writebyte(0x44)。 //發(fā)送溫度轉(zhuǎn)換命令 }} //////////獲取溫度值//////////////////////////////////////////uint tmp() //get the temperature 獲得溫度 { float tt。 DS=1。if(dsreset()){writebyte(0xcc)。 writebyte(0xbe)。 //發(fā)送讀取數(shù)據(jù)命令 a=readbyte()。 //連續(xù)讀兩個字節(jié)數(shù)據(jù) b=readbyte()。 temp=a|b8。 tt=temp*。 //得到真實十進(jìn)制溫度值,因為 DS18B20 //可以精確到 度,所以讀回數(shù)據(jù)的最低位代表的是 temp=tt*100+。//*10+。 //放大十倍,這樣做的目的將小數(shù)點(diǎn)后第一位 return temp。//返回溫度值 }} /////////////////顯示函數(shù)///////////////////////////////////////////void Disp(uint disp_value){uchar i。Bcd(disp_value)。for(i=0。i4。i++){ P0=LED_Val[num[i]]。 if(i==1)P0=P0amp。0x7f。 //點(diǎn)亮第二位的小數(shù)點(diǎn) P2=led_point[i]。 Delay_ms(4)。 P2=0XFF。 P0=0XFF。 } }////////////////////////////////////////////////數(shù)據(jù)分離函數(shù) ///////////////////////void Bcd(uint bcd_value){ num[0]=bcd_value/1000。num[1]=(bcd_value%1000)/100。num[2]=((bcd_value%1000)%100)/10。num[3]=((bcd_value%1000)%100)%10。}///////////////////////////////////////////////////////////////void Send_SCI(unsigned char p){SBUF =p 。//數(shù)據(jù)寄存器//TB8=0。 while(TI==0)。//當(dāng) TI=0 時等待,不等于 0 退出循環(huán),TI 清 0,送下一數(shù)TI=0。}///////////////////////////////////////////函數(shù)名稱:URAT1_Init()//參量:無//函數(shù)功能:串口初始化//void SCI_Init(void){////////////////////SM0=0。//sm2 不用設(shè)只有方式 23 時才用得到SM1=1。//方式 3 時波特率由定時器 1 決定 //SM2=0。/////////////////REN=1。//允許接受控制為TI=0。//發(fā)送中斷標(biāo)志位RI=0。//接受中斷標(biāo)志位PCON=0。//控制波特率的計算公式的指數(shù)部分TH1=0xFd。TL1=0XFd。 //設(shè)置波特率為 4800TMOD=0X20。//讓 T1 工作在自動裝入時間常數(shù)的定時方式 2EA=1。// 要開總中斷ET1=0。//用 T1 做波特率發(fā)生器時,必須禁止定時中斷使 ET1=0TR1=1。//還要啟動定時器 T1EA=1。ES=1。 //串行口中斷允許位}/////////////////////////////////////////void send_packet(uchar *send_data_tmp,send_data_weishu){uchar i。ES=0。 //禁止串口中斷// Send_SCI(START_FLAG)。//////////////////////////////////發(fā)送數(shù)據(jù)for (i=0。isend_data_weishu。i++){Send_SCI(*send_data_tmp)。send_data_tmp++。}ES=1。 //允許串口中斷}////////////////////////////////void delay_ms(uint delay){uchar j。while(delay){for(j=125。j0。j){。}}}void wendushuju1(uint bcd_value){ send_data_s1[0]=1。send_data_s1[1]=bcd_value/100。send_data_s1[2]=bcd_value%100。}void wendushuju2(uint bcd_value){ send_data_s2[0]=2。send_data_s2[1]=bcd_value/100。send_data_s2[2]=bcd_value%100。}void wendushuju3(uint bcd_value){ send_data_s3[0]=3。send_data_s3[1]=bcd_value/100。send_data_s3[2]=bcd_value%100。}////////////////////////////////////void main() //主函數(shù) { uint t。SCI_Init()。while(1) { tmpchange()。 //溫度轉(zhuǎn)換tmp1change1()。 //溫度轉(zhuǎn)換tmp2change2()。 //溫度轉(zhuǎn)換// Disp(tmp())。wendushuju1(tmp())。wendushuju2(tmp1())。wendushuju3(tmp2())。 send_packet(amp。send_data_s1,3)。send_packet(amp。send_data_s2,3)。send_packet(amp。send_data_s3,3)。// Disp(tmp1())。for(t=0。t100。t++)Disp(tmp2())。// while(1)。 } }附錄 II 下位機(jī)電路圖附錄 II 上位機(jī)程序圖襖羋蕆袇螀芇蕿蝕聿芆艿蒃肅芅蒁螈羈芄薃薁袆芃芃螆螂芃蒞蕿肁節(jié)蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈螞螂羂薁袈肀肁芀蟻羆肁莃袆袂肀薅蠆袈聿蚇蒂膇肈莇螇肅肇葿薀罿肆薂螆裊肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羈膂莈蚅袇膁蒀袀螃膀薂蚃肂腿節(jié)衿羈腿莄螞襖羋蕆袇螀芇蕿蝕聿芆艿蒃肅芅蒁螈羈芄薃薁袆芃芃螆螂芃蒞蕿肁節(jié)蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1