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

正文內(nèi)容

基于單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)_畢業(yè)設(shè)計(jì)(論文)-wenkub

2023-07-07 21:12:23 本頁(yè)面
 

【正文】 35P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 . 01P 1 . 12P 1 . 23P 1 . 34P 1 . 45P 1 . 56P 1 . 67P 1 . 78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 / R D17P 3 . 6 / W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 / A 821P 2 .1 / A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C5 1 圖 11 AT89C51 引腳圖 AT89C51 的引 腳功能如下: 主電源引腳( 2 根) VCC:電源輸入,接+ 5V電源 GND:接地線 中國(guó)石油大學(xué)勝利學(xué)院本科畢業(yè)設(shè)計(jì) (論文 ) 8 外接晶振引腳( 2根) XTAL1:片內(nèi)振蕩電路的輸入端 XTAL2:片內(nèi)振蕩電路的輸出端 控制引腳( 4根) RST/VPP:復(fù)位引腳,引腳上出現(xiàn) 2個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。 DS18B20 的管腳 有三個(gè) , DQ 為數(shù)據(jù)輸入 /輸出引腳 ,當(dāng)被用 在寄生電源下,也可以向器件提供電源; GND 為地信號(hào); VDD 為可選擇的 電源引腳,當(dāng)工作于寄生電源時(shí),此引腳必須接地;當(dāng) VDD 端口接 電源時(shí)是使用外部電源。 圖中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性 , 其輸出用 于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過(guò)程,直至溫度寄存器值達(dá)到被測(cè)溫度值,這就 是 DS18B20 的測(cè)溫原理。 寫時(shí)間片:將數(shù)據(jù)從高電平拉至低電平,產(chǎn)生寫起始信號(hào)。主機(jī)在 讀時(shí)間片下降沿之后 15us 內(nèi)完成讀位。按鍵電路如圖 15 所示 ,期中 按鍵 K1 為進(jìn)入 /退出設(shè)置鍵; K2 為增加鍵; K3 為減少鍵。 圖 17 顯示電路 串 口電路 設(shè)計(jì) 單片機(jī)與上位機(jī)( PC機(jī))的接口電路如圖 18所示 : 圖 18 接口電路 中國(guó)石油大學(xué)勝利學(xué)院本科畢業(yè)設(shè)計(jì) (論文 ) 14 第 二 章 系統(tǒng)軟件設(shè)計(jì) 各模塊的程序設(shè)計(jì) 系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計(jì)算溫度子程序,顯示數(shù)據(jù)刷新子程序和按鍵掃描處理子程序等。其程序流程圖如圖 22所 示: 圖 22 讀出溫度子程序流程圖 溫度轉(zhuǎn)換命令 子程序 溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開(kāi)始命令,當(dāng)采用 12 位分辨率時(shí)轉(zhuǎn)換時(shí)間約為 750ms,在本程序設(shè)計(jì)中采用 1s 顯示程序延時(shí)法等待轉(zhuǎn)換的完成。 圖 25 顯示數(shù)據(jù)刷新子程序流程圖 報(bào)警 子程序 設(shè)置報(bào)警標(biāo)志位 beep,報(bào)警流程圖如圖 26所示: Y 圖 26 報(bào)警流程圖 溫度數(shù)據(jù)移入顯示寄存器 十位數(shù) 0? 百位數(shù) 0? 十位數(shù)顯示符號(hào)百位數(shù)不顯示 百位數(shù)顯示數(shù)據(jù)(不顯示符號(hào)) 結(jié)束 N N Y Y 讀取測(cè)量溫度值 溫度值 120或 20? Beep=1,報(bào)警 Beep=0 中國(guó)石油大學(xué)勝利學(xué)院本科畢業(yè)設(shè)計(jì) (論文 ) 18 按 鍵掃描處理子程序 按鍵采用掃描查詢方式,設(shè)置標(biāo)志位,當(dāng)標(biāo)志位為 1 時(shí),顯示設(shè)置溫度,否則顯示當(dāng)前溫度。Keil C51 軟件是一個(gè)基于 32 位 Windows 環(huán)境的應(yīng)用程序,支持 C語(yǔ)言和匯編語(yǔ)言編程,其 以 上的版本將編譯和仿真軟件統(tǒng)一為 μVision( 通常稱為 μV2) 。工程的建立、設(shè)置、編譯 /匯編及連接產(chǎn)生目標(biāo)文件的方法非常易于掌握。緊接著對(duì)工程進(jìn)行設(shè)置,選擇 工程管理窗口的 Target1,再選擇 Project→ Option for Target‘Target1’( 或點(diǎn)右鍵彈出快捷菜單再選擇該選項(xiàng) ),打開(kāi)工程屬性設(shè)置對(duì)話框,共有 8 個(gè)選項(xiàng)卡,主要設(shè)置 包括在Target 選項(xiàng)卡中設(shè)置晶振頻率、在 Debug 選項(xiàng)卡中設(shè)置實(shí)驗(yàn)仿真板等,如要寫片,還必須在 Output 選項(xiàng)卡中選中 “Creat Hex Fi” ;其它選項(xiàng)卡內(nèi)容一般可取默認(rèn)值。如果發(fā)現(xiàn)程序有錯(cuò),可采用在線匯編功能對(duì)程序進(jìn)行在線修改 (DebugInline Assambly),不必執(zhí)行先退出調(diào)試環(huán)境、修改源程序、對(duì)工程重新進(jìn)行編譯 /匯編和連接、然后再次進(jìn)入調(diào)試狀態(tài)的步驟。 Proteus 是世界上著名的 EDA 工具 (仿真軟件 ),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到 PCB 設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的 完整設(shè)計(jì)。 2. 提供了多種虛擬儀器。 Proteus 與其它單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī) CPU 的工作情況,也能仿真單片機(jī)外圍電路或沒(méi)有單片機(jī)參與的其它電路的工作情況。 proteus 的工作 過(guò)程 運(yùn)行 proteus 的 ISIS 程序后,進(jìn)入該仿真軟件的主界面。元件涉及數(shù)字和模擬、交流和直流等 。溫度傳感器的仿真效果圖如圖 32 所示,此圖驗(yàn)證了傳感器的溫度與數(shù)碼管顯示的數(shù)字一致。顯示當(dāng)前溫度。 ℃以內(nèi)。一旦學(xué)會(huì)了正確的使用方法,就能感覺(jué)到它帶來(lái)的便利是熱電偶不能比擬的,以后再次使用的話就能很快上手了。 軟件方面 本次設(shè)計(jì)利用 Protues 軟件對(duì)系統(tǒng)進(jìn)行仿真,利用 Keil C51 軟件對(duì)系統(tǒng)進(jìn)行編程。 軟件設(shè)計(jì)中,把程序按功能分模塊的話能提高編程效率,把問(wèn)題一一解決,同時(shí)畫流程圖能幫助理清思路,使問(wèn)題簡(jiǎn)單化。在做鍵盤消抖時(shí),延時(shí)的時(shí) 間比較重要,一般為 10ms 左右,延時(shí)太短就會(huì)使按鍵太過(guò)靈敏,按一下就使數(shù)字跳變幾次;而延時(shí)過(guò)長(zhǎng)則可能使按鍵按下了卻無(wú)響應(yīng),在外部定義初始化一個(gè)延時(shí)函數(shù)的入口參量則能很方便地調(diào)整延時(shí)時(shí)間,以達(dá)到比較好的效果。通過(guò)本次畢業(yè)設(shè)計(jì),我在專業(yè)知識(shí)、專業(yè)技能和解決問(wèn)題方法方面得到很大的提高。 //溫度輸入口 sbit L1=P2^0。 //數(shù)碼管 4 sbit beep=P3^5。 //溫度減 int temp1=0。 uchar high=120,low=20。 uchar scale。 //個(gè)位帶小數(shù)點(diǎn)的斷碼表 uchar data temp_data[2]={0x00,0x00}。t)。j++) { switch (j) { case 0: dm=table_dm[display[0]]。//小數(shù) case 1: dm=table_dm1[display[1]]。//個(gè)位 case 2: dm=table_dm[display[2]]。//十位 case 3: dm=table_dm[display[3]]。//百位 //else{dm=table_dm[b3]。} } } 中國(guó)石油大學(xué)勝利學(xué)院本科畢業(yè)設(shè)計(jì) (論文 ) 29 } ow_reset(void) //DS18B20 復(fù)位函數(shù) { char presence=1。 DQ=0。 //6 us presence=DQ。 //拉高電平 } void write_byte(uchar val) //DS18B20 寫命令函 //向 1WIRE 總線上寫 1 個(gè)字節(jié) { uchar i。_nop_()。 _nop_()。0x01。 delay(1)。i0。 value=1。 _nop_()。 中國(guó)石油大學(xué)勝利學(xué)院本科畢業(yè)設(shè)計(jì) (論文 ) 31 _nop_()。 delay(6)。 //總線復(fù)位 delay(200)。 delay(1)。 //讀溫度值的第字節(jié) temp_data[1]=read_byte()。 // 兩字節(jié)合成一個(gè)整型變量。n=1。 // 存入小數(shù)部分顯示值 display[4]=tem4。 // 取十位數(shù)據(jù)暫存 display[1]=display[1]%10。 //次高位為 0 時(shí)不顯示 } } if(n){display[3]=0x0b。 } 中國(guó)石油大學(xué)勝利學(xué)院本科畢業(yè)設(shè)計(jì) (論文 ) 33 display[3]=horl/100。 display[1]=horl%10。 //次高位為 0 時(shí)不顯示 } } if(n) { display[3]=0x0b。 while(!set) 中國(guó)石油大學(xué)勝利學(xué)院本科畢業(yè)設(shè)計(jì) (論文 ) 34 scan()。 high+=1。 if(add==0) { while(!add) scan()。 } scan()。 } else { beep=0。 L2=0。h++) //開(kāi)機(jī)顯示 0000 { display[h]=0。 //發(fā)轉(zhuǎn)換命令 for(h=0。 //處理溫度數(shù)據(jù) BEEP()。 } } 中國(guó)石油大學(xué)勝利學(xué)院本科畢業(yè)設(shè)計(jì) (論文 ) 37 附錄 B 系統(tǒng)總設(shè)計(jì)圖 。 //顯示溫度值 keyscan()。h++) //開(kāi)機(jī)顯示 0000 { scan()。 //開(kāi)機(jī)先轉(zhuǎn)換一次 write_byte(0xcc)。 for(h=0。 //初始化端口 L4=0。 break。 } if(dec==0) { while(!dec) 中國(guó)石油大學(xué)勝利學(xué)院本科畢業(yè)設(shè)計(jì) (論文 ) 35 scan()。 high=1。 scan()。 //最高溫度和最低溫度標(biāo)志位 if(set==0) { while(1) { delay(500)。 if(!display[3]) { display[3]=0x0a。0x0f。 if(horl128) { horl=256horl。 if(!display[3])//符號(hào)位顯示判斷 { display[3]=0x0a。 // 取百位數(shù)據(jù)暫存 display[1]=display[4]%100。0x0f。 //返回溫度值 } work_temp(uint tem) //溫度數(shù)據(jù)處理函數(shù) //二進(jìn)制高字節(jié)的低半字節(jié)和低字節(jié)的高半字節(jié)組成一字節(jié) ,這個(gè)字節(jié)的二進(jìn)制轉(zhuǎn)換為十進(jìn)制后 ,就是溫度值的百、十、個(gè)位值 ,而剩下的低字節(jié)的低半字節(jié)轉(zhuǎn)化成十進(jìn)制后 ,就是溫度值的小數(shù)部分 中國(guó)石油大學(xué)勝利學(xué)院本科畢業(yè)設(shè)計(jì) (論文 ) 32 { uchar n=0。 temp=8。 //發(fā)命令 write_byte(0xbe)。 //發(fā)命令 write_byte(0x44)。 return(value)。 _nop_()。 //4 us DQ=1。 _nop_()。 _nop_()。 uchar value=0。 //66 us val=val/2。 _nop_()。 //從高拉倒低 DQ=0。i0。 //延時(shí) 45 us presence=~DQ。 //50 us DQ=1。 //從高拉倒低 _nop_()。delay(50)。delay(50)。delay(50)。delay(50)。delay(50)。 for(j=0。 //顯示單元數(shù)據(jù),共 4 個(gè)數(shù)據(jù)和一個(gè)運(yùn)算暫用 void delay(uint t) // 延時(shí)函數(shù) { for (。 uchar code table_dm[12]={0x3f,0x06,0x5b,0x4f, //小數(shù)斷碼表
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1