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

正文內(nèi)容

基于18b20的溫度測(cè)量儀課程設(shè)計(jì)報(bào)告-閱讀頁

2024-09-20 18:35本頁面
  

【正文】 ) { DQ=1。_nop_()。 DQ=0。_nop_()。_nop_()。_nop_()。_nop_()。 //4 us 基于 18B20 的溫度測(cè)量儀 19 if(DQ)value|=0x80。 //66 us } DQ=1。 } /****************讀出溫度函數(shù) ************************/ read_temp() { ow_reset()。 write_byte(0xcc)。 //發(fā)轉(zhuǎn)換命令 ow_reset()。 write_byte(0xcc)。 temp_data[0]=read_byte()。 //讀溫度值的高字節(jié) temp=temp_data[1]。 temp=temp|temp_data[0]。 return temp。 if(tem6348) // 溫度值正負(fù)判斷 {tem=65536tem。} // 負(fù)溫度求補(bǔ)碼 ,標(biāo)志位置 1 display[4]=tem4。 // 取百位數(shù)據(jù)暫存 display[1]=display[4]%100。 // 取十位數(shù)據(jù)暫存 display[1]=display[1]%10。 //最高位為 0時(shí)不顯示 if(!display[2]) { display[2]=0x0a。} //負(fù)溫度時(shí)最高位顯示 } /****************主函數(shù) ************************/ void main() { Disdata=0xff。 for(h=0。h++) //開機(jī)顯示 0000 {display[h]=0。 //復(fù)位 write_byte(0xcc)。 //發(fā)轉(zhuǎn)換命令 for(h=0。h++) //開機(jī)顯示 0000 {scan()。 //處理溫度數(shù)據(jù) scan()。提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全 Windows 界面 , 包括 C 編譯器、宏匯編、連接器、庫管理和一個(gè)功 能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境( uVision)將這些部分組合在一起。 ㈡、 KEIL C51的使用方法 項(xiàng)目文件的建立 KEIL C51軟件是第二版本的( KEIL Uv2),所以打開的界面如圖 21。 圖 Create New Project 對(duì)話框 在鍵入“ 測(cè)溫系統(tǒng) ”過后彈出圖 23 芯片選擇對(duì)話框,在這里選擇使用的 Atmel 公司的 AT89C52芯片如圖 24。 基于 18B20 的溫度測(cè)量儀 22 圖 選擇 AT89C52 給工程添加源文件 單擊右圖所標(biāo)的,在彈出的對(duì)話框中添加一個(gè)源文件后綴名為“ *.C”的文件,我們這里添加“ 測(cè)溫系統(tǒng) .C”文件,如圖所示。我們可以點(diǎn)擊右面標(biāo)注所以的圖標(biāo) ,再保存、命名。在編譯之前我們?cè)O(shè)置一下,在通過過后會(huì)生成“ *.HEX 文件”,這就是單片機(jī)所需的程序文件。如圖,這個(gè)是編譯成功的情況。 ㈡、 STCISP的使用方法 現(xiàn)目前使用的是 STCISP的版本是 。 圖 210 STCISP 。 設(shè)置好過后再用串口線把電腦和開發(fā)板連接好就可以下載程序到芯片當(dāng)中了,點(diǎn)擊主界面的“ OpenFile/打開文件”,彈出如圖 211的對(duì)話框,選擇需要的“ *.HEX或者是 *.BIN”文件。 基于 18B20 的溫度測(cè)量儀 25 圖 211 Open file 對(duì)話框 系統(tǒng)的調(diào)試過程 在本次設(shè)計(jì)中碰到了許多的問題,大部分經(jīng)過努力都一一克服了。 課程設(shè)計(jì)要求溫度精確到一度,但是學(xué)習(xí)參考的程序都是精確到 度,所以在修改程序時(shí)小數(shù)部分顯示為 0,不能完全去除。 。 。這就需要仔細(xì)認(rèn)真的去多次反復(fù)查看程序。 DS18B20 復(fù)位值是 85 度,所以第二次接通電源時(shí)總是顯示 85,很郁悶,以為程序出了問題,查閱資料后才發(fā)現(xiàn)是傳感器的出廠復(fù)位值。這是一個(gè)磨練意志的過程。單片機(jī)應(yīng)用系統(tǒng)所具備的就是要有清晰的思路,尤其是邏輯方面的思考,而且,在數(shù)電、模電方面的知識(shí)必須要有良好的基礎(chǔ)。更主要的是,通過這次課程設(shè)計(jì)體驗(yàn)到了自己動(dòng)手的樂趣,學(xué)習(xí)到了合作的重要性,更培養(yǎng)了自己謹(jǐn)慎與認(rèn)真的品質(zhì)。與他人交流思想是取得成功的關(guān)鍵,在交流中,不僅強(qiáng)化了自己原有的知識(shí)體系 ,也擴(kuò)展 了 自己的思維。我 會(huì) 在以后的 學(xué)習(xí) 中 不斷學(xué)習(xí),積累 經(jīng)驗(yàn), 完善自己 。當(dāng)然,這是一個(gè)需要不斷的嘗試 ,不斷的校核,不斷的修改,最后完成一個(gè)合理的設(shè)計(jì)的過程。 在很大程 度上培養(yǎng)了我拼搏的工作精神。 非常感謝 金老師 ! 基于 18B20 的溫度測(cè)量儀 27 附錄 系統(tǒng)源程序 include include //_nop_()。 uint h。 uchar code dis_7[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40}。 //列掃描控制字 uchar data temp_data[2]={0x00,0x00}。 //顯示單元數(shù)據(jù),共 4個(gè)數(shù)據(jù)和一個(gè)運(yùn)算暫用 /*****************11us延時(shí)函數(shù) *************************/ void delay(uint t) { for (。t)。 for(k=1。k++) //4位 LED掃描控制 { Disdata=dis_7[display[k]]。 //位選 delay(200)。 while(presence) { while(presence) { DQ=1。_nop_()。 delay(50)。 delay(6)。 //presence=0 復(fù)位成功 ,繼續(xù)下一步 } delay(45)。 } DQ=1。 for(i=8。i) { DQ=1。_nop_()。_nop_()。_nop_()。 //5 us DQ=valamp。 //最低位移出 delay(6)。 //右移 1位 } DQ=1。 } /****************DS18B20讀 1字節(jié)函數(shù) ************************/ //從總線上取 1個(gè)字節(jié) uchar read_byte(void) 基于 18B20 的溫度測(cè)量儀 30 { uchar i。 for(i=8。i) { DQ=1。_nop_()。 DQ=0。_nop_()。_nop_()。_nop_()。_nop_()。 //4 us if(DQ)value|=0x80。 //66 us } DQ=1。 } /****************讀出溫度函數(shù) ************************/ read_temp() { ow_reset()。 write_byte(0xcc)。 //發(fā)轉(zhuǎn)換命令 ow_reset()。 基于 18B20 的溫度測(cè)量儀 31 write_byte(0xcc)。 temp_data[0]=read_byte()。 //讀溫度值的高字節(jié) temp=temp_data[1]。 temp=temp|temp_data[0]。 return temp。 if(tem6348) // 溫度值正負(fù)判斷 {tem=65536tem。} // 負(fù)溫度求補(bǔ)碼 ,標(biāo)志位置 1 display[4]=temamp。 // 取小數(shù)部分的值 display[4]=tem4。 // 取百位數(shù)據(jù)暫存 display[1]=display[4]%100。 // 取十位數(shù)據(jù)暫存 display[1]=display[1]%10。 //最高位為 0時(shí)不顯示 if(!display[2]) 基于 18B20 的溫度測(cè)量儀 32 { display[2]=0x0a。} //負(fù)溫度時(shí)最高位顯示 } void main() { Disdata=0xff。 for(h=0。h++) //開機(jī)顯示 0000 {display[h]=0。 //復(fù)位 write_byte(0xcc)。 //發(fā)轉(zhuǎn)換命令 for(h=0。h++) //開機(jī)顯示 0000 {scan()。 //處理溫度數(shù)據(jù) sc
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1