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

正文內(nèi)容

基于at89c51單片機(jī)和ds18b20數(shù)字溫度傳感器的溫度測量系統(tǒng)-論文-閱讀頁

2024-12-02 15:36本頁面
  

【正文】 期 /機(jī)器周期。 805l 的指令周期含 1— 4個機(jī)器周期,其中多數(shù)為單周期指令,還有 2 周期和 4 周期指令。這些信號由單片機(jī)軟件生成。由于它具有顯示清晰、亮度高、使用電壓低、壽命長的特點,因此使用非常廣泛。其中 7個發(fā)光二極管構(gòu)成字型“ 8”的各個筆畫段 ,另一個小數(shù)點為 dp 發(fā)光二極管。如圖 1113 所示。當(dāng)二極管導(dǎo)通時,相應(yīng)的筆劃段發(fā)亮,由發(fā)亮的筆劃段組合而顯示各種字符。例如,對于共陰 LED 顯示器,當(dāng)公共陰極接地(為零電平),而陽極hgfedcba 各段為 0111011 時,顯示器顯示 P字符,即對于共陰極 LED 顯示器, “P” 字符的字形碼是 73H。 智能電子技術(shù)實踐課程設(shè)計報告 11 圖 1113 LED 數(shù)碼管共陽極和共陰極示圖 LED 顯示方式有動態(tài)顯示和靜態(tài)顯示兩種方式。 CPU 向 字段輸出口送出字型碼時,所有顯示器接收到相同的字型碼,但究竟是哪個顯示器亮,則取決于 COM 端。在輪流點亮掃描過程中,每位顯示器的點亮?xí)r間是極為短暫的(約 1ms),但由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實際上各位顯示器并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感。圖 1115 音頻放大電路。與傳統(tǒng)的熱敏電阻相比,他能夠直接讀出被測溫度并且可根據(jù)實際要求通過簡單的編程實現(xiàn) 9~ 12 位的數(shù)字值讀數(shù)方式。因而使用 DS18B20 可使系統(tǒng)結(jié)構(gòu)更趨簡單,可靠性更高。 簡介 ( 1)獨特的單線接口方式: DS18B20 與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與 DS18B20 的雙向通訊。 ( 3)可用數(shù)據(jù)線供電,電壓范圍: +~ + V。固有測溫分辨率為 ℃。 ( 6)用戶可自設(shè)定非易失性的報警上下限值。 ( 8)負(fù)壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作。 DS18B20 的測溫原理 DS18B20 的測溫原理如圖 2 所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小〔 1〕,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器 1,高溫度 系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器 2 的脈沖輸入,圖中還隱含著計數(shù)門,當(dāng)計數(shù)門打開時, DS18B20 就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進(jìn)行計數(shù),進(jìn)而完成溫度測量。減法計數(shù)器 1 對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計數(shù),當(dāng)減法計數(shù)器 1 的預(yù)置值減到 0 時溫度寄存器的值將加 1,減法計數(shù)器 1 的預(yù)置將重新被裝 入,減法計數(shù)器 1 重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計數(shù),如此循環(huán)直到減法計數(shù)器 2 計數(shù)到 0 時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。 另外,由于 DS18B20 單線通信功能是分時完成的,他有嚴(yán)格的時隙概念,因此讀寫時序很重要。操作協(xié)議為:初始化 DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM 功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。其工作時序包括初始化時序、寫時序和讀時序,如圖 3( a)( b)( c)所示。 當(dāng) DS18B20 處于寫存儲器操作和溫度 A/D 變換操作時,總智能電子技術(shù)實踐課程設(shè)計報告 15 線上必須有強(qiáng)的上拉,上拉開啟時間最大為 10 μ s。由于單線制只有一根線,因此發(fā)送接收口必須是三態(tài)的。假設(shè)單片機(jī)系統(tǒng)所用的晶振頻率為 12 MHz,根據(jù) DS18B20 的初始化時序、寫時序和讀時序,分別編寫 3 個子程序: INIT 為初始化子程序, WRITE 為寫(命令或數(shù)據(jù))子程序, READ 為讀數(shù)據(jù)子程序,所有的數(shù)據(jù)讀寫均由最 低位開始,實際在實驗中不用這種方式,只要在數(shù)據(jù)線上加一個上拉電阻 kΩ ,另外 2 個腳分別接電源和地。因此,對讀寫的操作時序要求嚴(yán)格。在 DS18B20 操作中,用到的延時有15 μ s, 90 μ s, 270 μ s, 540 μ s 等。有了比較精確的延時保證,就可以對 DS18B20 進(jìn)行讀寫操作、溫度轉(zhuǎn)換及顯示等操作。其一個工作周期可分為兩個部分,即溫度檢測和數(shù)據(jù)處理。 18B20 共有三種形態(tài)的存儲器資源,它們分別是: ROM 只讀存儲器,用于存放 DS18B20ID 編碼,其前 8 位是單線系列編碼( DS18B20的編碼是 19H),后面 48 位是芯片唯一的序列號,最后 8 位是以上 56 的位的 CRC 碼(冗余校驗)。 DS18B20 共 64 位 ROM。第 2 個字節(jié)是溫度轉(zhuǎn)換后的數(shù)據(jù)值信息,第 4個字節(jié)是用戶 EEPROM(常用于溫度報警值儲存)的鏡像。第 5 個字節(jié)則是用戶第 3 個 EEPROM 的鏡像。第 9 個字節(jié)為前 8 個字節(jié)的 CRC 碼。 智能電子技術(shù)實踐課程設(shè)計報告 16 控制器對 18B20 操作流程 1. 復(fù)位:首先我們必須對 DS18B20 芯片進(jìn)行復(fù)位,復(fù)位就是由控制器(單片機(jī))給 DS18B20 單總線至少 480uS 的低電平信號。 2. 存在脈沖:在復(fù)位電平結(jié)束之后, 控制器應(yīng)該將數(shù)據(jù)單總線拉高,以便于在15~60uS 后接收存在脈沖,存在脈沖為一個 60~240uS 的低電平信號。如果復(fù)位低電平的時間不足或是單總線的電路斷路都不會接到存在脈沖,在設(shè)計時要注意意外情況的處理。 ROM 指令為 8 位長度,功能是對片內(nèi)的 64 位光刻 ROM 進(jìn)行操作。誠然,單總線上可以同時掛接多個器件,并通過每個器件上所獨有的 ID 號來區(qū)別,一般只掛接單個 18B20 芯片時可以跳過 ROM 指令(注意:此處指的跳過 ROM 指令并非不發(fā)送 ROM 指令,而是用特有的一條“跳過指令”)。 4. 控制器發(fā)送存儲器操作指令:在 ROM 指令發(fā)送給 18B20 之后,緊接著(不間斷)就是發(fā)送存儲器操作指令了。存儲器操作指令的功能是命令 18B20 作什么樣的工作,是芯片控制的關(guān)鍵。如執(zhí)行溫度轉(zhuǎn)換指令則控制器(單片機(jī))必須等待18B20 執(zhí)行其指令,一般轉(zhuǎn)換時間為 500uS。數(shù)據(jù)的讀寫方法將有下文有詳細(xì)介紹。緊接著執(zhí)行第二個周期為復(fù)位、跳過 ROM 指令、執(zhí)行讀 RAM 的存儲器操作指令、讀數(shù)據(jù)(最多為9 個字節(jié),中途可停止,只讀簡單溫度值則讀前 2 個字節(jié)即可) 。 //定義通信端口 sbit ser=P2^1。 sbit rclk=P2^3。 //蜂鳴器報警引腳, P10=1 時報警 uchar code LED[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf}。 // 帶小智能電子技術(shù)實踐課程設(shè)計報告 18 數(shù)點 uchar idata T[5]={0,0,0,0,0}。 unsigned char FLAG=0。 //初始上限值 uint templ=25。 } void delay1_us()// {_nop_()。_nop_()。_nop_()。 } void delay(unsigned int x) {unsigned int y=10000 。 y=10000。 for(j=0。j++) { if(aamp。 else ser=0。 srclk=0。 } for(j=0。j++) { if(bamp。 else ser=0。 srclk=0。 } rclk=0。 } uchar Init_DS18B20(void) { unsigned char flag=0。 //單片機(jī)將 DQ拉低 delayx_us(250)。 DQ=1。 //大于 15US~60US flag=DQ。 DQ=1。 } uchar ReadBit(void) {bit s。 //拉高電平,準(zhǔn)備啟動讀時序 delay1_us()。 delay1_us()。 智能電子技術(shù)實踐課程設(shè)計報告 20 DQ=1。 delay1_us()。 delay1_us()。 delay1_us()。 s=DQ。 // 讀時序不能少于 60us return(s)。 unsigned char j。i8。 dat=(j7)|(dat1)。 } void WriteOneChar(unsigned char dat) { unsigned char i=0。 for (i=0。i++) { DQ=1。 n=datamp。 智能電子技術(shù)實踐課程設(shè)計報告 21 dat=1。 //拉低電平 15US 內(nèi)釋放總線 delay1_us()。 DQ=1。 //整個時序不能低于 60US } else //寫 0 { DQ=0。 //保持低電平 60us~120us DQ=1。 } } } float ReadTemperature(void) { float value。 unsigned int tempInt=0,tempdot=0,tempwhole=0。 WriteOneChar(0xcc)。 delay(12)。 WriteOneChar(0xcc)。 智能電子技術(shù)實踐課程設(shè)計報告 22 a=ReadOneChar()。 tempInt=b。 tempwhole=tempInt*256+tempdot。//基本單位為 return(value)。 TL0=(655364000)%256。 outbyte(weima,seg)。 outbyte(weima,seg)。 if(=4) { weima=0x0ef。 } else weima=(weima1)|0x01。 int m,n 。 P10=1。 智能電子技術(shù)實踐課程設(shè)計報告 23 TH0=(655364000)/256。 TL1=0xfd。 SCON=0x50。 TR1=1。 ET0=1。 while(1) { temperature=ReadTemperature()。 if(m=31) P10=0。 T[3]=(m%100)/10。 n=(temperaturem)*100+。 T[0]=n%10。 SBUF=0x46。 TI=0。 while(TI==0)。 {SBUF=T[3]|0x30 。 TI=0。 智能電子技術(shù)實踐課程設(shè)計報告 24 while(TI==0)。 SBUF=0x2e 。 TI=0。 while(TI==0)。 if(m25) P10=0。 } } } 測溫程序流程框圖 復(fù) 位 發(fā) CCH SKIP ROM 命令 發(fā) 44H 開始轉(zhuǎn)換命令 延 時 復(fù) 位 發(fā) OBEH 讀存儲器 發(fā) CCH SKIP ROM 命令 連續(xù)讀出兩個字節(jié)數(shù)據(jù)(即溫度) 結(jié)束 智能電子技術(shù)實踐課程設(shè)計報告 25 第 5 章 .調(diào)試過程 —— 軟件、硬件調(diào)試 我們組在前期分工時,利用課余時間焊電路板(電路圖見硬件部分)焊出了我們的第一塊板子; 下一步的工作就是軟件部分,簡單點就是編寫程序。經(jīng)過老師給我們的思路,我們組集體出動到圖書館翻閱關(guān)于 51 系列軟件編程的相關(guān)資料書籍,程序編寫出來了。在 LED上顯示 。 我們反復(fù)的調(diào)試,我們檢查 DS18B20 的數(shù)據(jù)輸入 /輸出 DQ 端口與單片機(jī)的 端口相連是否正確,將傳感器 DS18B20 的地線和外接供電電源輸入端口分別接在單片機(jī)的地線端和 +5V 電源端口測試電源供電情況。經(jīng)過一上午的鉆研,還是沒有結(jié)果。我們懷疑板子上的芯片可能時間久了有些可能燒壞了;無奈,我們選擇了再焊一塊板子。 在老師的指導(dǎo)下調(diào)試過程: 我們調(diào)試了測試了波形,發(fā)現(xiàn) DS18B20 沒有工作。 第一塊板子,我們判斷可能是 DS18B20 燒壞了,于是,我向班級同學(xué)借了一個 DS18B20重新焊接,皇 天不負(fù)有心人,我們兩塊板子效果都實現(xiàn)了。 我們還做了錄下了一小段視頻作為紀(jì)念。感謝老師的指導(dǎo)和小組成員的共同努力! 第 6 章 效果展示 實現(xiàn)效果 數(shù)字溫度傳感器 DS18B20 測溫,使用單個 DS18B20 采集環(huán)境溫度,并使用四位數(shù)碼管顯示溫度結(jié)果,實現(xiàn)了測溫范圍在零下 10 度到 50度,可設(shè)高低溫報警的效果,當(dāng)溫度低于 25度 ,或高于 31度的時候,蜂鳴器就會發(fā)出聲音,實現(xiàn)報警,精確度為 , DS18B20采用外部電源供電方式,為保證在有效的時鐘周期內(nèi)提供足夠的電流,使用了一個 的電阻,進(jìn)行相應(yīng)
點擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1