【正文】
附錄 1鍵盤(pán)輸入主程序:MOV P1, 0FH ;鍵盤(pán)初始化,~,~MOV IE, 84H ;開(kāi)CPU中斷,開(kāi)INT1中斷SJMP $ ;中斷等待中斷服務(wù)程序:ORG 0013 ;INT1中斷入口地址LJMP IO51K16 ;從中斷入口轉(zhuǎn)移鍵盤(pán)處理程序IO51K16IO51K16: CALL D10MS ;延時(shí)10秒LCALL KEYIN ;調(diào)鍵輸入檢查子程序JNZ LKOUT ;有鍵輸入,轉(zhuǎn)查鍵號(hào)RETI ;無(wú)鍵輸入,中斷返回LKOUT: MOV R2, 0EFH ;首列掃描字寫(xiě)如R2MOV R4, 00H ;首列偏移值如R4CONU: MOV P1, R2 ;列掃描字寫(xiě)入列線中MOV A, P1 ;讀入P1口狀態(tài)到A中JB ,LONE ;檢查第0行是否為0狀態(tài),不為0表示按下鍵不在此行,轉(zhuǎn)下行MOV A, 00H ;第0行為0狀態(tài),表明按下鍵在此行,首列號(hào)如AAJMP LKP ;轉(zhuǎn)求鍵號(hào)LONE: JB , LTWO ;檢查第1行有無(wú)鍵按下MOV A, 04H ;有鍵按下,該行首列號(hào)入AAJMP LKP ;轉(zhuǎn)求鍵號(hào)LTWO: JB , LTHR MOV A, 08H AJMP LKPLTHR: JB , NEXT ;該列所有行都無(wú)鍵按下,轉(zhuǎn)NEXT MOV A, 0CH ;有鍵按下,該行首列號(hào)入A中LKP: ADD A, R4 ;求鍵號(hào),鍵號(hào)位首列號(hào)加列偏移值 PUSH A ;鍵號(hào)入棧保護(hù)WKFE: LACLL KEYIN ;等待鍵釋放 JNZ WKFE ;鍵未釋放轉(zhuǎn)WKFE等待 POP A ;鍵釋放,鍵號(hào)如A LJMP KJMP ;轉(zhuǎn)鍵操作轉(zhuǎn)處理 NEXT: INC R4 ;轉(zhuǎn)查下一列,列偏移值加1 MOV A, R2 JNB , KND ;最后一列查完?查完中斷返回 RL A ;未查完,列掃描字左移1位 MOV R2, A ;掃描字如R2繼續(xù)查找 LJMP CONUKND: RETIKEYIN: MOV P1, 0FH ;查完有無(wú)鍵按下,A不為0,有鍵按下 MOV A, P1 CPL A ANL A, 0FHRETKJMP: SUB A,OFH JC W riteTemp ADD A, 0FH CLR C SUB A, 0EH JC StoreTemporTime ADD A, 0EH CLR C SUB A, ODH JC Waterpoistion ADD A, ODH CLR C SUB A, 0CH JC Vtemp ADD A, 0CH CLR C SUB A, OBH JC StoreTime RETI ORG 0003H JMP Heat RET附錄2LED顯示子程序:DISI:SETB 。因此,在編寫(xiě)顯示驅(qū)動(dòng)程序之前,首先需要計(jì)算列寫(xiě)出與本電路對(duì)應(yīng)的LED段選碼 ,再并行輸出到LED 的段選端。系統(tǒng)主程序流程圖如圖4所示。輸出信號(hào)有:4位LED數(shù)碼管分時(shí)顯示當(dāng)前溫度和液位,3個(gè)位輸出控制繼電器分別控制上水電磁閥、加熱泵、增壓泵,1個(gè)位輸出控制蜂鳴器作為低水位報(bào)警信號(hào)和其他異常情況報(bào)警,2個(gè)位輸出指示上水、加熱狀態(tài)?! ≡O(shè)定定時(shí)加熱時(shí)間:每天在規(guī)定時(shí)間檢查水溫,若水溫低于設(shè)定溫度,則接通電加熱器,將水溫加熱到設(shè)定溫度。K,誤差有幾種等級(jí):177。 右圖中XTAL1為內(nèi)部時(shí)鐘工作電路的輸入,XTAL2為來(lái)自反向振蕩器的輸出。由于OP07具有非常低的輸入失調(diào)電壓(對(duì)于OP07A最大為25μV),所以O(shè)P07在很多應(yīng)用場(chǎng)合不需要額外的調(diào)零措施。吸合電流是指繼電器能夠產(chǎn)生吸合動(dòng)作的最小電流。電磁繼電器的工作原理和特性電磁式繼電器一般由鐵芯、線圈、銜鐵、觸點(diǎn)簧片等組成的。學(xué)習(xí)并使用ADC0832 可是使我們了解A/D轉(zhuǎn)換器的原理,有助于我們單片機(jī)技術(shù)水平的提高。計(jì)數(shù)器設(shè)置為 55℃。所以為了簡(jiǎn)化電路、降低成本,此系統(tǒng)中采用動(dòng)態(tài)顯示方式。LED顯示器有兩種顯示方式,即靜態(tài)顯示方式和動(dòng)態(tài)顯示方式。1)LED結(jié)構(gòu)和顯示原理。綜上所述,太陽(yáng)能供熱控制系統(tǒng)不僅節(jié)約而且高度只能化,方便省事,不論日常家居,還是對(duì)賓館、學(xué)校等都是最佳選擇。電阻加熱絲:主要用來(lái)加熱水箱中水,使其達(dá)到用戶(hù)所需要的溫度。這種顯示器(還稱(chēng)不上控制器)不具有溫度控制功能,當(dāng)由于天氣原因而光強(qiáng)不足時(shí),就會(huì)給熱水器用戶(hù)帶來(lái)不便;即使熱水器具有輔助加熱功能,由于加熱時(shí)間不能控制而產(chǎn)生過(guò)燒,從而浪費(fèi)大量的電能。Which has not been largescale use.因而尚未被人們大規(guī)模的使用。太陽(yáng)能熱水器順呼時(shí)代發(fā)展的要求,滿(mǎn)足人們對(duì)環(huán)保綠色產(chǎn)品的需求。It uses a simple and convenient.第二章 設(shè)計(jì)思路及要求本設(shè)計(jì)具有很強(qiáng)的實(shí)用性,用成本低廉的電阻式傳感器以及電極配以單片機(jī)技術(shù)對(duì)生產(chǎn)實(shí)際中的太陽(yáng)能熱水器的水溫的控制以及水位的顯示。(2)循環(huán)水集熱過(guò)程早晨水溫控制之后(7~9點(diǎn)),設(shè)定當(dāng)日的水箱溫度N(由兩位BCD次齒輪開(kāi)關(guān)設(shè)定),輸入微機(jī),再利用微機(jī)控制系統(tǒng),通過(guò)太陽(yáng)光能對(duì)熱水箱加熱以達(dá)到理想溫度N。 (2)、AT89S51主要功能特性兼容MCS51指令系統(tǒng)32k可反復(fù)擦寫(xiě)(1000次)Flash ROM32個(gè)雙向I/O口硬件看門(mén)狗WDT電路3個(gè)16位可編程定時(shí)/計(jì)數(shù)器時(shí)鐘頻率033MHz兩個(gè)串行中斷5128bit內(nèi)部RAM2個(gè)外部中斷源內(nèi)置時(shí)鐘振蕩器中斷激活睡眠模式3級(jí)加密位雙重?cái)?shù)據(jù)存儲(chǔ)器軟件設(shè)置睡眠和喚醒功能由單片機(jī)的定時(shí)器To做16位計(jì)數(shù)器(為便于數(shù)據(jù)處理,這里只用低8位計(jì)數(shù)值,即寄存器TL0中的值)。使用時(shí),公共陰極接地,根據(jù)要求需點(diǎn)亮發(fā)光二極管的陽(yáng)極輸入高電平,不需點(diǎn)亮的發(fā)光二極管的陽(yáng)極輸入低電平。當(dāng)單片機(jī)應(yīng)用系統(tǒng)中的LED顯示器位數(shù)較多時(shí),為了簡(jiǎn)化電路降低成本,本設(shè)計(jì)采用動(dòng)態(tài)顯示的方式。(1)DS18B20的特性1)獨(dú)特的單線接口方式。它們有嚴(yán)格的時(shí)隙概念。C;芯片圖:圖35 ADC0832程序占用資源有累加器A,工作寄存器R7,通用寄存器B 和特殊寄存器CY。熱敏干簧繼電器的工作原理和特性熱敏干簧繼電器是一種利用熱敏磁性材料檢測(cè)和控制溫度的新型熱敏開(kāi)關(guān)。這時(shí)的電流遠(yuǎn)遠(yuǎn)小于吸合電流 觸點(diǎn)切換電壓和電流是指繼電器允許加載的電壓和電流。低失調(diào)電壓漂移: ℃ 。本控制裝置就是利用水的導(dǎo)電性來(lái)完成的。OP07為高精度運(yùn)算放大器,AD590電流流經(jīng)RRP1轉(zhuǎn)換為電壓信號(hào),RRP2為運(yùn)算負(fù)反饋電阻,成反相比例放大器,將溫度信號(hào)轉(zhuǎn)換成05V的電壓信號(hào),ADC0832再將其轉(zhuǎn)換為數(shù)字信號(hào),輸入CPU。(為了編程簡(jiǎn)單、方便,采用獨(dú)立式鍵盤(pán)電路)當(dāng)按鈕按下后,電路與地接通時(shí),I/U口與地面相連為低電平。這樣,僅用一個(gè)ADC通道可以實(shí)現(xiàn)多路數(shù)字信號(hào)的輸入。為了避開(kāi)繁瑣的計(jì)算過(guò)程,本系統(tǒng)中采用了模糊控制思想,使用了如下一些控制語(yǔ)句:IF 水位高AND 溫度差大THEN 加熱時(shí)間長(zhǎng)IF 水位適中AND 溫度差適中THEN 加熱時(shí)間適中IF 水位低AND 溫度差低THEN 加熱時(shí)間少采用這種思想后,可以用實(shí)驗(yàn)方法獲得各種情況下需要加熱的時(shí)間, 編制成表格。 設(shè)計(jì)前期通過(guò)KEIL軟件和PROTEUS仿真軟件的聯(lián)調(diào),對(duì)設(shè)計(jì)功能進(jìn)行仿真,均達(dá)到了預(yù)期的設(shè)計(jì)效果,設(shè)計(jì)后期,硬件制作完畢后,將仿真成功后的程序通過(guò)單片機(jī)下載程序,寫(xiě)入單片機(jī),再根據(jù)顯示模塊的各個(gè)端口連接方式,正確地將單片機(jī)跟顯示模塊連接,最后都實(shí)現(xiàn)了設(shè)計(jì)的功能。送出顯示DL1:JNB TI, DL1 。在設(shè)計(jì)過(guò)程中,也學(xué)會(huì)了很多新的東西,PROTEL軟件繪制電路原理圖和PCB圖,以及一些仿真軟件的應(yīng)用,最典型的就是PROTEUS軟件的應(yīng)用,以及與KEIL軟件的聯(lián)合使用功能。這樣,CPU 讀入的A1水位查表后得到的預(yù)加熱時(shí)間是實(shí)驗(yàn)中水位在B1 處的時(shí)間。熱水器不論在什么樣的天氣里,都能夠在設(shè)定的時(shí)間向用戶(hù)提供設(shè)定溫度的熱水,從而給用戶(hù)帶來(lái)便利。但AT89S51單片機(jī)驅(qū)動(dòng)能力有限,且高電平比低電平驅(qū)動(dòng)低那六小。進(jìn)入“直接控制”后,S2用來(lái)手動(dòng)上水,S3用來(lái)手動(dòng)加熱,S4用來(lái)停止加熱或上水?! ‘?dāng)chd時(shí),傳感器電阻阻值R為R,對(duì)應(yīng),系統(tǒng)處于80%水位。在AT89S51的基礎(chǔ)上,加復(fù)位電路、時(shí)鐘電路、EA引腳信號(hào)及電源即可。 特點(diǎn): 在零壓差或真空、高壓時(shí)亦能可*動(dòng)作,但功率較大,要求必須水平安裝。按開(kāi)關(guān)型式可分為常開(kāi)型和常閉型??煞譃殡姎饬?如電流、電壓、頻率、功率等)繼電器及非電量(如溫度、壓力、速度等)繼電器兩大類(lèi)。DS18B20傳感器精度高、互換性好。溫度傳感