畢業(yè)設(shè)計(jì)(論文)基于AT89S52單片機(jī)的魚(yú)缸自動(dòng)換水系統(tǒng)設(shè)計(jì)_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于AT89S52單片機(jī)的魚(yú)缸自動(dòng)換水系統(tǒng)設(shè)計(jì)_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于AT89S52單片機(jī)的魚(yú)缸自動(dòng)換水系統(tǒng)設(shè)計(jì)_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于AT89S52單片機(jī)的魚(yú)缸自動(dòng)換水系統(tǒng)設(shè)計(jì)_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于AT89S52單片機(jī)的魚(yú)缸自動(dòng)換水系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、河南農(nóng)業(yè)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)報(bào)告河南農(nóng)業(yè)職業(yè)學(xué)院畢業(yè)設(shè)計(jì)報(bào)告課題:魚(yú)缸自動(dòng)換水系統(tǒng)設(shè)計(jì)系 部: 電子信息工程系專(zhuān) 業(yè): 電氣自動(dòng)化班 級(jí): 07-1姓 名: xxx指導(dǎo)老師: xxx2010年6月26日目 錄:第一章 總體方案設(shè)計(jì)3第二章 硬件設(shè)計(jì) 4 2.1 控制核心at89s52單片機(jī)42.2 八段四位共陽(yáng)極數(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控制過(guò)程 123.3程序設(shè)置 143.4編程程序 16第四章 系統(tǒng)安裝與調(diào)試 264.1軟件調(diào)試 264.

2、2系統(tǒng)調(diào)試 26結(jié)束語(yǔ) 27辭謝 27參考文獻(xiàn) 28附錄1 29附錄2 30摘 要:養(yǎng)魚(yú)的朋友都知道,水質(zhì)對(duì)魚(yú)兒影響是最嚴(yán)重的,好的水質(zhì)可以使你的魚(yú)兒健康生長(zhǎng),怎樣才能保證水質(zhì)呢?只有經(jīng)常換水,對(duì)現(xiàn)在上班族來(lái)說(shuō)換水是很麻煩的,占用很長(zhǎng)的時(shí)間,對(duì)魚(yú)缸的市場(chǎng)前景考慮,分析自動(dòng)換水魚(yú)缸實(shí)現(xiàn)的必要性和可行性,選用合適的單片機(jī)芯片和多種外圍器件,完成硬件和軟件的整體設(shè)計(jì),最終實(shí)現(xiàn)了一個(gè)每天按時(shí)定量換水控制系統(tǒng)關(guān)鍵詞:自動(dòng)換水系統(tǒng);定時(shí)控制;實(shí)時(shí)顯示第一章 總體方案設(shè)計(jì)魚(yú)缸自動(dòng)換水系統(tǒng)的原理圖如圖1-1所示:圖1-1 魚(yú)缸自動(dòng)換水系統(tǒng)原理圖原理圖中的電磁閥(2)和水位器主要控制水位起到雙保險(xiǎn),用單片機(jī)控制

3、更精確。有效防止水流出缸外。電磁閥(1)和抽水馬達(dá)是把想要換的沉水抽出,換水的多少由單片機(jī)設(shè)定,流量的大小是用微量調(diào)控運(yùn)行的情況。工作過(guò)程為:用單片機(jī)控制電磁閥.電源接通電磁閥就開(kāi)起,水管就通了。反之電磁閥電源關(guān)閉水管斷流。進(jìn)水管直接接在自來(lái)水管子上。進(jìn)水的多少要看想要換多少水(抽掉的水)這也是用單片機(jī)控制電磁閥和抽水馬達(dá)。排水管接在抽水馬達(dá)噴水口只要接通電源水就會(huì)往外排,如果每天按排水一小時(shí)30升水來(lái)計(jì)算的話,一個(gè)星期能換掉210升水(定時(shí)器控制排水電磁閥開(kāi)起電源一小時(shí))。方法是用定時(shí)器設(shè)定時(shí)間比如下午1-2點(diǎn)排水 2-3點(diǎn)進(jìn)水 ,這個(gè)過(guò)程就是自動(dòng)循環(huán)的換水。定時(shí)器設(shè)定時(shí)間長(zhǎng)短和調(diào)節(jié)電磁閥上

4、的微調(diào)是控制換水的多少和水的流量。水位器是控制水位的高度,進(jìn)水管接在水位器上起到雙重保護(hù),以防水溢出魚(yú)缸。第二章 硬件設(shè)計(jì)本章中,我主要介紹組成自動(dòng)換水魚(yú)缸的硬件,以及它們之間的聯(lián)系,在這個(gè)系統(tǒng)中起到的作用。2. 1 控制核心at89s52單片機(jī)2.1.1功能特性概述at89s52是一種低功耗、高性能cmos8位微控制器,在系統(tǒng)可編程flash中擁有8k容量的存儲(chǔ)器。它是使用atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80c51 產(chǎn)品指令和引腳完全兼容。而且flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位cpu 和在系統(tǒng)可編程flash,使得at89

5、s52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。at89s52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)可編程flash存儲(chǔ)器,256字節(jié)ram,32 位i/o 口線,看門(mén)狗定時(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é)電模式。空閑模式下,cpu停止工作,允許ram、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,ram內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。2.1.2 單片機(jī)的特點(diǎn)主要有一下幾點(diǎn):l 與mcs-5

6、1單片機(jī)產(chǎn)品兼容;l 1000次擦寫(xiě)周期;l 全靜態(tài)操作:0hz33hz;l 三級(jí)加密程序存儲(chǔ)器;l 八個(gè)中斷源;l 低功耗空閑和掉電模式;l 掉電后中斷可喚醒;l 掉電標(biāo)識(shí)符;2.1.3 at89s52的芯片管腳圖如圖2-1圖2-1 at89s52芯片管腳圖各引腳的功能說(shuō)明:vcc:電源gnd: 接地點(diǎn)p0 口:p0口是一個(gè)8位漏極開(kāi)路的雙向i/o口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)ttl邏輯電平。對(duì)p0端口寫(xiě)“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),p0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,p0具有內(nèi)部上拉電阻。在flash編程時(shí),p0口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí)

7、,輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。p1 口:p1 口是一個(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ì)

8、p2 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。在訪問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行movxdptr)時(shí),p2 口送出高八位地址。在這種應(yīng)用中,p2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如movx ri)訪問(wèn)外部數(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 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把

9、端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(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ǔ)器寫(xiě)選通 p3.7 rd外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通rst: 復(fù)位輸入。晶振工作時(shí),rst腳持續(xù)2 個(gè)機(jī)器周期時(shí),高電平將使單片機(jī)復(fù)位。當(dāng)看門(mén)

10、狗計(jì)時(shí)完成后,rst 腳輸出96 個(gè)晶振周期的高電平。另外,在地址8eh上的特殊寄存器auxr上的disrto位可以使此功能無(wú)效,當(dāng)disrto處于默認(rèn)狀態(tài)下,復(fù)位高電平有效。ale/prog:地址鎖存控制信號(hào)ale是訪問(wèn)外部程序存儲(chǔ)器時(shí),鎖存低8 位地址的輸出脈沖。在flash編程時(shí),此引腳(prog)也用作編程輸入脈沖。在一般情況下,ale 以晶振六分之一的固定頻率輸出脈沖,可用來(lái)作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),ale脈沖將會(huì)跳過(guò)。如果需要,通過(guò)將地址為8eh的sfr的第0位置設(shè)置為 “1”時(shí),ale操作將無(wú)效。這一位置為“0”時(shí),ale 僅在執(zhí)行mo

11、vx 或movc指令時(shí)有效。否則,ale 將被微弱拉高。這個(gè)ale 使能標(biāo)志位(地址為8eh的sfr的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無(wú)效。psen:表示外部程序存儲(chǔ)器選通信號(hào)。當(dāng)at89s52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),psen在每個(gè)機(jī)器周期中被激活兩次,而在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),psen不被激活。ea/vpp:訪問(wèn)外部程序存儲(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:振蕩器反

12、相放大器的輸出端。2.1.4單片機(jī)硬件資源的分配p0.0-p0.7連接四位共陽(yáng)極數(shù)碼管;p20連接按鍵k1;p21 連接按鍵k2;p22 連接按鍵k3;p23連接按鍵k4;2.2 七段四位共陽(yáng)極數(shù)碼管2.2.1數(shù)碼管介紹七段數(shù)碼管是由7個(gè)發(fā)光二極管單構(gòu)成。共陽(yáng)數(shù)碼管是指將所有發(fā)光二極管的陽(yáng)極接到一起形成公共陽(yáng)極(com)的數(shù)碼管。共陽(yáng)數(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)示意2.2.2數(shù)碼管的驅(qū)動(dòng)方式數(shù)碼管與單片機(jī)的連接電路如圖2-3所示,數(shù)碼管動(dòng)態(tài)顯

13、示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃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ù)碼管的選通控制打開(kāi),該位就會(huì)顯示出字形,沒(méi)有選通的數(shù)碼管就不會(huì)亮。通過(guò)分時(shí)輪流控制各個(gè)數(shù)碼管的的com端,就會(huì)使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過(guò)程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為12ms,能夠節(jié)省大量的i/o端口,而且功耗更低。圖

14、2-3 數(shù)碼管與單片機(jī)連接電路2.3穩(wěn)壓電路設(shè)計(jì)穩(wěn)壓電路中含有元器件h7805,它的外形圖如圖2-4所示,它是3 端正穩(wěn)壓電路,to-220 封裝,能提供多種固定的輸出電壓,應(yīng)用范圍比較廣。內(nèi)含過(guò)流、過(guò)熱和過(guò)載保護(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)含有過(guò)熱保護(hù)、短路保護(hù)、輸出晶體管 soa 保護(hù);以及一些極限值:(ta=25) vi輸入電壓(vo=5

15、18v) 35v ;rjc熱阻 5/w;rja熱阻 65/w;topr工作結(jié)溫范圍 0125;h7805在硬件電路中的使用,起到固定輸出電壓作用,使按鍵更好的使用,如圖所示2-5所示:圖2-5 h7805在電路中的連接24電磁閥的結(jié)構(gòu)原理 直動(dòng)式電磁閥有常閉型和常開(kāi)型二種。在我的魚(yú)缸自動(dòng)換水的系統(tǒng)中主要采用常閉型,它在斷電時(shí)呈關(guān)閉狀態(tài),當(dāng)線圈通電時(shí)產(chǎn)生電磁力,使動(dòng)鐵芯克服彈簧力同靜鐵芯吸合直接開(kāi)啟閥,介質(zhì)呈通路;當(dāng)線圈斷電時(shí)電磁力消失,動(dòng)鐵芯在彈簧力的作用下復(fù)位,直接關(guān)閉閥口,介質(zhì)不通。此電磁閥結(jié)構(gòu)簡(jiǎn)單,動(dòng)作可靠,在零壓差和微真空下正常工作。結(jié)構(gòu)如圖2-6所示:圖2-6 直動(dòng)式電磁閥結(jié)構(gòu)圖2.

16、5熱繼電器繼電器在通俗意義上來(lái)說(shuō)就是開(kāi)關(guān),在條件滿足的情況下關(guān)閉或者開(kāi)啟。繼電器的開(kāi)關(guān)特性在很多的控制系統(tǒng)尤其是離散的控制系統(tǒng)中得到廣泛的應(yīng)用。在我的魚(yú)缸自動(dòng)換水系統(tǒng)中用到了5v繼電器。它在電路中為交流電動(dòng)機(jī)起到過(guò)載保護(hù)作用,也起到了開(kāi)關(guān)的作用。在我的系統(tǒng)電路中,繼電器的位置如圖2-7所示:圖2-7 繼電器與原理圖由圖中可以看出繼電器是用作開(kāi)關(guān)使用的,控制電磁閥開(kāi)與關(guān),當(dāng)k5接通時(shí),電磁閥1運(yùn)轉(zhuǎn)當(dāng)k6接通時(shí),電磁閥2運(yùn)轉(zhuǎn)26微型水泵微型水泵,在我魚(yú)缸自動(dòng)換水系統(tǒng)中起到抽水以及雜質(zhì)的作用。選用的水泵抽水量為0.015立方米/min它的主要特點(diǎn)有:體積超??;獨(dú)有水氣兩用功能,工作介質(zhì)可以為氣體和液

17、體(非油,無(wú)強(qiáng)腐蝕),有水抽水、有氣抽氣;可24小時(shí)連續(xù)運(yùn)轉(zhuǎn);長(zhǎng)期空轉(zhuǎn)屬正常工作,不會(huì)損壞泵;具備可靠自吸功能,吸程:1.5米,揚(yáng)程:3米。無(wú)油、不污染工作介質(zhì),免維護(hù)、任意方向安裝。2. 7水位器的選擇 在我的自動(dòng)換水系統(tǒng)里,定位器其實(shí)就是抽水馬桶里的定位器,為什么選擇它呢?主要是價(jià)格便宜,市場(chǎng)廣,在馬桶專(zhuān)賣(mài)店里就可以買(mǎi)到,定位器的原理很簡(jiǎn)單,就是靠水的浮力和水的壓力來(lái)控制的。把定位器連接進(jìn)水管上,起到雙重保護(hù)。第 三 章 軟 件 設(shè) 計(jì)我的魚(yú)缸自動(dòng)換水系統(tǒng)是用單片機(jī)控制電磁閥的開(kāi)與關(guān),每天換水的時(shí)間也是經(jīng)過(guò)精確的計(jì)算設(shè)置的??稍谧詣?dòng)模式中的設(shè)置時(shí)間,也可以通過(guò)手動(dòng)設(shè)置時(shí)間。31 換水時(shí)間及

18、換水量選擇圖3-1 魚(yú)缸尺寸示意(長(zhǎng)2米,寬0.65米,高0.8米)魚(yú)缸的大小如圖3-1所示,首先我們要先求出魚(yú)缸水的體積,公式為:vs=2*0.65*0.8*0.85=0.884(立方米)(注: 0.85的意思是水的體積是魚(yú)缸總體積的85%)根據(jù)有關(guān)資料證明,每天換水量占水總體積的15%是最好的,對(duì)魚(yú)兒的生長(zhǎng)是最有利的,故可以算出每天換水量,所用公式為:vh=0.884*0.15=0.1326立方米根據(jù)前面水泵的選擇,計(jì)算每天只要排15分鐘水就可以了。由于家里自來(lái)水每分鐘流量是一定的,根據(jù)實(shí)際考察所得算出進(jìn)水只需要20分鐘。算出每天換水的時(shí)間后,即在系統(tǒng)中設(shè)置,本系統(tǒng)開(kāi)機(jī)后顯示實(shí)時(shí)時(shí)間,默認(rèn)

19、是自動(dòng)控制兩個(gè)電磁閥。每天換水一般在中午,所以整個(gè)單片機(jī)程序設(shè)置如下:電磁閥1接通時(shí)間為每天13:00,斷開(kāi)時(shí)間13:20。電磁閥2接通時(shí)間為每天14:00,斷開(kāi)時(shí)間14:15。3. 2控制過(guò)程:在自動(dòng)模式中,系統(tǒng)是根據(jù)我自己設(shè)定的時(shí)間控制兩個(gè)電磁閥在指定的時(shí)間接通和斷開(kāi)。在手動(dòng)模式中,即在非設(shè)置狀態(tài)下,可通過(guò)按鍵控制電磁閥的接通與斷開(kāi),如下:點(diǎn)按k1鍵控制電磁閥1接通和斷開(kāi);點(diǎn)按k2鍵控制電磁閥2接通和斷開(kāi)。自動(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)下: led

20、2(out1on)亮表示設(shè)置電磁閥1定開(kāi)時(shí)間 led3(out1off)亮表示設(shè)置電磁閥1定關(guān)時(shí)間 led4(out2on)亮表示設(shè)置電磁閥2定開(kāi)時(shí)間 led4(out1off)亮表示設(shè)置電磁閥2定關(guān)時(shí)間詳細(xì)內(nèi)容請(qǐng)看圖3-2圖3-23.3程序設(shè)計(jì)3.3.1 主程序設(shè)計(jì)主程序開(kāi)始掃描顯示器更新時(shí)間數(shù)據(jù)初始化定時(shí)器初始化變量k1: 繼電器1 on/offk2: 繼電器2 on/offk3:點(diǎn)按顯示鐘控狀態(tài),長(zhǎng)按設(shè)置定時(shí)時(shí)間k4:點(diǎn)按顯示秒,長(zhǎng)按設(shè)置現(xiàn)在的時(shí)間是否按k1、k2、k3、k4鍵?3.3.2 子程序設(shè)計(jì)主要控制子程序說(shuō)明如下: timer2_server:定時(shí)器2計(jì)時(shí)中斷程序每隔31.25

21、ms中斷一次; delay:延時(shí)子程序; feng:蜂鳴器鳴響處理程序; display:工作led閃動(dòng)控制;轉(zhuǎn)換數(shù)據(jù)為七段顯示器顯示數(shù)據(jù)并寫(xiě)入顯示內(nèi)存內(nèi) led_out:七段數(shù)碼管顯示程序; conv:將時(shí)及分的數(shù)據(jù)轉(zhuǎn)換為七段顯示器顯示數(shù)據(jù)并寫(xiě)入顯示內(nèi)存內(nèi); key:按*鍵檢測(cè)包括設(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

22、 #define uint unsigned 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,ap

23、p,onhour,oncent,offhour,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 ma

24、x,char min);void alarm_clock();void led_out();void delay(uchar i) /*延時(shí)*/ uint x; for(;i0;i-) for(x=114;x0;x-); /22.1184=228,11.0592=114void feng(uchar i) /*蜂鳴器*/ uint x; for(;i0;i-)bp=bp; for(x=114;x0;x-);bp=1;void main(void)hour=12;cent=00;/second=50;onhour=13;oncent=0;offhour=13;offcent=20;biaoa=1

25、;onhour2=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)seco

26、nd=0;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;ba

27、i=dish%10;shi=disl/10;ge=disl%10;if(mbiao3)if(timecount16)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(timecount16)&(mbiao=0) /十位處理p0=dispcodeshi&0x7f;else p0=disp

28、codeshi; led2=0;delay(2);led2=1; if(timecount16)&(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 5:p0=0xfb;break;case 6:p0=0xf7;break;

29、case 7:p0=0xf7;break;led4=0;delay(2);led4=1; /*按*鍵*檢*測(cè)*/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(mbiao4)feng(20);mbiao+;if(mbiao=2)mbiao=0;if(temp3)feng(20);keytemp+;sw

30、itch (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=oncent;offth=offhour;offtc=offcent;onth2=onhour2;ontc2=oncent2;offth2=o

31、ffhour2;offtc2=offcent2;while(!k2)dish=thour;disl=tcent;display();break;if(tempmax)dd=min;while(-x)display();if(k1)break;if(k0=0)delay(5);if(k0=0)feng(20);dd-;if(ddmin)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)

32、feng(120);aout=0;if (biaoa)if (hour=offhour)if (cent=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)試 軟硬

33、件結(jié)合在一起,看是否能工作正常,由于在模塊調(diào)試過(guò)程中,我們把軟硬件所出現(xiàn)的錯(cuò)誤都調(diào)整過(guò)來(lái)了,所以系統(tǒng)調(diào)試通過(guò)。結(jié)束語(yǔ)在這次畢業(yè)設(shè)計(jì)中,我學(xué)到了很多東西,真的沒(méi)有想到搞一篇畢業(yè)設(shè)計(jì)這么難,每天腦子里總想著怎么做才能更好,本人專(zhuān)業(yè)知識(shí)有限,設(shè)計(jì)出來(lái)的東西還存在很多很多問(wèn)題,這是專(zhuān)業(yè)知識(shí)的不夠。在以后走入工作崗位中,要把技術(shù)學(xué)到位,等以后再來(lái)設(shè)計(jì)這樣產(chǎn)品就是輕而易舉的事情了。從這次畢業(yè)設(shè)計(jì)中,明白了單片機(jī)的重要性,平時(shí)沒(méi)有感覺(jué)到單片機(jī)在生活中的作用這么大,通過(guò)這次設(shè)計(jì),才明白單片機(jī)無(wú)處不在,生活中到處都用的到它。謝辭快要畢業(yè)了,感覺(jué)自己沒(méi)有學(xué)到什么,但學(xué)校提供給我們這次機(jī)會(huì),大大彌補(bǔ)了我的理論學(xué)習(xí),感謝學(xué)校!還要感謝我的指導(dǎo)老師,焦振宇老師,沒(méi)有他每時(shí)每刻提醒我督促我,我不會(huì)按時(shí)完成的,在我想不出來(lái)設(shè)計(jì)什么產(chǎn)品時(shí),是焦老師提醒了我。給我啟發(fā)!在這次畢業(yè)設(shè)計(jì)中遇到一些問(wèn)題,特別是編程問(wèn)題,說(shuō)實(shí)話我個(gè)人

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論