版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、河南農(nóng)業(yè)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)報(bào)告課題:魚缸自動(dòng)換水系統(tǒng)設(shè)計(jì)系 部: 電子信息工程系專 業(yè): 電氣自動(dòng)化班 級(jí): 07-1姓 名: xxx指導(dǎo)老師: xxx2011年6月26日目 錄:第一章 總體方案設(shè)計(jì)3第二章 硬件設(shè)計(jì) 4 2.1 控制核心AT89S52單片機(jī)42.2 八段四位共陽極數(shù)碼管 72.3穩(wěn)壓電路設(shè)計(jì) 92.4電磁閥的結(jié)構(gòu)原理 102.5熱繼電器 102.6微型水泵 112.7水位器的選擇 11第三章 軟件設(shè)計(jì) 123.1換水時(shí)間及換水量選擇 123.2控制過程 123.3程序設(shè)置 143.4編程程序 16第四章 系統(tǒng)安裝與調(diào)試 264.1軟件調(diào)試 264.2系統(tǒng)調(diào)試 26結(jié)束語 27
2、辭謝 27參考文獻(xiàn) 28附錄1 29附錄2 30摘 要:養(yǎng)魚的朋友都知道,水質(zhì)對(duì)魚兒影響是最嚴(yán)重的,好的水質(zhì)可以使你的魚兒健康生長,怎樣才能保證水質(zhì)呢?只有經(jīng)常換水,對(duì)現(xiàn)在上班族來說換水是很麻煩的,占用很長的時(shí)間,對(duì)魚缸的市場前景考慮,分析自動(dòng)換水魚缸實(shí)現(xiàn)的必要性和可行性,選用合適的單片機(jī)芯片和多種外圍器件,完成硬件和軟件的整體設(shè)計(jì),最終實(shí)現(xiàn)了一個(gè)每天按時(shí)定量換水控制系統(tǒng)關(guān)鍵詞:自動(dòng)換水系統(tǒng);定時(shí)控制;實(shí)時(shí)顯示第一章 總體方案設(shè)計(jì)魚缸自動(dòng)換水系統(tǒng)的原理圖如圖1-1所示:圖1-1 魚缸自動(dòng)換水系統(tǒng)原理圖原理圖中的電磁閥(2)和水位器主要控制水位起到雙保險(xiǎn),用單片機(jī)控制更精確。有效防止水流出缸外。
3、電磁閥(1)和抽水馬達(dá)是把想要換的沉水抽出,換水的多少由單片機(jī)設(shè)定,流量的大小是用微量調(diào)控運(yùn)行的情況。工作過程為:用單片機(jī)控制電磁閥.電源接通電磁閥就開起,水管就通了。反之電磁閥電源關(guān)閉水管斷流。進(jìn)水管直接接在自來水管子上。進(jìn)水的多少要看想要換多少水(抽掉的水)這也是用單片機(jī)控制電磁閥和抽水馬達(dá)。排水管接在抽水馬達(dá)噴水口只要接通電源水就會(huì)往外排,如果每天按排水一小時(shí)30升水來計(jì)算的話,一個(gè)星期能換掉210升水(定時(shí)器控制排水電磁閥開起電源一小時(shí))。方法是用定時(shí)器設(shè)定時(shí)間比如下午1-2點(diǎn)排水 2-3點(diǎn)進(jìn)水 ,這個(gè)過程就是自動(dòng)循環(huán)的換水。定時(shí)器設(shè)定時(shí)間長短和調(diào)節(jié)電磁閥上的微調(diào)是控制換水的多少和水的
4、流量。水位器是控制水位的高度,進(jìn)水管接在水位器上起到雙重保護(hù),以防水溢出魚缸。第二章 硬件設(shè)計(jì)本章中,我主要介紹組成自動(dòng)換水魚缸的硬件,以及它們之間的聯(lián)系,在這個(gè)系統(tǒng)中起到的作用。2. 1 控制核心AT89S52單片機(jī)功能特性概述AT89S52是一種低功耗、高性能CMOS8位微控制器,在系統(tǒng)可編程Flash中擁有8k容量的存儲(chǔ)器。它是使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。而且Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈
5、活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)可編程Flash存儲(chǔ)器,256字節(jié)RAM,32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工UART串行通道,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。 單片機(jī)的特點(diǎn)主要有一下幾點(diǎn):l 與MCS-51單片機(jī)產(chǎn)品兼容;l 1000次擦寫周期;l 全
6、靜態(tài)操作:0Hz33Hz;l 三級(jí)加密程序存儲(chǔ)器;l 八個(gè)中斷源;l 低功耗空閑和掉電模式;l 掉電后中斷可喚醒;l 掉電標(biāo)識(shí)符; AT89S52的芯片管腳圖如圖2-1圖2-1 AT89S52芯片管腳圖各引腳的功能說明:VCC:電源GND: 接地點(diǎn)P0 口:P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時(shí),P0口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。P1 口:P
7、1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū);為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T2EX),含義如下:P1.0 T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出P1.1 T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制)P2 口:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為
8、輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVXDPTR)時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX RI)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉
9、低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用;在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。引腳的功能如表2-1所示:表2-1 P3口的特殊功能引腳名稱含義P3.0 RXD串行輸入P3.1 TXD串行輸出P3.2 INT0外部中斷0P3.3 INT0外部中斷0P3.4 T0定時(shí)器0外部輸入P3.5 T1定時(shí)器1外部輸入P3.6 WR外部數(shù)據(jù)存儲(chǔ)器寫選通 P3.7 RD外部數(shù)據(jù)存儲(chǔ)器寫選通RST: 復(fù)位輸入。晶振工作時(shí),RST腳持續(xù)2 個(gè)機(jī)器周期時(shí),高電平將使單片機(jī)復(fù)位。當(dāng)看門狗計(jì)時(shí)完成后,RST 腳輸出96 個(gè)晶振周期的高電平。另外
10、,在地址8EH上的特殊寄存器AUXR上的DISRTO位可以使此功能無效,當(dāng)DISRTO處于默認(rèn)狀態(tài)下,復(fù)位高電平有效。ALE/PROG:地址鎖存控制信號(hào)ALE是訪問外部程序存儲(chǔ)器時(shí),鎖存低8 位地址的輸出脈沖。在flash編程時(shí),此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過。如果需要,通過將地址為8EH的SFR的第0位置設(shè)置為 “1”時(shí),ALE操作將無效。這一位置為“0”時(shí),ALE 僅在執(zhí)行MOVX 或MOVC指令時(shí)有效。否則,ALE 將被微弱拉高。這
11、個(gè)ALE 使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無效。PSEN:表示外部程序存儲(chǔ)器選通信號(hào)。當(dāng)AT89S52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),PSEN在每個(gè)機(jī)器周期中被激活兩次,而在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),PSEN不被激活。EA/VPP:訪問外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H 到FFFFH的外部程序存儲(chǔ)器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。在flash編程期間,EA也接收12伏VPP電壓。XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。2.1.4單片機(jī)硬件資源的分配P0.0-
12、P0.7連接四位共陽極數(shù)碼管;P20連接按鍵K1;P21 連接按鍵K2;P22 連接按鍵K3;P23連接按鍵K4;2.2 七段四位共陽極數(shù)碼管數(shù)碼管介紹七段數(shù)碼管是由7個(gè)發(fā)光二極管單構(gòu)成。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。結(jié)構(gòu)圖如圖2-2所示:圖2-2 數(shù)碼管結(jié)構(gòu)示意數(shù)碼管的驅(qū)動(dòng)方式數(shù)碼管與單片機(jī)的連接電路如圖2-3所示,數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯
13、示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,每個(gè)數(shù)碼管顯示出字形取決于單片機(jī)對(duì)位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就會(huì)顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮。通過分時(shí)輪流控制各個(gè)數(shù)碼管的的COM端,就會(huì)使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為12ms,能夠節(jié)省大量的I/O端口,而且功耗更低。圖2-3 數(shù)碼管與單片機(jī)連接電路2.3穩(wěn)壓電路設(shè)計(jì)穩(wěn)壓電
14、路中含有元器件H7805,它的外形圖如圖2-4所示,它是3 端正穩(wěn)壓電路,TO-220 封裝,能提供多種固定的輸出電壓,應(yīng)用范圍比較廣。內(nèi)含過流、過熱和過載保護(hù)電路,帶散熱片時(shí),輸出電流可達(dá) 1A。雖然是固定穩(wěn)壓電路,但使用外接元件,可獲得不同的電壓和電流。 它的各個(gè)腳的含義為:1輸入,INPUT ;2地,GND ;3輸出,OUTPUT TO-220。圖2-4 元器件H7805的外形圖它的主要特點(diǎn):輸出電流可達(dá) 1A;輸出電壓有5V ;內(nèi)含有過熱保護(hù)、短路保護(hù)、輸出晶體管 SOA 保護(hù);以及一些極限值:(Ta=25) VI輸入電壓(VO=518V) 35V ;RJC熱阻 5/W;RJA熱阻 6
15、5/W;TOPR工作結(jié)溫范圍 0125;H7805在硬件電路中的使用,起到固定輸出電壓作用,使按鍵更好的使用,如圖所示2-5所示:圖2-5 H7805在電路中的連接24電磁閥的結(jié)構(gòu)原理 直動(dòng)式電磁閥有常閉型和常開型二種。在我的魚缸自動(dòng)換水的系統(tǒng)中主要采用常閉型,它在斷電時(shí)呈關(guān)閉狀態(tài),當(dāng)線圈通電時(shí)產(chǎn)生電磁力,使動(dòng)鐵芯克服彈簧力同靜鐵芯吸合直接開啟閥,介質(zhì)呈通路;當(dāng)線圈斷電時(shí)電磁力消失,動(dòng)鐵芯在彈簧力的作用下復(fù)位,直接關(guān)閉閥口,介質(zhì)不通。此電磁閥結(jié)構(gòu)簡單,動(dòng)作可靠,在零壓差和微真空下正常工作。結(jié)構(gòu)如圖2-6所示:圖2-6 直動(dòng)式電磁閥結(jié)構(gòu)圖2.5熱繼電器繼電器在通俗意義上來說就是開關(guān),在條件滿足的
16、情況下關(guān)閉或者開啟。繼電器的開關(guān)特性在很多的控制系統(tǒng)尤其是離散的控制系統(tǒng)中得到廣泛的應(yīng)用。在我的魚缸自動(dòng)換水系統(tǒng)中用到了5V繼電器。它在電路中為交流電動(dòng)機(jī)起到過載保護(hù)作用,也起到了開關(guān)的作用。在我的系統(tǒng)電路中,繼電器的位置如圖2-7所示:圖2-7 繼電器與原理圖由圖中可以看出繼電器是用作開關(guān)使用的,控制電磁閥開與關(guān),當(dāng)K5接通時(shí),電磁閥1運(yùn)轉(zhuǎn)當(dāng)K6接通時(shí),電磁閥2運(yùn)轉(zhuǎn)26微型水泵微型水泵,在我魚缸自動(dòng)換水系統(tǒng)中起到抽水以及雜質(zhì)的作用。選用的水泵抽水量為0.015立方米/min它的主要特點(diǎn)有:體積超?。华?dú)有水氣兩用功能,工作介質(zhì)可以為氣體和液體(非油,無強(qiáng)腐蝕),有水抽水、有氣抽氣;可24小時(shí)連
17、續(xù)運(yùn)轉(zhuǎn);長期空轉(zhuǎn)屬正常工作,不會(huì)損壞泵;具備可靠自吸功能,吸程:1.5米,揚(yáng)程:3米。無油、不污染工作介質(zhì),免維護(hù)、任意方向安裝。2. 7水位器的選擇 在我的自動(dòng)換水系統(tǒng)里,定位器其實(shí)就是抽水馬桶里的定位器,為什么選擇它呢?主要是價(jià)格便宜,市場廣,在馬桶專賣店里就可以買到,定位器的原理很簡單,就是靠水的浮力和水的壓力來控制的。把定位器連接進(jìn)水管上,起到雙重保護(hù)。第 三 章 軟 件 設(shè) 計(jì)我的魚缸自動(dòng)換水系統(tǒng)是用單片機(jī)控制電磁閥的開與關(guān),每天換水的時(shí)間也是經(jīng)過精確的計(jì)算設(shè)置的。可在自動(dòng)模式中的設(shè)置時(shí)間,也可以通過手動(dòng)設(shè)置時(shí)間。31 換水時(shí)間及換水量選擇圖3-1 魚缸尺寸示意(長2米,寬0.65米
18、,高0.8米)魚缸的大小如圖3-1所示,首先我們要先求出魚缸水的體積,公式為:Vs=2*0.65*0.8*0.85=0.884(立方米)(注: 0.85的意思是水的體積是魚缸總體積的85%)根據(jù)有關(guān)資料證明,每天換水量占水總體積的15%是最好的,對(duì)魚兒的生長是最有利的,故可以算出每天換水量,所用公式為:Vh=0.884*0.15=0.1326立方米根據(jù)前面水泵的選擇,計(jì)算每天只要排15分鐘水就可以了。由于家里自來水每分鐘流量是一定的,根據(jù)實(shí)際考察所得算出進(jìn)水只需要20分鐘。算出每天換水的時(shí)間后,即在系統(tǒng)中設(shè)置,本系統(tǒng)開機(jī)后顯示實(shí)時(shí)時(shí)間,默認(rèn)是自動(dòng)控制兩個(gè)電磁閥。每天換水一般在中午,所以整個(gè)單片
19、機(jī)程序設(shè)置如下:電磁閥1接通時(shí)間為每天13:00,斷開時(shí)間13:20。電磁閥2接通時(shí)間為每天14:00,斷開時(shí)間14:15。3. 2控制過程:在自動(dòng)模式中,系統(tǒng)是根據(jù)我自己設(shè)定的時(shí)間控制兩個(gè)電磁閥在指定的時(shí)間接通和斷開。在手動(dòng)模式中,即在非設(shè)置狀態(tài)下,可通過按鍵控制電磁閥的接通與斷開,如下:點(diǎn)按K1鍵控制電磁閥1接通和斷開;點(diǎn)按K2鍵控制電磁閥2接通和斷開。自動(dòng)與手動(dòng)控制模式的切換方法為:首先點(diǎn)按K3鍵可查看狀態(tài), 自動(dòng)數(shù)碼管顯示OPEN, 手動(dòng)顯示OFF, 繼續(xù)點(diǎn)按K3鍵切換自動(dòng)/手動(dòng),數(shù)碼管會(huì)有相應(yīng)的顯示。在設(shè)置定時(shí)時(shí)間狀態(tài)下: LED2(out1on)亮表示設(shè)置電磁閥1定開時(shí)間 LED3
20、(out1off)亮表示設(shè)置電磁閥1定關(guān)時(shí)間 LED4(out2on)亮表示設(shè)置電磁閥2定開時(shí)間 LED4(out1off)亮表示設(shè)置電磁閥2定關(guān)時(shí)間詳細(xì)內(nèi)容請(qǐng)看圖3-2圖3-23.3程序設(shè)計(jì) 主程序設(shè)計(jì)主程序開始掃描顯示器更新時(shí)間數(shù)據(jù)初始化定時(shí)器初始化變量K1: 繼電器1 ON/OFFK2: 繼電器2 ON/OFFK3:點(diǎn)按顯示鐘控狀態(tài),長按設(shè)置定時(shí)時(shí)間K4:點(diǎn)按顯示秒,長按設(shè)置現(xiàn)在的時(shí)間是否按K1、K2、K3、K4鍵? 子程序設(shè)計(jì)主要控制子程序說明如下: Timer2_Server:定時(shí)器2計(jì)時(shí)中斷程序每隔31.25ms中斷一次; DELAY:延時(shí)子程序; feng:蜂鳴器鳴響處理程序;
21、display:工作LED閃動(dòng)控制;轉(zhuǎn)換數(shù)據(jù)為七段顯示器顯示數(shù)據(jù)并寫入顯示內(nèi)存內(nèi) LED_out:七段數(shù)碼管顯示程序; CONV:將時(shí)及分的數(shù)據(jù)轉(zhuǎn)換為七段顯示器顯示數(shù)據(jù)并寫入顯示內(nèi)存內(nèi); key:按*鍵檢測包括設(shè)置現(xiàn)在的時(shí)間小時(shí)及分鐘,查看/設(shè)置定時(shí)時(shí)間等中斷時(shí)間到對(duì)時(shí)分秒進(jìn)行計(jì)數(shù)執(zhí)行繼電器1 ON/OFF繼電器2 ON/OFF1秒是否到?對(duì)比2路定時(shí)時(shí)間是否到?中斷退出3.4編程程序/*P0.0P0.7與數(shù)碼管中的ABCDEFGH端口連接。 P1.0P1.3與數(shù)碼管中的S1,S2,S3,S4端口。 */#include <REGX52.H>#define uint unsigne
22、d int#define uchar unsigned charuchar code dispcode=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xC0,0x8E,0x8C,0x86,0xC8,;/* O F P EN */ uchar timecount,Hour,Cent,Second,qian,bai,shi,ge,THour,TCent,offTH,offTC,onTH2,onTC2,offTH2,offTC2;uchar disL,disH,keytemp,mbiao,App,onHour,onCent,offHo
23、ur,offCent;uchar onHour2,onCent2,offHour2,offCent2;bit biaoA;sbit led0=P10;sbit led1=P11;sbit led2=P12;sbit led3=P13;sbit led4=P37;sbit K0=P20;sbit K1=P21;sbit K2=P22;sbit K3=P23;sbit BP=P32;sbit Aout=P16;sbit Aout2=P17;void display();void key();uchar AddReduce(uchar dd,uchar max,char min);void Alar
24、m_clock();void LED_out();void delay(uchar i) /*延時(shí)*/ uint x; for(;i>0;i-) for(x=114;x>0;x-); /22.1184=228,11.0592=114void feng(uchar i) /*蜂鳴器*/ uint x; for(;i>0;i-)BP=BP; for(x=114;x>0;x-);BP=1;void main(void)Hour=12;Cent=00;/Second=50;onHour=13;onCent=0;offHour=13;offCent=20;biaoA=1;onHo
25、ur2=14;onCent2=0;offHour2=14;offCent2=15;RCAP2H=0x8F; /* 11.0592=8F80,22.1184=1F00 */RCAP2L=0x80;ET2=1; / 允許T2定時(shí)器中斷TR2=1; / 啟動(dòng)T2定時(shí)器EA=1;while(1)display();key();/*T2*中*斷*函*數(shù)*/void Timer2_Server(void) interrupt 5 using 3TF2=0;/清除溢出標(biāo)記timecount+;if(timecount=32)timecount=0;Second+;if(Second=60)Second=0;
26、Cent+;if(Cent=60)Cent=0;Hour+;if(Hour=24)Hour=0;Alarm_clock();switch (mbiao)case 0: disH=Hour;disL=Cent;break;case 1: disH=100;disL=Second;break; /*顯*示*函*數(shù)*/void display()if(disH=100)qian=10;bai=10;shi=disL/10;ge=disL%10;else if(disL=100)qian=disH/10;bai=disH%10;shi=10;ge=10;elseqian=disH/10;bai=dis
27、H%10;shi=disL/10;ge=disL%10;if(mbiao>3)if(timecount>16)if(keytemp%2)shi=10;ge=10;if(keytemp%2=0)qian=10;bai=10;LED_out();void LED_out()if(qian) /千位處理 P0=dispcodeqian; led0=0;delay(2);led0=1;P0=dispcodebai;/百位處理 led1=0;delay(2);led1=1;if(timecount<16)&&(mbiao=0) /十位處理P0=dispcodeshi&a
28、mp;0x7f;else P0=dispcodeshi; led2=0;delay(2);led2=1; if(timecount<16)&&(mbiao=0) /個(gè)位處理P0=dispcodege&0x7f;else P0=dispcodege; led3=0;delay(2);led3=1;if(mbiao=5)switch (keytemp)case 0:P0=0xFE;break;case 1:P0=0xFE;break;case 2:P0=0xFD;break;case 3:P0=0xFD;break;case 4:P0=0xFB;break;case
29、5:P0=0xFB;break;case 6:P0=0xF7;break;case 7:P0=0xF7;break;led4=0;delay(2);led4=1; /*按*鍵*檢*測*/void key() uchar i,temp;if(K3=0)delay(5);if(K3=0)while(!K3)display();temp+;if(temp=125)if(mbiao=0)feng(20);mbiao=4;THour=Hour;TCent=Cent;keytemp=0;break;elsetemp=0;break;if(mbiao<4)feng(20);mbiao+;if(mbia
30、o=2)mbiao=0;if(temp<125)&&(mbiao>3)feng(20);keytemp+;switch (mbiao)case 4: if(keytemp=2)mbiao=0;break;case 5: if(keytemp=8)mbiao=0;break;while(!K3)display();temp=0;if(mbiao=0)if(K2=0)delay(5);if(K2=0)while(!K2)display();temp+;if(temp=125)feng(20);mbiao=5;keytemp=0;THour=onHour;TCent=on
31、Cent;offTH=offHour;offTC=offCent;onTH2=onHour2;onTC2=onCent2;offTH2=offHour2;offTC2=offCent2;while(!K2)disH=THour;disL=TCent;display();break;if(temp<125)feng(20);mbiao=6;temp=0;switch (mbiao) case 0:if(K0=0)delay(5);if(K0=0)feng(20);Aout=Aout;if(K1=0)delay(5);if(K1=0)feng(20);Aout2=Aout2;while(!(
32、K0&K1)LED_out();break;case 2:;break;case 3:break;case 4:if(keytemp=0)THour=AddReduce(THour,23,0);disH=THour;disL=TCent;display();if(keytemp=1)TCent=AddReduce(TCent,59,0);disH=THour;disL=TCent;display();if(K2=0)delay(5);if(K2=0) /保存數(shù)據(jù)并退出TR2=0;Second=0;timecount=0;Hour=THour;Cent=TCent;TR2=1;feng(
33、20);mbiao=0;while(!K2)display(); break;case 5:if(keytemp=0)THour=AddReduce(THour,23,0);disH=THour;disL=TCent;display();if(keytemp=1)TCent=AddReduce(TCent,59,0);disH=THour;disL=TCent;display();if(keytemp=2)offTH=AddReduce(offTH,23,0);disH=offTH;disL=offTC;display();if(keytemp=3)offTC=AddReduce(offTC,
34、59,0);disH=offTH;disL=offTC;display();if(keytemp=4)onTH2=AddReduce(onTH2,23,0);disH=onTH2;disL=onTC2;display();if(keytemp=5)onTC2=AddReduce(onTC2,59,0);disH=onTH2;disL=onTC2;display();if(keytemp=6)offTH2=AddReduce(offTH2,23,0);disH=offTH2;disL=offTC2;display();if(keytemp=7)offTC2=AddReduce(offTC2,59
35、,0);disH=offTH2;disL=offTC2;display();if(K2=0)delay(5);if(K2=0) /保存數(shù)據(jù)并退出feng(20);mbiao=0;keytemp=0;onHour=THour;onCent=TCent;offHour=offTH;offCent=offTC;onHour2=onTH2;onCent2=onTC2;offHour2=offTH2;offCent2=offTC2;while(!K2)display(); break;case 6:i=100;while(-i)if(biaoA)qian=11;bai=13;shi=14;ge=15;L
36、ED_out();elseqian=0;bai=11;shi=12;ge=12;LED_out();if(K2=0)delay(5);if(K2=0)feng(20);biaoA=biaoA;i=100;while(!K2)if(biaoA)qian=11;bai=13;shi=14;ge=15;LED_out();elseqian=0;bai=11;shi=12;ge=12;LED_out();mbiao=0;break;/*加減按鍵子程序*/uchar AddReduce(char dd,uchar max,uchar min)uint x=15;if(K1=0)delay(5);if(K
37、1=0)feng(20);dd+;if(dd>max)dd=min;while(-x)display();if(K1)break;if(K0=0)delay(5);if(K0=0)feng(20);dd-;if(dd<min)dd=max;while(-x)display();if(K0)break;return dd;/*定時(shí)功能子程序*/void Alarm_clock()if (biaoA)if (Hour=onHour)if (Cent=onCent)if (Second=0)feng(120);Aout=0;if (biaoA)if (Hour=offHour)if (C
38、ent=offCent)if (Second=0)feng(120);Aout=1;if (biaoA)if (Hour=onHour2)if (Cent=onCent2)if (Second=0)feng(120);Aout2=0;if (biaoA)if (Hour=offHour2)if (Cent=offCent2)if (Second=0)feng(120);Aout2=1;第四章 系統(tǒng)安裝與調(diào)試41 軟件調(diào)試采用模塊化程序設(shè)計(jì)思想,首先調(diào)試子程序,然后逐級(jí)疊加調(diào)試。42 系統(tǒng)調(diào)試 軟硬件結(jié)合在一起,看是否能工作正常,由于在模塊調(diào)試過程中,我們把軟硬件所出現(xiàn)的錯(cuò)誤都調(diào)整過來了,所以系統(tǒng)調(diào)試通過。結(jié)束語在這次畢業(yè)設(shè)計(jì)中,我學(xué)到了很多東西,真的沒有想到搞一篇畢業(yè)設(shè)計(jì)這么難,每天腦子里總想著怎么做才能更好,本人專業(yè)知識(shí)有限,設(shè)計(jì)出來的東西還存在很多很多問題,這是專業(yè)知識(shí)的不夠。在以后走入工作崗位中,要把技術(shù)學(xué)到位,等以后再來設(shè)計(jì)這樣產(chǎn)品就是輕而易舉的事情了。從這次畢業(yè)設(shè)計(jì)中,明白了單片機(jī)的重要性,平時(shí)沒有感覺到單片機(jī)在生活中的作用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑工程石材采購合同(2篇)
- 家具家居出海:機(jī)遇、挑戰(zhàn)與應(yīng)對(duì)策略 頭豹詞條報(bào)告系列
- 二零二五年度民宿布草租賃與民宿客棧服務(wù)質(zhì)量保障合同4篇
- 2024年咨詢工程師(經(jīng)濟(jì)政策)考試題庫帶答案(考試直接用)
- 2025年度個(gè)人商鋪買賣合同規(guī)范范本3篇
- 2025年度宅基地使用權(quán)流轉(zhuǎn)登記代理服務(wù)合同4篇
- 青蒿素研學(xué)課程設(shè)計(jì)
- 高考考試技巧課程設(shè)計(jì)
- 2025年度個(gè)人設(shè)備抵押擔(dān)保貸款合同范本4篇
- 水電工程安裝及消防設(shè)計(jì)咨詢2025年度合同2篇
- 2024年縣鄉(xiāng)教師選調(diào)進(jìn)城考試《教育學(xué)》題庫及完整答案(考點(diǎn)梳理)
- 車借給別人免責(zé)協(xié)議書
- 河北省興隆縣盛嘉恒信礦業(yè)有限公司李杖子硅石礦礦山地質(zhì)環(huán)境保護(hù)與治理恢復(fù)方案
- 第七章力與運(yùn)動(dòng)第八章壓強(qiáng)第九章浮力綜合檢測題(一)-2023-2024學(xué)年滬科版物理八年級(jí)下學(xué)期
- 醫(yī)療機(jī)構(gòu)診療科目名錄(2022含注釋)
- 微視頻基地策劃方案
- 光伏項(xiàng)目質(zhì)量評(píng)估報(bào)告
- 八年級(jí)一本·現(xiàn)代文閱讀訓(xùn)練100篇
- 2023年電池系統(tǒng)測試工程師年度總結(jié)及下一年計(jì)劃
- 應(yīng)急預(yù)案評(píng)分標(biāo)準(zhǔn)表
- 《既有建筑結(jié)構(gòu)安全監(jiān)測技術(shù)標(biāo)準(zhǔn)》(征求意見稿)及條文說明
評(píng)論
0/150
提交評(píng)論