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

正文內(nèi)容

基于at89c51單片機的溫度控制系統(tǒng)設計-資料下載頁

2024-12-07 09:32本頁面

【導讀】它以AT89C51單片機為主控制芯片,采用數(shù)字溫度傳感器DS18B20實現(xiàn)溫度的。檢測,測量精度可以達到℃。該系統(tǒng)采用了1602顯示模塊,形象直觀的顯示測出的?;贏T89C51單片機的單總線溫度測控系統(tǒng)具有硬件組成簡單、讀數(shù)方便、精度高、測溫范圍廣等特點,在實際工程中得到廣泛應用。

  

【正文】 2021. [6] 康華光 .電子技術(shù)基礎 — 數(shù)字部分 [M].北京:高等教育出版社, 2021. [7] 朱清惠等 .Proteus 教程:電子線路設計制版與仿真 [M].北京:清華大學出版社, 2021. [8] 王文海 .單片機應用于實踐項目化教程 [M]..北京:化學工業(yè)出版社, 2021. [9] 鈴木雅成 .晶體管電路設計 [M].科學出版社, 2021. [10] 譚浩強 .C 程序設計 [M].北京:清華大學出版社, 2021. 21 致 謝 在四年的大學學習期間,我得到了授業(yè)老師們在學業(yè)上,為人處事上的指導,在生活上的關(guān)懷。恩師們在教學、科研上兢兢業(yè)業(yè)的作風、腳踏實地的治學態(tài)度,將使我在今后的學習、工作中受益匪淺。 在我的學習過程中和課題開展過程中,得到了課題導師魏強老師的指導和督促,還有眾多同學與網(wǎng)友的幫助,使我能夠較順利地完成課題,在此我衷心地向他們表達深深的謝 意 ! 同時,還要感謝學院的全體老師以及所有關(guān)心、支持我的朋友和親人。 最后,衷心感謝我的父母,感謝他們對我的培育,正是有了他們的理解,支持和幫助,才使我順利地進入大學并完成了大學學業(yè)。 謝謝 ! 22 附錄 1 頭文件 ifndef __18B20_h__ //防止重復定義 define __18B20_h__ include include include include extern void dsreset(void)。 //函數(shù)聲明 外部可見 extern void tempwritebyte(uchar dat)。 extern bit tempreadbit(void)。 extern uchar tempreadbyte(void)。 extern void tempchange(void)。 extern uint get_temp(void)。 endif 文件 include sbit beep = P3^0。 //定義蜂鳴器信號線 sbit ds = P2^7。 //定義 18B20 信號線 static uint temp = 0。 static float f_temp = 。 23 /************************************** * 函數(shù)名稱: dsreset(void) * * 函數(shù)功能: 18B20 初始化 * * 入口參數(shù):無 * * 出口參數(shù):無 * ***************************************/ void dsreset(void) { ds = 1。 //將數(shù)據(jù)線置高電平 _nop_()。 //稍作延時,要盡可能短 ds = 0。 // 拉低數(shù)據(jù)線 Delayus(40)。 //延時 _nop_()。 ds = 1。 //將數(shù)據(jù)線拉高 Delayus(14)。 //延時 ds = 1。 //拉高數(shù)據(jù)線 } /******************************************** * 函數(shù)名稱: temwritebyte(uchar dat) * * 函數(shù)功能:向 18B20 寫一個字節(jié) * * 入口參數(shù): dat * * 出口參數(shù):無 * ********************************************/ void tempwritebyte(uchar dat) { uint i。 for(i=0。i8。i++) // 一個字節(jié)有 8 位 { ds=0。 //將數(shù)據(jù)線拉低 _nop_()。 //稍作延時,待數(shù)據(jù)穩(wěn)定 ds=datamp。0x01。 //低位在前,高位在后 Delayus(3)。 //延時 45us 24 _nop_()。 _nop_()。 ds=1。 //將數(shù)據(jù)線拉高 dat=1。 //左移一位,繼續(xù)發(fā)送下一位 } } /************************************** * 函數(shù)名稱: tempreadbit(void) * * 函數(shù)功能:讀一位數(shù)據(jù) * * 入口參數(shù):無 * * 出口參數(shù): dat * ***************************************/ bit tempreadbit(void) { uint i = 0。 //定義 i,做延時用 bit dat。 //定義一位數(shù)據(jù) ds = 0。i++。 ds = 1。i++。i++。 dat = ds。 i = 8。while(i0)i。 return(dat)。 //返回一位數(shù)據(jù) } /************************************** * 函數(shù)名稱: tempreadbyte(void) * * 函數(shù)功能:讀一個字節(jié) * * 入口參數(shù):無 * * 出口參數(shù): dat * ***************************************/ uchar tempreadbyte(void) { uchar i,j,dat。 dat=0。 for(i=1。i=8。i++) 25 { j=tempreadbit()。 dat=(j7)|(dat1)。 //讀出的數(shù) 據(jù)低位在前,剛好在一個字節(jié) dat 里 } return(dat)。 } /************************************** * 函數(shù)名稱: tempchange(void) * * 函數(shù)功能:獲取 18B20 溫度轉(zhuǎn)換 * * 入口參數(shù):無 * * 出口參數(shù):無 * ***************************************/ void tempchange(void) { dsreset()。 //18B20 復位 Delayms(1)。 //稍作延時 tempwritebyte(0xcc)。//跳過讀 ROM 指令 tempwritebyte(0x44)。//寫溫度轉(zhuǎn)換指令 } /**************************************** * * * 函數(shù)名稱: get_temp(void) * * 函數(shù)功能:獲取 18B20 寄存器中的數(shù)據(jù) * * 入口參數(shù):無 * * 出口參數(shù): temp * ****************************************/ uint get_temp(void) { uchar a,b。 dsreset()。 26 Delayms(1)。 tempwritebyte(0xcc)。 //跳過 ROM tempwritebyte(0xbe)。 //讀暫存器 a = tempreadbyte()。//讀低 8 位 b = tempreadbyte()。//讀高 8 位 temp = b。 temp = 8。//將兩個字節(jié)合為一個字 temp = temp|a。 f_temp = temp*。//溫度在寄存器中為 12 為,分辨率為 temp = f_temp*10+。 //溫度修正 四舍五入 return temp。 } 27 附錄 2
點擊復制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1