基于51單片機(jī)寵物自動(dòng)喂食機(jī)設(shè)計(jì)與制作_第1頁
基于51單片機(jī)寵物自動(dòng)喂食機(jī)設(shè)計(jì)與制作_第2頁
基于51單片機(jī)寵物自動(dòng)喂食機(jī)設(shè)計(jì)與制作_第3頁
基于51單片機(jī)寵物自動(dòng)喂食機(jī)設(shè)計(jì)與制作_第4頁
基于51單片機(jī)寵物自動(dòng)喂食機(jī)設(shè)計(jì)與制作_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

目錄

1產(chǎn)品功能分析...........................................................................................................3

2設(shè)計(jì)方案遴選...........................................................................................................3

2.1單片機(jī)的選擇...............................................................................................3

2.2時(shí)鐘芯片的選擇...........................................................................................3

2.3系統(tǒng)框圖設(shè)計(jì)...............................................................................................4

3產(chǎn)品硬件設(shè)計(jì)...........................................................................................................5

3.1主控電路設(shè)計(jì)...............................................................................................5

3.2按鍵電路設(shè)計(jì)...............................................................................................6

3.3LCD1602液晶顯示模塊電路........................................................................6

3.4蜂鳴器模塊....................................................................................................7

3.5時(shí)鐘電路........................................................................................................8

3.6步進(jìn)電機(jī)電路................................................................................................8

4產(chǎn)品軟件設(shè)計(jì).........................................................................................................10

4.1主程序流程圖.............................................................................................10

4.2下位機(jī)程序設(shè)計(jì).........................................................................................11

4.3產(chǎn)品程序清單.............................................................................................11

5產(chǎn)品使用說明.........................................................................................................12

5.1產(chǎn)品裝配圖.................................................................................................12

5.2產(chǎn)品調(diào)試.....................................................................................................13

5.3產(chǎn)品使用說明.............................................................................................13

5.4實(shí)物作品操作演示......................................................................................14

6、產(chǎn)品設(shè)計(jì)技術(shù)標(biāo)準(zhǔn)...............................................................................................14

7參考資料.................................................................................................................15

附錄.............................................................................................................................16

附錄1元器件清單..........................................................................................16

附錄2電路原理圖..........................................................................................17

附錄3PCB設(shè)計(jì)圖...........................................................................................18

1

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

附錄4產(chǎn)品實(shí)物圖..........................................................................................19

附錄5主程序代碼..........................................................................................20

2

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

基于51單片機(jī)寵物自動(dòng)喂食機(jī)設(shè)計(jì)與制作

1產(chǎn)品功能分析

時(shí)代在不斷進(jìn)步,每個(gè)家庭的生活水平也在提高,小動(dòng)物不再僅僅是寵物,

更是主人的家人朋友,主人對所飼養(yǎng)的寵物也越來越重視,但在平時(shí)的生活中

總會(huì)有一些不可控因素。故而,我們設(shè)計(jì)實(shí)現(xiàn)智能控制的寵物自動(dòng)喂食器。

此說明書是基于51單片機(jī)寵物自動(dòng)喂食機(jī)設(shè)計(jì)與制作。它主要由DS1302

時(shí)鐘芯片、按鍵控制電路和LCD1602顯示組成,以步進(jìn)電機(jī)為執(zhí)行元件,核心

使用STC89C52芯片。按下按鍵設(shè)置當(dāng)前時(shí)間和喂食時(shí)間,切換手動(dòng)模式和定

時(shí)喂食模式,并且通過LCD1602液晶顯示時(shí)、分、秒、星期、年、月、日,模

式分為手動(dòng)喂食模式(sd)、定時(shí)喂食模式(ds)。到達(dá)設(shè)定時(shí)間,自動(dòng)投放食

物,蜂鳴器發(fā)出響聲吸引寵物過來進(jìn)食。步進(jìn)電機(jī)轉(zhuǎn)一圈模擬喂食,同時(shí)蜂鳴

器響提醒動(dòng)物來吃食物,喂食結(jié)束,電機(jī)反轉(zhuǎn)一圈,同時(shí)蜂鳴器關(guān)閉。

2設(shè)計(jì)方案遴選

2.1單片機(jī)的選擇

方案一:使用STM32系列單片機(jī),STM32是一款性價(jià)比高構(gòu)造簡略,工具

易用,功能強(qiáng)大的系列單片機(jī)。外設(shè)多樣,能夠處理模擬和數(shù)字信號(hào),操作簡

略。但是STM32是運(yùn)行指令的,合適運(yùn)行算法,但對于多路信號(hào)處理,須要很

多DSP進(jìn)行并行處理。

方案二:使用STC89C51系列單片機(jī),51是上世紀(jì)80年代就被廣泛應(yīng)用的

單片機(jī),具有大量的資料,有很多的種類,更輕易上手,STC單片機(jī)內(nèi)部構(gòu)造

比STM32系列單片機(jī)簡略,目前在學(xué)校教學(xué)大量被采用。

故而我選擇了51系列的單片機(jī)。

2.2時(shí)鐘芯片的選擇

方案一:使用單片機(jī)定時(shí)計(jì)數(shù)器,單片機(jī)的定時(shí)器用的是它自己的晶振,

不是專門用來做電子鐘的,因其精度不高,無法使程序正確實(shí)現(xiàn)年、月、日、

星期、時(shí)、分、秒計(jì)數(shù)的功能。而且操作麻煩。

方案二:使用DS1302芯片,DS1302芯片有專用的寄存器,可以自動(dòng)對秒、分、

時(shí)、日、周、月、年、以及閏年補(bǔ)償?shù)奶鞌?shù)進(jìn)行計(jì)數(shù)。它是一種高性能且精度

3

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

很高的芯片,工作電壓在2.5V-5.5V之間,寫程序也比較簡單。

故而我選擇DS1302。

2.3系統(tǒng)框圖設(shè)計(jì)

產(chǎn)品系統(tǒng)框圖設(shè)計(jì)如下圖1所示:

圖1系統(tǒng)框圖

4

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

3產(chǎn)品硬件設(shè)計(jì)

由STC89C52RC單片機(jī)組成的此系統(tǒng),功能電路主要包括:DS1302時(shí)鐘電

路、按鍵控制電路和LCD1602液晶顯示器電路,時(shí)鐘芯片供電電池,步進(jìn)電機(jī)

控制電路,蜂鳴器電路,電源開關(guān)及接口等組成。電路板上面有4個(gè)按鍵,一

個(gè)設(shè)置手動(dòng)或者自動(dòng)喂食,兩個(gè)設(shè)置時(shí)間選擇按鍵,一個(gè)為復(fù)位按鍵,單獨(dú)按

鍵為電源開關(guān)。

3.1主控電路設(shè)計(jì)

STC89C52單片機(jī)是一中高性能低功耗的CMOS8位微控制器,帶有閃存,

在8K在線系統(tǒng)中能夠進(jìn)行編程。采用高密度存儲(chǔ)器的技術(shù)制造,可以非常好

的兼容工業(yè)80C51產(chǎn)品指令以及引腳。STC89C52為許多嵌入式控制應(yīng)用系統(tǒng)提

供高靈活、高效率的解決方案。

圖2STC89C52雙列直插式引腳圖

它不但具備了MCS-51系列微控制器的全部性能,而且采用了8K可編程閃

存技術(shù)。低功耗空閑和掉電模式大大降低了電路的功耗,同時(shí)還包括定時(shí)器、

程序存儲(chǔ)器等硬件,可以滿足整體控制系統(tǒng)的每個(gè)需求,無需與其它存儲(chǔ)芯片

和定時(shí)器件相連,形成最小系統(tǒng)。整體結(jié)構(gòu)緊湊,而且具有很好的抗干擾性和

較高的性價(jià)比。

單片機(jī)模塊是最重要的設(shè)計(jì)部分,整個(gè)控制都是在單片機(jī)的基礎(chǔ)上來完成

的,單片機(jī)的主控系統(tǒng)如下圖3所示:

5

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖3單片機(jī)主控系統(tǒng)

3.2按鍵電路設(shè)計(jì)

按鍵模塊采用4個(gè)按鍵,一個(gè)設(shè)置手動(dòng)或者自動(dòng)喂食,兩個(gè)設(shè)置時(shí)間選擇

按鍵,一個(gè)為復(fù)位按鍵。

按鍵電路連接如圖4所示。

圖4按鍵模塊連接原理圖

3.3LCD1602液晶顯示模塊電路

LCD1602液晶顯示器,它是廣泛使用的一種字符型液晶顯示模塊。是由字

符型液晶顯示屏(LCD)、少量電阻和控制驅(qū)動(dòng)主電路HD44780、結(jié)構(gòu)元件和電

容件等裝配在PCB板上組成。能夠同時(shí)顯示32個(gè)字符,專門用來顯示數(shù)字、

字母、符號(hào)。其優(yōu)點(diǎn)是耗電量低、體積小。在生活中,我們對其的運(yùn)用也十分

廣泛。在計(jì)算機(jī)、電子手表以及很多電子產(chǎn)品上都有使用。LCD1602液晶顯示

實(shí)物圖5如下所示。

6

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖5LCD1602液晶顯示實(shí)物圖

LCD1602液晶顯示接口電路如下圖6所示。

圖6液晶顯示模塊LCD1602連接原理圖

3.4蜂鳴器模塊

蜂鳴器模塊是由蜂鳴器和三極管組成的,在單片機(jī)IO口輸出低電平時(shí),

蜂鳴器接收到一個(gè)高電平,蜂鳴器發(fā)出響聲吸引寵物。

蜂鳴器的連接圖如圖7所示。

圖7蜂鳴器模塊連接圖

7

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

3.5時(shí)鐘電路

DS1302時(shí)鐘電路模塊是由單片機(jī)采集它的時(shí)鐘數(shù)據(jù)隨后經(jīng)過程序化處理,

最后再顯示在LCD上。

DS1302時(shí)鐘芯片是一種實(shí)時(shí)時(shí)鐘芯片功耗很低。它可以計(jì)時(shí)精確到秒分時(shí)

日周月年,以及閏年補(bǔ)時(shí)等多種功能。DS1302芯片包含一個(gè)31字節(jié)的靜態(tài)

RAM,用于存儲(chǔ)實(shí)時(shí)時(shí)鐘/日歷,通過簡單的串行接口與微處理器通信,將當(dāng)

前的是時(shí)鐘存于RAM。DS1302芯片會(huì)自動(dòng)調(diào)整月份少于31天的末尾,并自動(dòng)

校正閏年時(shí)長。因?yàn)橛蠥M/PM指示器,故而時(shí)鐘可以在12小時(shí)制和24小時(shí)

制進(jìn)行工作。

圖8時(shí)鐘電路

3.6步進(jìn)電機(jī)電路

步進(jìn)電機(jī)是一種能把電脈沖訊號(hào)轉(zhuǎn)化為對應(yīng)的角位移或線性位移的馬達(dá)。

在此基礎(chǔ)上,提出了一種基于旋轉(zhuǎn)軸的旋轉(zhuǎn)軸控制方法,并將旋轉(zhuǎn)軸控制在不

同的旋轉(zhuǎn)軸上。所以,步進(jìn)電機(jī)也被稱為脈沖電機(jī)。事實(shí)上,這是一種單相和

多相位的同步電機(jī)。單相步進(jìn)電機(jī)是一種單脈沖的驅(qū)動(dòng)方式,其輸出功率通常

很低,適合于小功率的驅(qū)動(dòng)。多相方波脈沖激勵(lì)是一種常用的多相步進(jìn)電機(jī)。

在此產(chǎn)品中,用步進(jìn)電機(jī)模擬喂食。步進(jìn)電機(jī)實(shí)物圖如下圖9所示。

8

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖9步進(jìn)電機(jī)實(shí)物圖

電路中,采用一個(gè)ULN2003芯片作為步進(jìn)電機(jī)的驅(qū)動(dòng),步進(jìn)電機(jī)的接口

電路如下圖10所示。

圖10步進(jìn)電機(jī)模塊

9

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

4產(chǎn)品軟件設(shè)計(jì)

4.1主程序流程圖

主程序包括按鍵模塊、LCD顯示模塊、時(shí)鐘模塊電機(jī)控閥門等。通過開始

按鍵,開始調(diào)整設(shè)置鬧鐘時(shí)間,若沒有按下,則執(zhí)行已設(shè)置的時(shí)間顯示,最后

依次循環(huán)這些相同的操作,相應(yīng)流程圖如圖11所示:

開始

程序初始化

添加食物

DS1302開始工作

數(shù)據(jù)讀取

NO

萬年歷是否正確萬年歷調(diào)整

YES

萬年歷顯示

NO

定時(shí)是否正確定時(shí)器調(diào)整

YES

數(shù)據(jù)和圖表顯示

步進(jìn)電機(jī),蜂鳴器和鬧鐘開始工作

結(jié)束和日歷顯示

圖11主程序流程圖

10

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

4.2下位機(jī)程序設(shè)計(jì)

程序編寫后,對程序進(jìn)行編譯檢查,檢查是否有誤,直至修改無誤。如圖

12所示:

圖12程序編譯圖

4.3產(chǎn)品程序清單

圖13產(chǎn)品程序清單

11

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

5產(chǎn)品使用說明

5.1產(chǎn)品裝配圖

由STC89C52RC單片機(jī)組成的此系統(tǒng),DS1302時(shí)鐘芯片、按鍵控制電路

和LCD1602液晶顯示器,時(shí)鐘芯片供電電池,步進(jìn)電機(jī),蜂鳴器,電源開關(guān)

及接口組成。如圖14所示:

圖14產(chǎn)品裝配圖

12

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

5.2產(chǎn)品調(diào)試

檢查電路板排查邏輯故障,排查元器件失效,排查電源故障,如果一切正

常,即可將程序燒錄至單片機(jī)中,并核查,每一個(gè)元器件的命令是否正確。

圖15程序燒錄圖

5.3產(chǎn)品使用說明

1、接通電源,單片機(jī)開始工作;

2、按鍵設(shè)置當(dāng)前時(shí)間和喂食時(shí)間LCD顯示年、月、日、時(shí)、分、秒;

3、通過選擇鍵設(shè)置自動(dòng)喂食模式或手動(dòng)喂食模式(ds、sd);

4、可以設(shè)置五個(gè)喂食時(shí)間,每個(gè)時(shí)間都可以單獨(dú)設(shè)置成工作是否有效;

5、自動(dòng)喂食模式下,當(dāng)定時(shí)時(shí)間到了,步進(jìn)電機(jī)轉(zhuǎn)一圈模擬投食,同時(shí)蜂鳴

器響提示動(dòng)物來吃食,投食結(jié)束后,電機(jī)反轉(zhuǎn)一圈,同時(shí)蜂鳴器關(guān)閉;

6、手動(dòng)喂食模式下,可以通過按加鍵手動(dòng)打開喂食、同時(shí)蜂鳴器響提示動(dòng)物

過來吃食,按減鍵手動(dòng)關(guān)喂食,同時(shí)蜂鳴器關(guān)閉。

13

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

5.4實(shí)物作品操作演示

圖16實(shí)物作品操作圖

6、產(chǎn)品設(shè)計(jì)技術(shù)標(biāo)準(zhǔn)

[1]J-STD-001E電氣與電子組件的焊接要求

[2]IPC-A-610D(中文版),IPC-A-610E電子組件的可接受性要求

[3]IPC-7711/21電子組件和電路板的返工&返修

[4]GB/T11457-2006信息技術(shù)軟件工程術(shù)語;

[5]GB/T8566-2007信息技術(shù)軟件生存周期過程標(biāo)準(zhǔn);

[6]GB/T8567-2006計(jì)算機(jī)軟件文檔編制規(guī)范。

14

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

7參考資料

[1]閻石主編.《數(shù)字電子技術(shù)基礎(chǔ)》.修訂3版.高等教育出版社.1988.

[2]童詩白主編.《模擬電子技術(shù)基礎(chǔ)》.修訂2版.高等教育出版社.1988.

[3]胡漢才主編.《單片機(jī)原理及其接口技術(shù)》.(第二版).清華大學(xué)出版社.2004.

[4]張毅剛主編.《單片機(jī)原理及應(yīng)用》.高等教育出版社.

[5]何立民.《MCS-51單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)》.北京航空航天大學(xué)出版社.1998.7.

[6]徐愛軍.《單片機(jī)高級語言C51應(yīng)用程序設(shè)計(jì)》.電子工業(yè)出版社.1997.7.

[7]張志良.單片機(jī)原理與控制技術(shù).機(jī)械工業(yè)出版社.2008.

[8]于海生.微型計(jì)算機(jī)控制技術(shù).清華大學(xué)出版社.1999.3.

[9]康華光.電子技術(shù)基礎(chǔ).模擬部分.高等教育出版社.2005.

[10]于敬芬.基于STC89C52和TLC0834的數(shù)據(jù)采集系統(tǒng).中國水運(yùn)(學(xué)術(shù)版).2006.

[11]王幸之.AT89系列單片機(jī)原理及接口技術(shù).北京航天航空出版社.2006.

[12]康華光.電子技術(shù)基礎(chǔ).?dāng)?shù)字部分.高等教育出版社.1998.

[13]胡漢才.單片機(jī)原理及系統(tǒng)設(shè)計(jì).清華大學(xué)出版社.2002.

[14]邱關(guān)源.羅先覺.電路基礎(chǔ).高等教育出版社(第五版).2006.

[15]曹玲芝.電子信息工程專業(yè)英語.華中科技大學(xué)出版社.2007.

[16]劉勇.《數(shù)字電路》.電子工業(yè)出版社.2003.1.

15

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

附錄

附錄1元器件清單

元件型號(hào)元件名稱元件標(biāo)號(hào)數(shù)量

32.768晶振A11

蜂鳴器BellB11

3V紐扣電池座BT11

10uF電容C11

20電容C2,C32

LCD1602液晶LCD11

步進(jìn)電機(jī)接口步進(jìn)電機(jī)P11

9012三極管Q11

2K電阻R11

10K電阻R31

SW-PB按鍵S1,S2,S3,S4,S55

sw-灰色電源開關(guān)SW11

DS1302時(shí)鐘芯片U21

STC89C52單片機(jī)U31

ULN2003電機(jī)驅(qū)動(dòng)芯片U51

12M晶振Y11

16

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

附錄2電路原理圖

17

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

附錄3PCB設(shè)計(jì)圖

18

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

附錄4產(chǎn)品實(shí)物圖

19

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

附錄5主程序代碼

#include<reg52.h>//調(diào)用單片機(jī)頭文件

#defineucharunsignedchar//無符號(hào)字符型宏定義變量范圍0~255

#defineuintunsignedint//無符號(hào)整型宏定義變量范圍0~65535

bitflag_200ms;

bitflag_100ms;

sbitbeep=P2^7;//蜂鳴器定義

ucharmenu_1,menu_2;

bitflag_moshi;

#include"ds1302.h"

#include"lcd1602.h"

ucharflag_z_f;//正反標(biāo)志位0為順時(shí)鐘1為逆時(shí)史上轉(zhuǎn)

uintbjdj_value;//步進(jìn)電機(jī)的量

sbitdj1=P2^0;//電機(jī)IO口定義

sbitdj2=P2^1;//電機(jī)IO口定義

sbitdj3=P2^2;//電機(jī)IO口定義

sbitdj4=P2^3;//電機(jī)IO口定義

bitopen1=1,open2=1,open3=1,open4=1,open5=1;

ucharfen1=0x1,shi1=0x08;//第1個(gè)喂食的時(shí)間

ucharfen2=0x2,shi2=0x08;//第2個(gè)喂食的時(shí)間

ucharfen3=0x3,shi3=0x08;//第3個(gè)喂食的時(shí)間

ucharfen4=0x4,shi4=0x08;//第4個(gè)喂食的時(shí)間

ucharfen5=0x5,shi5=0x08;//第5個(gè)喂食的時(shí)間

/***********************正轉(zhuǎn)****************************/

voidzheng(uchardat)

{

switch(dat)

{

case0:dj1=1;dj2=0;dj3=0;dj4=0;break;

case1:dj1=0;dj2=1;dj3=0;dj4=0;break;

case2:dj1=0;dj2=0;dj3=1;dj4=0;break;

case3:dj1=0;dj2=0;dj3=0;dj4=1;break;

20

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

}

}

/***********************反轉(zhuǎn)****************************/

voidfan(uchardat)

{

switch(dat)

{

case0:dj1=0;dj2=0;dj3=0;dj4=1;break;

case1:dj1=0;dj2=0;dj3=1;dj4=0;break;

case2:dj1=0;dj2=1;dj3=0;dj4=0;break;

case3:dj1=1;dj2=0;dj3=0;dj4=0;break;

}

}

/******************1ms延時(shí)函數(shù)*******************/

voiddelay_1ms(uintq)

{

uinti,j;

for(i=0;i<q;i++)

for(j=0;j<120;j++);

}

/*************定時(shí)器0初始化程序***************/

voidinit_1602_ds1302()

{

write_sfm2_ds1302(2,3,nian);

write_sfm2_ds1302(2,6,yue);

write_sfm2_ds1302(2,9,ri);

write_sfm2_ds1302(1,2,shi);

write_sfm2_ds1302(1,5,fen);

write_sfm2_ds1302(1,8,miao);

write_sfm1(1,14,week);

}

/*************定時(shí)器0初始化程序***************/

voidinit_time0()

{

EA=1;//開總中斷

TMOD=0X01;//定時(shí)器0、工作方式1

ET0=1;//開定時(shí)器0中斷

TR0=1;//允許定時(shí)器0定時(shí)

}

21

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

/*************喂食函數(shù)***************/

voidweishi_dis()

{

if(miao<=10)

{

if(((fen==fen1)&&(shi==shi1)&&(open1==1))||

((fen==fen2)&&(shi==shi2)&&(open2==1))||

((fen==fen3)&&(shi==shi3)&&(open3==1))||

((fen==fen4)&&(shi==shi4)&&(open4==1))||

((fen==fen5)&&(shi==shi5)&&(open5==1)))

{

flag_z_f=1;//定時(shí)喂食

}

}

}

/********************獨(dú)立按鍵程序*****************/

ucharkey_can;//按鍵值

voidkey()//獨(dú)立按鍵程序

{

staticucharkey_new;

key_can=0;//按鍵值還原

P3|=0xF0;//對應(yīng)的按鍵IO口輸出為1

if((P3&0xF0)!=0xF0)//按鍵按下

{

delay_1ms(1);//按鍵消抖動(dòng)

if(((P3&0xF0)!=0xF0)&&(key_new==1))

{//確認(rèn)是按鍵按下

key_new=0;

switch(P3&0xF0)

{

case0x70:key_can=1;break;//得到按鍵值

case0xB0:key_can=2;break;//得到按鍵值

case0xD0:key_can=3;break;//得到按鍵值

case0xE0:key_can=4;break;//得到按鍵值

}

}

}

else

22

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

key_new=1;

}

/**********************設(shè)置函數(shù)************************/

voidkey_with()

{

if(menu_1==0)

{

if(key_can==2)

{

flag_moshi=~flag_moshi;

if(flag_moshi==0)//定時(shí)模式

write_string(2,13,"ds");

if(flag_moshi==1)//手動(dòng)模式

write_string(2,13,"sd");

}

if(flag_moshi==1)

{

if(key_can==3)

flag_z_f=1;//手動(dòng)喂

if(key_can==4)

flag_z_f=2;//手動(dòng)關(guān)

}

}

if(key_can==1)//設(shè)置鍵

{

menu_1++;

menu_2=1;

if(menu_1>4)//回到正常顯示

{

menu_1=0;

init_1602();//lcd1602初始化設(shè)置

}

}

if(key_can==2)//選擇鍵

{

flag_200ms=1;

if(menu_1==1)//設(shè)置時(shí)間

{

menu_2++;

if(menu_2>7)

menu_2=1;

23

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

}

if(menu_1==4)

{

menu_2++;

if(menu_2>3)

menu_2=1;

}

elseif(menu_1>1)//設(shè)置

{

menu_2++;

if(menu_2>6)

menu_2=1;

}

}

if(menu_1==1)

{

if(menu_2==1)//設(shè)置時(shí)

{

if(key_can==3)//加

set_ds1302time(1,&shi,0x24);

if(key_can==4)//減

set_ds1302time(0,&shi,0x24);

}

if(menu_2==2)//設(shè)置分

{

if(key_can==3)//加

set_ds1302time(1,&fen,0x60);

if(key_can==4)//減

set_ds1302time(0,&fen,0x60);

}

if(menu_2==3)//設(shè)置秒

{

if(key_can==3)//加

set_ds1302time(1,&miao,0x60);

if(key_can==4)//減

set_ds1302time(0,&miao,0x60);

}

if(menu_2==4)//設(shè)置星期

{

if(key_can==3)//加

set_ds1302time(1,&week,8);

if(key_can==4)//減

set_ds1302time(0,&week,8);

24

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

}

if(menu_2==5)//設(shè)置年

{

if(key_can==3)//加

set_ds1302time(1,&nian,0x9A);

if(key_can==4)//減

set_ds1302time(0,&nian,0x9A);

}

if(menu_2==6)//設(shè)置月

{

if(key_can==3)//加

set_ds1302time(1,&yue,0x13);

if(key_can==4)//減

set_ds1302time(0,&yue,0x13);

}

if(menu_2==7)//設(shè)置日

{

if(key_can==3)//加

set_ds1302time(1,&ri,0x32);

if(key_can==4)//減

set_ds1302time(0,&ri,0x32);

}

write_sfm2_ds1302(1,2,shi);//顯示時(shí)

write_sfm2_ds1302(1,5,fen);//顯示分

write_sfm2_ds1302(1,8,miao);//顯示秒

write_sfm1(1,14,week);//顯示星期

write_sfm2_ds1302(2,3,nian);//顯示年

write_sfm2_ds1302(2,6,yue);//顯示月

write_sfm2_ds1302(2,9,ri);//顯示日

switch(menu_2)//光標(biāo)顯示

{

case1:write_guanbiao(1,2,1);break;

case2:write_guanbiao(1,5,1);break;

case3:write_guanbiao(1,8,1);break;

case4:write_guanbiao(1,14,1);break;

case5:write_guanbiao(2,3,1);break;

case6:write_guanbiao(2,6,1);break;

case7:write_guanbiao(2,9,1);break;

}

write_time();//把時(shí)間寫進(jìn)去

}

/***************設(shè)置1開關(guān)時(shí)間*********************/

if(menu_1==2)

25

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

{

/////////////////////第1個(gè)喂食時(shí)間

if(menu_2==1)//設(shè)置開關(guān)時(shí)

{

if(key_can==3)//加

set_ds1302time(1,&shi1,0x24);

if(key_can==4)//減

set_ds1302time(0,&shi1,0x24);

}

if(menu_2==2)//設(shè)

{

if(key_can==3)//加

set_ds1302time(1,&fen1,0x60);

if(key_can==4)//減

set_ds1302time(0,&fen1,0x60);

}

if(menu_2==3)//設(shè)

{

if(key_can==3)

open1=~open1;

if(key_can==4)

open1=~open1;

}

/////////////////////第2個(gè)喂食時(shí)間

if(menu_2==4)//設(shè)置開關(guān)分

{

if(key_can==3)//加第2個(gè)開關(guān)時(shí)間

set_ds1302time(1,&shi2,0x24);

if(key_can==4)//減

set_ds1302time(0,&shi2,0x24);

}

if(menu_2==5)//設(shè)

{

if(key_can==3)//加

set_ds1302time(1,&fen2,0x60);

if(key_can==4)//減

set_ds1302time(0,&fen2,0x60);

}

if(menu_2==6)//設(shè)

{

if(key_can==3)

open2=~open2;

26

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

if(key_can==4)

open2=~open2;

}

write_string(1,0,"Time100:00Y");

write_string(2,0,"Time200:00Y");

write_sfm2_ds1302(1,6,shi1);//顯示時(shí)

write_sfm2_ds1302(1,9,fen1);//顯示分

write_sfm2_ds1302(2,6,shi2);//顯示時(shí)

write_sfm2_ds1302(2,9,fen2);//顯示分

if(open1==1)

write_string(1,11,"Y");

else

write_string(1,11,"N");

if(open2==1)

write_string(2,11,"Y");

else

write_string(2,11,"N");

}

if(menu_1==3)

{

/////////////////////第3個(gè)喂食時(shí)間

if(menu_2==1)//設(shè)置喂食時(shí)

{

if(key_can==3)//加

set_ds1302time(1,&shi3,0x24);

if(key_can==4)//減

set_ds1302time(0,&shi3,0x24);

}

if(menu_2==2)//設(shè)

{

if(key_can==3)//加

set_ds1302time(1,&fen3,0x60);

if(key_can==4)//減

set_ds1302time(0,&fen3,0x60);

}

if(menu_2==3)//設(shè)

{

if(key_can==3)

open3=~open3;

if(key_can==4)

open3=~open3;

}

27

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

/////////////////////第4個(gè)喂食時(shí)間

if(menu_2==4)//設(shè)置開關(guān)分

{

if(key_can==3)//加

set_ds1302time(1,&shi4,0x24);

if(key_can==4)//減

set_ds1302time(0,&shi4,0x24);

}

if(menu_2==5)//設(shè)

{

if(key_can==3)//加

set_ds1302time(1,&fen4,0x60);

if(key_can==4)//減

set_ds1302time(0,&fen4,0x60);

}

if(menu_2==6)//設(shè)

{

if(key_can==3)

open4=~open4;

if(key_can==4)

open4=~open4;

}

write_string(1,0,"Time300:00");

write_string(2,0,"Time400:00");

write_sfm2_ds1302(1,6,shi3);//顯示時(shí)

write_sfm2_ds1302(1,9,fen3);//顯示分

write_sfm2_ds1302(2,6,shi4);//顯示時(shí)

write_sfm2_ds1302(2,9,fen4);//顯示分

if(open3==1)

write_string(1,11,"Y");

e

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論