![[信息與通信]太陽能熱水器儀表軟硬件設計_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/5/c8fd866d-9783-4bb6-93f7-d5105583f68e/c8fd866d-9783-4bb6-93f7-d5105583f68e1.gif)
![[信息與通信]太陽能熱水器儀表軟硬件設計_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/5/c8fd866d-9783-4bb6-93f7-d5105583f68e/c8fd866d-9783-4bb6-93f7-d5105583f68e2.gif)
![[信息與通信]太陽能熱水器儀表軟硬件設計_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/5/c8fd866d-9783-4bb6-93f7-d5105583f68e/c8fd866d-9783-4bb6-93f7-d5105583f68e3.gif)
![[信息與通信]太陽能熱水器儀表軟硬件設計_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/5/c8fd866d-9783-4bb6-93f7-d5105583f68e/c8fd866d-9783-4bb6-93f7-d5105583f68e4.gif)
![[信息與通信]太陽能熱水器儀表軟硬件設計_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/5/c8fd866d-9783-4bb6-93f7-d5105583f68e/c8fd866d-9783-4bb6-93f7-d5105583f68e5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、硬件設計: 3.1 直流電源的設計:3.1.1 直流電源的圖解:本課題可采用集成三端穩壓器,只要加上一些外圍元件即可實現。其框圖和電路分別如下圖:3.1.2 方案論證:通過框圖分析,該電路由四個部分組成,它們的功能分述如下:(1) 電源變壓器它的任務是把電源電壓變壓到合適的大小。如果u2的值太大,會造成集成三端穩壓器7805的功耗太大,溫度升高,且浪費電能。反之,如果u2的值小到一定的程度,三端穩壓器不能正常工作,失去穩壓作用 。因此u2的值應大小合適,這個值應該使三端穩壓器在交流電網電壓最低和輸出電流最大時能正常工作。而且在正常穩壓的前提下,它的壓降盡可能小,以減少功耗。(2) 整流電路它的
2、任務是將正弦波變換成直流電壓。這里一般采用橋式整流電路來實現,即可用四個二極管來組成,也可用整流橋堆來完成,只是參數一定要選擇合理。(3) 濾波電路它的任務是將全濾波形通過 RC 濾波網絡以后變成更平坦的直流電壓,減小脈動,提高整流的效果。這時整流管中通過的電流的瞬時值要比平均值大得多,特別在接通電源瞬間有相當大的沖擊電流(即充電電流)通過整流管,這一點要引起注意。(4) 穩壓電路要求輸出恒定的直流電壓,且要達到提出的要求,3.1.3 方案實現 :(1)計算u2和C1查閱集成三端穩壓器的知了可知,對輸出電壓在5v12v之間的穩壓器,其輸入端的電壓一般要比輸出端電壓高5v。而輸出電壓在15v24
3、v的穩壓器,其兩端電壓差達到7v9v左右。在此,如果1,2兩端的電壓為12V,那么可以求得u2為10v。從電容濾波出發,C1的容量應足夠大,但C1的容量也不能太大,否則整流元件的瞬時電流太大,而且容量越大,電容器的體積越大,價格越貴,根據經驗綜合各方面情況,取C1=3300uF.(2) 整流元件的參數1)反向耐壓 根據橋式整流電路的性能可知,每個整流二級管在交流電網最高時承受的最大反向峰植電壓為: 為了安全,整流管的反向耐壓應比上述植高50%以上,因此選擇整流管時,其耐壓應按下式考慮:2)正向電流 橋式整流電路中,每個整流二極管的正向電流平均值是輸出電流的一半,其最大值為:由于整流管在接通電源
4、瞬間有相當大的沖擊電流(即充電電流)通過,因此,整流管的參數(正向電流平均值)應比上述值大(0.52)倍。若按比上述值大1.8倍考慮,則=1.8目前,市場上有各種規格的整流橋堆出售,它有兩個交流輸入端和兩個直流輸出端。由于它體積小,使用方便,價格較低,已成為常用整流元件。根據上面的計算,本電源可選用1A/25V的整流橋堆。(3) 變壓器二次繞組的電流由于電容濾波整流電路中,整流管的電流不是正弦波,變壓器二次繞組電流的有效值要比輸出電流大,一般情況下,前者是后者的(1.13)倍。這里我們取 因此,變壓器二次繞組的額定電流(交流有效值)應按2A設計。在本設計中,對電磁閥的直流電源的要求不不高,又因
5、為1,2兩端的電壓為12V,為節省資源,故可直接取用1,2兩端的電壓作為電磁閥的直流電壓,無需再另行設計12V穩壓電源。3.2 輸入接口電路:接口電路是一組電路,是中央處理器與存儲器、輸入/輸出設備等外設之間協調動作的控制電路。從更一般的意義上說,接口電路是在兩個電路或外設之間,使兩者動作條件相配合的連接電路。接口電路并不局限在中央處理器與存儲器或外設之間,如直接存儲器存取DMA接口電路就是控制存儲器與外設之間數據傳送的電路。接口電路的作用就是將來自外部設備的數據信號傳送給微處理器,微處理器對數據進行適當加工,再通過接口電路傳回外部設備。所以,接口電路的基本功能就是對數據傳送實現控制,具體包括
6、5種功能:地址譯碼、數據緩沖、信息轉換、提供命令譯碼和狀態信息、定時和控制。不同的接口電路用于不同的控制場合,因此其功能也各有特點。如并行接口電路不要求數據格式轉換功能,來自總線的并行數據就可直接傳送到并行外設中;而串行通信接口電路就必須具備將并行數據轉換為串行數據和將串行數據轉換為并行數據的功能。本設計所用到的傳感器,包括測水位的傳感器與測水溫的傳感器,分別作如下介紹:(1)水位傳感器:它的結構圖如下:說明:結構圖中的電阻外表面均不與水直接接觸,但分別與a、b、c、d 良好接觸,a、b、c、d用于感知水位。硬件圖中HD74HC04P是一個六反向器,管腳如下圖所示:它在本設計中用于接成環形振蕩
7、器。選擇合適電容、電阻值時,環形振蕩器就能根據每次傳感器的阻值產生相應特定周期的方波。 其中為水位傳感器的電阻值由傳感器的結構圖可看出:當水位未達到a時,即h<a時、這時傳感器的總阻值為4R,對應,系統處于缺水狀態。當ah<b時,傳感器電阻阻值為3R,對應,系統處于20%水位。當bh<c時,傳感器電阻阻值為2R,對應,系統處于50%水位。當ch<d時,傳感器電阻阻值為R,對應,系統處于80%水位。當h=d時,傳感器電阻阻值為0,對應,系統處于100%水位。其中,環形振蕩器產生的方波周期T(或f)可通過單片機P87LPC744BN的兩個定時/計數器(T0、T1)來確定,T
8、1用來計數,T0用來定時。所以,水位傳感器測水位的基本原理如下: (m為T1的計數值,為T0的定時值)。(2)水溫傳感器本設計可選選用具有負溫度系數的熱敏電阻來測水溫,熱敏電阻與普通電阻不同,它具有負的溫度特性,當溫度升高時,電阻值減小,它的應用是為了感知溫度。現選用MF51型直熱式負溫度系數熱敏電阻,它的技術特性如下:型號標稱電阻()材料常數()溫度系數()使用溫度范圍MF5115K33003.755+300520K36004.02080K39004.380100K43004.7它能滿足本設計的測量靈敏度要求和2%的測量精度要求,性價比較高。測量原理:與水位傳感器一樣,在設定好合適的參數(R
9、1、R2、Rs、C)后,對應每個熱敏電阻阻值,環形振蕩器便能產生一個特定周期的矩形波。 T可通過單片機的T0外部計數和T1內部定時的方式確定。故 然后通過下列公式求溫度: 其中 -被測溫度-與熱敏電阻特性有關的參數-與熱敏電阻特性有關的系數-熱敏電阻阻值以上計算均可由軟件編程實現,把計算出的溫度轉化成BCD碼,然后再存放于顯示緩沖區中,執行相應的功能程序。3.3 鍵盤中斷: 本系統存儲容量不大,4KROM,128RAM足夠,由于只有二個鍵,且不經常操作,所以本設計中采用了中斷方式,其中與P0.2口的鍵盤是用于手動上水功能,與P0.3口連接的鍵盤用于水位設置的功能。3.4 顯示接口:本設計中采用
10、了共陰極接法,對于顯示水溫水位的程序作如下說明: 在動態掃描過程中,調用延時子程序Del1,其延遲時間為1ms,這是為了使掃描到哪位顯示器穩定的點亮一段時間,猶如掃描過程中在每一位顯示器上都一段駐留時間,以保證其顯示亮度。 本設計接口電路是軟件為主的接口電路,對顯示數據以查表方法得到其字形代碼,為此在程序中有字形代碼Table,從0開始依次寫入十六進制數的字形代碼。為了進行查表操作,使用查表指令 MOVC A,A+DPTR,由DPTR提供16位基址,由A提供變址,因此顯示數據送A后,再由A送P0.1P0.6輸出給顯示器。(1)水位顯示:本系統需顯示水位,水位分缺水、20、50、80%五檔,均用
11、發光二極管來指示。(2)水溫顯示:本系統需顯示水溫,測量范圍為099 0C,用兩個八位LED數碼管顯示。1)LED結構和顯示原理。LED(Light Emitting Diode)顯示器是由發光二極管作為顯示字段的顯示器件,最常見的是由7段型發光二極管(ag7段)和1個圓點型發光二極管(常以dp表示,主要用來顯示小數點)組成的LED顯示器,其排列形狀如下圖所示。這種LED顯示器也可稱為7段數碼顯示器(或8段數碼顯示器)。LED顯示中的發光二極管根據其連接的方法有共陰極和共陽極兩種結構。共陰極結構:把各段發光二極管的陰極連接在一起構成公共陰極,如圖a所示。使用時,公共陰極接地,根據要求需點亮發光
12、二極管的陽極輸入高電平,不需點亮的發光二極管的陽極輸入低電平。共陽極結構:把各段發光二極管的陽極連接在一起構成公共陽極,如圖b 所示。使用時,公共陽極接+5V,根據要求需要點亮發光二極管的陰極輸入低電平,不需點亮的發光二極管的陰極輸入高電平。通過控制7個段的發光二極管的亮暗的不同組合,可以顯示多種數字、字母以及其他符號。2)字段碼。為了顯示各個數字或字符,就需要為LED提供相應的代碼,因為這些代碼是控制各段的亮或滅,供顯示器顯示字形的,所以稱為字段碼(也可以稱為段選碼或字形碼)。七段發光二極管再加上1個小數點位,共計8段,因此提供給LED顯示器的字段碼正好1個字節。各代碼位的對應關系如下:D7
13、 D6 D5 D4 D3 D2 D1 D0dpgfedcba下圖所示為共陰極LED所顯示的不同字符的字段碼,測量范圍為099 0C,當溫度超出范圍時,顯示器均顯示F。顯示字符共陰極字段碼03FH106H25BH34FH466H56DH67DH707H87FH96FHF71H3)N位LED顯示器。在單片機應用系統中,實際使用的LED顯示器有多個,N位LED顯示器的顯示要從兩個方面來控制:其一是控制N位的字段顯示(即顯示什么字符);其二是控制字位(即哪一位到哪一位亮)。由LED的顯示原理可知,要使某N位LED顯示器的某一位顯示某個字符,就必須將此字符轉換為對應的字段碼來控制該位的8個段,同時,該位
14、的字位線也要控制有效,這要通過一定接口來實現。LED顯示器有兩種顯示方式,即靜態顯示方式和動態顯示方式。N位LED顯示器有N根字位選線(簡稱:“位選線”)和N*8根字段選線(簡稱:“段選線”)。根據顯示方式不同,位選線和段選線的連接方式也不同。各種字符的字段碼的獲取方法有兩種:即軟件譯碼和硬件譯碼法。目前通常所用的各種型號的單片機開發系統或實驗裝置普遍采用軟件譯碼。當單片機應用系統中的LED顯示器位數較多時,為了簡化電路降低成本,本設計采用動態顯示的方式。動態顯示方式的接口電路的連接方法是:將所有LED位的段選線(a dp)同名并聯,即所有a段并聯,所有b段并聯。依次類推,然后由一個8位I/O
15、接口來控制各個段,而所有位的位選線則由另外一個相應的I/O接口線來控制。這樣用兩個8位I/O接口就能控制8位LED顯示器。LED顯示器是由電流型控制器件,其工作電流為2mA20mA,使用時須加限流電阻。本設計中限流電阻選用1K。動態掃描顯示控制方式就是逐個地循環點亮各位顯示器,即在某一瞬間,只讓某一位的位選線處于選通狀態(共陽極的為高電平,共陰極的為低電平)其它各位的位選線處于段開狀態,同時段選線上輸出相應位要顯示字符的字段碼。這樣在每一個瞬間,8位LED中只有選通的那一位LED顯示出字符,而其它7位則是熄滅的。同樣,在下一瞬間,只顯示下1位LED。如此繼續下去,等8位LED都顯示完畢后,在循
16、環進行。雖然這些字符是在不同的瞬時輪流點亮的,但由于人眼的視覺殘留效應,看到的是8位穩定顯示的字符,與靜態顯示的效果完全一樣。所以為了簡化電路、降低成本,此系統中采用動態顯示方式。3.5 電磁閥:由于本系統中執行機構控制的是電磁閥,因此需用三極管進行功率放大。3.6 晶振:為給單片機提供工作所需要的時鐘信號,本設計中采用了6MHZ的晶振。故系統中CPU執行的每一個機器周期為2us.3.7 主機: 主機的選擇是關鍵,選得好,可節省許多外圍電路,本設計采用的是由Philips公司生產的P87LPC764BN芯片,是20腳封裝的單片機,適合于要求高集成度、低成本的場合。采用80C51加速處理器結構,
17、指令執行速度是標準80C51的兩倍。片內有4K字節OTP程序存儲器,128字節的RAM。32Byte用戶代碼區可用來存放序列碼及設置參數;有看門狗電路、復位電路(使用片內上電復位時不需要外接組件);2個16位定時/計數器,2個A/D轉換器;所有口線均有20m A的驅動能力;電源電壓VDD=4.56.0(操作頻率為20MHZ)。本設計中已經充分利用了該單片機的所有I/O口,且已能滿足設計的要求,性價比高,組成了一個最小,最優化的系統?,F對P87LPC764BN這塊芯片作如下介紹:(1)概述:P87LPC76x是20腳封裝的單片機,適合于許多要求高集成度、低成本的場合??梢詽M足許多方面的性能要求。
18、作為Philips小型封裝系列中的一員,P87LPC76x提供高速和低速的晶振和RC振蕩方式,可編程選擇。具有較寬的操作電壓范圍??删幊蘄/O口線輸出模式選擇,可選擇施密特觸發輸入,LED驅動輸出。有內部看門狗定時器。P87LPC76x采用80C51加速處理器結構,指令執行速度是標準80C51 MCU的兩倍。 P87LPC76x采用增強型80C51 MCU,其運行速度是標準80C51的2倍,這意味著P87LPC76x在5MHZ時性能和標準80C51采用10MHZ時性能相同。一個機器周期由6個振蕩周期組成,大多數指令執行時間為6或12個振蕩周期,用戶亦可選擇工作在標準80C51 MCU時序,這時
19、一個機器周期變為12個振蕩周期。 “MCU時鐘”指控制內部指令執行的時鐘。當系統被設置成為標準80C51時序(由CLKR位確定)或通過設定DIVM寄存器分頻時,“MCU時鐘”和外部所加時鐘不同。(2)特性: 操作頻率為20MHz時,除乘法和除法指令外,加速80C51指令執行時間為300600ns。VDD=4.56.0V時,時鐘頻率可高達到20MHz,VDD=2.74.5V時,時鐘頻率最大為10MHz。 VDD=4.56.0V(P87LPC765HDH) 數字信號的操作電壓為2.76.0V。 P87LPC762
20、為2K字節OTP程序存儲器,P87LPC764為4K字節OTP程序存儲器,128字節的RAM。32Byte用戶代碼區可用來存放序列碼及設置參數。 2個16位定時/計數器,每一個均可設置為超時溢出時相應端口輸出。 八個鍵盤中斷輸入,另加2路外部中斷輸入。4個中斷優先級。 看門狗定時器利用片內振蕩,無需外接元件,看門狗定時器溢出時間有8級選擇。 低電平復位。使用片內上電復位時不需要外接元件。 低電壓復位。可選擇預先設定好的兩種電壓之一復位,當掉電時允許系統安全關閉。也可將其設置為一個中斷源。
21、 可選擇片內振蕩及其頻率范圍和RC振蕩(用戶通過對EPROM位編程選擇)。選擇RC振蕩器時不需外接振蕩器件。 如果選擇片內振蕩及復位時,P87LPC76x僅需要連接電源線和地線。 20腳DIP、SO和TSSOP封裝。管腳配置:邏輯符號:方框圖:(3)鍵盤中斷(KBI):鍵盤中斷功能主要是使得連至P87LPC76x特殊腳的鍵盤上任一鍵被按下時能產生一個中斷(見圖12)。該中斷可用于將MCU從空閑模式或掉電模式中喚醒。此特性尤其適合便攜式且使用電池供電的系統。 P87LPC76x允許端口0的部分或全部引腳被使能觸發中斷,這是通過對KB
22、I寄存器對應位置位完成的,如圖13所示。當打開KBI中斷功能后,任一被使能引腳被拉低都會將AUXR1寄存器內鍵盤中斷標志(KBF)置位。如若中斷允許則將產生一中斷。注意KBF位必須由軟件清除。 由于人對時間分辨精度及鍵開關閉合的機械延遲,KBI特性通常可用于中斷服務程序輪流查詢端口0以確定按下的是哪個鍵,甚至決定處理器從低功耗模式喚醒。參見低功耗模式部分。本系統存儲容量不大,4KROM,128RAM足夠,由于只有二個鍵,且不經常操作,所以本設計中采用了中斷方式,其中與P0.2口的鍵盤是用于手動上水功能,與P0.3口連接的鍵盤用于水位設置的功能。當產生鍵盤中斷時,用軟件判斷按下的是哪個鍵,框圖如
23、下:本設計中鍵盤中斷要實現兩個功能:水位設置和手動上水:1) 其中水位設置鍵與P0.3口連接,具體功能敘述如下:當水位不足情況下,未按下水位設置鍵時,默認預置水位為50%,在上水過程中,水位指示燈滅。當按一下水位設置鍵時,80%水位指示燈亮,表明要上水到80%;當按第二下水位設置鍵時,100%水位指使燈亮,表明要上水到100%;當按第三下水位設置鍵時,20%水位指示燈亮,表明缺水時,要上水到20%;當按第四下水位設置鍵時,預置水位又為50%,表明要上水到50%;在具體的軟件判別中,可通過查表P0.3是否置高電平來確認鍵盤有沒按下,可用MOV A,P0;JNB ACC、3等幾條指令來實現。通過對
24、每一次的鍵盤按動進行加1記錄,即當每次P0.3為高電平時,加一條INC R,指令,當R1為5時,又重新賦值為1,而后對R1的值進行判斷,以確認水位設置鍵到底設置了哪個水位,框圖如下: 2) 手動上水鍵與P0.2口連接,可用MOV A,P0;JNB ACC、2兩條指令來查看手動上水鍵有沒被按下。它的具體功能如下:按“上水”鍵,若水位低于預置水位,可上水至預置水位;若水位已達到預置水位,則在原水位的基礎上再加一檔;若水位已加滿,則停止手動加水,在上水過程中,按“上水”鍵,可停止上水。同水位設置鍵一樣,當奇數次按下此鍵時,表示要上水,當偶數次按下此鍵時,表示停止上水,框圖如下:(4)振蕩器:P87L
25、PC76x提供幾種用戶可選振蕩器選項,允許根據需要從高精度至最低成本范圍內選擇。這些選項在EPROM編程時配置。支持的基本振蕩器類型包括:低、中、及高速晶振,20KHz20MHz,陶瓷振蕩器及片內RC振蕩器。片內RC振蕩器選項(RC) 片內RC振蕩器典型頻率為6MHz,可通過DIVM寄存器分頻后獲取較低頻率。注意片內振蕩器頻 率有±25%誤差,因此不適于某些場合使用。使用RC振蕩器時X2/P2.0腳可用作標準端口引腳。此時亦可選擇X2/P2.0腳輸出時鐘。 時鐘輸出 P87LPC76x在選擇片內RC振蕩器或外部時鐘輸入時支持時鐘輸出功能。這使得外部器件可與P87LPC76x同步。對P
26、2M1寄存器的ENCLK置位后, 無論是否處于空閑模式, 只要片內振蕩器運行, X2/CLKOUT就有信號輸出。輸出時鐘頻率為MCU時鐘頻率的1/6。如果空閑模式時不需要時鐘輸出,可在進入空閑模式之前關閉輸出以節省電能。選擇外部時鐘時亦可輸出時鐘。 振蕩器必須設置為下列模式之一:低頻晶振 中頻晶振 高頻晶振 為限制晶振驅動電平可串聯電阻,對于低頻晶振尤其重要。 振蕩器須設置為外部時鐘輸入模式。將P2M1寄存器內CLK位置位可從X2腳輸出時鐘。(5)復位:P87LPC76x內部集成了上電復位電路,用于在器件上電時提供一個復位信號。建議使用內部復位以節省外部元件并可將P1.5作為通用的輸入口使用。
27、 P87LPC76x另外還可通過對用戶配置寄存器UCFG1中的RPD位編程為0,將P1.5作為外部低有效復位管腳RST。此時內部復位在器件上電時仍然有效。當RST腳的信號為低電平時,P87LPC76x保持復位直到信號變為高電平。 看門狗定時器可用于檢測振蕩器是否正常工作,因為看門狗定時器使用的是獨立的片內振蕩器。對UCFG1的描述見本手冊的“系統配置字節”一節。 將EPROM配置寄存器UCFG1內RPD位編程為1可關閉外部復位輸入,即選擇使用完全內部復位。(6)定時器計數器:P87LPC76x有兩個通用定時/計數器,與80C51定時器0及定時器1兼容。兩者均可選擇以計數器或定時器方式工作。另外
28、增加了定時器溢出時T0與/或T1腳自動翻轉的功能。 在用于定時器功能時,每個機器周期寄存器加1。所以可以視為計數機器周期。由于一個機器周期包含6個MCU時鐘周期,所以計數頻率為MCU時鐘頻率的1/6。有關MCU時鐘參見增強MCU一節。 在用于計數器功能時,寄存器在T0或T1腳的每一個下降沿加1。此時,每一個機器周期對外部輸入采樣一次。當某一周期時引腳狀態采樣為高而下一周期采樣為低,計數器加1。檢測到跳變的下一周期寄存器更換新值。由于檢測下降沿跳變需兩個機器周期,所以計數頻率最大值為MCU時鐘頻率的1/6。外部輸入信號占空比并無限制,但必須保證信號在改變之前至少被采樣一次,信號必須保持至少一個整
29、的機器周期。 通過特殊功能寄存器TMOD內控制位C/T選擇定時器或計數器功能。此外,定時器0及定時器1有4種工作模式,由TMOD內M1及M0選擇,模式0、1、2對于定時器及計數器是一樣的。模式3則不同。(7)看門狗定時器:看門狗定時器由一個完全獨立的振蕩器控制,以保證其最大限度的可靠性,它通過“WDTE”位啟動。當看門狗功能被啟動,定時裝置必須定時得到軟件的清除,以防止其溢出,對MCU復位,但是定時裝置不能被關閉。當不作為看門狗定時器(通過UCFG1寄存器的WDTE位控制),它將作為一個內部定時器使用,且產生中斷。看門狗定時器如圖31所示??撮T狗溢出時間選擇有8個數據,理論上時間跨度從16ms
30、到2.1秒。獨立的看門狗RC振蕩器的頻率誤差±37%,溢出時間和其它的控制位如圖32所示。當使能看門狗功能時,在芯片初始化時向WDCON寫入數據以設定看門狗溢出時間。建議初始化WDCON時,先清看門狗,然后寫“WDCON”配置的WDS20位。采用這種方式,能在10ms內完成設置,從而避免在初始化完成前看門狗溢出復位。 由于看門狗定時器振蕩器是一個完全獨立于MCU的片內振蕩電路,它實質上執行的是內部振蕩器失靈的檢測功能。當看門狗功能被啟動,無論MCU振蕩器因何故失靈,看門狗定時器都會溢出使MCU復位。 當看門狗功能被啟動,定時器會因由于其它原因造成芯片復位而暫時無效。如:電源復位、掉電
31、復位或外部復位等。(8)看門狗清“0”順序: 如果看門狗定時器正在進行,必須在其溢出產生復位前清“0”,看門狗清“0”順序包括:先寫立即數1EH,再寫0E1H到“WDRST”寄存器。下面是一個操作實例: WDFeed: MOV WDRST,#1EH MOV WDRST,#0E1H 這兩條寫WDRST的命令不必是連續的兩條指令。一個不正確的看門狗清“0”順序不會引起看門狗定時器的任何即刻反應。只要此時間之前沒有給它一個正確的清“0”,它仍然按最初設置的時間直到溢出。 發生芯片復位后,程序設計者清看門狗或改變溢出時間都有一定的限制時間。如果操作中使用低MCU時鐘頻率,那么在發生看門狗溢出之前能被執
32、行的指令非常少。 (9)附加功能:“AUXR1”寄存器由幾個特別控制位組成,這些位另幾種芯片功能相關。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口還作為水位設置的輸入口,在軟件中可查看該口的電平高低,以確認水位設置鍵是否被按下。同理,P0.2口作為上水鍵的輸入口,在軟件中可查看該口的電平高低,以確認水位設置鍵是否被按下。P1.0作
33、為顯示器顯示溫度值十位的位選,當P1.0=0時,顯示器才能顯示個位,否則 不顯示。P1.7作為水位燈顯示的位選,P1.7為高電平時,不顯示水位燈,P1.7為低電平時,水位燈才能顯示。P1.3口用于控制低水壓上水指示燈,當系統正處于低水壓上水時,低水壓上水指示燈閃亮,即P1.3先處于高電平1s,再處于低1s,重復一段時間。P1.6口用于控制蜂鳴器,當系統處于缺水狀態或低水壓上水時,蜂鳴器都會鳴叫,即讓P1.6處于高電平1 s,低電平1s,重復一定時間,以實現蜂鳴。P1.4口控制電磁閥,當系統需要上水或不上水時,即需通過軟件使P1.4處于高低電平,將P1.4置1時,打開電磁閥上水,將P1.4清0時
34、,關電磁閥。P2.1及P2.0口用于外接晶振,為單片機提供工作所需的脈沖。P1.2口是定時/計數器T0的接口,用于對溫度傳感器,通過環形振蕩器產生的方波進行計數,以求通過軟件來計算出所測溫度值。P0.7口用于定時/計數器T1的接口,水位傳感器通過環形振蕩器后,產生的方波的頻率(或周期),即可由T1的計數,與T0的定時來求得。4.2 系統存儲器功能:本設計中將溫度傳感器所測出的溫度值的個位放入內部RAM 30H中,將十位放入內部RAM 31H中,將計數器T1讀取的計數值放入50H中,在測水位時,將T0計數器讀取的計數值存入60H中,經軟件計算后,所得的用于衡量水位高度的頻率值放入20H中。查表程
35、序中的數據表格,十六進制數字形代碼表如下: TABLE+00H TABLE+01HTABLE+02H.TABLE+0FH3FH012.F06H5BH.71H4.3 水溫水位顯示主程序:ORG 0000HAJMP MAINORG 0003HAJMP INT0ORG 0013HAJMP INT1ORG 0030HMAIN: ACALL LOOP1 ; 調用顯示水溫子程序ACALL DEL1 ; 延時子程序SETB P1.0 ; 不顯示溫度(以下是水位程序)SETB P1.1 ; 同上CLR P1.7 ; 水位燈位選為0MOV A,20H ; 將水位值送入(A)CJNE A,#a,PB0SETB P
36、0.1SJMP FHPB0: JNC TD0 ; 如果f比a大,則轉移,比a小是缺水狀態MOV R4,#05HSETB P1.6 ; 蜂鳴器每3分鐘叫一次LP6: MOV R3,#5AHLP5: MOV R7,#02H ;設置R7值LP2: MOV R6,#0FAH ;設置R6值LP1: SETB P1.0 ;十位顯示器位選置1SETB P1.1 ;個位顯示器位選置1CLR P1.7 ;水位顯示位選清0SETB P0.0 ;缺水指示燈亮ACALL DEL1 ;調用1ms延時子程序ACALL LOOP1 ; 調溫度顯示子程序DJNZ R6,LP1DJNZ R7,LP2MOV R7,#04HLP4
37、: MOV R6,#0FAHLP3: ACALL LOOP1; DJNZ R6,LP3DJNZ R7,LP4DJNZ R3,LP5CLR P1.6 ;關蜂鳴器DJNZ LP6MOV A,31HRL AADD A,30HCJNE A,#99,ZY ;溫度值不等990C則轉ACALL SHSHSJMP MAINZY: JNC BSH;溫度超過990C不上水,小于990C上水ACALL SHSHSJMP MAIN ;調轉主程序BSH: CLR P1.4SJMP MAINTD0: CJNE A,#b,TD1 ; 水位值沒到50%則轉SETB P0.4 ;50%水位指示燈亮SJMP FHTD1: CJN
38、E A,#c,TD2 ;水位值沒到80%則轉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
39、 A,R0 ;查表子程序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,#09HZ
40、L2: MOV R7,#OFFHZL1: MOV R6,#OFFHZL0: SETB P1.4ACALL DEL1 ;1msACALL LOOP1 ;1ms調水溫顯示ACALL DEL1 ;1msSETB P1.0SETB P1.1CLR P1.7ACALL TD0 ;調水位顯示MOV A,31HRL AADD A,30HCJNE A,#50H,JXX ;30分鐘內有沒上水到500C,若沒轉移CLR P1.4SJMP MAINJXX: DJNZ R6,ZL0DJNZ R7,ZL1DJNZ R3,ZL2CJNE A,#50HCLR P1.4SJMP MAINZZH: ACALL DSH ;調低水
41、壓上水SJMP SH04.5 中斷服務程序:ORG 0100HINT1: 0PUSH ACCMOV A,TH0CJNE A,61H,ZHYD2MOV A,TL0 ;讀低八位CJNE A,50H ;比較低八位SJMP ZHYD3 ;T0值沒有變化轉移ZHYD程序ZHYD2:MOV A,TH0 ;存放高八位MOV 61H,AMOV A,TL0MOV 60H,A ;存放低八位MOV 20H,#H ; 把所測水位值放入20H中ZHYD3:MOV TMOD,#51H ;設置T0定時,T1計數并采用方式2MOV TH0,#00HMOV TL0,#00HMOV TH1,#00HMOV TL1,#00HSET
42、B TR0 ;啟動T0SETB TR1 ;啟動T1POP ACCRET4.6 T0中斷服務程序: ORG 0200HINT0: CLR TR1MOV SP,PUSH ACCMOV A,TH1 ;讀高八位CJNE A,51H,ZHYD0 ;高八位不等,則兩數不等轉移MOV A, TL1 ;讀低八位CJNE A,50H ;比較低八位SJMP ZHDY1 ;相等則轉移ZHYD0:MOV A,TH1 ;放入高八位MOV 51H,AMOV A,TL0 ;放入低八位MOV 50H,ALOOP: MOV B,#XXHMUL ABMOV A,#YYHCLR CSUBB A,BCJNE A,#6AH ;看下所測
43、溫度有沒超1000CLOOP1:JNC LOOP2 ;低于1000C順序執行,高于1000C轉移MOV R0,#00HCLR CCHAN2:SUBB A,#0AH ;減10JC CHAN3 ;不夠減轉移INC R0 ;夠減,十位數加1SJMP CHAN2 ;重復減10CHIN3: ADD A,#0AHMOV 31H,R0 ;BCD碼十位送顯緩MOV 30H,A ;BCD碼個位送顯緩ZHYD1:MOV TMOD,#15H ;設置T1定時,T0計數并采用方式1MOV TH0,#00H ;送初值MOV TL0,#00HMOV TH1,#00HMOV TL1,#00HSETB TR0 ;開啟T0計數S
44、ETB TR1 ;開啟T1定時SJMP LOOP3LOOP2:MOV 30H,0FHMOV 31H,0FHACALL LOOP1 ;顯示溫度LOOP3:POP ACCRETI4.7 水位設置及缺水上水至預置水位的程序:ORG 0300HSHSH: MOV R1,#00HMOV AUXR1,#00H ;先將置位端KBF清 0MOV KBI,#0CH ;允許.P0.3,P0.2口中斷SETB EKB ;使能觸發MOV A,P0ORL A,#0CH ;將P0.2,P0.3位先置高,其它位不變MOV P0,AMOV A,P0JNB ACC.3,KEY ;P0.3為0,即鍵被按下ACALL SH50 ;
45、未被按下,預置水位為50%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.
46、0SETB P1.1SETB P1.7SETB P0.4SETB P1.4 ;開電磁閥ACALL DEL1 ;1msMOV A,20HCJNE A,#b,JXSETB P1.3CLR P1.4 ;上水完畢關電磁閥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
47、,#04HJX1: MOV 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 ;上水完畢關電磁閥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,#6AHJ
48、X2: MOV R7,#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 R7,#
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業技術秘密保護合同
- 與日歷有關的課件模板
- 上海邦德職業技術學院《水泵及水泵站》2023-2024學年第二學期期末試卷
- 云南省曲靖市師宗縣部分校2025屆小升初模擬數學測試卷含解析
- 宣城市廣德縣2025屆小學六年級第二學期小升初數學試卷含解析
- 寧夏大學新華學院《即興伴奏Ⅰ》2023-2024學年第一學期期末試卷
- 江西省九江市名校2025屆初三第二次質量考評英語試題試卷含答案
- 石家莊鐵路職業技術學院《數字插畫設計》2023-2024學年第二學期期末試卷
- 山東省臨朐市重點達標名校2025屆中考化學試題壓軸試卷含解析
- 南華大學船山學院《醫學哲學》2023-2024學年第一學期期末試卷
- “當代文化參與”學習任務群相關單元的設計思路與教學建議課件(共51張PPT)
- 常見實用急救技術
- 婚禮執事單模板
- 《紅色旅游線路設計》
- 冷鏈產品運輸記錄表
- 導線的連接精品課件
- 二年級美術下冊課件-第14課 蟲蟲蟲(一)2-蘇少版(共22張PPT)
- 兒童保健學課件:緒論
- 論提高行政效率的途徑 開題報告
- 濃縮機的選擇與計算
- 滬教版六年級下冊單詞表
評論
0/150
提交評論