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

正文內(nèi)容

基于單片機at89c52的大棚溫度控制系統(tǒng)(編輯修改稿)

2025-07-24 18:59 本頁面
 

【文章內(nèi)容簡介】 線,低電平時為 8 位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示 5x7 的點陣字符,高電平時顯示 5x10 的點陣字符。指令 7:字符發(fā)生器 RAM 地址設(shè)置。指令 8:DDRAM 地址設(shè)置。指令 9:讀忙信號和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令 10:寫數(shù)據(jù)。指令 11:讀數(shù)據(jù)。 LCD1602 讀寫時序如表 所示:表 基本操作時序表讀狀態(tài) 輸入 RS=L,R/W=H,E=H 輸出 D0—D7=狀態(tài)字寫指令 輸入 RS=L,R/W=L,D0—D7=指令碼,E= 高脈沖 輸出 無讀數(shù)據(jù) 輸入 RS=H,R/W=H,E=H 輸出 D0—D7=數(shù)據(jù)寫數(shù)據(jù) 輸入 RS=H,R/W=L,D0—D7=數(shù)據(jù),E=高脈沖 輸出 無 直流馬達電動馬達,又稱為馬達或電動機,是一種將電能轉(zhuǎn)化成機械能,并可再使用機械能產(chǎn)生動能,用來驅(qū)動其他裝置的電氣設(shè)備。 電動機種類非常繁多,但可大致分為交流電動機及直流電動機以用于不同的場合。 馬達工作的原理馬達的旋轉(zhuǎn)原理的依據(jù)為佛來明左手定則,當(dāng)一導(dǎo)線置放于磁場內(nèi),若導(dǎo)線通上電流,則導(dǎo)線會切割磁場線使導(dǎo)線產(chǎn)生移動。 電流進入線圈產(chǎn)生磁場,利用電流的磁效應(yīng),使電磁鐵在固定的磁鐵內(nèi)連續(xù)轉(zhuǎn)動的裝置,可以將電能轉(zhuǎn)換成力學(xué)能。 與永久磁鐵或由另一組線圈所產(chǎn)生的磁場互相作用產(chǎn)生動力 直流馬達的原理是定子不動,轉(zhuǎn)子依相互作用所產(chǎn)生作用力的方向運動 [7]。 電樞:可以繞軸心轉(zhuǎn)動的軟鐵芯纏繞多圈線圈。 場磁鐵:產(chǎn)生磁場的強力永久磁鐵或電磁鐵。 集電環(huán):線圈約兩端接至兩片半圓形的集電環(huán),隨線圈轉(zhuǎn)動,可供改變電流方向的變向器。每轉(zhuǎn)動半圈,線圈上的電流方向就改變一次。 電刷:通常使用碳制成,集電環(huán)接觸固定位置的電刷,用以接至電源。 馬達的基本構(gòu)造電動機的種類很多,以基本結(jié)構(gòu)來說,其組成主要由定子和轉(zhuǎn)子所構(gòu)成。 定子在空間中靜止不動,轉(zhuǎn)子則可繞軸轉(zhuǎn)動,由軸承支撐。 定子與轉(zhuǎn)子之間會有一定空氣間隙,以確保轉(zhuǎn)子能自由轉(zhuǎn)動。 定子與轉(zhuǎn)子繞上線圈,通上電流產(chǎn)生磁場,就成為電磁鐵,定子和轉(zhuǎn)子其中之一亦可為永久磁鐵 [8]。 蜂鳴器蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器。蜂鳴器主要分為壓電式蜂鳴器和電磁化蜂鳴器兩種類型。本系統(tǒng)采用的是電磁式蜂鳴器 [9]。電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動臘片及外殼等組成。接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁鐵圈,使電磁鐵線圈產(chǎn)生磁場,振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發(fā)聲。蜂鳴器發(fā)聲原理是電流通過電磁鐵圈,使電磁線圈產(chǎn)生磁場來驅(qū)動振動膜發(fā)聲的。程序中改變單片機引腳輸出波形的頻率,就可以調(diào)整控制蜂鳴器音調(diào),產(chǎn)生各種不同音色、音調(diào)的聲音。另外,改變輸出電平的高低電平占空比,則可以控制蜂鳴器的聲音大小。第 3章 系統(tǒng)的硬件組成電路設(shè)計系統(tǒng)的硬件組成部分包括:主控制器AT89C52單片機、溫度傳感器DS18B顯示電路LCD160馬達、報警裝置等構(gòu)成。AT89C52連接各模塊的主控制端口,初步選定將要運用到的電子元器件,再用Protues繪制原理圖,再根據(jù)原理圖捍接電路板。 系統(tǒng)總硬件設(shè)計 首先對硬件系統(tǒng) 18B20 定義端口為 , 和 P0 口控制液晶LCM1602 的顯示,定義端口 為馬達控制端口, 為喇叭控制端口。首先對溫度采集,將采集到的溫度轉(zhuǎn)換數(shù)字,采集到的溫度由 LCM 液晶顯示屏顯示。再將采集到的溫度所屬軟件設(shè)置的哪個范圍,而控制 的電平輸出。電路原理圖如 31 所示: 圖 31 電路原理圖 電路原理圖用 Protues 軟件繪制而成。用 Protues 軟件繪制電路原理圖方便,快捷。Protues 軟件有豐富的元件庫,智能的器件搜索,智能化的連線,可輸出高質(zhì)量的圖紙。電路原理圖清晰明了 [9]。 時鐘電路AT89C52 芯片內(nèi)部有一個高增益反向放大器,用于構(gòu)成震蕩器。反向放大器的輸入端為 XTAL1,輸出端為 XTAL2。在 TXAL1 和 XTAL2 兩端跨接由石英晶體及兩個電容構(gòu)成的自激震蕩器 [10],如圖 32 所示。電容器 C1 和 C2 取22pF,選用不同的電容量對震蕩頻率有微調(diào)作用。但石英晶體本身的標(biāo)定頻率才是單片機震蕩頻率的決定因素。圖 32 時鐘電路 時鐘電路中,兩個電容都選擇 22pF 的電容,電容各一端接與晶振相連,各一端接地。選擇的晶振是頻率為 12MHZ。此模塊就是產(chǎn)生象時鐘一樣準(zhǔn)確的振蕩電路。 AT89C52的復(fù)位電路AT89C52 單片機通常采用上電自動復(fù)位和開關(guān)手動復(fù)位兩種方式。本系統(tǒng)采用上電復(fù)位電路,如圖 33 所示,所謂上電復(fù)位,是指單片機只要一上電,便自動地進入復(fù)位狀態(tài)。在通電瞬間,電容 C 通過電阻 R 充電,RST 端出現(xiàn)正脈沖,用以復(fù)位[10] 。圖 33 復(fù)位電路復(fù)位電路的基本功能是:系統(tǒng)上電時提供復(fù)位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時才撤銷復(fù)位信號,以防電源開關(guān)或電源插頭分合過程中引起的抖動而影響復(fù)位。RC 復(fù)位電路可以實現(xiàn)上述基本功能,但解決不了電源毛刺和電源緩慢下降等問題,而其調(diào)整 RC 常數(shù)改變延時會令驅(qū)動能力變差。 單總線數(shù)字溫度傳感器 DS18B20檢測電路DQ 為數(shù)據(jù)輸入 /輸出引腳,連接 。開漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源,GND 為地信號;VCC 為電源信號。圖34 為 DS18B20 檢測電路。 圖 34 DS18B20 檢測電路 LCD1602顯示模塊用 AT89C52 的 P0 口作為數(shù)據(jù)線,用 、 分別作為 LCD 的E、R/W、RS 。其中 E 是下降沿觸發(fā)的片選信號,連接 ,R/W 是讀寫信號,連接 ,RS 是寄存器選擇信號,連接 。圖 35 為 LCD1602 的硬件連接。 圖 35 LCD1602的硬件連接 VEE 用連接一阻值為 10K 的電阻,主要用于調(diào)節(jié)對比度的調(diào)整。接正電源時對比度最落,接地電源時,對比度最高。對比度過高時,會產(chǎn)生“鬼影” 。因此連接一 10K 的電阻用以調(diào)整。當(dāng) P0 口作為 I/O 用時需要上拉電阻,如圖 接一排阻,用于上拉 [11]。 驅(qū)動電路系統(tǒng)使用的是直流馬達,包含周圍磁場、電刷、整流子等元件,電刷和整流子將外部所供應(yīng)的直流電源,持續(xù)地供應(yīng)給轉(zhuǎn)子的線圈,並適時地改變電流的方向,使轉(zhuǎn)子能以同一方向持續(xù)旋轉(zhuǎn)。直流馬達的優(yōu)點有速度調(diào)整容易,啟動轉(zhuǎn)矩較大等,但是電刷與整流子保養(yǎng)維修不易。直流馬達廣泛的用在消費電子產(chǎn)品及玩具,如電動刮胡刀、錄音機、CD 唱機等,而大輸出功率的直流電動機則是用在電車,快速電梯,工作母機等。圖 36 為硬件連接圖。 圖 36 驅(qū)動電路 圖中三極管采用的是 S9012,用于放大電流。基極接 口,用于控制輸出信號。集電極按電源正極,發(fā)射極接馬達正極。三極管 S9012 三極管最基本的作用是放大作用,它可以把微弱的電信號變成一定強度的信號,當(dāng)然這種轉(zhuǎn)換仍然遵循能量守恒,它只是把電源的能量轉(zhuǎn)換成信號的能量罷了。三極管有一個重要參數(shù)就是電流放大系數(shù) β。當(dāng)三極管的基極上加一個微小的電流時,在集電極上可以得到一個是注入電流 β 倍的電流,即集電極電流。集電極電流隨基極電流的變化而變化,并且基極電流很小的變化可以引起集電極電流很大的變化,這就是三極管在此處的作用。用于 口輸出的微弱信號經(jīng)過放大,輸出到馬達中,這樣就可以很好的控制馬達了。 報警電路系統(tǒng)采用的報警器件是蜂鳴器,用引腳 控制。如圖 37 所示圖 報警電路蜂鳴器和普通揚聲器相比,最重要一個特點是只要按照極性要求加上合適的直流電壓,就可以發(fā)出固有頻率的聲音,因此使用起來比揚聲器簡單。由此可知,蜂鳴器的控制和 LED 的控制對單片機而言是沒有區(qū)別的。第 4章 系統(tǒng)軟件的設(shè)計 一個應(yīng)用系統(tǒng)要完成各項功能,首先必須有較完善的硬件做保證。同時還必須得到相應(yīng)設(shè)計合理的軟件的支持,尤其是微機應(yīng)用高速發(fā)展的今天,許多由硬件完成的工作,都可通過軟件編程而代替。甚至有些必須采用很復(fù)雜的硬件電路才能完成的工作,用軟件編和有時會變得很簡單。因此充分利用其內(nèi)部豐富的硬件資源和軟件資源。程序設(shè)計語言有三種:機器語言、匯編語言、高級語言。本系統(tǒng)運用的是高級語言所編寫,也就是 C 語言。從軟件的功能不同可分為四大類:一是檢測軟件,它是用來檢測溫度。二是顯示部分,用來顯示所檢測到的溫度。三是調(diào)控部分,用來控制馬達的轉(zhuǎn)速。四是當(dāng)溫度大于 35℃,蜂鳴器發(fā)出報警信號。每一個執(zhí)行軟件也就是一個小的功能執(zhí)行模塊。這里將各執(zhí)行模塊一一列出,并為每一個執(zhí)行模塊進行功能定義。圖 41 為軟件設(shè)計流程圖。開 始18B20 溫度檢測初始化馬達帶動風(fēng)扇LCD1602 顯示溫度發(fā)出報警信號結(jié) 束溫度大于 20℃溫度大于 35℃圖 41 軟件設(shè)計流程圖 溫度檢測DSl8B20 可以從單總線獲取電源,當(dāng)信號線為高電平時,將能量貯存在內(nèi)部電容器中;當(dāng)單信號線為低電平時,將該電源斷開,直到信號線變?yōu)楦唠娖街匦陆由霞纳娫礊橹?。此外,還可外接 5 V 電源,給 DS18B20 供電 [12]。圖 42DS18B20 的初始化跳過讀序列號的操作讀取溫度寄存器啟動溫度轉(zhuǎn)換跳過讀序列號的操作開 始DS18B20 的初始化RETLOW低八位 HIGH高八位 圖 42 18B20 讀取溫度流程圖讀取溫度子程序的主要功能是讀出 RAM 中的 9 個字節(jié),在讀出時需進行CRC 校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。DS18B20 的各個命令對時序的要求特別嚴(yán)格,所以必須按照所要求的時序才能達到預(yù)期的目的,同時,要注意讀進來的是高低位在后,低位在前,共 12 位數(shù),小數(shù) 4 位,整數(shù) 7 位,還有一位符號位。讀取溫度的主程序如下:unsigned int ReadTemperature(void){unsigned char a=0。unsigned int b=0。unsigned int t=0。Init_DS18B20()。WriteOneChar(0xCC)。 // 跳過讀序號列號的操作WriteOneChar(0x44)。 // 啟動溫度轉(zhuǎn)換delay(200)。Init_DS18B20()。WriteOneChar(0xCC)。 //跳過讀序號列號的操作 WriteOneChar(0xBE)。 //讀取溫度寄存器等(共可讀 9 個寄存器) 前兩個就是溫度a=ReadOneChar()。 //低位b=ReadOneChar()。 //高位b=8。t=a+b。return(t)。} 溫度數(shù)據(jù)處理設(shè)計讀出溫度數(shù)據(jù)后,TempL 的低四位為溫度的小數(shù)部分,可以精確到℃,TempL 的高四位和 TempH 的低四位為溫度的整數(shù)部分,TempH 的高四位全部為 1 表示負(fù)數(shù),全為 0 表示正數(shù)。所以先將數(shù)據(jù)提取出來,分為三個部分:小數(shù)部分、整數(shù)部分和符號部分。小數(shù)部分進行四舍五入處理:大于℃的話,向個位進 1;小于 ℃的時候,舍去不要。當(dāng)數(shù)據(jù)是個負(fù)數(shù)的時候,顯示之前要進行數(shù)據(jù)轉(zhuǎn)換,將其整數(shù)部分取反加一。還因為 DS18B20 最低溫度只能為55 ℃,所以可以將整數(shù)部分的最高位換成一個“” ,表示為負(fù)數(shù)。圖 43 為溫度數(shù)據(jù)處理流程圖。開始提取整數(shù)部分存入HT提取小數(shù)部分存入 TempLTempL 右移三位,將精度降低到 攝氏度TempH ++將小數(shù)部分整數(shù)化提取符號部分存入 signTempL 是否大于5 temp=?0XF0RETflag=1 TempH=~TempH+1YNNY 圖 43 溫度數(shù)據(jù)處理流程由于 DS18B20 轉(zhuǎn)換后的代碼并不是實際的溫度值,所以要進行計算轉(zhuǎn)換。溫度高字節(jié)高 5 位是用來保存溫度的正負(fù),高字節(jié)低 3 位和低字節(jié)來保存溫度值。其中低字節(jié)的低 4 位來保存溫度的小數(shù)位。由于本程序采用的是 的精度,小數(shù)部分的值,可以用后四位代表的實際數(shù)值乘以 ,得到真正的數(shù)值,數(shù)值可能帶幾個小數(shù)位,所以采取小數(shù)舍入,保留一位小數(shù)即可。也就說,本系統(tǒng)的溫度精確到了 度 [13]。溫度數(shù)據(jù)數(shù)理主程序如下:str[0]=TempH/100。 //十位溫度 str[1]=(TempH%100)/10。 //十位溫度 str[2]=(TempH%100)%10。 //個位溫度,帶小數(shù)點 str[3]=TempL。 if(flag_get==1) //定時讀取當(dāng)前溫度 { temp=ReadTemperature()。 if(tempamp。0x8000) { str[0]=0x40。//負(fù)號標(biāo)志 temp=~temp。 // 取反加 1 temp +=1。 } else str[0]=
點擊復(fù)制文檔內(nèi)容
外語相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1