信息與通信太陽能熱水器儀表軟硬件設(shè)計_第1頁
信息與通信太陽能熱水器儀表軟硬件設(shè)計_第2頁
信息與通信太陽能熱水器儀表軟硬件設(shè)計_第3頁
信息與通信太陽能熱水器儀表軟硬件設(shè)計_第4頁
信息與通信太陽能熱水器儀表軟硬件設(shè)計_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、硬件設(shè)計:3.1 直流電源的設(shè)計:3.1.1 直流電源的圖解:本課題可采用集成三端穩(wěn)壓器,只要加上一些外圍元件即可實現(xiàn)。其框圖和電路分別如下圖:3.1.2 方案論證:通過框圖分析,該電路由四個部分組成,它們的功能分述如下:(1) 電源變壓器它的任務(wù)是把電源電壓變壓到合適的大小。如果u2的值太大,會造成集成三端穩(wěn)壓器7805的功耗太大,溫度升高,且浪費電能。反之,如果u2的值小到一定的程度,三端穩(wěn)壓器不能正常工作,失去穩(wěn)壓作用 。因此u2的值應(yīng)大小合適,這個值應(yīng)該使三端穩(wěn)壓器在交流電網(wǎng)電壓最低和輸出電流最大時能正常工作。而且在正常穩(wěn)壓的前提下,它的壓降盡可能小,以減少功耗。(2) 整流電路它的任

2、務(wù)是將正弦波變換成直流電壓。這里一般采用橋式整流電路來實現(xiàn),即可用四個二極管來組成,也可用整流橋堆來完成,只是參數(shù)一定要選擇合理。(3) 濾波電路它的任務(wù)是將全濾波形通過 RC 濾波網(wǎng)絡(luò)以后變成更平坦的直流電壓,減小脈動,提高整流的效果。這時整流管中通過的電流的瞬時值要比平均值大得多,特別在接通電源瞬間有相當(dāng)大的沖擊電流(即充電電流)通過整流管,這一點要引起注意。(4) 穩(wěn)壓電路要求輸出恒定的直流電壓,且要達(dá)到提出的要求,3.1.3 方案實現(xiàn) :(1)計算u2和C1查閱集成三端穩(wěn)壓器的知了可知,對輸出電壓在5v12v之間的穩(wěn)壓器,其輸入端的電壓一般要比輸出端電壓高5v。而輸出電壓在15v24v

3、的穩(wěn)壓器,其兩端電壓差達(dá)到7v9v左右。在此,如果1,2兩端的電壓為12V,那么可以求得u2為10v。從電容濾波出發(fā),C1的容量應(yīng)足夠大,但C1的容量也不能太大,否則整流元件的瞬時電流太大,而且容量越大,電容器的體積越大,價格越貴,根據(jù)經(jīng)驗綜合各方面情況,取C1=3300uF.(2) 整流元件的參數(shù)1)反向耐壓 根據(jù)橋式整流電路的性能可知,每個整流二級管在交流電網(wǎng)最高時承受的最大反向峰植電壓為:為了安全,整流管的反向耐壓應(yīng)比上述植高50%以上,因此選擇整流管時,其耐壓應(yīng)按下式考慮:2)正向電流 橋式整流電路中,每個整流二極管的正向電流平均值是輸出電流的一半,其最大值為:由于整流管在接通電源瞬間

4、有相當(dāng)大的沖擊電流(即充電電流)通過,因此,整流管的參數(shù)(正向電流平均值)應(yīng)比上述值大(0.52)倍。若按比上述值大1.8倍考慮,則=1.8目前,市場上有各種規(guī)格的整流橋堆出售,它有兩個交流輸入端和兩個直流輸出端。由于它體積小,使用方便,價格較低,已成為常用整流元件。根據(jù)上面的計算,本電源可選用1A/25V的整流橋堆。(3) 變壓器二次繞組的電流由于電容濾波整流電路中,整流管的電流不是正弦波,變壓器二次繞組電流的有效值要比輸出電流大,一般情況下,前者是后者的(1.13)倍。這里我們?nèi)∫虼?,變壓器二次繞組的額定電流(交流有效值)應(yīng)按2A設(shè)計。在本設(shè)計中,對電磁閥的直流電源的要求不不高,又因為1,

5、2兩端的電壓為12V,為節(jié)省資源,故可直接取用1,2兩端的電壓作為電磁閥的直流電壓,無需再另行設(shè)計12V穩(wěn)壓電源。3.2 輸入接口電路:接口電路是一組電路,是中央處理器與存儲器、輸入/輸出設(shè)備等外設(shè)之間協(xié)調(diào)動作的控制電路。從更一般的意義上說,接口電路是在兩個電路或外設(shè)之間,使兩者動作條件相配合的連接電路。接口電路并不局限在中央處理器與存儲器或外設(shè)之間,如直接存儲器存取DMA接口電路就是控制存儲器與外設(shè)之間數(shù)據(jù)傳送的電路。接口電路的作用就是將來自外部設(shè)備的數(shù)據(jù)信號傳送給微處理器,微處理器對數(shù)據(jù)進(jìn)行適當(dāng)加工,再通過接口電路傳回外部設(shè)備。所以,接口電路的基本功能就是對數(shù)據(jù)傳送實現(xiàn)控制,具體包括5種功

6、能:地址譯碼、數(shù)據(jù)緩沖、信息轉(zhuǎn)換、提供命令譯碼和狀態(tài)信息、定時和控制。不同的接口電路用于不同的控制場合,因此其功能也各有特點。如并行接口電路不要求數(shù)據(jù)格式轉(zhuǎn)換功能,來自總線的并行數(shù)據(jù)就可直接傳送到并行外設(shè)中;而串行通信接口電路就必須具備將并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)和將串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)的功能。本設(shè)計所用到的傳感器,包括測水位的傳感器與測水溫的傳感器,分別作如下介紹:(1)水位傳感器:它的結(jié)構(gòu)圖如下:說明:結(jié)構(gòu)圖中的電阻外表面均不與水直接接觸,但分別與a、b、c、d 良好接觸,a、b、c、d用于感知水位。硬件圖中HD74HC04P是一個六反向器,管腳如下圖所示:它在本設(shè)計中用于接成環(huán)形振蕩器。選

7、擇合適電容、電阻值時,環(huán)形振蕩器就能根據(jù)每次傳感器的阻值產(chǎn)生相應(yīng)特定周期的方波。其中為水位傳感器的電阻值由傳感器的結(jié)構(gòu)圖可看出:當(dāng)水位未達(dá)到a時,即h<a時、這時傳感器的總阻值為4R,對應(yīng),系統(tǒng)處于缺水狀態(tài)。當(dāng)ah<b時,傳感器電阻阻值為3R,對應(yīng),系統(tǒng)處于20%水位。當(dāng)bh<c時,傳感器電阻阻值為2R,對應(yīng),系統(tǒng)處于50%水位。當(dāng)ch<d時,傳感器電阻阻值為R,對應(yīng),系統(tǒng)處于80%水位。當(dāng)h=d時,傳感器電阻阻值為0,對應(yīng),系統(tǒng)處于100%水位。其中,環(huán)形振蕩器產(chǎn)生的方波周期T(或f)可通過單片機P87LPC744BN的兩個定時/計數(shù)器(T0、T1)來確定,T1用來計

8、數(shù),T0用來定時。所以,水位傳感器測水位的基本原理如下:(m為T1的計數(shù)值,為T0的定時值)。(2)水溫傳感器本設(shè)計可選選用具有負(fù)溫度系數(shù)的熱敏電阻來測水溫,熱敏電阻與普通電阻不同,它具有負(fù)的溫度特性,當(dāng)溫度升高時,電阻值減小,它的應(yīng)用是為了感知溫度。現(xiàn)選用MF51型直熱式負(fù)溫度系數(shù)熱敏電阻,它的技術(shù)特性如下:型號標(biāo)稱電阻()材料常數(shù)()溫度系數(shù)()使用溫度范圍MF5115K33003.755+300520K36004.02080K39004.380100K43004.7它能滿足本設(shè)計的測量靈敏度要求和2%的測量精度要求,性價比較高。測量原理:與水位傳感器一樣,在設(shè)定好合適的參數(shù)(R1、R2、

9、Rs、C)后,對應(yīng)每個熱敏電阻阻值,環(huán)形振蕩器便能產(chǎn)生一個特定周期的矩形波。T可通過單片機的T0外部計數(shù)和T1內(nèi)部定時的方式確定。故 然后通過下列公式求溫度:其中 -被測溫度-與熱敏電阻特性有關(guān)的參數(shù)-與熱敏電阻特性有關(guān)的系數(shù)-熱敏電阻阻值以上計算均可由軟件編程實現(xiàn),把計算出的溫度轉(zhuǎn)化成BCD碼,然后再存放于顯示緩沖區(qū)中,執(zhí)行相應(yīng)的功能程序。3.3 鍵盤中斷: 本系統(tǒng)存儲容量不大,4KROM,128RAM足夠,由于只有二個鍵,且不經(jīng)常操作,所以本設(shè)計中采用了中斷方式,其中與P0.2口的鍵盤是用于手動上水功能,與P0.3口連接的鍵盤用于水位設(shè)置的功能。3.4 顯示接口:本設(shè)計中采用了共陰極接法,

10、對于顯示水溫水位的程序作如下說明:在動態(tài)掃描過程中,調(diào)用延時子程序Del1,其延遲時間為1ms,這是為了使掃描到哪位顯示器穩(wěn)定的點亮一段時間,猶如掃描過程中在每一位顯示器上都一段駐留時間,以保證其顯示亮度。本設(shè)計接口電路是軟件為主的接口電路,對顯示數(shù)據(jù)以查表方法得到其字形代碼,為此在程序中有字形代碼Table,從0開始依次寫入十六進(jìn)制數(shù)的字形代碼。為了進(jìn)行查表操作,使用查表指令 MOVC A,A+DPTR,由DPTR提供16位基址,由A提供變址,因此顯示數(shù)據(jù)送A后,再由A送P0.1P0.6輸出給顯示器。(1)水位顯示:本系統(tǒng)需顯示水位,水位分缺水、20、50、80%五檔,均用發(fā)光二極管來指示。

11、(2)水溫顯示:本系統(tǒng)需顯示水溫,測量范圍為099 0C,用兩個八位LED數(shù)碼管顯示。1)LED結(jié)構(gòu)和顯示原理。LED(Light Emitting Diode)顯示器是由發(fā)光二極管作為顯示字段的顯示器件,最常見的是由7段型發(fā)光二極管(ag7段)和1個圓點型發(fā)光二極管(常以dp表示,主要用來顯示小數(shù)點)組成的LED顯示器,其排列形狀如下圖所示。這種LED顯示器也可稱為7段數(shù)碼顯示器(或8段數(shù)碼顯示器)。LED顯示中的發(fā)光二極管根據(jù)其連接的方法有共陰極和共陽極兩種結(jié)構(gòu)。共陰極結(jié)構(gòu):把各段發(fā)光二極管的陰極連接在一起構(gòu)成公共陰極,如圖a所示。使用時,公共陰極接地,根據(jù)要求需點亮發(fā)光二極管的陽極輸入高

12、電平,不需點亮的發(fā)光二極管的陽極輸入低電平。共陽極結(jié)構(gòu):把各段發(fā)光二極管的陽極連接在一起構(gòu)成公共陽極,如圖b 所示。使用時,公共陽極接+5V,根據(jù)要求需要點亮發(fā)光二極管的陰極輸入低電平,不需點亮的發(fā)光二極管的陰極輸入高電平。通過控制7個段的發(fā)光二極管的亮暗的不同組合,可以顯示多種數(shù)字、字母以及其他符號。2)字段碼。為了顯示各個數(shù)字或字符,就需要為LED提供相應(yīng)的代碼,因為這些代碼是控制各段的亮或滅,供顯示器顯示字形的,所以稱為字段碼(也可以稱為段選碼或字形碼)。七段發(fā)光二極管再加上1個小數(shù)點位,共計8段,因此提供給LED顯示器的字段碼正好1個字節(jié)。各代碼位的對應(yīng)關(guān)系如下:D7 D6 D5 D4

13、 D3 D2 D1 D0dpgfedcba下圖所示為共陰極LED所顯示的不同字符的字段碼,測量范圍為099 0C,當(dāng)溫度超出范圍時,顯示器均顯示F。顯示字符共陰極字段碼03FH106H25BH34FH466H56DH67DH707H87FH96FHF71H3)N位LED顯示器。在單片機應(yīng)用系統(tǒng)中,實際使用的LED顯示器有多個,N位LED顯示器的顯示要從兩個方面來控制:其一是控制N位的字段顯示(即顯示什么字符);其二是控制字位(即哪一位到哪一位亮)。由LED的顯示原理可知,要使某N位LED顯示器的某一位顯示某個字符,就必須將此字符轉(zhuǎn)換為對應(yīng)的字段碼來控制該位的8個段,同時,該位的字位線也要控制有

14、效,這要通過一定接口來實現(xiàn)。LED顯示器有兩種顯示方式,即靜態(tài)顯示方式和動態(tài)顯示方式。N位LED顯示器有N根字位選線(簡稱:“位選線”)和N*8根字段選線(簡稱:“段選線”)。根據(jù)顯示方式不同,位選線和段選線的連接方式也不同。各種字符的字段碼的獲取方法有兩種:即軟件譯碼和硬件譯碼法。目前通常所用的各種型號的單片機開發(fā)系統(tǒng)或?qū)嶒炑b置普遍采用軟件譯碼。當(dāng)單片機應(yīng)用系統(tǒng)中的LED顯示器位數(shù)較多時,為了簡化電路降低成本,本設(shè)計采用動態(tài)顯示的方式。動態(tài)顯示方式的接口電路的連接方法是:將所有LED位的段選線(a dp)同名并聯(lián),即所有a段并聯(lián),所有b段并聯(lián)。依次類推,然后由一個8位I/O接口來控制各個段,

15、而所有位的位選線則由另外一個相應(yīng)的I/O接口線來控制。這樣用兩個8位I/O接口就能控制8位LED顯示器。LED顯示器是由電流型控制器件,其工作電流為2mA20mA,使用時須加限流電阻。本設(shè)計中限流電阻選用1K。動態(tài)掃描顯示控制方式就是逐個地循環(huán)點亮各位顯示器,即在某一瞬間,只讓某一位的位選線處于選通狀態(tài)(共陽極的為高電平,共陰極的為低電平)其它各位的位選線處于段開狀態(tài),同時段選線上輸出相應(yīng)位要顯示字符的字段碼。這樣在每一個瞬間,8位LED中只有選通的那一位LED顯示出字符,而其它7位則是熄滅的。同樣,在下一瞬間,只顯示下1位LED。如此繼續(xù)下去,等8位LED都顯示完畢后,在循環(huán)進(jìn)行。雖然這些字

16、符是在不同的瞬時輪流點亮的,但由于人眼的視覺殘留效應(yīng),看到的是8位穩(wěn)定顯示的字符,與靜態(tài)顯示的效果完全一樣。所以為了簡化電路、降低成本,此系統(tǒng)中采用動態(tài)顯示方式。3.5 電磁閥:由于本系統(tǒng)中執(zhí)行機構(gòu)控制的是電磁閥,因此需用三極管進(jìn)行功率放大。3.6 晶振:為給單片機提供工作所需要的時鐘信號,本設(shè)計中采用了6MHZ的晶振。故系統(tǒng)中CPU執(zhí)行的每一個機器周期為2us.3.7 主機: 主機的選擇是關(guān)鍵,選得好,可節(jié)省許多外圍電路,本設(shè)計采用的是由Philips公司生產(chǎn)的P87LPC764BN芯片,是20腳封裝的單片機,適合于要求高集成度、低成本的場合。采用80C51加速處理器結(jié)構(gòu),指令執(zhí)行速度是標(biāo)準(zhǔn)

17、80C51的兩倍。片內(nèi)有4K字節(jié)OTP程序存儲器,128字節(jié)的RAM。32Byte用戶代碼區(qū)可用來存放序列碼及設(shè)置參數(shù);有看門狗電路、復(fù)位電路(使用片內(nèi)上電復(fù)位時不需要外接組件);2個16位定時/計數(shù)器,2個A/D轉(zhuǎn)換器;所有口線均有20m A的驅(qū)動能力;電源電壓VDD=4.56.0(操作頻率為20MHZ)。本設(shè)計中已經(jīng)充分利用了該單片機的所有I/O口,且已能滿足設(shè)計的要求,性價比高,組成了一個最小,最優(yōu)化的系統(tǒng)。現(xiàn)對P87LPC764BN這塊芯片作如下介紹:(1)概述:P87LPC76x是20腳封裝的單片機,適合于許多要求高集成度、低成本的場合??梢詽M足許多方面的性能要求。作為Philips

18、小型封裝系列中的一員,P87LPC76x提供高速和低速的晶振和RC振蕩方式,可編程選擇。具有較寬的操作電壓范圍??删幊蘄/O口線輸出模式選擇,可選擇施密特觸發(fā)輸入,LED驅(qū)動輸出。有內(nèi)部看門狗定時器。P87LPC76x采用80C51加速處理器結(jié)構(gòu),指令執(zhí)行速度是標(biāo)準(zhǔn)80C51 MCU的兩倍。 P87LPC76x采用增強型80C51 MCU,其運行速度是標(biāo)準(zhǔn)80C51的2倍,這意味著P87LPC76x在5MHZ時性能和標(biāo)準(zhǔn)80C51采用10MHZ時性能相同。一個機器周期由6個振蕩周期組成,大多數(shù)指令執(zhí)行時間為6或12個振蕩周期,用戶亦可選擇工作在標(biāo)準(zhǔn)80C51 MCU時序,這時一個機器周期變?yōu)?

19、2個振蕩周期。 “MCU時鐘”指控制內(nèi)部指令執(zhí)行的時鐘。當(dāng)系統(tǒng)被設(shè)置成為標(biāo)準(zhǔn)80C51時序(由CLKR位確定)或通過設(shè)定DIVM寄存器分頻時,“MCU時鐘”和外部所加時鐘不同。(2)特性:􀁺 操作頻率為20MHz時,除乘法和除法指令外,加速80C51指令執(zhí)行時間為300600ns。VDD=4.56.0V時,時鐘頻率可高達(dá)到20MHz,VDD=2.74.5V時,時鐘頻率最大為10MHz。 􀁺 VDD=4.56.0V(P87LPC765HDH) 􀁺 數(shù)字信號的操作電壓為2.76.0V。 􀁺 P87LPC762為2K字節(jié)OTP程

20、序存儲器,P87LPC764為4K字節(jié)OTP程序存儲器,128字節(jié)的RAM。32Byte用戶代碼區(qū)可用來存放序列碼及設(shè)置參數(shù)。􀁺 2個16位定時/計數(shù)器,每一個均可設(shè)置為超時溢出時相應(yīng)端口輸出。􀁺 八個鍵盤中斷輸入,另加2路外部中斷輸入。4個中斷優(yōu)先級。 􀁺 看門狗定時器利用片內(nèi)振蕩,無需外接元件,看門狗定時器溢出時間有8級選擇。 􀁺 低電平復(fù)位。使用片內(nèi)上電復(fù)位時不需要外接元件。 􀁺 低電壓復(fù)位??蛇x擇預(yù)先設(shè)定好的兩種電壓之一復(fù)位,當(dāng)?shù)綦姇r允許系統(tǒng)安全關(guān)閉。也可將其設(shè)置為一個中斷源。 􀁺

21、; 可選擇片內(nèi)振蕩及其頻率范圍和RC振蕩(用戶通過對EPROM位編程選擇)。選擇RC振蕩器時不需外接振蕩器件。 􀁺 如果選擇片內(nèi)振蕩及復(fù)位時,P87LPC76x僅需要連接電源線和地線。 􀁺 20腳DIP、SO和TSSOP封裝。管腳配置:邏輯符號:方框圖:(3)鍵盤中斷(KBI):鍵盤中斷功能主要是使得連至P87LPC76x特殊腳的鍵盤上任一鍵被按下時能產(chǎn)生一個中斷(見圖12)。該中斷可用于將MCU從空閑模式或掉電模式中喚醒。此特性尤其適合便攜式且使用電池供電的系統(tǒng)。 P87LPC76x允許端口0的部分或全部引腳被使能觸發(fā)中斷,這是通過對KBI寄存器對應(yīng)位置位

22、完成的,如圖13所示。當(dāng)打開KBI中斷功能后,任一被使能引腳被拉低都會將AUXR1寄存器內(nèi)鍵盤中斷標(biāo)志(KBF)置位。如若中斷允許則將產(chǎn)生一中斷。注意KBF位必須由軟件清除。 由于人對時間分辨精度及鍵開關(guān)閉合的機械延遲,KBI特性通??捎糜谥袛喾?wù)程序輪流查詢端口0以確定按下的是哪個鍵,甚至決定處理器從低功耗模式喚醒。參見低功耗模式部分。本系統(tǒng)存儲容量不大,4KROM,128RAM足夠,由于只有二個鍵,且不經(jīng)常操作,所以本設(shè)計中采用了中斷方式,其中與P0.2口的鍵盤是用于手動上水功能,與P0.3口連接的鍵盤用于水位設(shè)置的功能。當(dāng)產(chǎn)生鍵盤中斷時,用軟件判斷按下的是哪個鍵,框圖如下:本設(shè)計中鍵盤中

23、斷要實現(xiàn)兩個功能:水位設(shè)置和手動上水:1) 其中水位設(shè)置鍵與P0.3口連接,具體功能敘述如下:當(dāng)水位不足情況下,未按下水位設(shè)置鍵時,默認(rèn)預(yù)置水位為50%,在上水過程中,水位指示燈滅。當(dāng)按一下水位設(shè)置鍵時,80%水位指示燈亮,表明要上水到80%;當(dāng)按第二下水位設(shè)置鍵時,100%水位指使燈亮,表明要上水到100%;當(dāng)按第三下水位設(shè)置鍵時,20%水位指示燈亮,表明缺水時,要上水到20%;當(dāng)按第四下水位設(shè)置鍵時,預(yù)置水位又為50%,表明要上水到50%;在具體的軟件判別中,可通過查表P0.3是否置高電平來確認(rèn)鍵盤有沒按下,可用MOV A,P0;JNB ACC、3等幾條指令來實現(xiàn)。通過對每一次的鍵盤按動進(jìn)

24、行加1記錄,即當(dāng)每次P0.3為高電平時,加一條INC R,指令,當(dāng)R1為5時,又重新賦值為1,而后對R1的值進(jìn)行判斷,以確認(rèn)水位設(shè)置鍵到底設(shè)置了哪個水位,框圖如下: 2) 手動上水鍵與P0.2口連接,可用MOV A,P0;JNB ACC、2兩條指令來查看手動上水鍵有沒被按下。它的具體功能如下:按“上水”鍵,若水位低于預(yù)置水位,可上水至預(yù)置水位;若水位已達(dá)到預(yù)置水位,則在原水位的基礎(chǔ)上再加一檔;若水位已加滿,則停止手動加水,在上水過程中,按“上水”鍵,可停止上水。同水位設(shè)置鍵一樣,當(dāng)奇數(shù)次按下此鍵時,表示要上水,當(dāng)偶數(shù)次按下此鍵時,表示停止上水,框圖如下:(4)振蕩器:P87LPC76x提供幾種

25、用戶可選振蕩器選項,允許根據(jù)需要從高精度至最低成本范圍內(nèi)選擇。這些選項在EPROM編程時配置。支持的基本振蕩器類型包括:低、中、及高速晶振,20KHz20MHz,陶瓷振蕩器及片內(nèi)RC振蕩器。片內(nèi)RC振蕩器選項(RC) 片內(nèi)RC振蕩器典型頻率為6MHz,可通過DIVM寄存器分頻后獲取較低頻率。注意片內(nèi)振蕩器頻 率有±25%誤差,因此不適于某些場合使用。使用RC振蕩器時X2/P2.0腳可用作標(biāo)準(zhǔn)端口引腳。此時亦可選擇X2/P2.0腳輸出時鐘。 時鐘輸出 P87LPC76x在選擇片內(nèi)RC振蕩器或外部時鐘輸入時支持時鐘輸出功能。這使得外部器件可與P87LPC76x同步。對P2M1寄存器的EN

26、CLK置位后, 無論是否處于空閑模式, 只要片內(nèi)振蕩器運行, X2/CLKOUT就有信號輸出。輸出時鐘頻率為MCU時鐘頻率的1/6。如果空閑模式時不需要時鐘輸出,可在進(jìn)入空閑模式之前關(guān)閉輸出以節(jié)省電能。選擇外部時鐘時亦可輸出時鐘。 振蕩器必須設(shè)置為下列模式之一:低頻晶振 中頻晶振 高頻晶振 為限制晶振驅(qū)動電平可串聯(lián)電阻,對于低頻晶振尤其重要。 振蕩器須設(shè)置為外部時鐘輸入模式。將P2M1寄存器內(nèi)CLK位置位可從X2腳輸出時鐘。(5)復(fù)位:P87LPC76x內(nèi)部集成了上電復(fù)位電路,用于在器件上電時提供一個復(fù)位信號。建議使用內(nèi)部復(fù)位以節(jié)省外部元件并可將P1.5作為通用的輸入口使用。 P87LPC76

27、x另外還可通過對用戶配置寄存器UCFG1中的RPD位編程為0,將P1.5作為外部低有效復(fù)位管腳RST。此時內(nèi)部復(fù)位在器件上電時仍然有效。當(dāng)RST腳的信號為低電平時,P87LPC76x保持復(fù)位直到信號變?yōu)楦唠娖健?看門狗定時器可用于檢測振蕩器是否正常工作,因為看門狗定時器使用的是獨立的片內(nèi)振蕩器。對UCFG1的描述見本手冊的“系統(tǒng)配置字節(jié)”一節(jié)。 將EPROM配置寄存器UCFG1內(nèi)RPD位編程為1可關(guān)閉外部復(fù)位輸入,即選擇使用完全內(nèi)部復(fù)位。(6)定時器計數(shù)器:P87LPC76x有兩個通用定時/計數(shù)器,與80C51定時器0及定時器1兼容。兩者均可選擇以計數(shù)器或定時器方式工作。另外增加了定時器溢出時

28、T0與/或T1腳自動翻轉(zhuǎn)的功能。 在用于定時器功能時,每個機器周期寄存器加1。所以可以視為計數(shù)機器周期。由于一個機器周期包含6個MCU時鐘周期,所以計數(shù)頻率為MCU時鐘頻率的1/6。有關(guān)MCU時鐘參見增強MCU一節(jié)。 在用于計數(shù)器功能時,寄存器在T0或T1腳的每一個下降沿加1。此時,每一個機器周期對外部輸入采樣一次。當(dāng)某一周期時引腳狀態(tài)采樣為高而下一周期采樣為低,計數(shù)器加1。檢測到跳變的下一周期寄存器更換新值。由于檢測下降沿跳變需兩個機器周期,所以計數(shù)頻率最大值為MCU時鐘頻率的1/6。外部輸入信號占空比并無限制,但必須保證信號在改變之前至少被采樣一次,信號必須保持至少一個整的機器周期。 通過

29、特殊功能寄存器TMOD內(nèi)控制位C/T選擇定時器或計數(shù)器功能。此外,定時器0及定時器1有4種工作模式,由TMOD內(nèi)M1及M0選擇,模式0、1、2對于定時器及計數(shù)器是一樣的。模式3則不同。(7)看門狗定時器:看門狗定時器由一個完全獨立的振蕩器控制,以保證其最大限度的可靠性,它通過“WDTE”位啟動。當(dāng)看門狗功能被啟動,定時裝置必須定時得到軟件的清除,以防止其溢出,對MCU復(fù)位,但是定時裝置不能被關(guān)閉。當(dāng)不作為看門狗定時器(通過UCFG1寄存器的WDTE位控制),它將作為一個內(nèi)部定時器使用,且產(chǎn)生中斷??撮T狗定時器如圖31所示??撮T狗溢出時間選擇有8個數(shù)據(jù),理論上時間跨度從16ms到2.1秒。獨立的

30、看門狗RC振蕩器的頻率誤差±37%,溢出時間和其它的控制位如圖32所示。當(dāng)使能看門狗功能時,在芯片初始化時向WDCON寫入數(shù)據(jù)以設(shè)定看門狗溢出時間。建議初始化WDCON時,先清看門狗,然后寫“WDCON”配置的WDS20位。采用這種方式,能在10ms內(nèi)完成設(shè)置,從而避免在初始化完成前看門狗溢出復(fù)位。 由于看門狗定時器振蕩器是一個完全獨立于MCU的片內(nèi)振蕩電路,它實質(zhì)上執(zhí)行的是內(nèi)部振蕩器失靈的檢測功能。當(dāng)看門狗功能被啟動,無論MCU振蕩器因何故失靈,看門狗定時器都會溢出使MCU復(fù)位。 當(dāng)看門狗功能被啟動,定時器會因由于其它原因造成芯片復(fù)位而暫時無效。如:電源復(fù)位、掉電復(fù)位或外部復(fù)位等。

31、(8)看門狗清“0”順序:如果看門狗定時器正在進(jìn)行,必須在其溢出產(chǎn)生復(fù)位前清“0”,看門狗清“0”順序包括:先寫立即數(shù)1EH,再寫0E1H到“WDRST”寄存器。下面是一個操作實例: WDFeed: MOV WDRST,#1EH MOV WDRST,#0E1H 這兩條寫WDRST的命令不必是連續(xù)的兩條指令。一個不正確的看門狗清“0”順序不會引起看門狗定時器的任何即刻反應(yīng)。只要此時間之前沒有給它一個正確的清“0”,它仍然按最初設(shè)置的時間直到溢出。 發(fā)生芯片復(fù)位后,程序設(shè)計者清看門狗或改變溢出時間都有一定的限制時間。如果操作中使用低MCU時鐘頻率,那么在發(fā)生看門狗溢出之前能被執(zhí)行的指令非常少。 (

32、9)附加功能:“AUXR1”寄存器由幾個特別控制位組成,這些位另幾種芯片功能相關(guān)。AUXR1在圖33中詳述。  4.1 I/O口的說明:P0.00.6分別用于輸出7個字型碼給顯示器,同時,P0.0也作為缺水燈指示控制口,P0.1作為20%水位燈指示的控制口,P0.4作為50%水位燈指示的控制口,P0.5作為80%水位燈指示的控制口,P0.6作為100%水位燈指示的控制口。P0.3口還作為水位設(shè)置的輸入口,在軟件中可查看該口的電平高低,以確認(rèn)水位設(shè)置鍵是否被按下。同理,P0.2口作為上水鍵的輸入口,在軟件中可查看該口的電平高低,以確認(rèn)水位設(shè)置鍵是否被按下。P1.0作為顯示器顯示溫度值十

33、位的位選,當(dāng)P1.0=0時,顯示器才能顯示個位,否則 不顯示。P1.7作為水位燈顯示的位選,P1.7為高電平時,不顯示水位燈,P1.7為低電平時,水位燈才能顯示。P1.3口用于控制低水壓上水指示燈,當(dāng)系統(tǒng)正處于低水壓上水時,低水壓上水指示燈閃亮,即P1.3先處于高電平1s,再處于低1s,重復(fù)一段時間。P1.6口用于控制蜂鳴器,當(dāng)系統(tǒng)處于缺水狀態(tài)或低水壓上水時,蜂鳴器都會鳴叫,即讓P1.6處于高電平1 s,低電平1s,重復(fù)一定時間,以實現(xiàn)蜂鳴。P1.4口控制電磁閥,當(dāng)系統(tǒng)需要上水或不上水時,即需通過軟件使P1.4處于高低電平,將P1.4置1時,打開電磁閥上水,將P1.4清0時,關(guān)電磁閥。P2.1

34、及P2.0口用于外接晶振,為單片機提供工作所需的脈沖。P1.2口是定時/計數(shù)器T0的接口,用于對溫度傳感器,通過環(huán)形振蕩器產(chǎn)生的方波進(jìn)行計數(shù),以求通過軟件來計算出所測溫度值。P0.7口用于定時/計數(shù)器T1的接口,水位傳感器通過環(huán)形振蕩器后,產(chǎn)生的方波的頻率(或周期),即可由T1的計數(shù),與T0的定時來求得。4.2 系統(tǒng)存儲器功能:本設(shè)計中將溫度傳感器所測出的溫度值的個位放入內(nèi)部RAM 30H中,將十位放入內(nèi)部RAM 31H中,將計數(shù)器T1讀取的計數(shù)值放入50H中,在測水位時,將T0計數(shù)器讀取的計數(shù)值存入60H中,經(jīng)軟件計算后,所得的用于衡量水位高度的頻率值放入20H中。查表程序中的數(shù)據(jù)表格,十六

35、進(jìn)制數(shù)字形代碼表如下:TABLE+00H TABLE+01HTABLE+02H.TABLE+0FH3FH012.F06H5BH.71H4.3 水溫水位顯示主程序:ORG 0000HAJMP MAINORG 0003HAJMP INT0ORG 0013HAJMP INT1ORG 0030HMAIN: ACALL LOOP1 ; 調(diào)用顯示水溫子程序ACALL DEL1 ; 延時子程序SETB P1.0 ; 不顯示溫度(以下是水位程序)SETB P1.1 ; 同上CLR P1.7 ; 水位燈位選為0MOV A,20H ; 將水位值送入(A)CJNE A,#a,PB0SETB P0.1SJMP FHP

36、B0: JNC TD0 ; 如果f比a大,則轉(zhuǎn)移,比a小是缺水狀態(tài)MOV R4,#05HSETB P1.6 ; 蜂鳴器每3分鐘叫一次LP6: MOV R3,#5AHLP5: MOV R7,#02H ;設(shè)置R7值LP2: MOV R6,#0FAH ;設(shè)置R6值LP1: SETB P1.0 ;十位顯示器位選置1SETB P1.1 ;個位顯示器位選置1CLR P1.7 ;水位顯示位選清0SETB P0.0 ;缺水指示燈亮ACALL DEL1 ;調(diào)用1ms延時子程序ACALL LOOP1 ; 調(diào)溫度顯示子程序DJNZ R6,LP1DJNZ R7,LP2MOV R7,#04HLP4: MOV R6,#0

37、FAHLP3: ACALL LOOP1; DJNZ R6,LP3DJNZ R7,LP4DJNZ R3,LP5CLR P1.6 ;關(guān)蜂鳴器DJNZ LP6MOV A,31HRL AADD A,30HCJNE A,#99,ZY ;溫度值不等990C則轉(zhuǎn)ACALL SHSHSJMP MAINZY: JNC BSH;溫度超過990C不上水,小于990C上水ACALL SHSHSJMP MAIN ;調(diào)轉(zhuǎn)主程序BSH: CLR P1.4SJMP MAINTD0: CJNE A,#b,TD1 ; 水位值沒到50%則轉(zhuǎn)SETB P0.4 ;50%水位指示燈亮SJMP FHTD1: CJNE A,#c,TD2

38、;水位值沒到80%則轉(zhuǎn)SETB P0.5 ;80%水位指示燈亮SJMP FHTD2: CJNE A,#d,TD3SETB P0.6SJMP FHPB: SETB P0.5SJMP FH ;不缺水時水位指示燈顯示子程序以上為顯示水位子程序4.4 水溫顯示子程序: ORG 0050HLOOP1:MOV R0,#30HMOV DPTR,#TABLECLR P1.1SETB P1.7SETB P1.0ACALL LOOP2 ;先顯示個位ACALL DEL1SETB P1.1CLR P1.0INC R0ACALL LOOP2 ;再顯示十位RETORG 0070HLOOP2: MOV A,R0 ;查表子程

39、序MOVC A,A+DPTRTABLE: DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FHDB 77H,7CH,39H,5EH,79HDB 71H,00HMOV P0,ARETORG 0090HDEL1: MOV R6,#0F9H ;1ms延時子程序LOOP3: DJNZ R6,LOOP3RETFH: MOV A,31HRL AADD A,30HCJNE A,#60H,PD0SJMP MAINZP0: MOV A,20HCJNE A,#d SH0 ;水位小于100%則上水至500CSJMP MAINSH0: MOV R3,#09HZL2: MOV R7,

40、#OFFHZL1: MOV R6,#OFFHZL0: SETB P1.4ACALL DEL1 ;1msACALL LOOP1 ;1ms調(diào)水溫顯示ACALL DEL1 ;1msSETB P1.0SETB P1.1CLR P1.7ACALL TD0 ;調(diào)水位顯示MOV A,31HRL AADD A,30HCJNE A,#50H,JXX ;30分鐘內(nèi)有沒上水到500C,若沒轉(zhuǎn)移CLR P1.4SJMP MAINJXX: DJNZ R6,ZL0DJNZ R7,ZL1DJNZ R3,ZL2CJNE A,#50HCLR P1.4SJMP MAINZZH: ACALL DSH ;調(diào)低水壓上水SJMP SH0

41、4.5 中斷服務(wù)程序:ORG 0100HINT1: 0PUSH ACCMOV A,TH0CJNE A,61H,ZHYD2MOV A,TL0 ;讀低八位CJNE A,50H ;比較低八位SJMP ZHYD3 ;T0值沒有變化轉(zhuǎn)移ZHYD程序ZHYD2:MOV A,TH0 ;存放高八位MOV 61H,AMOV A,TL0MOV 60H,A ;存放低八位MOV 20H,#H ; 把所測水位值放入20H中ZHYD3:MOV TMOD,#51H ;設(shè)置T0定時,T1計數(shù)并采用方式2MOV TH0,#00HMOV TL0,#00HMOV TH1,#00HMOV TL1,#00HSETB TR0 ;啟動T0

42、SETB TR1 ;啟動T1POP ACCRET4.6 T0中斷服務(wù)程序: ORG 0200HINT0: CLR TR1MOV SP,PUSH ACCMOV A,TH1 ;讀高八位CJNE A,51H,ZHYD0 ;高八位不等,則兩數(shù)不等轉(zhuǎn)移MOV A, TL1 ;讀低八位CJNE A,50H ;比較低八位SJMP ZHDY1 ;相等則轉(zhuǎn)移ZHYD0:MOV A,TH1 ;放入高八位MOV 51H,AMOV A,TL0 ;放入低八位MOV 50H,ALOOP: MOV B,#XXHMUL ABMOV A,#YYHCLR CSUBB A,BCJNE A,#6AH ;看下所測溫度有沒超1000CL

43、OOP1:JNC LOOP2 ;低于1000C順序執(zhí)行,高于1000C轉(zhuǎn)移MOV R0,#00HCLR CCHAN2:SUBB A,#0AH ;減10JC CHAN3 ;不夠減轉(zhuǎn)移INC R0 ;夠減,十位數(shù)加1SJMP CHAN2 ;重復(fù)減10CHIN3: ADD A,#0AHMOV 31H,R0 ;BCD碼十位送顯緩MOV 30H,A ;BCD碼個位送顯緩ZHYD1:MOV TMOD,#15H ;設(shè)置T1定時,T0計數(shù)并采用方式1MOV TH0,#00H ;送初值MOV TL0,#00HMOV TH1,#00HMOV TL1,#00HSETB TR0 ;開啟T0計數(shù)SETB TR1 ;開啟

44、T1定時SJMP LOOP3LOOP2:MOV 30H,0FHMOV 31H,0FHACALL LOOP1 ;顯示溫度LOOP3:POP ACCRETI4.7 水位設(shè)置及缺水上水至預(yù)置水位的程序:ORG 0300HSHSH: MOV R1,#00HMOV AUXR1,#00H ;先將置位端KBF清 0MOV KBI,#0CH ;允許.P0.3,P0.2口中斷SETB EKB ;使能觸發(fā)MOV A,P0ORL A,#0CH ;將P0.2,P0.3位先置高,其它位不變MOV P0,AMOV A,P0JNB ACC.3,KEY ;P0.3為0,即鍵被按下ACALL SH50 ;未被按下,預(yù)置水位為5

45、0%SJMP FHZKEY3: INC R1MOV AUXR1,#00HCJNE R1,#05H,BJ1MOV R1,#01HACALL SH80SJMP FHZBJ1: CJNE R1,#01H,BJ2ACALL SH80SJMP FHZBJ3: CJNE R1,#03H,ZHD ACALL SH20SJMP FHZZHD: ACALL SH50FHZ: RETI4.8 上水及低水壓上水子程序: ORG 0400HSH50: MOV R4,#09HJX3: MOV R3,#6AHJX2: MOV R7,#04HJX1: MOV R6,#0FAHJX0: SETB P1.0SETB P1.1S

46、ETB P1.7SETB P0.4SETB P1.4 ;開電磁閥ACALL DEL1 ;1msMOV A,20HCJNE A,#b,JXSETB P1.3CLR P1.4 ;上水完畢關(guān)電磁閥SJMP FHDJX: DJNZ R6,JX0DJNZ R7,JX1DJNZ R3,JX2DJNZ R4,JX3MOV A,20HCJNE A,#b,CY ;采用低水壓上水SETB P1.3CLR P1.4SJMP FHDCY: ACALL DSHSJMP SH50FHD: RETORG 0500HSH80: MOV R4,#09HJX3: MOV R3,#6AHJX2: MOV R7,#04HJX1: M

47、OV R6,#0FAHJX0: SETB P1.0SETB P1.1CLR P1.7SETB P0.5SETB P1.4 ;開電磁閥ACALL DEL1 ;1msMOV A,20HCJNE A,#c,JXSETB P1.3CLR P1.4 ;上水完畢關(guān)電磁閥SJMP FHD1JX: DJNZ R6,JX0DJNZ R7,JX1DJNZ R3,JX2DJNZ R4,JX3MOV A,20HCJNE A,#a,CY ;采用低水壓上水CY: ACALL SDHSJMP SH80FHD: RETORG 0600HSH20: MOV R4,#09HJX3: MOV R3,#6AHJX2: MOV R7,

48、#04HJX1: MOV R6,#0FAHJX0: SETB P1.0 ;位選置1,不顯示十位SETB P1.1 ;不顯示個位CLR P1.7 ;顯示水位燈SETB P0.1 ;20%水位燈亮SETB P1.4 ;開電磁閥ACALL DEL1ACALL LOOP1MOV A,20HCJNE A,#a,JXSETB P1.3CLR P1.4SJMP FHDJX: DJNZ R6,JX0DJNZ R7,JX1DJNZ R3,JX2DJNZ R4,JX3MOV A,20HCJNE A,#a ,CYDSETB P1.3CLR P1.4SJMP FHDCYD: ACALL DSHSJMP SH20FHD; RETORG 0700HSH100: MOV R4,#09HJX3: MOV R3,#6AHJX2: MOV

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論