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

正文內(nèi)容

課程設(shè)計(jì)-基于ds18b20數(shù)字溫度計(jì)的設(shè)計(jì)-在線(xiàn)瀏覽

2024-07-31 16:47本頁(yè)面
  

【正文】 AT89C52 共有 6 個(gè)中斷 向量 :兩個(gè)外中斷( INT0 和 INT1), 3 個(gè)定時(shí)器中斷 (定時(shí)器 0, 1, 2)和串行口中斷。 這個(gè)放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器,振蕩電路參見(jiàn)圖 41( a)圖所示。 用戶(hù)也可以采用外部時(shí)鐘。這種情況下,外部時(shí)鐘脈沖接到 XTAL1 端,即內(nèi)部時(shí)鐘發(fā)生器的輸入端, XTAL2 則懸空。 二 DS18B20 功能簡(jiǎn)介 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 8 芯片簡(jiǎn)介 ( 1) 適應(yīng)電壓范圍更寬,電壓范圍: V~ ,在寄生電源方式下可由數(shù)據(jù)線(xiàn)供電 。 ( 3) DS18B20 在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi) ?!?。 ( 6) 在 9 位分辨率時(shí)最多在 內(nèi)把溫度轉(zhuǎn)換為數(shù)字, 12 位分辨率時(shí)最多在 750ms 內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快 。 ( 8) 負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作 。 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 9 DS18B20 的管腳排列 DS18B20引腳定義: 序號(hào) 名稱(chēng) 引腳功能描述 1 GND 地信號(hào) 2 DQ 數(shù)據(jù)輸入 /輸出引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源。當(dāng)工作于寄生電源時(shí),此引腳必須接地。 64 位 ROM 的循環(huán)冗余校驗(yàn)碼( CRC=X8+ X5+ X4+ 1)。 DS18B20 中的溫度傳感器完成對(duì)溫度的測(cè)量,用 16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以 ℃ /LSB形式表達(dá),其中 S為符號(hào)位。 這是 12 位轉(zhuǎn)化后得到的 12 位數(shù)據(jù),存儲(chǔ)在 DS18B20 的兩個(gè) 8 比特 的 RAM中,二進(jìn)制中的前面 5 位是符號(hào)位,如果測(cè)得的溫度大于 0,這 5 位為 0,只要將測(cè)到的數(shù)值乘于 即可得到實(shí)際溫度;如果溫度小于 0,這 5 位為 1,測(cè)到的數(shù)值需要取反加 1 再乘于 即可得到實(shí)際溫度。 DS18B20 溫度值格式表 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 LS Byte 23 22 21 20 2 1? 2 2? 2 3? 2 4? bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 MS Byte S S S S S 26 25 24 ( 2) 高低溫報(bào)警觸發(fā)器 TH 和 TL 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 10 DS18B20 溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存 RAM 和一個(gè)非易失性的可電擦除的 EEPRAM,后者存放高溫度和低溫度觸發(fā)器 TH、 TL和結(jié)構(gòu)寄存器。 配置寄存器結(jié)構(gòu) TM R1 R0 1 1 1 1 1 低五位一直都是 “ 1” , TM 是測(cè)試模式位,用于設(shè)置 DS18B20 在工作模式還是在測(cè)試模式。 R1 和R0 用來(lái)設(shè)置分辨率,如下表 1 所示( DS18B20 出廠(chǎng)時(shí)被設(shè)置為 12 位) 。開(kāi)始兩個(gè)字節(jié)包含被測(cè)溫度的數(shù)字量信息;第 5 字節(jié)分別是 TH、 TL、配置寄存器的臨時(shí)拷貝,每一次上電復(fù)位時(shí)被刷新;第 8 字節(jié)未用,表現(xiàn)為全邏輯 1;第 9 字節(jié)讀出的是前面所有 8個(gè)字節(jié)的 CRC 碼,可用來(lái)保證通信正確。 表 1: 溫度分辨率設(shè)置表 R1 R0 分辨率 溫度最大轉(zhuǎn)換時(shí)間 0 0 9 位 0 1 10 位 1 0 11 位 375ms 1 1 12 位 750ms DS18B20 的工作時(shí)序 DS18B20 的一線(xiàn)工作協(xié)議流程是:初始化 → ROM 操作指令 → 存儲(chǔ)器操作指令 → 數(shù)據(jù)傳輸。 表 47: DS18B20 暫存寄存器分布 寄存器內(nèi)容 字節(jié)地址 溫度值低位 ( LS Byte) 0 溫度值高位 ( MS Byte) 1 高溫限值( TH) 2 低溫限值( TL) 3 配置寄存器 4 保留 5 保留 6 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 11 保留 7 CRC 校驗(yàn)值 8 主機(jī)控制 DS18B20 完成任何操作之前必須先初始化,即 主機(jī)發(fā)一復(fù)位脈沖(最短為 480us 的低電平 ),接著主機(jī)釋放總線(xiàn)進(jìn)入接收狀態(tài), DS18B20 在檢測(cè)到I/O 引腳上的上升沿之后,等待 1560us 然后發(fā)出存在脈沖 (60240us 的低電平 )。在 15us 之內(nèi)將所需寫(xiě)的位送到數(shù)據(jù)線(xiàn)上,在 15us 到 60us 之間對(duì)數(shù)據(jù)線(xiàn)進(jìn)行采樣,如果采樣為高電平,就寫(xiě) 1,如果為低電平,寫(xiě) 0 就發(fā)生。 讀時(shí)間片 :主機(jī)將數(shù)據(jù)線(xiàn)從高電平拉至低電平 1us 以上,再使數(shù)據(jù)線(xiàn)升為高電平,從而產(chǎn) 生讀起始信號(hào)。每個(gè)讀周期最短的持續(xù)期為 60us,各個(gè)讀周期之間也必須有 1us以上的高電平恢復(fù)期。圖( a)中 DS18B20 采用寄生電源方式,其 VDD 和 GND 端均接地,圖( b)中 DS18B20 采用外接電源方式,其 VDD 端用 3V~ 電源供電。只有在總線(xiàn)上存在單只 DS18B20 的時(shí)候才能用這個(gè)命令。 ( 2) Match ROM [55H] 這是個(gè)匹配 ROM 命令,后跟 64 位 ROM 序列,讓總線(xiàn)控制器在多點(diǎn)總線(xiàn)上定位一只特定的 DS18B20。所有和 64 位 ROM 序列不匹配的從機(jī)都將等待復(fù)位脈沖。 ( 3) Skip ROM [0CCH] 這個(gè)命令允許總線(xiàn)控制器不用提供 64 位 ROM 編碼就使用存儲(chǔ)器操作命令,在單點(diǎn)總線(xiàn)情況下,可以節(jié)省時(shí)間。總線(xiàn)上發(fā)生數(shù)據(jù)沖突(漏極開(kāi)路連在一起形成“與”的效果)。搜索 ROM 命令允許總線(xiàn)控制器用排除法識(shí)別總線(xiàn)上的所有從機(jī)的 64 位編碼。然而,只有在最近一次測(cè)溫后遇到符合報(bào)警條件的情況, DS18B20 才會(huì)響應(yīng)這條命令。只要 DS18B20 不掉電,報(bào)警狀態(tài)將一直保持,直到再一次測(cè)得的溫度值達(dá)不到報(bào)警條件??梢栽谌魏螘r(shí)刻發(fā)出復(fù)位命令來(lái)中止寫(xiě)入。讀取將從第 1 字節(jié)開(kāi)始,一直進(jìn)行下去,直到第 9( CRC)字節(jié)讀完。 ( 8) Copy Scratchpad[48H] 這個(gè)命令把暫存器的內(nèi)容拷貝到 DS18B20 的 E2 ROM 存儲(chǔ)器里,即把溫度報(bào)警觸發(fā)器字節(jié)存入非易失性存儲(chǔ)器里。如果使用寄生電源,總線(xiàn)控制器必須在這條命令后立即啟動(dòng)強(qiáng)上拉,并最少保持10ms。溫度轉(zhuǎn)換命令被執(zhí)行,而后 DS18B20 保持等待狀態(tài)。如果使用寄生電源,總線(xiàn)控制器必須在發(fā)出這條命令后立即啟動(dòng)強(qiáng)上拉 ,并最少保持 500ms 以上時(shí)間。這種拷貝操作在 DS18B20 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 14 上電時(shí)自動(dòng)執(zhí)行,這樣一上電暫存器里馬上存在有效的數(shù)據(jù)了。 ( 11) Read Power Supply[0B4H] 若把這條命令發(fā)給 DS18B20 后發(fā)出讀時(shí)間隙,器件會(huì)返回它的電源模式: 0 為寄生電源, 1 為外部電源。傳感器感知周?chē)臏囟炔⒏兄臏囟葌鹘o單片機(jī),在通過(guò)相應(yīng)的接口將溫度傳給數(shù)碼管顯示。整個(gè)電路的電路圖如下圖所示: 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 15 4. 軟件編程調(diào)試及性能分析 一、整個(gè)軟件的主流程圖如下圖所示: 二、主程序 include define uchar unsigned char define unit unsigned int sbit DQ=P3^0。 開(kāi)始 傳感器初始化程序 向傳感器讀取一個(gè)字節(jié)程序 從傳感器讀一個(gè)字節(jié)程序 溫度轉(zhuǎn)換程序 調(diào) 用溫度轉(zhuǎn)換程序 調(diào)用寫(xiě)程序?qū)懭胂鄳?yīng)的數(shù) 調(diào)用讀程序讀取溫度值 顯示對(duì)應(yīng)的溫度 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 16 sbit p21=P2^1。 sbit p23=P2^3。 code uchar tab1[]={0x40,0x79,0x24,0x30,0x19, 0x12,0x02,0x78,0x00,0x10}。 uchar bai,shi,ge,xiao。 } //初始化函數(shù) bit int_DS18B20(void) { unsigned char x=0。 delay(8)。 delay(52)。 delay(6)。 delay(20)。 } //讀一個(gè)字節(jié) unsigned char read(void) { unsigned char i=0,j=0。 for(i=8。i) { DQ=0。 dat=1。 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 18 j++。 if(DQ) dat|=0x80。 } return(dat)。 for(i=8。i) {DQ=0。0x01。 DQ=1。 } delay(5)。 write(0xCC)。 } void main(void) { unit count=0。 int_()。 delay(2200)。count1000。 P0=tab[0]。 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 20 p20=0。 P0=tab[0]。 p21=0。 P0=tab[0]。 p22=0。
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1