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

正文內(nèi)容

數(shù)字溫濕度計的設(shè)計論文(編輯修改稿)

2025-07-19 15:05 本頁面
 

【文章內(nèi)容簡介】 1 鍵用來切換顯示的模式(分別顯示實際所測得的溫濕度,預(yù)置的溫度值和預(yù)置的濕度值) ,S2 鍵用來設(shè)置初始溫度或者濕度的十位,S3 鍵用來設(shè)置初始溫度或者濕度的個位。報警電路就是把個發(fā)光二極管和 TA89C52 的 P0_4 口相連,當(dāng) P0_4 口為低電平時放光二極管被點亮。發(fā)光二極管的壓降一般為 — V,其工作電流一般取 10—20 mA 為宜。使用LED 作指示電路時,應(yīng)該串接限流電阻,該電阻的阻值大小應(yīng)根據(jù)不同的使用電壓和 LED 所需工作電流來選擇。I=(5V2V)/200Ω=15mA 這個電流能使放光二極管正常放光。如果電流小于 10mA 放光二極管的亮度會減弱,如果電流大于 20mA 發(fā)光二極管亮度會更強,但是會有損發(fā)光二級管的壽命有時候甚至?xí)苯訜龤Оl(fā)光二極管。單片機復(fù)位有兩種:一種是上電復(fù)位,一種是按鍵復(fù)位。下圖用的就是按鍵復(fù)位,當(dāng)按鍵按下時單片機的 RST 口從低電平變?yōu)楦唠娖剑瑥亩M入復(fù)位狀態(tài)。當(dāng)按鍵松開后,VCC 給電容 C3 充電,從而把 RST 口拉至電平,單片機進入工作狀態(tài)。只要把下圖的 RESET 按鍵和 R2 電阻去掉就成了上電復(fù)位了。AT89C52 中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳 XTAL1 和XTAL2 分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器構(gòu)成自激振蕩器。外接石英晶體(或陶瓷諧振器)及電容CC2 接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路,對外接電容 CC2 雖然沒有十分嚴(yán)格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度及溫度穩(wěn)定性,如果使用石英晶體,我們推薦電容使用 30pF 士 10pF,而如果使用陶瓷諧振器,建議選擇 40pF 士 l0pF。這里用到的是 12M 的石英晶體振蕩器和兩個 30pF 的電容。具體原理圖如下圖 31 所示。圖 31 主控制電路和測溫濕電路原理圖167。 驅(qū)動顯示電路數(shù)碼管的顯示有兩種方法:一種是靜態(tài)顯示,一種是動態(tài)掃描顯示。靜態(tài)顯示就是數(shù)碼管的段選端一對一與單片機的 I/O 相連,位選端則根據(jù)數(shù)碼管的極型來接地(GND)或者是高電平(VCC) 。靜態(tài)顯示實現(xiàn)起來比較簡單,但是浪費了單片機的 I/O 口資源。動態(tài)掃描顯示就是幾個數(shù)碼管的段選端可以同時接到單片機的 I/O 口,位選端一對一的接到單片機的其它 I/O 口,當(dāng)位選信號選中某個數(shù)碼管時,那個數(shù)碼管就被點亮,而其它數(shù)碼管不亮。動態(tài)掃描顯示節(jié)省了單片機的 I/O 資源。采用動態(tài)顯示方案,設(shè)計中使用八個共陰極數(shù)碼管作為顯示載體,通過八路并口傳輸,共使用了十六個 I/O 口。顯示時采用循環(huán)移位法,即八位數(shù)碼管依次循環(huán)點亮,利用人眼睛的視覺暫留效果達(dá)到連續(xù)顯示,主程序每運行一遍便調(diào)用一次顯示子程序,將數(shù)據(jù)顯示出來。顯示部分為八位共陽極數(shù)碼管(四位一組),數(shù)碼管的段端 A,B,C,D,E,F,G 和 DP 與 TA89C52 的 P1 口相連,順序可以根據(jù)硬件接線方便而定。數(shù)碼管的字段通過八個 PNP 型的小功率放大三極管 S9012 與TA89C52 的 P2 口相連。因為 AT89C52 的端口輸出電流太?。ㄖ挥袔?mA)不能點亮這八位數(shù)碼管,所以這里用了八個 S9012 來驅(qū)動它們。具體原理圖如下圖 32所示。這里用的是 S9012H331,放大倍數(shù) 150 倍左右。下圖數(shù)碼管的段選端與單片機的 I/O 間還有一個 470Ω 的電阻。=()/== *150=137mACMAX=()/470Ω*8=46mA(足以點亮數(shù)碼管了)I圖 32 驅(qū)動顯示電路原理圖第四章 軟件設(shè)計及分析167。 DHT91 傳輸時序和指令集 ]7[167。 通訊復(fù)位時序串行時鐘輸入 (SCK)用于微處理器與 DTH91 之間的通訊同步。由于接口包含了完全靜態(tài)邏輯,因而不存在最小 SCK 頻率。串行數(shù)據(jù) (DATA) 三態(tài)門用于數(shù)據(jù)的讀取。DATA 在 SCK 時鐘下降沿到來之后改變狀態(tài),并僅在 SCK 時鐘上升沿有效。數(shù)據(jù)傳輸期間,在 SCK 時鐘高電平時,DATA 必須保持穩(wěn)定。為避免信號沖突,微處理器應(yīng)驅(qū)動 DATA 在低電平。需要一個外部的上拉電阻(例如:10kΩ)將信號提拉至高電平。如果與 DTH91 通訊中斷,下列信號時序可以復(fù)位串口:當(dāng) DATA 保持高電平時,觸發(fā) SCK 時鐘 9 次或更多。這些時序只復(fù)位串口,狀態(tài)寄存器內(nèi)容仍然保留。圖 41 通訊復(fù)位時序167。 啟動傳輸時序用一組“啟動傳輸”時序,來表示數(shù)據(jù)傳輸?shù)某跏蓟?。它包括:?dāng) SCK 時鐘高電平時 DATA 翻轉(zhuǎn)為低電平,緊接著 SCK 變?yōu)榈碗娖?,隨后是在 SCK 時鐘高電平時 DATA 翻轉(zhuǎn)為高電平。在下一次指令前,發(fā)送一個“傳輸啟動”時序。啟動傳輸時序如下圖 42 所示。圖 42 啟動傳輸時序167。 數(shù)據(jù)傳輸和指令集后續(xù)命令包含三個地址位(目前只支持“000” ) ,和五個命令位。DTH 91 會以下述方式表示已正確地接收到指令:在第 8 個 SCK 時鐘的下降沿之后,將DATA 下拉為低電平(ACK 位) 。在第 9 個 SCK 時鐘的下降之后,釋放 DATA(恢復(fù)高電平) 。發(fā)布一組測量命令(‘00000101 ’表示相對濕度 RH, ‘00000011 ’表示溫度 T)后,控制器要等待測量結(jié)束。這個過程需要大約 20/80/320ms ,分別對應(yīng) 8/12/14bit 測量。確切時間隨內(nèi)部晶振速度的變化而變化,最多可能有30%的變化。DTH91 通過下拉 DATA 至低電平并進入空閑模式,表示測量的結(jié)束??刂破髟谠俅斡|發(fā) SCK 時鐘前,必須等待這個“數(shù)據(jù)備妥”信號來讀出數(shù)據(jù)。檢測數(shù)據(jù)可以先被存儲,這樣控制器可以繼續(xù)執(zhí)行其它任務(wù)在需要時再讀出數(shù)據(jù)。接著傳輸 2 個字節(jié)的測量數(shù)據(jù)和 1 個字節(jié)的 CRC 奇偶校驗。uC 需要通過下拉DATA 為低電平,以確認(rèn)每個字節(jié)。所有的數(shù)據(jù)從 MSB 開始,右值有效(例如:對于 12bit 數(shù)據(jù),從第 5 個 SCK 時鐘起算作 MSB;而對于 8bit 數(shù)據(jù),首字節(jié)則無意義) 。用 CRC 數(shù)據(jù)的確認(rèn)位,表明通訊結(jié)束。如果不使用 CRC8 校驗,控制器可以在測量值 LSB 后,通過保持確認(rèn)位 ack 高電平,來中止通訊。在測量和通訊結(jié)束后,DTH91 自動轉(zhuǎn)入休眠模式。DTH91 的指令集如下表 41 所示。表 41 命令集167。 濕度的測量時序圖 43 測量濕度的時序167。 輸出轉(zhuǎn)換為物理量由能隙材料 PTAT (正比于絕對溫度) 研發(fā)的溫度傳感器具有極好的線性??捎萌缦鹿綄?shù)字輸出轉(zhuǎn)換為溫度值:Temperature = d1 +d2 .SOTd1 和 d2 的值如下表 42 所示。表 42 溫度轉(zhuǎn)換系數(shù)為了補償濕度傳感器的非線性以獲取準(zhǔn)確數(shù)據(jù),建議使用如下公式 1 修正輸出數(shù)值:RHlinear = c1 + c2 .SORH + c3 .SORH2c1,c2 和 c3 值如下表 43 所示。表 43 濕度轉(zhuǎn)換系數(shù)濕度傳感器相對濕度的溫度補償實際測量溫度與 25℃ (~77℉)相差較大時,應(yīng)考慮濕度傳感器的溫度修正系數(shù):RHtrue = (T176。C 25).(t1 + t2 .SORH) + RHlineart1 和 t2 的值如下表 44 所示。表 44 溫度補償系數(shù)RHtrue 就是測量的濕度值。167。 DHT91的 DC特性。DHT91 的 DC 特性如下表 45 所示。表 45 DHT91 的 DC 特性167。 程序流程圖開始通訊復(fù)位啟動傳輸定時器初始化寫濕度指令成功 error=0失敗 error=1讀濕度值成功 error=0失敗 error=1寫溫度指令成功 error=0失敗 error=1讀溫度值成功 error=0失敗 error=1Error=1?Y 數(shù)據(jù)處理顯示處理通訊復(fù)位啟動傳輸N定時器時間到中斷其它程序設(shè)置初始值刷新數(shù)碼管回到中斷點圖 44 程序流程圖167。 程序的設(shè)計167。 通訊復(fù)位子程序void s_connectionreset(void){unsigned char i。DATA=1。SCK=0。for(i=0。i9。i++){SCK=1。SCK=0。}} 通訊復(fù)位子程序用來復(fù)位串口的,當(dāng)傳輸中斷或者傳輸過程中發(fā)生了錯誤時就需要從新對串口進行復(fù)位操作。167。 傳輸啟動子程序void s_transstart(void){DATA=1。SCK=0。_nop_()。SCK=1。_nop_()。DATA=0。_nop_()。SCK=0。_nop_()。_nop_()。_nop_()。SCK=1。_nop_()。DATA=1。_nop_()。SCK=0。}傳輸啟動子程序是用來表示數(shù)據(jù)傳輸?shù)某跏蓟?。每次對傳感器進行寫命令或者讀命令前先進行以上程序方可。167。 寫一個字節(jié)子程序char s_write_byte(unsigned char value){unsigned char i,error=0。for(i=0x80。i0。i/=2){if(iamp。value)DATA=1。elseDATA=0。SCK=1。_nop_()。_nop_()。_nop_()。SCK=0。}DATA=1。SCK=1。error=DATA。SCK=0。return error。}可以通過寫一個字節(jié)子程序?qū)鞲衅鬟M行寫指令操作。若想讀出濕度值就向傳感器寫入‘00000101’如想讀出溫度值就向傳感器寫入‘00000011’ 。167。 讀一個字節(jié)子程序char s_read_byte(unsigned char ack){unsigned char i,val=0。DATA=1。for(i=0x80。i0。i/=2){SCK=1。if(DATA) {val=(val|i)。}SCK=0。}DATA=!ack。SCK=1。_nop_()。_nop_()。_nop_()。SCK=0。DATA=1。 return val。} 通過讀一個字節(jié)子程序從傳感器讀出溫度值或濕度值,把相應(yīng)的數(shù)據(jù)送到單片機的寄存器中。167。 數(shù)據(jù)處理子程序 void calc_sth11(float *p_humidity,float *p_temperature){const float C1=。const float C2=。 const float C3=。 const float T1=。 const float T2=。 float rh=*p_humidity。 float t=*p_temperature。 float rh_lin。 float rh_true。 float t_c。 t_c=t*。 rh_lin=C3*rh*rh+C2*rh+C1。 rh_true=(t_c25)*(T1+T2*rh)+rh_lin。 if(rh_true) rh_true=。 *p_temperature=t_c。 *p_humidity=rh_true。}把從傳感器讀出的二進制數(shù)轉(zhuǎn)換成相應(yīng)的十進制數(shù)。167。 顯示子程序void display(float humi,float temp){int humi1,temp1。humi1=(humi*10)。 temp1=(temp*10)。if(temp10){dispbuf[0]=10。temp1=abs(temp1)。}else{dispbuf[0]=11。}if(t==0){dispbuf[1]=temp1/100。dispbuf[2]=temp1/10%10。dispbuf[3]=temp1%10。dispbuf[4]=11。dispbuf[5]=humi1/100。dispbuf[6]=humi1/10%10。dispbuf[7]=humi1%10。if((humihumiset)||(temptempset)){P0_4=0。}else{P0_4=39。Z39。}}else{if(t==1){if(temph9){dispbuf[0]=10。}else{dispbuf[0]=11。}dispbuf[1]=temph%10。dispbuf[2]=templ%10。dispbuf[3]=11。dispbuf[4]=11。dispbuf[5]=11。dispbuf[6]=11。dispbuf[7]=11。}else{dispbuf[0]=11。dispbuf[1]=11。dispbuf[2]=11。disp
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1