找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5307|回復(fù): 2
收起左側(cè)

單片機(jī)智能精準(zhǔn)自動溫控風(fēng)扇的設(shè)計文檔下載

[復(fù)制鏈接]
ID:218849 發(fā)表于 2017-7-11 16:05 | 顯示全部樓層 |閱讀模式

本設(shè)計為一種溫控風(fēng)扇系統(tǒng),具有靈敏的溫度感測和顯示功能,系統(tǒng)AT89C5 單片機(jī)作為控制平臺對風(fēng)扇轉(zhuǎn)速進(jìn)行控制?捎捎脩粼O(shè)置高、低溫度值,測得溫度值在高低溫度之間時打開風(fēng)扇弱風(fēng)檔,當(dāng)溫度升高超過所設(shè)定的溫度時自動切換到大風(fēng)檔,當(dāng)溫度小于所設(shè)定的溫度時自動關(guān)閉風(fēng)扇,控制狀態(tài)隨外界溫度而定。所設(shè)高低溫值保存在溫度傳感器DS18B20內(nèi)部E2ROM中,掉電后仍然能保存上次設(shè)定值,性能穩(wěn)定,控制準(zhǔn)確。

摘 要

目 錄

1引言

2 方案論證

2.1 溫度傳感器的選用
2.2 控制核心的選擇
2.3顯示電路
2.4調(diào)速方式
2.5控制執(zhí)行部件

3 系統(tǒng)簡述

4 硬件設(shè)計

4.1、本系統(tǒng)各器件簡介
4.1.1 DS18B20 單線數(shù)字溫度傳感器簡介
4.1.2 AT89C52 單片機(jī)簡介
4.1.3 八段LED 數(shù)碼管
4.2 各部分電路設(shè)計
4.2.1 電源電路
4.2.2 數(shù)碼管顯示電路
4.2.3 聲響、溫度采集、溫度設(shè)定以及復(fù)位電路
4.2.4 溫控自動電路
4.2.5無級調(diào)速電路

5  軟件設(shè)計

6  安裝調(diào)試

參考文獻(xiàn)

附錄1 程序流程圖

附錄2 源程序


1引言

生活中,我們經(jīng)常會使用一些與溫度有關(guān)的設(shè)備。比如,現(xiàn)在雖然不少城市家庭用上了空調(diào),但在占中國大部分人口的農(nóng)村地區(qū)依舊使用電風(fēng)扇作為降溫防暑設(shè)備,春夏(夏秋)交替時節(jié),白天溫度依舊很高,電風(fēng)扇應(yīng)高轉(zhuǎn)速、大風(fēng)量,使人感到清涼;到了晚上,氣溫降低,當(dāng)人入睡后,應(yīng)該逐步減小轉(zhuǎn)速,以免使人感冒。雖然電風(fēng)扇都有調(diào)節(jié)不同檔位的功能,但必須要人手動換檔,睡著了就無能為力了,而普遍采用的定時器關(guān)閉的做法,一方面是定時時間長短有限制,一般是一兩個小時;另一方面可能在一兩個小時后氣溫依舊沒有降低很多,而風(fēng)扇就關(guān)閉了,使人在睡夢中熱醒而不得不起床重新打開風(fēng)扇,增加定時器時間,非常麻煩,而且可能多次定時后最后一次定時時間太長,在溫度降低以后風(fēng)扇依舊繼續(xù)吹風(fēng),使人感冒;第三方面是只有簡單的到了定時時間就關(guān)閉風(fēng)扇電源的單一功能,不能滿足氣溫變化對風(fēng)扇風(fēng)速大小的不同要求。又比如在較大功率的電子產(chǎn)品散熱方面,現(xiàn)在絕大多數(shù)都采用了風(fēng)冷系統(tǒng),利用風(fēng)扇引起空氣流動,帶走熱量,使電子產(chǎn)品不至于發(fā)熱燒壞。要使電子產(chǎn)品保持較低的溫度,必須用大功率、高轉(zhuǎn)速、大風(fēng)量的風(fēng)扇,而風(fēng)扇的噪音與其功率成正比。如果要低噪音,則要減小風(fēng)扇轉(zhuǎn)速,又會引起電子設(shè)備溫度上升,不能兩全其美。為解決上述問題,我們設(shè)計了這套溫控自動風(fēng)扇系統(tǒng)。本系統(tǒng)采用高精度集成溫度傳感器,用單片機(jī)控制,能顯示實(shí)時溫度,并根據(jù)使用者設(shè)定的溫度自動在相應(yīng)溫度時作出小風(fēng)、大風(fēng)、停機(jī)動作,精確度高,動作準(zhǔn)確。


2 方案論證

本系統(tǒng)實(shí)現(xiàn)風(fēng)扇的溫度控制,需要有較高的溫度變化分辨率和穩(wěn)定可靠的換檔停機(jī)控制部件。

2.1 溫度傳感器的選用

溫度傳感器可由以下幾種方案可供選擇:

方案一:選用熱敏電阻作為感測溫度的核心元件,通過運(yùn)算放大器放大由于溫度變化引起熱敏電阻電阻的變化、進(jìn)而導(dǎo)至的輸出電壓變化的微弱電壓變化信號,再用AD轉(zhuǎn)換芯片ADC0809將模擬信號轉(zhuǎn)化為數(shù)字信號輸入單片機(jī)處理。

方案二:采用熱電偶作為感測溫度的核心元件,配合橋式電路,運(yùn)算放大電路和AD轉(zhuǎn)換電路,將溫度變化信號送入單片機(jī)處理。

方案三:采用數(shù)字式集成溫度傳感器DS18B20作為感測溫度的核心元件,直接輸出數(shù)字溫度信號供單片機(jī)處理。

對于方案一,采用熱敏電阻有價格便宜、元件易購的優(yōu)點(diǎn),但熱敏電阻對溫度的細(xì)微變化不敏感,在信號采集、放大、轉(zhuǎn)換過程中還會產(chǎn)生失真和誤差,并且由于熱敏電阻的R-T關(guān)系的非線性,其本身電阻對溫度的變化存在較大誤差,雖然可以通過一定電路予以糾正,但不僅將使電路復(fù)雜穩(wěn)定性降低,而且在人體所處溫度環(huán)境溫度變化中難以檢測到小的溫度變化。故該方案不適合本系統(tǒng)。

對于方案二,采用熱電偶和橋式測量電路相對于熱敏電阻其對溫度的敏感性和器件的非線性誤差都有較大提高,其測溫范圍也非常寬,從-50攝氏度到1600攝氏度均可測量。但是依然存在電路復(fù)雜,對溫度敏感性達(dá)不到本系統(tǒng)要求的標(biāo)準(zhǔn),故不采用該方案。

對于方案三,由于數(shù)字式集成溫度傳感器DS18B20的高度集成化,大大降低了外接放大轉(zhuǎn)換等電路的誤差因素,溫度誤差很小,并且由于其感測溫度的原理與上述兩種方案的原理有著本質(zhì)的不同,使得其溫度分辨力極高。溫度值在器件內(nèi)部轉(zhuǎn)換成數(shù)字量直接輸出,簡化了系統(tǒng)程序設(shè)計,又由于該傳感器采用先進(jìn)的單總線技術(shù)(1-WRIE),與單片機(jī)的接口變的非常簡潔,抗干擾能力強(qiáng)。關(guān)于DS18B20的詳細(xì)參數(shù)參看下面“硬件設(shè)計”中的器件介紹。

2.2 控制核心的選擇

方案一:采用電壓比較電路作為控制部件。溫度傳感器采用熱敏電阻或熱電偶等,溫度信號轉(zhuǎn)為電信號并放大,由集成運(yùn)放組成的比較電路判決控制風(fēng)扇轉(zhuǎn)速,當(dāng)高于或低于某值時將風(fēng)扇切換到相應(yīng)檔位。

方案二:采用單片機(jī)作為控制核心。以軟件編程的方法進(jìn)行溫度判斷,并在端口輸出控制信號。

對于方案一,采用電壓比較電路具有電路簡單、易于實(shí)現(xiàn),以及無需編寫軟件程序的特點(diǎn),但控制方式過于單一,不能自由設(shè)置上下限動作溫度,無法滿足不同用戶以及不同環(huán)境下的多種動作溫度要求,故不在本系統(tǒng)中采用。

對于方案二,以單片機(jī)作為控制器,通過編寫程序不但能將傳感器感測到的溫度通過顯示電路顯示出來,而且用戶能通過鍵盤接口,自由設(shè)置上下限動作溫度值,滿足全方位的需求。并且通過程序判斷溫度具有極高的精準(zhǔn)度,能精確把握環(huán)境溫度的微小變化。故本系統(tǒng)采用方案二。

2.3顯示電路

方案一:采用五位共陽數(shù)碼管顯示溫度,動態(tài)掃描顯示方式。

方案二:采用液晶顯示屏LCD顯示溫度

對于方案一,該方案成本低廉,顯示溫度明確醒目,在夜間也能看見,功耗極低,顯示驅(qū)動程序的編寫也相對簡單,這種顯示方式得到廣泛應(yīng)用。不足的地方是掃描顯示方式是使五個LED逐個點(diǎn)亮,因此會有閃爍,但是人眼的視覺暫留時間為20MS,當(dāng)數(shù)碼管掃描周期小于這個時間時人眼將感覺不到閃爍,因此可以通過增大掃描頻率來消除閃爍感。

對于方案二,液晶體顯示屏具有顯示字符優(yōu)美,不但能顯示數(shù)字還能顯示字符甚至圖形的優(yōu)點(diǎn),這是LED數(shù)碼管無法比擬的。但是液晶顯示模塊價格昂貴,驅(qū)動程序復(fù)雜,從簡單實(shí)用的原則考慮,本系統(tǒng)采用方案一。

2.4調(diào)速方式

方案一:采用變壓器調(diào)節(jié)方式,運(yùn)用電磁感應(yīng)原理將220V電壓通過線圈降壓到不同的電壓,控制風(fēng)扇電機(jī)接到不同電壓值的線圈上可控制電機(jī)的轉(zhuǎn)速,從而控制風(fēng)扇風(fēng)力大小。

方案二:采用晶閘管構(gòu)成無級調(diào)速電路。

對于方案一,由于采用變壓器改變電壓調(diào)節(jié),有風(fēng)速級別限制,不能適應(yīng)人性化要求。且在變壓過程中會有損耗發(fā)熱,效率不高,發(fā)熱有不安全因素。

對于方案二,以電位器控制晶閘管的導(dǎo)通角大小,可實(shí)現(xiàn)由最大風(fēng)速到關(guān)閉的無級別調(diào)速,可將風(fēng)力調(diào)節(jié)在關(guān)閉無風(fēng)到最大風(fēng)之間的任意風(fēng)力,實(shí)現(xiàn)“自由風(fēng)”。且在調(diào)速環(huán)節(jié)中基本無電力損耗。故本系統(tǒng)采用方案二。

2.5控制執(zhí)行部件

方案一:采用數(shù)模轉(zhuǎn)換芯片AD0832控制,由單片機(jī)根據(jù)當(dāng)前溫度值送出相應(yīng)數(shù)字量到AD0832,由AD0832產(chǎn)生模擬信號控制晶閘管的導(dǎo)通角,從而配合無級調(diào)速電路實(shí)現(xiàn)溫控時的自動無級風(fēng)力調(diào)節(jié)。

方案二:采用繼電器,繼電器的接有控制晶閘管導(dǎo)通角的電阻的接入電路與否由單片機(jī)控制,根據(jù)當(dāng)前溫度值在相應(yīng)管腳送出高/低電平,決定某個繼電器的導(dǎo)通角控制電阻是否接入電路。(詳見4.2.4)

對于方案一,該方案能夠?qū)崿F(xiàn)在風(fēng)扇處于溫控狀態(tài)時也能無級調(diào)速,但是D/A轉(zhuǎn)換芯片價格較高,與其溫控狀態(tài)下無級調(diào)速功能相比性價比不高。

對于方案二,雖然在溫控狀態(tài)下只能實(shí)現(xiàn)弱/大風(fēng)兩級調(diào)速,但采用繼電器價格便宜,控制可靠,且出于在溫控狀態(tài)時無級調(diào)速并不是特別需要的功能,綜合考慮采用方案二。


3 系統(tǒng)簡述

本系統(tǒng)由集成溫度傳感器、單片機(jī)、LED數(shù)碼管、繼電器、雙向晶閘管、蜂鳴器及一些其他外圍器件組成。使用具有價廉易購的AT89S52單片機(jī)編程控制,通過修改程序可方便實(shí)現(xiàn)系統(tǒng)升級。系統(tǒng)的框圖結(jié)構(gòu)如下: 1.001.jpg

圖1  系統(tǒng)框圖


4 硬件設(shè)計

系統(tǒng)主要部件包括DS18B20溫度傳感器、AT89S52單片機(jī)、雙向晶閘管、五位LED數(shù)碼管和風(fēng)扇。輔助元件包括繼電器、蜂鳴器、電阻、晶振、電源、按鍵和撥碼開關(guān)等。

4.1、本系統(tǒng)各器件簡介
4.1.1 DS18B20 單線數(shù)字溫度傳感器簡介

DS18B20 單線數(shù)字溫度傳感器是Dallas 半導(dǎo)體公司開發(fā)的世界上第一片支持“一線總線”接口的溫度傳感器。它具有3 引腳TO-92 小體積封裝形式。溫度測量范圍為-55℃——+125℃,可編程為9 位——12 位A/D 轉(zhuǎn)換精度,測溫分辨率可達(dá)0.0625℃。被測溫度用符號擴(kuò)展的16位數(shù)字量方式串行輸出。工作電壓支持3V——5.5V 的電壓范圍,既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生。DS18B20 還支持“一線總線”接口,多個DS18B20可以并聯(lián)到3 根或2 根線上,CPU 只需一根端口線就能與諸多DS18B20 通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。它還有存儲用戶定義報警溫度等功能。

DS18B20 內(nèi)部結(jié)構(gòu)及管腳

DS18B20 內(nèi)部結(jié)構(gòu)如圖3所示,主要由4 部分組成:64 位ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH 和TL、配置寄存器。其管腳排列如圖4所示,DQ 為數(shù)字信號端,GND 為電源地,VDD 為電源輸入端。

1.002.jpg

圖1 DS18B20 內(nèi)部結(jié)構(gòu)

1.003.jpg

圖2 DS18B20外形及管腳

4.1.2 AT89C52 單片機(jī)簡介

AT89C52 是一種帶4K字節(jié)閃存可編程可擦除只讀存儲器(FPEROM)256B片內(nèi)RAM的低電壓,高性能CMOS8 位微處理器。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51 指令集和輸出管腳相兼容。由于將多功能8 位CPU 和閃爍存儲器組合在單個芯片中,ATMEL 的AT89C52 是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。

AT89C52單片機(jī)管腳

AT89C52單片機(jī)管腳如圖3所示。

1.004.jpg

圖3 AT89C52單片機(jī)管腳

各管腳功能:

VCC:供電電壓。

GND:接地。

P0 口:P0 口為一個8 位漏級開路雙向I/O 口,每腳可吸收8TTL 門電流。當(dāng)P1 口的管腳第一次寫1 時,被定義為高阻輸入。P0 能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH 編程時,P0 口作為原碼輸入口,當(dāng)FIASH 進(jìn)行校驗(yàn)時,P0輸出原碼,此時P0 外部必須被拉高。

P1 口:P1 口是一個內(nèi)部提供上拉電阻的8 位雙向I/O 口,P1 口緩沖器能接收輸出4TTL門電流。P1 口管腳寫入1 后,被內(nèi)部上拉為高,可用作輸入,P1 口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH 編程和校驗(yàn)時,P1 口作為第八位地接

收。

P2 口:P2 口為一個內(nèi)部上拉電阻的8 位雙向I/O 口,P2 口緩沖器可接收,輸出4 個TTL 門電流,當(dāng)P2 口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2 口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2 口當(dāng)用于外部程序存儲器或16 位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2 口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2 口輸出其特殊功能寄存器的內(nèi)容。P2 口在FLASH 編程和校驗(yàn)時接收高八位地址信號和控制信號。

P3 口:P3 口管腳是8 個帶內(nèi)部上拉電阻的雙向I/O 口,可接收輸出4 個TTL 門電流。當(dāng)P3 口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3 口將輸出電流(ILL)這是由于上拉的緣故。P3 口也可作為AT89C51 的一些特殊功能口。P3.0:RXD(串行輸入口);P3.1:TXD(串行輸出口);P3.2:/INT0(外部中斷0);P3.3:/INT1(外部中斷1);P3.4:T0(記時器0外部輸入);P3.5:T1(記時器1外部輸入);P3.6:/WR(外部數(shù)據(jù)存儲器寫選通);P3.7:/RD(外部數(shù)據(jù)存儲器讀選通)。     P3 口同時為閃爍編程和編程校驗(yàn)接收一些控制信號。

RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST 腳兩個機(jī)器周期的高電平時間。ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH 編程期間,此引腳用于輸入編程脈沖。在平時,ALE 端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE 脈沖。如想禁止ALE 的輸出可在SFR8EH 地址上置0。此時,ALE 只有在執(zhí)行MOVX,MOVC 指令是ALE 才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE 禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN 信號將不出現(xiàn)。/EA/VPP:當(dāng)/EA 保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1 時,/EA 將內(nèi)部鎖定為RESET;當(dāng)/EA 端保持高電平時,此間內(nèi)部程序存儲器。在FLASH 編程期間,此引腳也用于施加12V 編程電源(VPP)。

XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。

XTAL2:來自反向振蕩器的輸出。

4.1.3 八段LED 數(shù)碼管

本系統(tǒng)使用五個七段LED數(shù)碼管作為溫度顯示,公共陽極。

4.2 各部分電路設(shè)計4.2.1 電源電路

電源電路采用LM7805集成穩(wěn)壓器作為穩(wěn)壓器件,用典型接法,220V電源整流濾波后送入LM7805穩(wěn)壓,在輸出端接一個470U和0.1U電容進(jìn)一步濾除紋波,得到5V穩(wěn)壓電源。電路如圖4所示。

1.005.jpg

圖4 電源

4.2.2 數(shù)碼管顯示電路

顯示部分包括如下圖5: 5個八段(共陽)數(shù)碼管、PNP型三極管、電阻等。其連接方式如下:應(yīng)用單片機(jī)P0口連接八段數(shù)碼管,用P2口的P2.3—P2.7五個端口作為數(shù)碼管的片選信號輸出端口,其中要用8550(PNP型)三極管做驅(qū)動。又因?yàn)镻0口做I/O口時要加上拉電阻,所以我們給P0各位各加一個10K的電阻到電源。為了防止燒壞數(shù)碼管,所以給數(shù)碼管各段各加一個300歐姆的限流電阻。要顯示的數(shù)據(jù)通過P0口送給數(shù)碼管顯示,通過P2口的P2.7—P2.3五個端口分別對數(shù)碼管進(jìn)行位選,事實(shí)上數(shù)碼管是間斷被點(diǎn)亮的,只是其間斷時間十分短,掃描周期在20ms以下,利用人眼視覺暫留,我們基本看不出它們的閃爍。

1.006.jpg

圖5 顯示電路

4.2.3 聲響、溫度采集、溫度設(shè)定以及復(fù)位電路

電路如圖6所示,這一部分主要是由DS18B20,四個按鍵、一個電容一個三極管和一個蜂鳴器等構(gòu)成。

聲響電路在每按下按鍵時會響一聲,當(dāng)沒有把DS18B20接入到電路中時,單片機(jī)就會通過蜂鳴器發(fā)出報警聲音。

溫度采集電路主要是由DS18B20構(gòu)成,它可以把采集的溫度數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制數(shù),經(jīng)過單片機(jī)處理后輸出送數(shù)碼管顯示。

  溫度設(shè)定主要是通過按鍵S1、S2|、S3來設(shè)定的。按鍵S1、S2、S3分別接入單片機(jī)的

P1.4、P1.5、P1.6腳。

S3是設(shè)定鍵。用于對風(fēng)速調(diào)節(jié)的上限和下限值TH、TL的設(shè)置。當(dāng)按下S1時,可以加1,

長按可以快速加1,當(dāng)按下S2 時,可以減1, 長按可以快速減1。

1.007.jpg

圖6 聲響、溫度采集、溫度設(shè)置及復(fù)位電路

4.2.4 溫控自動電路

該電路為控制風(fēng)速的人工控制與溫控兩種方式之溫控模式時的控制電路,當(dāng)選擇為溫控時,單片機(jī)默認(rèn)為弱風(fēng),當(dāng)當(dāng)前溫度低于所設(shè)的溫度下限TL時繼電器1吸合,關(guān)閉風(fēng)扇,當(dāng)當(dāng)前溫度高于所設(shè)的溫度上限時繼電器2吸合,切換到強(qiáng)風(fēng)檔。電路如圖7。

1.008.jpg

圖7 溫控自動電路

4.2.5無級調(diào)速電路

此電路如圖8所示,包括:雙向可控硅,雙觸發(fā)二極管、滑動變阻器、電容。

該電路為無級調(diào)速電路,通過調(diào)節(jié)滑動變阻器的阻值來改變通過雙向二極管的電流,控制雙向晶閘管的導(dǎo)通角,從而控制電機(jī)的轉(zhuǎn)速?蓪(shí)現(xiàn)由最大風(fēng)速到關(guān)閉的無級別調(diào)速,可將風(fēng)力調(diào)節(jié)在關(guān)閉無風(fēng)到最大風(fēng)之間的任意風(fēng)力,實(shí)現(xiàn)“自由風(fēng)”。

1.009.jpg

圖8  無級調(diào)速電路

本系統(tǒng)的總電原理圖為:

1.010.jpg

圖9 總電原理圖

5  軟件設(shè)計

程序?qū)崿F(xiàn)的功能是上電復(fù)位時檢測溫度傳感器DS18B20是否存在或它工作是否正常,當(dāng)不存在或工作不正常時從蜂鳴器發(fā)出報警聲,提示用戶檢查DS18B20,安裝或者更換。這部分功能由DS18B20復(fù)位與檢測子程序RESET完成。當(dāng)檢測到傳感器工作正常后,發(fā)出溫度轉(zhuǎn)換命令及讀取溫度值命令,將從DS18B20讀取的二進(jìn)制溫度值轉(zhuǎn)換為七段碼在LED上顯示出來。顯示功能由溫度顯示子程序DISP1子程序?qū)崿F(xiàn)。

在溫控自動狀態(tài),本系統(tǒng)可由用戶根據(jù)需要自由設(shè)置大小風(fēng)檔的切換溫度值TH,TL,硬件設(shè)計上為通過3個按鍵,由按鍵掃描子程序KEYSCAN子程序提供軟件支持。按下一次設(shè)置鍵K3,進(jìn)入低溫關(guān)風(fēng)扇溫度值TL設(shè)置狀態(tài),此時按下“加”鍵K1,TL值加一,長按K1不放可實(shí)現(xiàn)快速加1,按下“減”鍵K2,TL值減1,長按K2不放可實(shí)現(xiàn)快速減1。再按一次設(shè)置鍵K3,進(jìn)入高溫切換大風(fēng)檔溫度值TH設(shè)置狀態(tài),此時按下“加”鍵K1,TH值加一,長按K1不放可實(shí)現(xiàn)快速加1,按下“減”鍵K2,TH值減1,長按K2不放可實(shí)現(xiàn)快速減1。下限動作溫度值TL和上限動作溫度值的設(shè)置范圍為0-120攝氏度,滿足一般使用要求。再按一次設(shè)置鍵K3退出上下限溫度設(shè)置狀態(tài),恢復(fù)到當(dāng)前溫度顯示狀態(tài)。在當(dāng)前溫度顯示狀態(tài),按下“加”鍵K1一次顯示當(dāng)前TL設(shè)定值,再按一下顯示當(dāng)前TH設(shè)定值,如此循環(huán),按設(shè)置鍵K3退回到當(dāng)前溫度顯示狀態(tài)。每次設(shè)定的TL、TH值均拷備到DS18B20的EEROM內(nèi),在單片機(jī)掉電后設(shè)定值不會丟失,在再次上電時從DS18B20的EEROM中讀回上次設(shè)定的上下限動作溫度值TH、TL,用戶

要實(shí)現(xiàn)根據(jù)當(dāng)前溫度實(shí)時的控制風(fēng)扇的狀態(tài),需要在程序中不時的判斷當(dāng)前溫度值是否超過設(shè)定的動作溫度值范圍,此部分功能由比較控制子程序TEMP_COMP來完成。由于單片機(jī)的工作頻率高達(dá)12MHz,在執(zhí)行程序時不斷將當(dāng)前溫度和設(shè)定動作溫度進(jìn)行比較判斷,當(dāng)超過設(shè)定溫度值范圍時及時的轉(zhuǎn)去執(zhí)行超溫處理和欠溫處理子程序,控制繼電器的吸合、斷開狀態(tài),從而控制風(fēng)扇實(shí)時的切換到關(guān)閉、弱風(fēng)、大風(fēng)三個狀態(tài)。在沒有超過設(shè)定的TL、TH值時默認(rèn)將風(fēng)扇置為弱風(fēng)檔。該比較控制程序又由溫度比較程序、超溫處理子程序和欠溫處理子程序構(gòu)成。

顯示驅(qū)動程序以查七段碼取得各數(shù)碼管應(yīng)顯數(shù)字,逐位掃描顯示。

主程序和個主要子程序的流程圖如附錄1所示。


6  安裝調(diào)試

將本電路用硬件做出來,用編程器將KEIL軟件對源程序編譯生成的.HEX文件燒入AT89C52單片機(jī),將單片機(jī)插入到目標(biāo)板中,連好線。

將“控制模式”開關(guān)選擇在“溫控”,打開電源,風(fēng)扇工作在弱風(fēng)檔,數(shù)碼管正常顯示當(dāng)前的溫度21.6攝氏度,第五位數(shù)碼管閃爍顯示“O”,表示當(dāng)前溫度在TL和TH值之間,沒有欠溫或超溫。按“設(shè)置”鍵及“加”“減”鍵將下限動作溫度值TL設(shè)為20攝氏度,將上限動作溫度值TH設(shè)為23攝氏度,用書對著DS18B20扇動,顯示溫度逐漸降低,當(dāng)達(dá)到19.9攝氏度時繼電器1動作,將風(fēng)扇關(guān)閉,第五位數(shù)碼管閃爍顯示“L”,表示當(dāng)前溫度低于TL值。然后用手握著DS18B20,顯示溫度逐步上升,當(dāng)達(dá)到23.1攝氏度時繼電器2動作,將風(fēng)扇切換到大風(fēng)檔,第五位數(shù)碼管閃爍顯示“H”,表示當(dāng)前溫度高于TH值。

將“控制模式”開關(guān)選擇在“人控”,這時數(shù)碼管依然按照上述規(guī)律顯示,但是不能對風(fēng)扇進(jìn)行控制。用手旋動無級調(diào)速旋鈕,可以將風(fēng)扇從關(guān)閉一直連續(xù)調(diào)到最大風(fēng)速,具有無級調(diào)節(jié)風(fēng)扇風(fēng)力的功能。

測試結(jié)果表明,本系統(tǒng)實(shí)現(xiàn)了預(yù)期功能。


參考文獻(xiàn)

[1] 胡漢才.單片機(jī)原理及其接口技術(shù).北京:清華大學(xué)出版社,2004

[2] 吳金戍,沈慶陽,郭庭吉.8051單片機(jī)實(shí)踐與應(yīng)用.北京: 清華大學(xué)出版社,2002

[3] 求是科技.單片機(jī)典型模塊設(shè)計實(shí)例導(dǎo)航.北京:人民郵電出版社,2004

[4] 王化詳,張淑英.傳感器原理.天津:天津大學(xué)出版社,2002

[5] 榮俊昌.新型電風(fēng)扇原理與維修.北京:高等教育出版社,2004

[6] 王港元.電工電子實(shí)踐指導(dǎo).江西:江西科學(xué)技術(shù)出版社,2005











附錄1 程序流程圖

主程序流程圖

1.011.jpg

圖11  主程序流程圖

按鍵掃描子程序流程圖

1.012.jpg

1.013.jpg

圖12 按鍵掃描子程序流程圖

設(shè)置上下限動作溫度值TH,TL子程序流程圖

1.014.jpg

圖13 設(shè)置上下限動作溫度值TH,TL子程序流程圖

實(shí)時溫度值與設(shè)定TH,TL值比較及超、欠溫處理子程序流程圖

1.015.jpg

圖14  實(shí)時溫度值與設(shè)定TH,TL值比較及超、欠溫處理子程序流程圖

溫度顯示子程序流程圖

1.016.jpg

圖15  溫度顯示子程序流程圖

DS18B20復(fù)位與檢測子程序

1.017.jpg

圖16  DS18B20復(fù)位與檢測子程序

附錄2 源程序

單片機(jī)源程序如下:


  1. ********************************************************************
  2. ;精準(zhǔn)溫度顯示溫控自動風(fēng)扇系統(tǒng)     *
  3. ;*說明:
  4. ;*    1、K3 → 進(jìn)入設(shè)定低溫動作溫度值 TL 狀態(tài):
  5. ;*    2、K3 → 進(jìn)入設(shè)定高溫動作溫度值 TH 狀態(tài):
  6. ;*    3、K3 → 返回
  7. ;*    4、設(shè)定過程: K1 →加鍵 (UP), K2 →減鍵 (DOWN),可快速調(diào)
  8. ;     5、實(shí)際溫度在TL和TH之間時,開啟弱風(fēng)檔,低于TL時,關(guān)閉風(fēng)扇;
  9. ;高于TH時,開啟大風(fēng)檔。每次設(shè)置的TH和TL均被保存在DS18B20的ROM
  10. ;內(nèi),掉不需重新設(shè)置.         *
  11. ;********************************************************************
  12.           TIMER_L     DATA  23H
  13.           TIMER_H     DATA  24H
  14.           TIMER_COUN  DATA  25H

  15.           TEMPL       DATA  26H
  16.           TEMPH       DATA  27H
  17.           TEMP_TH     DATA  28H
  18.           TEMP_TL     DATA  29H

  19.           TEMPHC      DATA  2AH
  20.           TEMPLC      DATA  2BH
  21.           TEMP_ZH     DATA  2CH

  22.           BEEP        EQU   P3.7
  23.           DATA_LINE   EQU   P3.3
  24.           C1          EQU   P3.4    ;C1控制口,接繼電器1
  25.           C2          EQU   P3.5    ;C2控制口,接繼電器2

  26.           FLAG1       EQU   20H.0
  27.           FLAG2       EQU   20H.1

  28. ;-------------------------------------------------
  29.           K1   EQU  P1.4
  30.           K2   EQU  P1.5
  31.           K3   EQU  P1.6
  32. ;=================================================
  33.           ORG 0000H
  34.           JMP  MAIN

  35.           ORG  000BH
  36.           AJMP  INT_T0
  37. ;--------------------------------------------------
  38. MAIN:     MOV    SP,#30H
  39.           MOV    TMOD,#01H       ;T0,方式1
  40.           MOV    TIMER_L,#00H     ;50ms定時值
  41.           MOV    TIMER_H,#4CH
  42.           MOV    TIMER_COUN,#00H  ;中斷計數(shù)
  43.           MOV    IE,#82H          ;EA=1,ET0=1
  44.           LCALL  READ_E2
  45.           MOV    20H,#00H
  46.           SETB    BEEP
  47.     SETB  C1
  48.     setb  C2   
  49.           MOV    7FH,#0AH         ;熄滅符

  50.           CALL   RESET            ;復(fù)位與檢測DS18B20
  51.           JNB    FLAG1,MAIN1       ;FLAG1=0,DS18B20不存在
  52.           JMP    START

  53. MAIN1:    CALL   RESET
  54.           JB     FLAG1,START
  55.           LCALL  BEEP_BL        ;DS18B20錯誤,報警
  56.           JMP    MAIN1
  57. START:
  58.           MOV    A,#0CCH         ; 跳過ROM匹配
  59.           CALL   WRITE
  60.           MOV    A,#044H         ; 發(fā)出溫度轉(zhuǎn)換命令
  61.           CALL   WRITE

  62.           CALL   RESET
  63.           MOV    A,#0CCH         ; 跳過ROM匹配
  64.           CALL   WRITE
  65.           MOV    A,#0BEH         ; 發(fā)出讀溫度命令
  66.           CALL   WRITE

  67.           CALL   READ           ;讀溫度數(shù)據(jù)
  68.           CALL   CONVTEMP
  69.           CALL   DISPBCD
  70.           CALL   DISP1
  71.           CALL   SCANKEY
  72.           LCALL  TEMP_COMP
  73.           JMP     MAIN1

  74. ;=====================================================
  75. ;DS18B20 復(fù)位與檢測子程序
  76. ;FLAG1=1 OK, FLAG1=0 ERROR
  77. ;======================================================
  78. RESET:
  79.           SETB   DATA_LINE
  80.           NOP
  81.           CLR    DATA_LINE
  82.           MOV    R0,#64H            ;主機(jī)發(fā)出延時600微秒的復(fù)位低脈沖
  83.           MOV    R1,#03H
  84. RESET1:   DJNZ   R0,$
  85.           MOV    R0,#64H
  86.           DJNZ   R1,RESET1
  87.           SETB   DATA_LINE        ;然后拉高數(shù)據(jù)線
  88.           NOP
  89.           MOV    R0,#25H
  90. RESET2:   JNB    DATA_LINE,RESET3  ;等待DS18B20回應(yīng)
  91.           DJNZ   R0,RESET2
  92.           JMP    RESET4            ; 延時
  93. RESET3:   SETB   FLAG1            ; 置標(biāo)志位,表示DS1820存在
  94.           JMP    RESET5
  95. RESET4:   CLR    FLAG1             ; 清標(biāo)志位,表示DS1820不存在
  96.           JMP    RESET6
  97. RESET5:   MOV    R0,#064H
  98.           DJNZ   R0,[        DISCUZ_CODE_2        ]nbsp;            ; 時序要求延時一段時間
  99. RESET6:   SETB   DATA_LINE
  100.           RET
  101. ;===========================================================
  102. ;
  103. ;===========================================================
  104. WRITE:  MOV      R2,#8            ;一共8位數(shù)據(jù)
  105.         CLR      CY
  106. WR1:
  107.         CLR      DATA_LINE        ;開始寫入DS18B20總線要處于復(fù)位(低)狀態(tài)
  108.         MOV      R3,#09
  109.         DJNZ     R3,[        DISCUZ_CODE_2        ]nbsp;           ;總線復(fù)位保持18微妙以上
  110.         RRC      A                ;把一個字節(jié)DATA 分成8個BIT環(huán)移給C
  111.         MOV      DATA_LINE,C      ;寫入一個BIT
  112.         MOV      R3,#23
  113.         DJNZ     R3,[        DISCUZ_CODE_2        ]nbsp;           ;等待46微妙
  114.         SETB     DATA_LINE       ;重新釋放總線
  115.         NOP
  116.         DJNZ     R2,WR1          ;寫入下一個BIT
  117.         SETB     DATA_LINE
  118.         RET
  119. ;============================================================
  120. ;從DS18B20中讀出溫度低位、高位和動作溫度設(shè)定值TH、TL
  121. ;存入26H、27H、28H、29H
  122. ;============================================================
  123. READ:    MOV     R4,#4            ; 將溫度高位和低位從DS18B20中讀出
  124.          MOV     R1,#26H          ; 存入26H、27H、28H、29H
  125. RE00:    MOV     R2,#8
  126. RE01:    CLR     C
  127.          SETB    DATA_LINE
  128.          NOP
  129.          NOP
  130.          CLR     DATA_LINE        ;讀前總線保持為低
  131.          NOP
  132.          NOP
  133.          NOP
  134.          SETB    DATA_LINE       ;開始讀總線釋放
  135.          MOV     R3,#09           ;延時18微妙
  136.          DJNZ    R3,$
  137.          MOV     C,DATA_LINE      ;從DS18B20總線讀得一個BIT
  138.          MOV     R3,#23
  139.          DJNZ    R3,[        DISCUZ_CODE_2        ]nbsp;           ;等待46微妙
  140.          RRC     A                ;把讀得的位值環(huán)移給A
  141.          DJNZ    R2,RE01         ;讀下一個BIT
  142.          MOV    @R1,A
  143.          INC    R1
  144.          DJNZ    R4,RE00
  145.          RET      
  146. ;--------------------------------------------
  147. ;200ms對閃動標(biāo)記取反一次
  148. ;--------------------------------------------
  149. INT_T0:
  150.           PUSH   ACC
  151.           PUSH   PSW
  152.           MOV    TL0,TIMER_L
  153.           MOV    TH0,TIMER_H
  154.           INC    TIMER_COUN
  155.           MOV    A,TIMER_COUN
  156.           CJNE   A,#04H,INT_END
  157.           MOV    TIMER_COUN,#00H
  158.           CPL    FLAG2
  159. INT_END:
  160.           POP    PSW
  161.           POP    ACC
  162.           RETI
  163. ;==========================================================
  164. ;重新對 DS18B20 初始化
  165. ;將設(shè)定的動作溫度設(shè)定值寫入 DS18B20
  166. ;==========================================================
  167. RE_18B20:
  168.         JB     FLAG1,RE_18B20A
  169.         RET
  170. RE_18B20A:
  171.         CALL   RESET
  172.         MOV    A,#0CCH       ;跳過ROM匹配
  173.         LCALL  WRITE
  174.         MOV    A,#4EH        ;寫暫存寄存器
  175.         LCALL  WRITE
  176.         MOV    A,TEMP_TH     ;TH(動作上限溫度)
  177.         LCALL  WRITE
  178.         MOV    A,TEMP_TL     ;TL(動作下限溫度)
  179.         LCALL  WRITE
  180.         MOV    A,#7FH        ;12位精確度
  181.         LCALL  WRITE
  182.         RET

  183. ;====================================================
  184. ;功能鍵掃描子程序
  185. ;====================================================
  186. SCANKEY:
  187.               MOV    P1,#0F0H
  188.               JB     K1,SCAN_K2
  189.               CALL   BEEP_BL
  190. SCAN_K1:      CALL   ALERT_TL
  191.               CALL   ALERT_PLAY
  192.               JB     K1,SCAN_K1
  193.               CALL   BEEP_BL
  194. SCAN_K11:     CALL   ALERT_TH
  195.               CALL   ALERT_PLAY
  196.               JB     K1,SCAN_K11
  197.               CALL   BEEP_BL
  198. SCAN_K2:      JB     K2,SCAN_K3
  199.               CALL   BEEP_BL
  200. SCAN_K3:      JB     K3,SCAN_END
  201.               CALL   BEEP_BL
  202.               LCALL  RESET_ALERT
  203.               LCALL  RE_18B20
  204.               LCALL  WRITE_E2
  205. SCAN_END:     RET

  206. ;================================================
  207. ;設(shè)置動作溫度值TL,TH
  208. ;================================================
  209. RESET_ALERT:
  210.           CALL    ALERT_TL
  211.           CALL    ALERT_PLAY
  212.           JNB     K3,[        DISCUZ_CODE_2        ]nbsp;             ;K3為位移鍵
  213.           SETB    TR0
  214. RESET_TL:
  215.           CALL    ALERT_PLAY
  216.           JNB     FLAG2,R_TL01
  217.           mov     75H,7fh          ;送入熄滅符
  218.           mov     76H,7fh
  219.           CALL     ALERT_PLAY
  220.           JMP     R_TL02
  221. R_TL01:   CALL    ALERT_TL
  222.           mov     75h,7Eh          ;送設(shè)定值
  223.           mov     76h,7Dh
  224.           CALL    ALERT_PLAY      ;顯示設(shè)定值
  225. R_TL02:   JNB     K1,K011A
  226.           JNB     K2,K011B
  227.           JNB     K3,RESET_TH
  228.           JMP     RESET_TL
  229. K011A:
  230.           INC     TEMP_TL
  231.           MOV     A,TEMP_TL
  232.           CJNE    A,#120,K012A    ;沒有到設(shè)定上限值,轉(zhuǎn)
  233.           MOV     TEMP_TL,#0
  234. K012A:    CALL    TL_DEL
  235.           JMP     RESET_TL
  236. K011B:

  237.           MOV     A,TEMP_TL
  238.           CJNE    A,#00H,K     ;沒有到設(shè)定下限值,轉(zhuǎn)

  239.           MOV     TEMP_TL,#120
  240. K:        DEC     TEMP_TL
  241. K012B:    CALL    TL_DEL
  242.           JMP     RESET_TL
  243. ;-------------------------------------------------------
  244. RESET_TH:
  245.           CALL    BEEP_BL
  246.           JNB     K3,$
  247. RESET_TH1:
  248.           CALL    ALERT_PLAY
  249.           JNB     FLAG2,R_TH01
  250.           mov     75H,7fh          ;送入熄滅符
  251.           mov     76H,7fh
  252.           CALL    ALERT_PLAY
  253.           JMP     R_TH02
  254. R_TH01:   CALL    ALERT_TH
  255.           mov    75h,7Eh          ;
  256.           mov    76h,7Dh
  257.           CALL   ALERT_PLAY
  258. R_TH02:   JNB    K1,K021A
  259.           JNB    K2,K021B
  260.           JNB    K3,K002
  261.           JMP    RESET_TH1
  262. K021A:
  263.           INC    TEMP_TH
  264.           MOV    A,TEMP_TH
  265.           CJNE   A,#120,K022A   ;沒有到設(shè)定上限值,轉(zhuǎn)
  266.           MOV    TEMP_TH,#0
  267. K022A:    CALL   TH_DEL
  268.           JMP    RESET_TH1

  269. K021B:

  270.           MOV   A,TEMP_TH
  271.           CJNE  A,#00H,K023B   ;沒有到設(shè)定下限值,轉(zhuǎn)

  272.           MOV   TEMP_TH,#120
  273. K023B:    DEC   TEMP_TH
  274. K022B:    CALL  TH_DEL
  275.           JMP   RESET_TH1

  276. K002:     CALL  BEEP_BL
  277.           CLR   TR0             ;關(guān)閉中斷
  278.           RET
  279. ;-----------------------------------------------------
  280. ;鍵延時子程序
  281. ;多次調(diào)用動作溫度設(shè)定值顯示程序來延時
  282. ;-----------------------------------------------------
  283. TL_DEL:                        ;動作溫度低值TL延時
  284.           MOV   R2,#0AH
  285. TL_DEL1:  CALL  ALERT_TL
  286.           CALL  ALERT_PLAY
  287.           DJNZ  R2,TL_DEL1
  288.           RET
  289. TH_DEL:                        ;動作溫度高值TH延時
  290.           MOV   R2,#0AH
  291. TH_DEL1:  CALL  ALERT_TH
  292.           CALL  ALERT_PLAY
  293.           DJNZ  R2,TH_DEL1
  294.           RET
  295. ;====================================================
  296. ;實(shí)時溫度值與動作溫度設(shè)定值 TH、TL 比較子程序
  297. ;當(dāng)實(shí)際溫度大于 TH 的設(shè)定值時,顯示"H",繼電器1吸合,繼電器2吸合
  298. ;當(dāng)實(shí)際溫度小于 TH 的設(shè)定值時,顯示“O”,繼電器1、2斷開,
  299. ;當(dāng)實(shí)際溫度小于 TL 的設(shè)定值時,顯示“L”。繼電器1吸合,繼電器2斷開
  300. ;閃動顯示標(biāo)記符 H、L、O
  301. ;====================================================
  302. TEMP_COMP:
  303.           SETB  TR0             ;啟動中斷
  304.           MOV   A,TEMP_TH
  305.           SUBB  A,#01H         
  306.           SUBB  A,TEMP_ZH       ;減數(shù)>被減數(shù),則
  307.           JC    CHULI1            ;借位標(biāo)志位C=1,轉(zhuǎn)
  308.           MOV   A,TEMP_ZH
  309.           SUBB  A,TEMP_TL       ;減數(shù)>被減數(shù),則
  310.           JC    CHULI2            ;借位標(biāo)志位C=1,轉(zhuǎn)
  311.           JNB   FLAG2,T_COMP1    ;FLAG2=0,顯示標(biāo)記字符
  312.           MOV   74H,#0AH         ;熄滅符
  313.           LCALL  DISP1
  314.           JMP    T_COMP2
  315. T_COMP1:  MOV    74H,#00H
  316.           LCALL  DISP1          ;顯示"O"
  317. T_COMP2:
  318.           SETB   C1          ;繼電器1斷開
  319.           SETB   C2          ;繼電器2斷開
  320.           CLR    TR0              ;關(guān)閉中斷
  321.           RET
  322. ;---------------------------------------------
  323. ;超溫處理
  324. ;---------------------------------------------
  325. CHULI1:
  326.         CLR    C1           ;繼電器1吸合
  327.           CLR    C2           ;繼電器2吸合
  328.           JNB    FLAG2,CHULI10
  329.           MOV    74H,#0AH         ;熄滅符
  330.           LCALL  DISP1
  331.           JMP    CHULI11
  332. CHULI10:  MOV    74H,#0DH        
  333.           LCALL  DISP1          ;顯示"H"
  334. CHULI11:
  335.           CLR   TR0              ;關(guān)閉中斷
  336.           RET
  337. ;---------------------------------------------
  338. ;欠溫處理
  339. ;---------------------------------------------
  340. CHULI2:   CLR    C1              ;繼電器1吸合
  341.           SETB   C2              ;繼電器2斷開
  342.           JNB    FLAG2,CHULI20
  343.           MOV    74H,#0AH         ;熄滅符
  344.           LCALL  DISP1
  345.           JMP    CHULI21
  346. CHULI20:  MOV    74H,#0CH        
  347.           LCALL  DISP1          ;顯示"L"
  348. CHULI21:  CLR    TR0              ;關(guān)閉中斷
  349.           RET
  350. ;------------------------------------------------------------
  351. ;把 DS18B20 暫存器里的動作溫度設(shè)定值拷貝到EEROM
  352. ;------------------------------------------------------------
  353. WRITE_E2:
  354.         CALL    RESET
  355.         MOV     A,#0CCH        ;跳過ROM匹配
  356.         LCALL   WRITE
  357.         MOV     A,#48H         ;動作溫度設(shè)定值拷貝到EEROM
  358.         LCALL   WRITE
  359.         RET
  360. ;--------------------------------------------------------------
  361. ;把 DS18B20 EEROM 里的動作溫度設(shè)定值拷貝回暫存器
  362. ;-------------------------------------------------------------

  363. ……………………

  364. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

完整文檔下載(word格式 可編輯):

文檔.doc (433.5 KB, 下載次數(shù): 40)




回復(fù)

使用道具 舉報

ID:1 發(fā)表于 2017-7-11 16:44 | 顯示全部樓層
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報

ID:209608 發(fā)表于 2017-7-16 17:26 來自觸屏版 | 顯示全部樓層
很有幫助
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表