魚缸自動換水系統(tǒng)設(shè)計 電氣自動化專業(yè)畢業(yè)設(shè)計 畢業(yè)論
《魚缸自動換水系統(tǒng)設(shè)計 電氣自動化專業(yè)畢業(yè)設(shè)計 畢業(yè)論》由會員分享,可在線閱讀,更多相關(guān)《魚缸自動換水系統(tǒng)設(shè)計 電氣自動化專業(yè)畢業(yè)設(shè)計 畢業(yè)論(21頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、河南農(nóng)業(yè)職業(yè)學院 畢業(yè)設(shè)計報告 課題:魚缸自動換水系統(tǒng)設(shè)計 系 部: 電子信息工程系 專 業(yè): 電氣自動化 班 級: 07-1 姓 名: xxx 指導老師: xxx 2011年6月26日 目錄: 第一章 總體方案設(shè)計……………………………………………………3 第二章 硬件設(shè)計…………………………………………………4 2.1 控制核心AT89S52單片機…………………………………………4 2.2八段四位共陽極數(shù)碼管…………………………………………7 2.3穩(wěn)壓電路設(shè)計……………………………………………………9 2.4電磁閥的結(jié)構(gòu)原理
2、………………………………………………10 2.5熱繼電器…………………………………………………………10 2.6微型水泵…………………………………………………………11 2.7水位器的選擇……………………………………………………11 第三章 軟件設(shè)計…………………………………………………………12 3.1換水時間及換水量選擇…………………………………………12 3.2控制過程…………………………………………………………12 3.3程序設(shè)置 …………………………………………………………14 3.4編程程序…………………………………………………………16 第四章 系統(tǒng)安裝與調(diào)試
3、…………………………………………………26 4.1軟件調(diào)試…………………………………………………………26 4.2系統(tǒng)調(diào)試…………………………………………………………26 結(jié)束語 ……………………………………………………………………27 辭謝 ………………………………………………………………………27 參考文獻 …………………………………………………………………28 附錄1 ………………………………………………………………………29 附錄2 ………………………………………………………………………30 摘要: 養(yǎng)魚的朋友都知道,水質(zhì)對魚兒影響是最嚴重的,好的水質(zhì)可以使你的
4、魚兒健康生長,怎樣才能保證水質(zhì)呢?只有經(jīng)常換水,對現(xiàn)在上班族來說換水是很麻煩的,占用很長的時間,對魚缸的市場前景考慮,分析自動換水魚缸實現(xiàn)的必要性和可行性,選用合適的單片機芯片和多種外圍器件,完成硬件和軟件的整體設(shè)計,最終實現(xiàn)了一個每天按時定量換水控制系統(tǒng) 關(guān)鍵詞:自動換水系統(tǒng);定時控制;實時顯示 第一章 總體方案設(shè)計 魚缸自動換水系統(tǒng)的原理圖如圖1-1所示: 圖1-1 魚缸自動換水系統(tǒng)原理圖 原理圖中的電磁閥(2)和水位器主要控制水位起到雙保險,用單片機控制更精確。有效防止水流出缸外。電磁閥(1)和抽水馬達是把想要換的沉水抽出,換水的多少由單片機設(shè)定,流量的大小是用微量調(diào)控運行的情
5、況。 工作過程為:用單片機控制電磁閥.電源接通電磁閥就開起,水管就通了。反之電磁閥電源關(guān)閉水管斷流。進水管直接接在自來水管子上。進水的多少要看想要換多少水(抽掉的水)這也是用單片機控制電磁閥和抽水馬達。排水管接在抽水馬達噴水口只要接通電源水就會往外排,如果每天按排水一小時30升水來計算的話,一個星期能換掉210升水(定時器控制排水電磁閥開起電源一小時)。方法是用定時器設(shè)定時間比如下午1-2點排水 2-3點進水 ,這個過程就是自動循環(huán)的換水。定時器設(shè)定時間長短和調(diào)節(jié)電磁閥上的微調(diào)是控制換水的多少和水的流量。水位器是控制水位的高度,進水管接在水位器上起到雙重保護,以防水溢出魚缸。 第二章 硬件
6、設(shè)計 本章中,我主要介紹組成自動換水魚缸的硬件,以及它們之間的聯(lián)系,在這個系統(tǒng)中起到的作用。 2. 1 控制核心AT89S52單片機 2.1.1功能特性概述 AT89S52是一種低功耗、高性能CMOS8位微控制器,在系統(tǒng)可編程Flash中擁有8k容量的存儲器。它是使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。而且Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 AT89S52具有以下標準功能:8k字
7、節(jié)可編程Flash存儲器,256字節(jié)RAM,32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工UART串行通道,片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。 2.1.2單片機的特點主要有一下幾點: l 與MCS-51單片機產(chǎn)品兼容; l 1000次擦寫周期; l 全靜態(tài)操作:0Hz~33Hz; l 三
8、級加密程序存儲器; l 八個中斷源; l 低功耗空閑和掉電模式; l 掉電后中斷可喚醒; l 掉電標識符; 2.1.3 AT89S52的芯片管腳圖如圖2-1 圖2-1 AT89S52芯片管腳圖 各引腳的功能說明: VCC:電源 GND:接地點 P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。 當訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。 在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外
9、部上拉電阻。 P1 口:P1 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū);為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX),含義如下: P1.0 T2(定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出 P1.1 T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制) P2 口:P2 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P2 端口寫“
10、1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX@DPTR)時,P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。 在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。 P3 口:P3 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P3 端口寫“1”時,內(nèi)部上拉電阻
11、把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 P3口亦作為AT89S52特殊功能(第二功能)使用;在flash編程和校驗時,P3口也接收一些控制信號。引腳的功能如表2-1所示: 表2-1 P3口的特殊功能 引腳名稱 含義 P3.0 RXD 串行輸入 P3.1 TXD 串行輸出 P3.2 INT0 外部中斷0 P3.3 INT0 外部中斷0 P3.4 T0 定時器0外部輸入 P3.5 T1 定時器1外部輸入 P3.6 WR 外部數(shù)據(jù)存儲器寫選通 P3.7 RD 外部數(shù)據(jù)存儲器寫選通 RS
12、T: 復(fù)位輸入。晶振工作時,RST腳持續(xù)2 個機器周期時,高電平將使單片機復(fù)位。當看門狗計時完成后,RST 腳輸出96 個晶振周期的高電平。另外,在地址8EH上的特殊寄存器AUXR上的DISRTO位可以使此功能無效,當DISRTO處于默認狀態(tài)下,復(fù)位高電平有效。 ALE/PROG:地址鎖存控制信號ALE是訪問外部程序存儲器時,鎖存低8 位地址的輸出脈沖。在flash編程時,此引腳(PROG)也用作編程輸入脈沖。 在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調(diào),在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。 如果需要,通過將地址為8
13、EH的SFR的第0位置設(shè)置為“1”時,ALE操作將無效。這一位置為“0”時,ALE 僅在執(zhí)行MOVX 或MOVC指令時有效。否則,ALE 將被微弱拉高。這個ALE 使能標志位(地址為8EH的SFR的第0位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。 PSEN:表示外部程序存儲器選通信號。 當AT89S52從外部程序存儲器執(zhí)行外部代碼時,PSEN在每個機器周期中被激活兩次,而在訪問外部數(shù)據(jù)存儲器時,PSEN不被激活。 EA/VPP:訪問外部程序存儲器控制信號。為使能從0000H 到FFFFH的外部程序存儲器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。 在flash編
14、程期間,EA也接收12伏VPP電壓。 XTAL1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。 XTAL2:振蕩器反相放大器的輸出端。 2.1.4單片機硬件資源的分配 P0.0-P0.7連接四位共陽極數(shù)碼管; P2.0連接按鍵K1; P2.1 連接按鍵K2; P2.2 連接按鍵K3; P2.3連接按鍵K4; 2.2 七段四位共陽極數(shù)碼管 2.2.1數(shù)碼管介紹 七段數(shù)碼管是由7個發(fā)光二極管單構(gòu)成。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時應(yīng)將公共極COM接到+5V,當某一字段發(fā)光二極管的陰極為低電平時,相應(yīng)字段就點亮。
15、當某一字段的陰極為高電平時,相應(yīng)字段就不亮。 結(jié)構(gòu)圖如圖2-2所示: 圖2-2 數(shù)碼管結(jié)構(gòu)示意 2.2.2數(shù)碼管的驅(qū)動方式 數(shù)碼管與單片機的連接電路如圖2-3所示,數(shù)碼管動態(tài)顯示接口是單片機中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,每個數(shù)碼管顯示出字形取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就會顯示出字形,沒有選通的數(shù)碼管
16、就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就會使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點亮時間為1~2ms,能夠節(jié)省大量的I/O端口,而且功耗更低。 圖2-3 數(shù)碼管與單片機連接電路 2.3穩(wěn)壓電路設(shè)計 穩(wěn)壓電路中含有元器件H7805,它的外形圖如圖2-4所示,它是3 端正穩(wěn)壓電路,TO-220 封裝,能提供多種固定的輸出電壓,應(yīng)用范圍比較廣。內(nèi)含過流、過熱和過載保護電路,帶散熱片時,輸出電流可達1A。雖然是固定穩(wěn)壓電路,但使用外接元件,可獲得不同的電壓和電流。它的各個腳的含義為: 1―輸入,INPUT ;2―地,GND ;3―輸出,OUTPUT
17、 TO-220。 圖2-4 元器件H7805的外形圖 它的主要特點:輸出電流可達 1A;輸出電壓有5V ;內(nèi)含有過熱保護、短路保護、輸出晶體管 SOA 保護;以及一些極限值: (Ta=25℃)VI——輸入電壓(VO=5~18V)???????????35V ; RθJC——熱阻????????????5℃/W; RθJA——熱阻??????????65℃/W; TOPR——工作結(jié)溫范圍???????????0~125℃; H7805在硬件電路中的使用,起到固定輸出電壓作用,使按鍵更好的使用,如圖所示2-5所示: 圖2-5 H7805在電路中的連接 2.4電磁閥的結(jié)構(gòu)原理
18、直動式電磁閥有常閉型和常開型二種。在我的魚缸自動換水的系統(tǒng)中主要采用常閉型,它在斷電時呈關(guān)閉狀態(tài),當線圈通電時產(chǎn)生電磁力,使動鐵芯克服彈簧力同靜鐵芯吸合直接開啟閥,介質(zhì)呈通路;當線圈斷電時電磁力消失,動鐵芯在彈簧力的作用下復(fù)位,直接關(guān)閉閥口,介質(zhì)不通。此電磁閥結(jié)構(gòu)簡單,動作可靠,在零壓差和微真空下正常工作。結(jié)構(gòu)如圖2-6所示: 圖2-6 直動式電磁閥結(jié)構(gòu)圖 2.5熱繼電器 繼電器在通俗意義上來說就是開關(guān),在條件滿足的情況下關(guān)閉或者開啟。繼電器的開關(guān)特性在很多的控制系統(tǒng)尤其是離散的控制系統(tǒng)中得到廣泛的應(yīng)用。在我的魚缸自動換水系統(tǒng)中用到了5V繼電器。它在電路中為交流電動機起到過載保護作用,也
19、起到了開關(guān)的作用。在我的系統(tǒng)電路中,繼電器的位置如圖2-7所示: 圖2-7 繼電器與原理圖 由圖中可以看出繼電器是用作開關(guān)使用的,控制電磁閥開與關(guān), 當K5接通時,電磁閥1運轉(zhuǎn) 當K6接通時,電磁閥2運轉(zhuǎn) 2.6微型水泵 微型水泵,在我魚缸自動換水系統(tǒng)中起到抽水以及雜質(zhì)的作用。選用的水泵抽水量為0.015立方米/min 它的主要特點有:體積超?。华氂兴畾鈨捎霉δ?,工作介質(zhì)可以為氣體和液體(非油,無強腐蝕),有水抽水、有氣抽氣;可24小時連續(xù)運轉(zhuǎn);長期空轉(zhuǎn)屬正常工作,不會損壞泵;具備可靠自吸功能,吸程:1.5米,揚程:3米。無油、不污染工作介質(zhì),免維護、任意方向安裝。 2. 7水
20、位器的選擇 在我的自動換水系統(tǒng)里,定位器其實就是抽水馬桶里的定位器,為什么選擇它呢?主要是價格便宜,市場廣,在馬桶專賣店里就可以買到,定位器的原理很簡單,就是靠水的浮力和水的壓力來控制的。把定位器連接進水管上,起到雙重保護。 第 三 章 軟 件 設(shè) 計 我的魚缸自動換水系統(tǒng)是用單片機控制電磁閥的開與關(guān),每天換水的時間也是經(jīng)過精確的計算設(shè)置的??稍谧詣幽J街械脑O(shè)置時間,也可以通過手動設(shè)置時間。 3.1 換水時間及換水量選擇 圖3-1魚缸尺寸示意(長2米,寬0.65米,高0.8米) 魚缸的大小如圖3-1所示,首先我們要先求出魚缸水的體積,公式為: Vs=2*0.65*0.8*0.
21、85=0.884(立方米) (注:0.85的意思是水的體積是魚缸總體積的85%) 根據(jù)有關(guān)資料證明,每天換水量占水總體積的15%是最好的,對魚兒的生長是最有利的,故可以算出每天換水量,所用公式為: Vh=0.884*0.15=0.1326立方米 根據(jù)前面水泵的選擇,計算每天只要排15分鐘水就可以了。由于家里自來水每分鐘流量是一定的,根據(jù)實際考察所得算出進水只需要20分鐘。 算出每天換水的時間后,即在系統(tǒng)中設(shè)置,本系統(tǒng)開機后顯示實時時間,默認是自動控制兩個電磁閥。每天換水一般在中午,所以整個單片機程序設(shè)置如下: 電磁閥1接通時間為每天13:00,斷開時間13:20。 電磁閥2接通時
22、間為每天14:00,斷開時間14:15。 3. 2控制過程: 在自動模式中,系統(tǒng)是根據(jù)我自己設(shè)定的時間控制兩個電磁閥在指定的時間接通和斷開。 在手動模式中,即在非設(shè)置狀態(tài)下,可通過按鍵控制電磁閥的接通與斷開,如下: 點按K1鍵控制電磁閥1接通和斷開; 點按K2鍵控制電磁閥2接通和斷開。 自動與手動控制模式的切換方法為: 首先點按K3鍵可查看狀態(tài), 自動數(shù)碼管顯示OPEN, 手動顯示OFF, 繼續(xù)點按K3鍵切換自動/手動,數(shù)碼管會有相應(yīng)的顯示。 在設(shè)置定時時間狀態(tài)下: LED2(out1on)亮表示設(shè)置電磁閥1定開時間 LED3(out1o
23、ff)亮表示設(shè)置電磁閥1定關(guān)時間 LED4(out2on)亮表示設(shè)置電磁閥2定開時間 LED4(out1off)亮表示設(shè)置電磁閥2定關(guān)時間 詳細內(nèi)容請看圖3-2 圖3-2 3.3程序設(shè)計 3.3.1 主程序設(shè)計 主程序開始 掃描顯示器更新時間數(shù)據(jù) 初始化定時器 初始化變量 K1: 繼電器1 ON/OFF K2: 繼電器2 ON/OFF K3:點按顯示鐘控狀態(tài),長按設(shè)置定時時間 K4:點按顯示秒,長按設(shè)置現(xiàn)在的時間 是否按K1、K2、K3、K4鍵? 3.3.2 子程序設(shè)計 主要控制子程序說明如下: ●Timer2_
24、Server:定時器2計時中斷程序每隔31.25ms中斷一次; ● DELAY:延時子程序; ●feng:蜂鳴器鳴響處理程序; ●display:工作LED閃動控制;轉(zhuǎn)換數(shù)據(jù)為七段顯示器顯示數(shù)據(jù)并寫入顯示內(nèi)存內(nèi) ●LED_out:七段數(shù)碼管顯示程序; ● CONV:將時及分的數(shù)據(jù)轉(zhuǎn)換為七段顯示器顯示數(shù)據(jù)并寫入顯示內(nèi)存內(nèi); ●key:按*鍵檢測包括設(shè)置現(xiàn)在的時間小時及分鐘,查看/設(shè)置定時時間等 中斷時間到 對時分秒進行計數(shù) 執(zhí)行 繼電器1 ON/OFF 繼電器2 ON/OFF 1秒是否到? 對比2路定時時間是否到? 中斷退出 3.4編程程序 /**
25、********************************************
P0.0-P0.7與數(shù)碼管中的ABCDEFGH端口連接。
P1.0-P1.3與數(shù)碼管中的S1,S2,S3,S4端口。
**********************************************/
#include
26、 0x80,0x90,0xFF,0xC0,0x8E,0x8C,0x86,0xC8,}; /* O F P E N */ 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,offHour,offCent; uchar onHour2,onCent2,offHour2,offCent2; b
27、it biaoA; sbit led0=P1^0; sbit led1=P1^1; sbit led2=P1^2; sbit led3=P1^3; sbit led4=P3^7; sbit K0=P2^0; sbit K1=P2^1; sbit K2=P2^2; sbit K3=P2^3; sbit BP=P3^2;sbit Aout=P1^6;sbit Aout2=P1^7; void display(); void key(); uchar AddReduce(uchar dd,uchar max,char min); void Alarm_clock();
28、 void LED_out(); void delay(uchar i) /***延時***/ { uint x; for(;i>0;i--) for(x=114;x>0;x--); //22.1184=228,,11.0592=114 } void 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;o
29、nCent=0;offHour=13;offCent=20;biaoA=1; onHour2=14;onCent2=0;offHour2=14;offCent2=15; RCAP2H=0x8F; /* 11.0592=8F80,,22.1184=1F00 */ RCAP2L=0x80; ET2=1; // 允許T2定時器中斷 TR2=1; // 啟動T2定時器 EA=1; while(1) { display(); key(); } } /***T2***中***斷***函***數(shù)***/ void Timer2_Server(void) inte
30、rrupt 5 using 3 { TF2=0; //清除溢出標記 timecount++; if(timecount==32) {timecount=0; Second++; if(Second==60) {Second=0; Cent++; if(Cent==60) {Cent=0; Hour++; if(Hour==24) Hour=0; } } Alarm_clock(); } switch (mbiao) { case 0: {disH=Hour;disL=Cent;}
31、 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;} else {qian=disH/10;bai=disH%10;shi=disL/10;ge=disL%10;} } if(m
32、biao>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=dispcode[qian]; led0=0;delay(2);led0=1;} P0=dispcode[bai]; //百位處理 led1=0;delay(2);led1=1; if((timecount<16)&&(mbiao==0)) //十位處理 P0
33、=dispcode[shi]&0x7f; else P0=dispcode[shi]; led2=0;delay(2);led2=1; if((timecount<16)&&(mbiao==0)) //個位處理 P0=dispcode[ge]&0x7f; else P0=dispcode[ge]; led3=0;delay(2);led3=1; if(mbiao==5){ switch (keytemp) { case 0: {P0=0xFE;} break; case 1: {P0=0xFE;} b
34、reak; case 2: {P0=0xFD;} break; case 3: {P0=0xFD;} break; case 4: {P0=0xFB;} break; case 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(K
35、3==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;} else {temp=0;break;} }} if(mbiao<4){ feng(20);mbiao++; if(mbiao==2)mbiao=0;} if((temp<125)&&(mbiao>3)){feng(20);keytemp
36、++; 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) {fen
37、g(20);mbiao=5;keytemp=0; THour=onHour;TCent=onCent;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; } }
38、} 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(!(K0&K1))LED_out(); } break; case 2:{;} break; case 3: {} break; case 4:{if(keytemp==0){THour=AddReduce(THour,2
39、3,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(20);mbiao=0; while(!K2)display();}}} break; case
40、 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,59,0);disH=offTH;di
41、sL=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(
42、offTC2,59,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;
43、case 6: {i=100;while(--i) {if(biaoA){qian=11;bai=13;shi=14;ge=15;LED_out();} else {qian=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();} else {qian=0;bai=
44、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(K1==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);
45、dd--;
if(dd 46、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)試
4.1 軟件調(diào)試
采用模塊化程序 47、設(shè)計思想,首先調(diào)試子程序,然后逐級疊加調(diào)試。
4.2 系統(tǒng)調(diào)試
軟硬件結(jié)合在一起,看是否能工作正常,由于在模塊調(diào)試過程中,我們把軟硬件所出現(xiàn)的錯誤都調(diào)整過來了,所以系統(tǒng)調(diào)試通過。
結(jié)束語
在這次畢業(yè)設(shè)計中,我學到了很多東西,真的沒有想到搞一篇畢業(yè)設(shè)計這么難,每天腦子里總想著怎么做才能更好,本人專業(yè)知識有限,設(shè)計出來的東西還存在很多很多問題,這是專業(yè)知識的不夠。在以后走入工作崗位中,要把技術(shù)學到位,等以后再來設(shè)計這樣產(chǎn)品就是輕而易舉的事情了。
從這次畢業(yè)設(shè)計中,明白了單片機的重要性,平時沒有感覺到單片機在生活中的作用這么大,通過這次設(shè)計,才明白單片機無處不在,生活中到處都用的到 48、它。
謝辭
快要畢業(yè)了,感覺自己沒有學到什么,但學校提供給我們這次機會,大大彌補了我的理論學習,感謝學校!還要感謝我的指導老師,焦振宇老師,沒有他每時每刻提醒我督促我,我不會按時完成的,在我想不出來設(shè)計什么產(chǎn)品時,是焦老師提醒了我。給我啟發(fā)!在這次畢業(yè)設(shè)計中遇到一些問題,特別是編程問題,說實話我個人沒有能力去完成,在這要謝謝我認識一個工程師,在我最無助的時候幫助了我,感謝他!
謝謝!
參 考 文 獻
[1] 胡漢才編,《單片機原理及其接口技術(shù)》,北京,清華大學出版社,1996
[2] 徐愛均編,《智能化儀表原理與設(shè)計》,北京,北京航空大學出版社,1996
[3] 公茂法等編,《單 49、片機人機接口實力集》,北京,北京航空大學出版社,1998
[4] 李朝青編,《單片機原理及其接口技術(shù)》,北京,北京航空大學出版社,1998
[5] 鄔寬明編,《單片機外圍器件實用手冊》,北京,北京航空大學出版社,1998
[6] 先鋒工作室編著,《單片機程序設(shè)計實例》,北京,清華大學出版社,2002
[7] 張毅剛,彭喜元,孟升衛(wèi),劉兆慶編,《MCS-51單片機使用子程序設(shè)計》,哈爾濱,哈爾濱工業(yè)大學出版社,2003
[8] 陳明熒編,《8051單片機課程設(shè)計實訓教材》,北京,清華大學出版社,2003
[9] 肖玲妮,袁增貴編,《Protel99SE印刷電路板設(shè)計教程》,北京, 50、清華大學出版社,2003
[10] X5045的中英文資料
附錄1:原理圖
附錄2:
物料清單
編號
注釋
封裝
編號
注釋
封裝
B1
喇叭
RB.2/.4
K5
5V繼電器RELAY
C1
10uF
RB.1/.2
K6
5V繼電器RELAY
C2
22P
RAD0.1
LED1
4LED
4LED
C3
22P
RAD0.1
LED2
A2
out1on
C4
470u
RB.2/.4
LED3
A2
out1off
C5
100u
RB.1/.2
LED2
A2
out2on
D1
4 51、007
DIODE0.4
LED3
A2
out2off
D2
4007
DIODE0.4
Q1
8550
TO92C
D3
4007
DIODE0.4
Q2
8550
TO92C
D4
4007
DIODE0.4
Q3
8550
TO92C
D5
4148
DIODE0.4
Q4
8550
TO92C
D6
4148
DIODE0.4
Q5
8550
TO92C
J1
ISP
SIP6
Q6
8550
TO92C
J2
12V
SIP2
Q7
8550
TO92C
J3
CON5
VH5
Q8 52、
8550
TO92C
K1
Up
SW6
R1
330
AXIAL0.4
K2
Down
SW6
R2
330
AXIAL0.4
K3
Enter
SW6
R3
330
AXIAL0.4
K4
Menu
SW6
R4
330
AXIAL0.4
R9
2K
AXIAL0.4
R5
330
AXIAL0.4
R10
10K
AXIAL0.4
R6
330
AXIAL0.4
R11
10K
AXIAL0.4
R7
330
AXIAL0.4
R12
10K
AXIAL0.4
R8
330
AXIAL0.4
R13
10K
AXIAL0.4
U1
89S52
DIP-40
R14
10K
AXIAL0.4
U2
7805
TO-220
R15
10K
AXIAL0.4
X1
12MHz
XATL
R16
10K
AXIAL0.4
R17
10K
AXIAL0.4
- 溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 領(lǐng)導班子2024年度民主生活會對照檢查材料范文(三篇)
- 金融工作主題黨課講稿范文(匯編)
- 鍋爐必備學習材料
- 鍋爐設(shè)備的檢修
- 主題黨課講稿:走中國特色金融發(fā)展之路加快建設(shè)金融強國(范文)
- 鍋爐基礎(chǔ)知識:啟爐注意事項技術(shù)問答題
- 領(lǐng)導班子2024年度民主生活會“四個帶頭”對照檢查材料范文(三篇)
- 正常運行時影響鍋爐汽溫的因素和調(diào)整方法
- 3.鍋爐檢修模擬考試復(fù)習題含答案
- 司爐作業(yè)人員模擬考試試卷含答案-2
- 3.鍋爐閥門模擬考試復(fù)習題含答案
- 某公司鍋爐安全檢查表
- 3.工業(yè)鍋爐司爐模擬考試題庫試卷含答案
- 4.司爐工考試題含答案解析
- 發(fā)電廠鍋爐的運行監(jiān)視和調(diào)整