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

正文內(nèi)容

基于at89s51單片機(jī)的數(shù)字溫度計的設(shè)計學(xué)士學(xué)位論文-wenkub

2023-07-09 09:40:42 本頁面
 

【正文】 基于 AT89S51 單片機(jī)的 數(shù)字溫度計的設(shè)計 姓 名: 王露 學(xué) 號: 20xx05120334 指 導(dǎo) 教師: 李愛云 田中俊 學(xué) 院: 光電工程學(xué)院 專 業(yè): 電子信息工程 完 成 日期: 20xx 年 05 月 25 日 學(xué) 士 學(xué) 位 論 文 基于 AT89S51 單片機(jī)的 數(shù)字溫度計的設(shè)計 姓 名: 王露 學(xué) 號: 20xx05120334 指 導(dǎo) 教師: 李愛云 田中俊 學(xué) 院: 光電工程學(xué)院 專 業(yè): 電子信息工程 完 成 日期: 20xx 年 05 月 25 日 摘 要 隨著時代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活、工作、科研、各個領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù) , 本文主要設(shè)計了一個基于 AT89S51單片機(jī)和 DS18B20 數(shù)字溫度傳感器開發(fā)測溫系統(tǒng)的過程,重點對傳感器在單片機(jī)下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進(jìn)行了研究。s daily lives , industrial and agricultural production, and also easily as a temperature processing module embed in the other system, turn into as a plementary expansion. Key word : AT89S51Single chip 。 測量溫度的核心是溫度傳感器,溫度傳感器經(jīng)歷了三個發(fā)展階段 [1]: ①傳統(tǒng)的分立式溫度傳感器 ②模擬集成溫度傳感器 ③智能集成溫度傳感器。該設(shè)計控制器使用 AT89S51 單片機(jī),測溫傳感器使用 DS18B20,用 LCD 來實 現(xiàn)溫度顯示。檢測結(jié)點的溫度可通過測量已知溫度的電壓推斷 [3]。此外還有復(fù)位電路,晶振電路,啟動電路等。最大線形偏差在 0— 100 攝氏度時小于 1 ℃ [6]。 從以上兩種方案,容易看出方案一 的測溫裝置可測溫度范圍寬、體積小,但是線性誤差較大。 AT89S51 可以兼容標(biāo)準(zhǔn) 8051 指令系統(tǒng)和引腳,是功耗低,性能高的 CMOS8 位單片機(jī),含 4kbytes 的可編程 Flash 只讀程序存儲器 [8]。這里采用 DALLAS 公司的 數(shù)字溫度傳感器 DS18B20 作為測溫元件。 DS18B20 內(nèi)部結(jié)構(gòu)主要由四部分組成: 64 位光刻 ROM、配置寄存器、E178。 圖 312 傳感器電路圖 圖 313 外部封裝形式 (2)溫度數(shù)據(jù)值的格式 (如圖 314)。 每次讀 /寫前都要對 DS18B20 進(jìn)行復(fù)位;如果 溫度轉(zhuǎn)換 已 完成則輸出 1, 如果 DS18B20 做溫度轉(zhuǎn)換 時 總線控制器緊接 著發(fā)出時間隙 DS18B20 將 會 輸出 0。 ℃,因此液晶就可以完成相關(guān)的顯示功能,只需要報警器完成相關(guān)的報警功能。 其次 ,通過 AT89S51 單片機(jī)對送 入 的溫度讀數(shù)進(jìn)行計算及 轉(zhuǎn)換, 并把 結(jié)果送入顯示模塊。必須先啟動DS18B20 開始轉(zhuǎn)換,再讀出溫度轉(zhuǎn)換值。 DS18B20 的電源供電方式分為寄生電源和外部供電方式兩種。因此 , 在條件允許的情況下 ,應(yīng)盡量選擇外供電方式。當(dāng)所測溫度超過獲低于所預(yù)設(shè)的溫度時,數(shù)據(jù)口相應(yīng)拉高電平,報警輸出 [20]。把每個執(zhí)行模塊分別列出并進(jìn)行功能和接口定義。 主程序模塊 主程序需要調(diào)用 4 個子程序,分別為數(shù)碼管顯示程序,溫度測試及處理子程序,報警子程序,中斷 設(shè)定子程序。 ●中斷設(shè)定程序:實現(xiàn)設(shè)定上下限報警功能。 度,往往很多場合需要更加精確的溫度,在所測溫度精度不變的基礎(chǔ)上必須對數(shù)據(jù)進(jìn)行校正。 從這次的課程設(shè)計中,我真正的意識到,在以后的學(xué)習(xí)中,要 加強(qiáng)實踐 ,把我們所學(xué)的理論知識用到實際當(dāng)中,學(xué)習(xí)單機(jī)片機(jī)更是如此,程序只有在經(jīng)常的寫 和 讀的過程中才能提高,這就是我在 本 次課程設(shè)計中的最大收獲。 //蜂鳴器 include //溫度傳感器 char temp。 uchar flag_baojing。 /********************************************** 主函數(shù) main() **********************************************/ void main() { TMOD = 0x11。 基于 AT89S51 單片機(jī)的數(shù)字溫度計的設(shè)計 作者:王露 第 18 頁 共 28 頁 ET0 = 1。 //1602 初始化 L1602_string(1,1,temp : ℃ )。 while(1) { temp2 = temp1。 baojing()。 } void time1() interrupt 3 基于 AT89S51 單片機(jī)的數(shù)字溫度計的設(shè)計 作者:王露 第 19 頁 共 28 頁 { TH1 = 0xfe。 L1602_char(1,7,39。039。+temp_buf%10)。 else L1602_char(1,7,39。039。+temp%10)。 TR1 = 1。 TR1 = 0 。 //1602 讀寫引腳 //sbit RS=P2^0。 //1602 數(shù)據(jù) /命令選擇引腳 define dis_data P0 void delay_1602() { uchar i = 2。 RS = 0。 E = 1。 RW = 0。 delay_1602()。 enable(0x06)。) * 輸入 : 行,列,需要輸入 1602 的數(shù)據(jù) * 輸出 : 無 ***********************************************************************/ void L1602_char(uchar hang,uchar lie,char sign) { uchar a。 enable(a)。 if(hang == 1) a = 0x80。 while(1) 基于 AT89S51 單片機(jī)的數(shù)字溫度計的設(shè)計 作者:王露 第 24 頁 共 28 頁 { if(*p == 39。 p++。 } /*****************DS18B20******************/ void Init_Ds18b20(void) //DS18B20 初始化 send reset and initialization mand { DQ = 1。 //精確延時,維持至少 480us DQ = 1。 uchar dat = 0。 //將總線拉低,要在 1us 之后釋放總線 //單片機(jī)要在此下降沿后的 15us 內(nèi)讀數(shù)據(jù)才會有效。 DQ = 1。 //若總線為 1,即 DQ 為 1,那就把 dat 的最高位置 1。 } void Write_One_Byte(uchar dat) { uchar i = 0。 //拉低總線 _nop_()。 delay_us(12)。 } } char Get_Tmp() //獲取溫度 get the temperature { float tt。 //初始化 Write_One_Byte(0xcc)。 //忽略 ROM 指令 Write_One_Byte(0xbe)。 //先把高八位有效數(shù)據(jù)賦于 temp temp_out = 8。 。 //兩字節(jié)合成一個整型變量 temp_1 = temp_out 4。 //讀取到的第一個字節(jié)為溫度 LSB b = Read_One_Byte()。 //溫度轉(zhuǎn)換指令 Init_Ds18b20()。 uchar a,b。 //寫完后 ,必須釋放總線 , dat = 1。0x01。i0。 //此延時不能少,確保讀時序的長度 60us。 _nop_()。 //至少維持了 1us,表示讀時序開始 dat = 1。i0。 //此處延時有足夠 ,確保能讓 DS18B20 發(fā)出存在 基于 AT89S51 單片機(jī)的數(shù)字溫度計的設(shè)計 作者:王露 第 25 頁 共 28 頁 脈沖。 //稍做延時 DQ = 0。 uint temp_out。) break。 a = a + lie 1。 } /********************************************************************* 名稱 : L1602_string(uchar hang,uchar lie,uchar *p) * 功能 : 改變液晶中某位的值,如果要讓第一行,第五個字符開始顯示 ab cd ef ,調(diào)用該函數(shù)如下 L1602_string(1,5,ab cd ef。 if(hang == 2) a = 0xc0。 } /**************************************************************** 基于 AT89S51 單片機(jī)的數(shù)字溫度計的設(shè)計 作者:王露 第 23 頁 共 28 頁 ***** 名稱 : L1602_char(uchar hang,uchar lie,char sign) * 功能 : 改變液晶中某位的值,如果要讓第一行,第五個字符顯示 b ,調(diào)用該函數(shù)如下 L1602_char(1,5,39。 enable(0x38)。 delay_1602()。 } /*********************************************************************名稱 : write(uchar del) * 功能 : 1602 寫數(shù)據(jù)函數(shù) * 輸入 : 需
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1