【正文】
C. At the same time, the counter is then preset with a value determined by the slope accumulator circuitry. This circuitry is needed to pensate for the parabolic behavior of the oscillators over temperature. The counter is then clocked again until it reaches zero.If the gate period is still not finished, then this process repeats. The slope accumulator is used to pensate for the non–linear behavior of the oscillators over temperature, yielding a high resolution temperature measurement. This is done by changing the number of counts necessary for the counter to go through for each incremental degree in temperature. To obtain the desired resolution, therefore, both the value of the counter and the number of counts per degree C (the value of the slope accumulator) at a given temperature must be known.Internally, this calculation is done inside the DS1820 to provide 176。C increments. Fahrenheit equivalent is –67176。由于這次設計的時間較短,該檢測儀的主要功能已經實現,要達到實用,還需繼續(xù)進一步進行研究設計。由于采用了測量范圍廣、精度高、響應速度快的電阻式濕度傳感器來進行濕度采樣,因此該檢測儀基本上達到技術指標中對相對濕度測量精度和分辨力的要求。 start()。}uchar read_I2C(uchar qjnbdz){ uchar shuju。 delay(2)。 sck=1。 delay(5)。 delay(4)。amp。} void stop() { sda=0。 } } } }該檢測儀采用獨立式鍵盤,關于它的具體硬件組成電路這里就不多做介紹,在檢測有無鍵按下方面主要用的是開機自動掃描方式,該方式是利用單片機運行程序初始化后自動掃描鍵盤。 //若不在這顯示數碼管閃爍 yejing=0。 if(button4==0) { while(button4==0)。write_sj(0x30+Dge)。} if(fl==1){Dsh。 write_sj(0x30+Ug)。} break。 if(fl==0){Ushi。} if(fl==0){Dge++。write_sj(0x30+Dshi)。} break。 if(fl==1){Ug++。 write_sj(0x30+Ush)。 if(nn==1) fl=1。 case 3:write_zl(0x80+0x40+10)。 kk++。P21=1。P1=tab[c]。P35=0。 display()。 init_lcd()。P27=0。 } void sounderplay() { uint i。 } else { if(shi0) //否則判斷shi是否顯示{write_zl(0x80+0x40+4)。 write_zl(0x80+0x40+4)。 if(a==1) { if(shi0) {write_zl(0x80+0x40+3)。 //合并高低位數 tem=~tem+1。 write_dat(0xbe)。} void temperaturechange(){ uint tempH,tempL。j++) { DQ=1。0x01。 DQ=1。 溫度檢測模塊程序設計1. 程序設計方案開始始初始化DS18B20,LCD讀DS18B20序列號DS18B20是否存在 發(fā)送跳過RAM指令溫度轉換LCD顯示NO2. 部分源程序如下: void init_lcd(){ write_zl(0x38)。當WP管腳連接到Vss 或懸空允許器件進行正常的讀/寫操作第2章 溫濕度檢測儀的軟件設計167。數據傳送是由產生串行時鐘和所有起始停止信號的主器件控制的。帶中文字庫的圖形液晶12864用來顯示溫濕度界面,由于單片機的I/O口有限,我采用了兩片74HC573鎖存器來擴大I/O口以便連接所有器件?! ?)濕滯效應:指濕敏電阻器在吸濕和脫濕過程中電氣參數表現的滯后現象。開漏單總線接口引腳。 (2)、在DS18B20中的每個器件上都有獨一無二的序列號。 如EA端為高電平(接Vcc端),CPU則執(zhí)行內部程序存儲器的指令。要注意的是:每當訪問外部數據存儲器時將跳過一個ALE脈沖。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。對P2 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入 口使用。 在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。另外,AT89S52 可降至0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式。溫度檢測模塊實現對濕度數據的存儲 、顯示。 167。167。先根據實際生產生活的需要提出溫濕度檢測儀的設計功能要求,然后由這些具體要求和現有的設計條件設計出了適合的硬件原理圖,盡量采用模塊化的方法將其分成幾個部分,然后分模塊設計程序,最使各部分結合起來協(xié)調工作,實現功能要求。 溫度檢測模塊程序設計 12167。 溫濕度檢測儀應用軟件系統(tǒng)的設計方案 3167。接入獨立鍵盤鍵盤實現人機交換功能,并用LCD12864作為顯示設備的硬件設計方案?;诖藛纹瑱C的溫濕度檢測儀可以實時、準確的測量環(huán)境中的溫度和相對濕度。 性能指標 2167。 其它模塊電路設計 9第2章 溫濕度檢測儀的軟件設計 11167。隨著科技的進步,檢測儀表也向著智能化、小型化、低功耗的方向發(fā)展。它綜合運用了現代檢測技術、數據處理和通信技術以及LCD顯示技術,可以實時、準確、穩(wěn)定的測量環(huán)境中的溫度和相對濕度。10%;6. 工作環(huán)境溫度≤90℃ ,工作環(huán)境濕度≤90%;167。167。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于 常規(guī)編程器。對P0端口寫“1”時,引腳用作高阻抗輸入。 此外,()和時器/計數器2 的觸發(fā)輸入(),具體如下表所示。 在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。當振蕩器工作時,RST引腳出現兩個機器周期以上高電平將是單片機復位。 PSEN——程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C52由外部程序存儲器取指令(或數據)時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數據存儲器,將跳過兩次PSEN信號。 溫度檢測電路DS18B20數字溫度計是DALLAS公司生產的1-Wire,即單總線器件,具有線路簡單,體積小的特點。 (5)、數字溫度計的分辨率用戶可以從9位到12位選擇。例如20%RH 2)濕度溫度系數(%RH/℃):指在環(huán)境濕度恒定時,濕敏電阻器在溫度每變化1℃時,其濕度指示的變化量。167。\u36755X出能直接接到 CMOS,NMOS 和 TTL 接口上 \u25805X作電壓范圍:~ ,\u20302X輸入電流: CMOS 器件的高噪聲抵抗特性 OE ̄1 20 Vcc 1D— 2 19 —1Q 2D— 3 18 —2Q 3D— 4 17 —3Q 4D— 5 16 —4Q 5D— 6 15 —5Q 6D— 7 14 —6Q 7D— 8 13 —7Q 8D— 9 12 —8Q GND 10 11 LE 1腳三態(tài)允許控制端低電平有效 1D~8D為數據輸入端 1Q~8Q為數據輸出端 74HC573引腳圖 LE為鎖存控制端另外本產品還增加了掉電存儲功能和報警裝置,掉電存儲就是用戶在重新啟機時或斷電的情況下溫度上下限設定的值會被保存用戶不必再重新修改,若當前溫濕度超過了用戶設定的上下限值報警裝置會自動報警。當使用AT24C02 時最大可級聯(lián)8個器件。初始化對單片機的工作非常重要,因為單片機經過復位以后一些狀態(tài)字,寄存器的初值可能是隨機分配的值也可能是全置0或置1,程序在運行過程中,程序狀態(tài)字起著重要的作用,為了不影響程序的正常運行初始化是十分必要的。 delay(8)。i8。}int read_sj(){ uchar j,date。 if(DQ==1) // date|=0x80。 delay(33750)。 tem=tempH。 bai=temp/100。 write_sj(0x30+shi)。 write_sj(0x30+bai)。 write_sj(0x00)。} }167。 TH1=0xff。 shidu_set()。 } } }void exter() interrupt 3{P34=~P34。 c=a/b。d=f/5。 鍵盤掃描鍵盤是人機交換的橋梁,一個好的鍵盤能夠讓用戶方便的使用儀表。//shan shuo break。flag=0。 switch(kk) { case 1:write_zl(0x80+10)。write(8,Ushi)。 if(Uge9)Uge=0。write(14,Dsh)。if(Dg9)Dg=0。 } } } if(button3==0){ delay2(5)。 if(Ush3)Ush=9。 write(9,Uge)。 if(Dshi0)Dshi=1。 case 4: write_zl(0x80+0x40+11)。write(15,Dg)。shangdian_du()。 shangdian_du()。 delay(4)。 delay(4)。 }void write_shj(uchar sj){uchar temp,j。 sck=1。 for(k=0。}//一定不要括錯void write(uchar qjnbdz,uchar date){ start()。 response()。 write_shj(qjnbdz)。 stop()。軟件設計中面臨的主要問題是環(huán)境溫濕度數據的采集方法。從設計的選題到資料的搜集直至最后設計的修改的整個過程中,花費了郭老師很多的寶貴時間和精力,在此向導師表示衷心地感謝!導師嚴謹的治學態(tài)度,開拓進取的精神和高度的責任心都將使學生受益終生! 還要感謝和我同一設計小組的幾位同學,是你們在我平時設計中和我一起探討問題,并指出我設計上的誤區(qū),使我能及時的發(fā)現問題把設計順利的進行下去,沒有你們的幫助我不可能這樣順利地結稿,在此表示深 附 錄 溫度、相對濕度檢測儀的電路原理圖外文資料原文DS1820FEATURES? Unique 1–WireTM interface requires only one port pinfor munication? Multidrop capability simplifies distributed temperaturesensing applications? Requires no external ponents? Can be powered from data line? Zero standby power required? Measures temperatures from –55176。 it will send back a “1” if it is powered from the VDD pin. If the master receives a “0”, it knows that it must supply the strong pull–up on the I/O line during temperature conversions. See “Memory Command Functions” section for more detail on this mand protocol.OPERATION – MEASURING TEMPERATUREThe DS1820 measures temperature through the use of an on–board proprietary temperature measurement technique. A block diagram of the temperature measurement ci