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

正文內(nèi)容

畢業(yè)論文-基于單片機(jī)的溫度報(bào)警器設(shè)計(jì)與實(shí)現(xiàn)【完(編輯修改稿)

2025-07-09 03:29 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 拉,上拉開(kāi)啟時(shí)間最大為 10us。采用寄生電源供電方式時(shí) VDD 端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。考慮到實(shí)際應(yīng)用中寄生電源供電方式適應(yīng)能力差且易損壞,此處采用電源供電方式, I/O 口接單片機(jī)的 口。 DS18B20 的測(cè)溫原理是這這樣的 ,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很 小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器 1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器 2的脈沖輸入。器件中還有一個(gè)計(jì)數(shù)門(mén),當(dāng)計(jì)數(shù)門(mén)打開(kāi)時(shí), DS18B20 就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門(mén)的開(kāi)啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將- 55℃所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器 溫度寄存器中,計(jì)數(shù)器 1 和溫度寄存器被預(yù)置在- 55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。 中原工學(xué)院信息商務(wù)學(xué)院信息工程系專業(yè)課程設(shè)計(jì)報(bào)告 9 / 28 減法計(jì)數(shù)器 1 對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器 1 的預(yù)置值減到 0 時(shí),溫 度寄存器的值將加 1,減法計(jì)數(shù)器 1 的預(yù)置將重新被裝入,減法計(jì)數(shù)器 1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器計(jì)數(shù)到 0時(shí),停止溫度寄存器的累加,此時(shí)溫度寄存器中的數(shù)值就是所測(cè)溫度值。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門(mén)仍未關(guān)閉就重復(fù)上述過(guò)程,直到溫度寄存器值大致被測(cè)溫度值。 AT89C51 的最小應(yīng)用系統(tǒng) AT89C51 是片內(nèi)有程序存儲(chǔ)器的單片機(jī),要構(gòu)成最小應(yīng)用系統(tǒng)時(shí)只要將單片機(jī)接上外部的晶體或時(shí)鐘電路和復(fù)位電路即可,如圖 所示。這樣構(gòu)成的最小系統(tǒng)簡(jiǎn)單可靠 ,其特點(diǎn)是沒(méi)有外部擴(kuò)展,有可供用戶使用的大量的 I∕ O 線。 圖 AT89C51 單片機(jī)構(gòu)成的最小系 程序設(shè)計(jì) 主程序 系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計(jì)算溫度子程序,顯示數(shù)據(jù)刷新子程序等。 中原工學(xué)院信息商務(wù)學(xué)院信息工程系專業(yè)課程設(shè)計(jì)報(bào)告 10 / 28 發(fā) DS18B20 復(fù)位命令 發(fā)跳過(guò) ROM 命令 發(fā)溫度轉(zhuǎn)換開(kāi)始命令 結(jié)束 圖 讀溫度子程序 讀出溫度子程序的主要功能是讀出 RAM 中的 9 字節(jié),在讀出時(shí) 需進(jìn)行 CRC 校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫(xiě)。其程序流程圖如圖 8 示 圖 溫度轉(zhuǎn)換流程圖 初始化 調(diào)用顯示子程序 1S 到? 初次上電 讀出溫度值溫度計(jì)算處理顯示數(shù)據(jù)刷新 發(fā)溫度轉(zhuǎn)換開(kāi)始命令 N Y N Y Y 發(fā) DS18B20 復(fù)位命令 發(fā)跳過(guò) ROM 命令 發(fā)讀取溫度命令 讀取操作, CRC 校驗(yàn) 9 字節(jié)完? CRC 校驗(yàn)正?確? 移入溫度 暫存器 結(jié)束 N N Y 中原工學(xué)院信息商務(wù)學(xué)院信息工程系專業(yè)課程設(shè)計(jì)報(bào)告 11 / 28 溫度轉(zhuǎn)換命令子程序 溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開(kāi)始命令,當(dāng)采用 12 位分辨率時(shí)轉(zhuǎn)換時(shí)間約為 750ms,在本程序設(shè)計(jì)中采用 1s 顯示程序延時(shí)法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如上圖,圖 所示 計(jì)算溫度子程序 計(jì)算溫度子程序?qū)?RAM中讀取值進(jìn)行 BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖 圖 314 計(jì)算溫度流程圖圖 315 顯示數(shù)據(jù)刷新流程圖 程序 include include include char count,mi,fe,shz。 sbit g1=P2^7。 sbit g2=P2^6。 開(kāi)始 溫度零下 ? 溫度值 取補(bǔ) 碼置“ — ”標(biāo)志 計(jì)算小數(shù)位溫度 BCD 值 計(jì)算整數(shù)位溫度 BCD 值 結(jié)束 置“ +”標(biāo)志 N Y 溫度數(shù)據(jù)移入顯示寄存器 十位數(shù) 0? 百位數(shù) 0? 十位數(shù)顯示符號(hào)百位數(shù)不顯示 百位數(shù)顯示數(shù)據(jù)(不顯示符號(hào)) 結(jié)束 N N Y Y 中原工學(xué)院信息商務(wù)學(xué)院信息工程系專業(yè)課程設(shè)計(jì)報(bào)告 12 / 28 sbit g3=P2^5。 sbit g4=P2^4。 sbit lv=P2^2。 sbit jin=P3^3。 sbit jia=P3^4。 sbit jian=P3^5。 uint shiwen。 uint zuigao=350。 int zuidi=300。 uchar flag=0。 //記錄第一個(gè)按鍵次數(shù) flag=0 正常 1 最高 2 最低 uchar flag2=0。 //記錄第四個(gè)按鍵次數(shù) flag2=0 正常 1 調(diào)節(jié)小時(shí) 2 調(diào)節(jié)分鐘 uchar tableshu[]={0x28,0xeb,0x32,0xa2,0xe1,0xa4,0x24,0xea,0x20,0xe0,0xff ,0xf7 }。 // 0 1 2 3 4 5 6 7 8 9 滅 uchar tableshudi[]={0x08,0xcb,0x12,0x82,0xc1,0x84,0x04,0xca,0x00,0xc0,0xff }。 /*報(bào)警 */ void baojing() { if((shiwenzuigao)amp。amp。(shiwenzuidi)) lv=0。 else lv=1。 } void dis(uchar ba,uchar sh,uchar ge,uchar di) { g1=0。P0=tableshu[ba]。 delay1(5)。 g1=1。P0=tableshu[10]。 g2=0。P0=tableshu[sh]。 delay1(5)。 g2=1。P0=tableshu[10]。 中原工學(xué)院信息商務(wù)學(xué)院信息工程系專業(yè)課程設(shè)計(jì)報(bào)告 13 / 28 g3=0。P0=tableshudi[ge]。 delay1(5)。 g3=1。P0=tableshudi[10]。 g4=0。P0=tableshu[di]。 delay1(5)。 g4=1。P0=tableshu[10]。 } void disdi(uchar ba,uchar sh,uchar ge,uchar di) { g1=0。P0=tableshudi[ba]。 delay1(5)。 g1=1。P0=tableshu[10]。 g2=0。P0=tableshudi[sh]。 delay1(5)。 g2=1。P0=tableshu[10]。 g3=0。P0=tableshudi[ge]。 delay1(5)。 g3=1。P0=tableshudi[10]。 g4=0。P0=tableshudi[di]。 delay1(5)。 g4=1。P0=tableshu[10]。 } void biaozhun() { if(jin==0) { delay1(5)。 if(jin==0) { while(!jin)。 中原工學(xué)院信息商務(wù)學(xué)院信息工程系專業(yè)課程設(shè)計(jì)報(bào)告 14 / 28 flag++。 if(flag==3) flag=0。 } } } /*調(diào)幅值 */ void tfz() { uchar ba,sh,ge,di。 if(flag==1) { while(1) { ba=zuigao/1000。 sh=zuigao/100%10。 ge=zuigao/10%10。 di=zuigao%10。 dis(ba,sh,ge,di)。 if(jia==0) delay1(5)。 if(jia==0) { zuigao=zuigao+10。 while(!jia)。 dis(ba,sh,ge,di)。 } if(jian==0) { zuigao=zuigao10。 while(!jian)。 中原工學(xué)院信息商務(wù)學(xué)院信息工程系專業(yè)課程設(shè)計(jì)報(bào)告 15 / 28 dis(ba,sh,ge,di)。 } biaozhun()。 if(flag!=1) break。 } } if(flag==2) { while(1) { ba=zuidi/1000。 sh=zuidi/100%10。 ge=zuidi/10%10。 di=zuidi%10。 dis(ba,sh,ge,di)。 if(jia==0) delay1(5)。 if(jia==0) { zuidi=zuidi+10。 while(!jia)。 } if(jian==0) { zuidi=zuidi10。 while(!jian)。 } biaozhun()。 if(flag!=2) 中原工學(xué)院信息商務(wù)學(xué)院信息工程系專業(yè)課程設(shè)計(jì)報(bào)告 16 / 28 break。 } } } void main(void) { uchar TL。 //儲(chǔ)存暫存器的溫度低位 uchar TH。 //儲(chǔ)存暫存器的溫度高位 uint TN。 //儲(chǔ)存溫度的整數(shù)部分 uchar TD。 //儲(chǔ)存溫度的小數(shù)部分 uchar ba,sh,ge,di,ba1,sh1,ge1,di1。 bit flag1。 //判斷顯示正負(fù) 0 負(fù) 1 正 delay1(5)。 //延時(shí) 5ms 給硬件一點(diǎn)反應(yīng)時(shí)間 while(1) //不斷檢測(cè)并顯示溫度 { init()。//讀溫度準(zhǔn)備 if(flag1==1) dis(ba,sh,ge,di)。 else dis(11,sh,ge,di)。 TL=ReadOneChar()。 //先讀的是溫度值低位 TH=ReadOneChar()。 //接著讀的是溫度值高位 if((THamp。0xf8)!=0x00)//判斷高五位 得到溫度是負(fù) { flag1=0。 TL=~TL。 //取反 TH=~TH。 //取反 TL=TL+1。 //低位加 1 TN=(TH*256+TL)*。 //實(shí)際溫度值 10 倍 =(TH*256+TL)*, if(TN%160==0) TN=TN+ 中原工學(xué)院信息商務(wù)學(xué)院信息工程系專業(yè)課程設(shè)計(jì)報(bào)告 17 / 28 sh=TN/100%10。 ge=TN/10%10。 di=TN%10。 dis(11,sh,ge,di)。 //顯示溫度 } else//判斷高五位 得到溫度是正 { flag1=1。 TN=(TH*256+TL)*。 //實(shí)際溫度值 10 倍 =(TH*256+TL)*, //這樣前幾位是溫度的整數(shù)部分 ,最后一位是溫度的小數(shù)部分 ba=TN/1000。 sh=TN/100%10。 ge=TN/10%10。 di=TN%10。 dis(ba,sh,ge,di)。 //顯示溫度的整數(shù)部分 } shiwen=TN。 biaozhun()。 tfz()。 if(flag1==1) dis(ba,sh,ge,di)。 else dis(11,sh,ge,di)。 baojing()。 } } 四、 設(shè)計(jì)制作 與檢測(cè) 電路板的設(shè)計(jì)制作 電路板的設(shè)計(jì)與制作是整個(gè)電路制作過(guò)程中比較重要的一步,如果電路板做不好,再中原工學(xué)院信息商務(wù)學(xué)院信息工程系專業(yè)課程設(shè)計(jì)報(bào)告 18 / 28 好的電路設(shè)計(jì)也不行。下面 就對(duì)簡(jiǎn)單電路板的設(shè)計(jì)及制作過(guò)程做一個(gè)簡(jiǎn)單的介紹。 利用 Protel 99SE 畫(huà)原理圖。在畫(huà)原理圖的時(shí)候?yàn)榱穗娐钒灞容^好看,要注意布局,同時(shí)還得注意元件封裝,命名等。畫(huà)好原理圖后要對(duì)其進(jìn)行電氣檢測(cè),檢查原理圖是否有錯(cuò),同時(shí)還要?jiǎng)?chuàng)建網(wǎng)絡(luò)表為下一步的工作做好準(zhǔn)備。 PCB版圖的設(shè)計(jì)。在對(duì) PCB圖設(shè)計(jì)時(shí)首先要添加封裝庫(kù),這樣原理圖中給予的封裝才能有效,然后調(diào)入網(wǎng)絡(luò)表看原理圖的封裝,命名等是否有錯(cuò),如果沒(méi)錯(cuò)便可進(jìn)行下一步操作。對(duì)其進(jìn)行布線,首先先對(duì)布線規(guī)則作一些必要的設(shè)置,如焊盤(pán)的大小,導(dǎo)線的粗細(xì)等。做好這些 設(shè)置后便可進(jìn)行自動(dòng)布線,自動(dòng)布線后如果布線不是很理想還可用手動(dòng)布線進(jìn)行手動(dòng)修改,這樣 PCB 圖就畫(huà)好了。 電路板的制作。把設(shè)計(jì)布局好的 PCB 圖打印出來(lái)之后,然后進(jìn)行壓板、腐
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1