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

正文內(nèi)容

電子信息技術(shù)畢業(yè)設(shè)計論文(參考版)

2025-06-30 15:17本頁面
  

【正文】 DS18B20與單片機(jī)的接口電路DS18B20 與單片機(jī)的典型接口電路如圖39 所示,DS18B20 的正電源3腳接+5V,1腳接地,2腳接。 (4) CRC 的產(chǎn)生 在64位光刻 ROM的最高字節(jié)中存儲有循環(huán)冗余校驗碼(CRC)。C,這5 位都為0,;如果溫度低于0 186。如表316 所示。分辨率的位數(shù)設(shè)置得多并不具有多少實際意義,而且設(shè)定的分辨率越高,所需要的溫度轉(zhuǎn)換時間也越長,可以說“得不償失”,故在本設(shè)計中,將其分辨率設(shè)置為9位即可。因此,在實際應(yīng)用中要在分辨率和轉(zhuǎn)換時間兩者之間權(quán)衡考慮。在 DS18B20出廠時該位被設(shè)置為 0,用戶不要去隨意改動,R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),即設(shè)置分辨率,如表315 所示(DS18B20 出廠時分辨率被設(shè)置為 12位)。 表 314 DS18B20 字節(jié)定義寄存器內(nèi)容字節(jié)地址溫度低字節(jié)0溫度高字節(jié)1高溫限制2低溫限制3保留4保留5計數(shù)剩余值6每度計數(shù)值7每度計數(shù)值8配置寄存器為高速緩存存儲器中的第 5個字節(jié),其內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率,DS18B20 工作時按此寄存器中的分辨率將溫度轉(zhuǎn)換為相應(yīng)精度的數(shù)值。第三和第四個字節(jié)分別是TH、TL的易失性拷貝,第五個字節(jié)是結(jié)構(gòu)寄存器的易失性拷貝,這三個字節(jié)的內(nèi)容在每一次上電復(fù)位時被刷新,第六、七、八個字節(jié)用于內(nèi)部計算。 (2) 高速緩存存儲器 高速緩存存儲器包含了 9個連續(xù)字節(jié),如表3-14所示。64位光刻ROM的排列是:開始8位(28H)是產(chǎn)品類型標(biāo)號,接著的48位是該DS18B20自身的唯一序列號,最后8 位是前面56位的循環(huán)冗余校驗碼(CRC)。圖 38 DS18B20 內(nèi)部結(jié)構(gòu)圖下面具體介紹DS18B20每一部分的結(jié)構(gòu)和作用。 內(nèi)部有溫度上、下限報警設(shè)置。 用戶可通過編程為數(shù)字溫度傳感器設(shè)定9~12 位的分辨率。C之間。 測量溫度范圍在-55186。 實際應(yīng)用中不需要外接任何元器件即可實現(xiàn)測溫。 每個DS18B20器件上都有獨一無二的序列號。 只要求 1 根口線即可實現(xiàn)通信。當(dāng)工作于寄生電源時,該引腳必須接地。單總線接口引腳。DS18B20 的引腳及底視圖如圖37 所示。DS18B20 的性能是新一代產(chǎn)品中最好的,性價比也非常出色。DS18B20可通過編程設(shè)定9~12位的分辨率,精度為177。C。DS18B20的測溫范圍為-55186。} //若月份達(dá)到最大,則月份歸一,向年份進(jìn)位 } } } } } }} DS18B20概述DS18B20是美國DALLAS 半導(dǎo)體公司的數(shù)字化溫度傳感器,它也是世界上第一片支持“一線總線”接口的溫度傳感器。 if(month==13) {month=1。(month==4||month==6||month==9||month==11))) { day=1。(month==1||month==3||month==5||month==7||month==8||month==10||month==12))||(day30amp。day29))||(day31amp。(!leap(year)||leap(year)amp。 if(day28){if((month==2amp。 if(hour==24) //如果小時達(dá)到24,則小時歸零,向日期進(jìn)位 { hour=0。 if(minu==60) //如果分鐘達(dá)到60,則分鐘歸零,向小時進(jìn)位 { minu=0。 //每隔1秒,秒加1 if(sec==60) //如果秒達(dá)到60,則秒歸零,向分鐘進(jìn)位 { sec=0。 //變量num為全局變量,用以統(tǒng)計定時中斷的次數(shù)是否達(dá)到20次 if(num==20) //若定時中斷次數(shù)達(dá)到20次,則1秒時間到 { num=0。 ReadTempFlag=1。 //重新給定時器T0賦初值 n++。 /*定義兩個靜態(tài)局部變量,用來統(tǒng)計定時中斷的次數(shù),每夠1秒秒鐘加1,每夠3秒測一次溫度*/ TH0=15536/256。 TR0=ET0=EA=1。 //使用模式1,16位定時器,工作在定時模式下 TH0=15536/256。例如:已知系統(tǒng)晶振頻率為=12MHz,在方式1下,T0的最大定時時間為而在方式2下,T0的最大定時時間為如果在方式1下要定時50ms,晶振頻率不變,則T0應(yīng)賦的初始值的計算方法為:由于晶振頻率為12MHz,則機(jī)器周期為1,若定時50ms,即50000,則計數(shù)初始值應(yīng)為6553650000=15536,將15536/256賦與定時/計數(shù)器的高8位THX,將15535%256賦與定時/計數(shù)器的低8位TLX。根據(jù)上面的討論可以知道,定時器的定時時間的長短與定時器的位數(shù)、計數(shù)初始值、時鐘頻率密切相關(guān)。在這種情況下,T1仍然既可以工作在定時功能,又可以工作在計數(shù)功能,但計滿溢出時不能置位溢出標(biāo)志,不能申請中斷,其計滿溢出信號可以送給串行口,此時T1作為波特率發(fā)生器。在方式3下,TH0也是作為不能自動重載初始值的8位定時器來使用,但它只能用于定時功能,不能用于計數(shù)功能,因此沒有選擇位控制;TH0的啟動也僅受原來T1的啟動位TR1來控制;當(dāng)TH0計滿溢出時,直接將TF1置位從而向CPU申請中斷;此時,TH0的中斷服務(wù)程序入口地址占用原來T1的中斷服務(wù)程序入口地址,中斷序號也同樣使用T1的中斷序號。此時T0被分為兩個獨立的8位的定時/計數(shù)器來使用。需要強調(diào)的是:在工作方式0和工作方式1下,定時/計數(shù)器的計數(shù)初始值是不能自動重載的,需要我們在程序中用相應(yīng)的賦值語句重載;如果在程序中缺少了相應(yīng)的重載計數(shù)初始值語句,則定時/計數(shù)器溢出后將從0開始計數(shù)。在工作方式2下,由于只有低8位參與計數(shù),故最大計數(shù)為=256,最長定時時間為256個機(jī)器周期。每當(dāng)?shù)?位計滿溢出時,直接將計滿溢出標(biāo)志位TFX(X=0,1)為1,向CPU發(fā)出中斷請求,若CPU響應(yīng)中斷,由系統(tǒng)硬件自動將TFX復(fù)位。(3) 工作方式2(M1M0=10)T0和T1在工作方式2下都是作為8位的定時/計數(shù)器來使用的,定時/計數(shù)器的低8位負(fù)責(zé)計數(shù)。高8位產(chǎn)生進(jìn)位時,即計滿溢出,置計滿溢出標(biāo)志位TFX(X=0,1)為1,向CPU申請中斷,若CPU響應(yīng)中斷,由系統(tǒng)硬件自動將TFX復(fù)位。在工作方式0下,兩個定時/計數(shù)器的最大計數(shù)值為=8192,最長定時時間也只有8192個機(jī)器周期。(1) 工作方式0(M1M0=00)T0和T1的工作方式0是完全相同的,都是作為13位的定時/計數(shù)器來使用的,由THX(X=0,1)的8位和TLX的低5位構(gòu)成,TLX的高3位未用,TLX的低5位產(chǎn)生進(jìn)位時,直接進(jìn)到THX上。值得注意的是,單片機(jī)復(fù)位時,TCON的各位也均被清0。表313 定時/計數(shù)器的4種工作方式選擇表M1 M0工作方式功能說明0 0 方式0僅作為13位的定時/計數(shù)器使用0 1方式1作為16位的定時/計數(shù)器使用1 0方式2作為8位定時/計數(shù)器使用,初始值可自動重載1 1方式3僅適用于T0,分成兩個8位的計數(shù)器使用,T1停止工作定時器控制寄存器TCON是一個可位尋址的8位特殊功能寄存器。T0和T1,每個定時/計數(shù)器都有四種工作方式,由M1和M0來設(shè)定。GATE與對定時/計數(shù)器的控制作用(以T0為例)如圖36所示。當(dāng)=0時,定時/計數(shù)器的計數(shù)脈沖來源于單片機(jī)內(nèi)部時鐘脈沖的十二分頻(即機(jī)器周期),此時,由于計數(shù)周期是固定的,計數(shù)就轉(zhuǎn)化為定時,定時/計數(shù)器工作在定時功能模式。此時,若TRX和(X=0,1)均為高電平,則接通定時/計數(shù)器的輸入脈沖,啟動定時/計數(shù)器工作;若TRX和不全為高電平,則切斷定時/計數(shù)器的輸入脈沖來源,使定時/計數(shù)器停止工作。此時,若TRX=1,接通定時/計數(shù)器的輸入脈沖,啟動定時/計數(shù)器工作;若TRX=0,則切斷定時/計數(shù)器的輸入脈沖來源,使定時/計數(shù)器停止工作。該位影響定時/計數(shù)器的啟動控制方式。表312 定時器工作方式寄存器TMOD的各位功能說明位號D7D6D5D4D3D2D1D0位名稱GATEM1M0GATEM1M0高4位控制定時/計數(shù)器T1低4位控制定時/計數(shù)器T0由表312可知。單片機(jī)復(fù)位時,TMOD的各位均被清0。我們可以通過設(shè)置定時器工作方式寄存器TMOD來決定定時/計數(shù)器的啟動方式、計數(shù)脈沖源的選擇(從而可以決定使其工作于計數(shù)功能或定時功能)、工作方式,可通過設(shè)置定時器控制寄存器TCON來控制定時/計數(shù)器的啟動與停止。如果所需定時時間大于定時器所能定時的最長時間,可采用多次定時法以達(dá)到要求。例如,為便于計算,本設(shè)計中的單片機(jī)系統(tǒng)采用12MHz的晶振,一個機(jī)器周期由12個振蕩脈沖組成,則計數(shù)脈沖的頻率為振蕩頻率的12分頻,即12MHz/12=1MHz,計數(shù)周期為1ms,如果計數(shù)器的初始值為零,則最長定時時間為65536ms。由于機(jī)器周期是非常穩(wěn)定的,計數(shù)值也就對應(yīng)一個固定的時間,定時/計數(shù)器的功能也就轉(zhuǎn)化為定時模式。由于計數(shù)器至少需要用兩個機(jī)器周期來判斷一個計數(shù)脈沖(計數(shù)脈沖的高電平和低電平的持續(xù)時間在一個機(jī)器周期以上),所以從外部輸入的計數(shù)脈沖的最高頻率為晶振產(chǎn)生的時鐘脈沖頻率的24分頻(),否則將會產(chǎn)生計數(shù)誤差。T0和T1都有定時和計數(shù)兩種功能,這兩種功能的主要區(qū)別在于計數(shù)脈沖來源不同。我們要計50000,那就先預(yù)置計數(shù)器的初始值為15536(6553650000),再輸入50000個脈沖,不就到65536從而計滿溢出了嘛!使用定時/計數(shù)器時,首先在程序中用相關(guān)賦值語句設(shè)定好定時/計數(shù)器的啟動方式、功能模式、工作方式及計數(shù)初始值(這一過程我們習(xí)慣稱為定時/計數(shù)器的初始化),然后啟動它工作,定時/計數(shù)器將按照設(shè)定好的工作方式,從計數(shù)初始值開始,對指定的計數(shù)脈沖加1計數(shù),此時不占用CPU時間,CPU的工作與計數(shù)器的計數(shù)是同時進(jìn)行的且互不影響,直到定時/計數(shù)器計滿溢出才向CPU發(fā)出中斷請求信號,CPU通過中斷或軟件查詢方式處理溢出后的服務(wù)。比如先放入2000滴,再滴8000滴就可以把瓶子滴滿。如果其初始值為零,當(dāng)輸入65535個脈沖后,其計數(shù)值為65535(即二進(jìn)制數(shù)1111 1111 1111 1111B),再來一個脈沖,計數(shù)器的值將計滿溢出回零(進(jìn)位信號將相應(yīng)的計滿溢出標(biāo)志位TFX(X=0,1)置1,從而向CPU發(fā)出中斷請求)。當(dāng)定時/計數(shù)器的計數(shù)脈沖來自單片機(jī)外部((T0)、(T1)輸入)時,由于外部輸入脈沖的周期不固定性,此時定時/計數(shù)器工作于計數(shù)狀態(tài);如果定時/計數(shù)器的計數(shù)脈沖來自單片機(jī)內(nèi)部(對機(jī)器周期進(jìn)行加法計數(shù),一個機(jī)器周期等于12個時鐘周期,即機(jī)器周期脈沖是時鐘脈沖的十二分頻)時,由于晶振產(chǎn)生的時鐘脈沖的周期是非常穩(wěn)定的,所以當(dāng)計數(shù)值一定時,計數(shù)的時間也隨之而定,此時定時/計數(shù)器工作于定時狀態(tài)。T0和T1都可對輸入脈沖進(jìn)行加法計數(shù),即每來一個脈沖計數(shù)器的值加1,直到計滿溢出。需要注意的是:51單片機(jī)中的定時/計數(shù)器系統(tǒng)是單片機(jī)內(nèi)部一個獨立的硬件部分,它與CPU和晶振通過內(nèi)部某些控制線連接并相互作用,一旦CPU啟動計數(shù)器工作時,計數(shù)器便在輸入脈沖的作用下開始計數(shù),計數(shù)器的計數(shù)與CPU的工作是同時進(jìn)行的,直到計數(shù)器計滿溢出將相應(yīng)的溢出標(biāo)志位置1,向CPU發(fā)出中斷請求,CPU在允許中斷的情況下才暫停當(dāng)前程序的執(zhí)行,轉(zhuǎn)去執(zhí)行相應(yīng)的中斷服務(wù)程序。T0和T1都是16位的加法計數(shù)器,它們的容量是有限的,不可能無限制地持續(xù)計數(shù),其計數(shù)最大值為65535(即二進(jìn)制數(shù)1111 1111 1111 1111B),此時,若再輸入一個計數(shù)脈沖則計滿溢出,將對應(yīng)的計滿溢出標(biāo)志位置1,向CPU發(fā)出中斷申請,請求CPU暫停當(dāng)前程序的執(zhí)行,轉(zhuǎn)而來執(zhí)行相應(yīng)的中斷處理程序。定時/計數(shù)器的實質(zhì)就是計數(shù)器,它是由若干個觸發(fā)器組成的一個計數(shù)系統(tǒng),其功能是能對輸入脈沖進(jìn)行計數(shù)。52單片機(jī)則比51單片機(jī)擴(kuò)展了一個定時/計數(shù)器T2。因此,為了適應(yīng)控制領(lǐng)域的這一要求,單片機(jī)內(nèi)部都集成了定時/計數(shù)器。例如,全自動洗衣機(jī)中的各種定時控制;工業(yè)生產(chǎn)中,對流水線上的產(chǎn)品計數(shù)打包控制等。}中斷處理函數(shù)不會返回任何值,故其函數(shù)類型為void型,函數(shù)類型名void后緊跟中斷處理程序的函數(shù)名,函數(shù)名可以任意命名,只要合乎C51中對標(biāo)識符的規(guī)定即可;中斷處理函數(shù)不帶任何參數(shù),所以中斷函數(shù)名后面的括號內(nèi)為空;interrupt即“中斷”的意思,是為區(qū)別于普通自定義函數(shù)而設(shè);中斷序號是編譯器識別不同中斷源的唯一符號,它對應(yīng)著中斷服務(wù)程序入口地址,因此在寫中斷函數(shù)時一定要把中斷序號寫準(zhǔn)確,否則中斷程序?qū)⒌貌坏竭\行。中斷服務(wù)程序是一種具有特定功能的獨立程序段,往往寫成一個獨立函數(shù),函數(shù)內(nèi)容可根據(jù)中斷源的要求進(jìn)行編寫。當(dāng)然,我們也可以用位操作指令來實現(xiàn):EA=1,ET0=1。例如:如果我們要設(shè)置定時/計數(shù)器T0中斷允許,其他中斷不允許,則IE寄存器各位取值如表310所示。ET1:定時/計數(shù)器1的中斷允許位。ET0:定時/計數(shù)器0的中斷允許位。當(dāng)EA=0時,則所有中斷均被禁止;當(dāng)EA=1時,全局中斷允許打開,在此條件下,由各個中斷源的中斷控制位確定相應(yīng)的中斷允許或禁止。其各位定義如表39所示。IE也是一個可位尋址的8位特殊功能寄存器,即可以對其每一位單獨進(jìn)行操作,當(dāng)然也可以進(jìn)行整體字節(jié)操作。其余四位與外部中斷相關(guān),是兩個外部中斷的中斷請求標(biāo)志位和觸發(fā)方式控制位,本設(shè)計不涉及,
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1