飲水機循環(huán)定時器的設(shè)計說明_第1頁
飲水機循環(huán)定時器的設(shè)計說明_第2頁
飲水機循環(huán)定時器的設(shè)計說明_第3頁
飲水機循環(huán)定時器的設(shè)計說明_第4頁
飲水機循環(huán)定時器的設(shè)計說明_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、大學(xué)畢業(yè)設(shè)計論文飲水機循環(huán)定時器的設(shè)計班級: 摘要隨著電子技術(shù)的發(fā)展和人民生活水平的提高,飲水機、電熱水器等已經(jīng)成為家庭的必備用品,但飲水機等電熱產(chǎn)品反復(fù)加熱造成的“千滾水”也成為影響人們身體健康的隱患,家庭建議不飲用桶裝水和飲水機,兩者長時間飲用都不好。本課題介紹一種以單片機STC89C52和DS1302為核心的飲水機定時器,該定時器可用于解決飲水機等電熱產(chǎn)品長時間通電引發(fā)的一些問題。該定時器可以用電子時鐘來顯示時間,并可以在任意時段用該定時器來進行定時。論文敘述了飲水機循環(huán)定時器的設(shè)計過程,首先分析并總結(jié)了定時器如何來實現(xiàn)定時的方法,從而設(shè)計總體方案,然后利用單片機和時鐘芯片 DS1302

2、來實現(xiàn)定時器的功能,并設(shè)計了相關(guān)的定時程序,最后通過所設(shè)計的定時器來實現(xiàn)節(jié)能控制和循環(huán)定時的功能。關(guān)鍵詞:節(jié)能控制,循環(huán)定時,DS1302ABSTRACTWith the development of electronic technology and people's living standards improve,drinking fountains, electric water heater has become a family of essential supplies,water dispensers and electric products, such as rep

3、eated heating caused thousands of boiling water also affect the health of people hidden. The family does not recommend drinking bottled water and drinking fountains, the two long drinking is not goodThis subjectintroduction the microcontroller STC89C52 and DS1302 as the core of the water dispenser t

4、imer ,this timer can be used to solve the drinking fountains and other electric for a long time power caused some problems. This timer can be used to display electronic clock time, and at any time using the timer time.The paper describes the design process of the fountains cycle timer,firstly analyz

5、es and summarizes the timer on how to achieve timing in order to design the overall program, and then use the microcontroller and the clock chip DS1302 timer function, and design timing procedures, and finally through the design of the timer energy saving control and the cycle of regular features.Ke

6、ywords: Energy control,Cycle time, DS1302飲水機循環(huán)定時器的設(shè)計1摘要2ABSTRACT2第一章緒論4一本課題的研究意義4二定時器的發(fā)展現(xiàn)狀4三本課題的基本任務(wù)5第二章飲水機定時器的設(shè)計方案6第三章飲水機定時器的硬件設(shè)計7一數(shù)碼管顯示電路設(shè)計7(一)顯示電路7(二)數(shù)碼管的引腳圖與其連接7二繼電器控制電路設(shè)計8(一)繼電器控制電路8三時鐘電路的設(shè)計9(一) DS1302的功能9(二) DS1302的結(jié)構(gòu)與其工作原理10四總原理圖設(shè)計11(一) 微處理器STC89C5211(二)結(jié)構(gòu)圖與引腳說明12第四章飲水機定時器的軟件設(shè)計15一系統(tǒng)軟件設(shè)計要求15二軟

7、件設(shè)計所需實現(xiàn)的功能15三定時器軟件設(shè)計的流程圖15四上電后設(shè)置流程圖20第五章調(diào)試過程中的問題與其解決辦法24一硬件調(diào)試24二軟件調(diào)試24三本課題在調(diào)試過程中的問題以與解決的辦法24第六章總結(jié)25致26參考文獻27附錄28第一章 緒論隨著電子技術(shù)的發(fā)展,以單片機為控制核心的電器產(chǎn)品,已經(jīng)用在人民生活的各個方面,而定時器作為一種常用部件,在機電一體的系統(tǒng)中得到了廣泛應(yīng)用。本文介紹了一種自行研制的飲水機定時器,該定時器以單片機STC89C52為核心采用數(shù)碼管顯示,用繼電器來控制輸出。由于使用了DS1302時鐘芯片,可以用定時器定時來減少功耗,達到節(jié)能的效果。此外,該定時器具有結(jié)構(gòu)簡單、價格低廉等

8、優(yōu)點,應(yīng)用場合十分廣泛。一 本課題的研究意義隨著電子技術(shù)的發(fā)展和人民生活水平的提高,越來越多的電器產(chǎn)品進入家庭,辦公地點等各場所。人們在日常生活中會需要用到各種定時器的相關(guān)家電產(chǎn)品,來實現(xiàn)智能化控制電器產(chǎn)品的自動開啟關(guān)閉,因此定時器的使用給人們?nèi)粘I顜砹藰O大的便利。近年來,飲水機、電熱水器等已經(jīng)成為辦公室與家庭的必備用品。據(jù)統(tǒng)計全國2000多萬家企業(yè),幾乎每家企業(yè)都有飲水機。飲水機的耗能是不可想象,一般情況下,飲水機一天的使用時間只有不到10個小時,更多的時間則是處于待機狀態(tài),不僅浪費電而且飲水機反復(fù)加熱生成的千“滾”水對人的身體健康也有較大的影響。據(jù)科學(xué)實驗顯示一臺飲水機每年的待機費電在

9、300度左右!專業(yè)測試表明,辦公場所通常使用的是600W功率的冷熱兩用飲水機,在24小時全天開機情況下的耗電量是每臺1.2至1.7度,年耗電約600度!據(jù)調(diào)查,因為有人加班或因疏忽卻無人關(guān)機等原因,有約90%的辦公場所飲水機全天24小時開機。實際上飲水機需要進行加熱的時間只占到每周總時間的一半甚至三分之一,也就是說,飲水機很多時候在待機中白白浪費電。 生活中因飲水機短路、無水空燒引起的火災(zāi)事故不計其數(shù),飲水機長時間處于待機狀態(tài)不但浪費電,還極為不安全。此外電源專業(yè)人士反復(fù)提醒:長期通電的電器、插座等很容易因為過載、短路與雷擊而發(fā)生危險,引起一系列事故。 本文論述的飲水機定時器能夠有效

10、地解決上述的一些問題,該定時器電路能夠穩(wěn)定實現(xiàn)循環(huán)定時,還能實現(xiàn)自動周期性切斷電源,控制電器設(shè)備的運行,起到降低成本、節(jié)能環(huán)保、延長電器壽命的作用。二 定時器的發(fā)展現(xiàn)狀定時器總的來說有兩種類型:一是基于模擬技術(shù)的傳統(tǒng)產(chǎn)品,這種定時器功能簡單,盡管曾被廣泛應(yīng)用過,但已進入淘汰之列;另一種就是基于數(shù)字技術(shù)的新一代產(chǎn)品,這種產(chǎn)品功能強,是前者的換代之物。然而,此類產(chǎn)品大多是較大型的設(shè)備,真正攜帶方便、實用、功能齊全的“大路”商品就很少可見,應(yīng)用很少了。隨著單片機的不斷研發(fā)和進步,應(yīng)用在新一代產(chǎn)品上越來越廣泛,延伸到可以用于家電控制,還能做兒童電子玩具,還可構(gòu)成復(fù)雜的工業(yè)過程控制系統(tǒng),用于控制大型工業(yè)

11、系統(tǒng) ?,F(xiàn)在的定時器功能強大,靈活性強,操作簡單,方便實用,再配以適當(dāng)?shù)慕涌谛酒?就可以構(gòu)造各種各樣、功能各異的微電子產(chǎn)品。目前定時器種類越來越多,應(yīng)用圍越來越廣,特別是用于家用電器方面的定時器越來越受到歡迎。隨著單片機定時器的不斷進步和發(fā)展,應(yīng)用到實際社會中的產(chǎn)品水平也越來越高,給家庭和辦公場所帶來方便、實用、節(jié)能等一系列好處。三 本課題的基本任務(wù)(1)分析研究飲水機循環(huán)定時器的作用以與所需實現(xiàn)的功能,在對設(shè)計要求充分了解的基礎(chǔ)上,選擇所需的硬件設(shè)備。(2)在對循環(huán)定時器功能了解以與選擇好所需硬件設(shè)備的基礎(chǔ)上,根據(jù)所選硬件設(shè)備完成所需原理圖的設(shè)計,以與電路板的設(shè)計。(3)根據(jù)原理圖完成硬件電

12、路的焊接。(4)根據(jù)所需實現(xiàn)的功能編寫程序,并進行軟件調(diào)試。(5)根據(jù)軟件設(shè)計所需實現(xiàn)的功能,完善所編寫的程序,最終實現(xiàn)循環(huán)定時器的功能。第二章 飲水機定時器的設(shè)計方案本課題以STC89C52和DS1302為核心,利用按鍵來設(shè)置兩個定時時間,當(dāng)?shù)谝粋€定時時間響應(yīng)時會通過繼電器接通外圍電路,使外圍電路正常工作。當(dāng)?shù)诙€定時時間響應(yīng)后同樣通過繼電器切斷外圍電路,同時數(shù)碼管顯示正常時間,顯示電路也可作數(shù)字電子鐘實用。為了體現(xiàn)節(jié)能的效果,當(dāng)無任何按鍵響應(yīng)時,數(shù)碼管顯示十分鐘自動熄滅,而當(dāng)再次按下按鍵是,則立刻又重新顯示當(dāng)前時間其總體設(shè)計框圖如下:數(shù)碼管顯示電路按鍵電路STC89C52繼電器控制電路DS

13、1302時鐘電路 (圖1)飲水機定時器的總體設(shè)計框定時器設(shè)計電路的核心控制器件是C51系列單片機STC89C52,同時通過時鐘芯片DS1302來實現(xiàn)定時功能,保證定時結(jié)束后通過繼電器可以斷開外圍220V的電源。其主要有四個模塊電路組成:(1)按鍵電路總共設(shè)置了四個按鍵,按下第一個按鍵可以用于正常顯示模式和定時模式的切換;按下第二個按鍵可以用于定時設(shè)置確認和閃爍位移位;按下第三個按鍵是閃爍位加1;按下第四個按鍵是閃爍位減1;第二個鍵和第三個鍵同時按下為DS1302初始化;第二個鍵和第三個鍵再次同時按下為設(shè)置是否循環(huán)定時;這樣可一確保用最少的按鈕實現(xiàn)最多的功能,方便實用。(2)DS1302時鐘電路

14、:由單片機讀取DS1302輸出的時鐘信號。(3)數(shù)碼管顯示電路采用4位1體數(shù)碼管,用來顯示時間信號。(4)繼電器控制電路:單片機輸出信號,通過繼電器實現(xiàn)對飲水機的開關(guān)控制。第三章 飲水機定時器的硬件設(shè)計一 數(shù)碼管顯示電路設(shè)計(一)顯示電路(圖2)如(圖2)數(shù)碼管利用PNP的三極管驅(qū)動,利用兩組寄存器。一組用以選中數(shù)碼管,另一組用以點亮七段,實驗所用為共陽的數(shù)碼管,但單片機輸出低電平選中數(shù)碼管。數(shù)碼管顯示利用動態(tài)掃描,每次選中一個數(shù)碼管。(二)數(shù)碼管的引腳圖與其連接v (圖3)4為一體數(shù)碼管,其部段已連接好,引腳如(圖3)所示(正面朝自己,小數(shù)點在下方)。a、b、c、d、e、f、g、dp為段引腳

15、,1、2、3、4分別表示四個數(shù)碼管的位。即:12-9-8-6為公共端,a-11  b-7  c-4  d-2  e-1  f-10  g-5   dp-3。二 繼電器控制電路設(shè)計(一)繼電器控制電路(圖4)繼電器控制電路如(圖4)采用單片機通過一只作為電子開關(guān)的PNP型三極管來驅(qū)動繼電器,繼電器的開關(guān)完全由三極管的基極電平控制。當(dāng)基極為高電平時,PNP三極管截止,繼電器不工作。反之三極管導(dǎo)通,繼電器因由電流流過而吸合,使外圍電路正常工作。其中二極管起保護作用。三 時鐘電路的設(shè)計(圖5)時鐘芯片與單片機的連接如(圖5

16、)DS1302與單片機的連接也僅需要3個引腳: SCLK串行時鐘引腳、CE引腳、I/O串行數(shù)據(jù)引腳, Vcc2為備用電源,外接32.768kHz晶振,為芯片提供計時脈沖。其中傳送數(shù)據(jù)的僅有I/O一根口線,當(dāng)然CE和SCLK必須滿足一定的時序,數(shù)據(jù)才能成功傳送。對DS1302操作時必須先對其初始化,然后分別讀出時、分、秒。并用數(shù)碼管顯示出從DS1302中讀出來的時間。(一) DS1302的功能DS1302是DALLAS公司推出的具有涓流充電能力的低功耗實時時鐘電路,含一個帶RAM的實時時鐘,可以通過串行接口與單片機進行通信。實時時鐘/日歷電路提供秒、分、時、日、日期、月、年的信息,每個月的天數(shù)和

17、閏年的天數(shù)可自動調(diào)整,時鐘操作可通過AM/PM標(biāo)志位決定采用12或24小時的時間格式。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302工作時功耗很低,保持數(shù)據(jù)和時鐘信息時,功率小于1mW。DS1302廣泛應(yīng)用于 、便攜式儀器以與電池供電的儀器儀表等產(chǎn)品領(lǐng)域。(二) DS1302的結(jié)構(gòu)與其工作原理(1)引腳圖與其管腳說明(圖6)1 VCC2 主電源2、3 X1、X2 振蕩源,外接32.768kHz的晶振 4 GND 接地 5 RST 復(fù)位/片選 6 I/O 串行數(shù)據(jù)輸入/輸出端(雙向) 7 SCLK 串行時鐘輸入端 8 VCC1 備用電源(2

18、)部結(jié)構(gòu)圖(圖6)DS1302的部結(jié)構(gòu)(3)工作原理DS1302工作時為了對數(shù)據(jù)傳送進行初始化,需要將復(fù)位腳RST置為高電平且將8位地址和命令地址信息裝入移位寄存器。數(shù)據(jù)在時鐘SCLK的上什沿串行輸入,前8位指定訪問地址,命令字裝入移位寄存器后,在之后的時鐘周期,讀操作時輸出數(shù)據(jù),寫操作時輸入數(shù)據(jù)。時鐘脈沖的個數(shù)在單字節(jié)方式下為8加8(8位地址加8位數(shù)據(jù)),在多字節(jié)方式下為8加最多可達248的數(shù)據(jù)。四 總原理圖設(shè)計其硬件原理圖如下:按鍵電路繼電器電路數(shù)碼管顯示電路時鐘電路(圖8)硬件原理圖(一) 微處理器STC89C52單片機(microcontriller,又稱微控制器)是在一塊硅片上集成了

19、各種部件的微型計算機。這些部件包括中央處理器CPU、數(shù)據(jù)存儲器RAM、程序存儲器ROM、定時器/計數(shù)器和多種I/O接口電路。STC89C52是一種帶8K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM-Flash-Programable and Erasable Read Only Memory)的低電壓,高性能COMS8的微處理器,俗稱單片機,該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。片的Flash存儲器允許在系統(tǒng)可改編程序或用常規(guī)的非易失性存儲器編程器來編程。因此STC89C52是一種功能好,靈活性強且價格適宜的單片機,可方便的應(yīng)用在很

20、多控制領(lǐng)域方面。(二)結(jié)構(gòu)圖與引腳說明STC89C52的封裝有雙列直插封裝(DIP)方式和方形封裝方式。下面分別敘述這些引腳的功能(圖9)1.主電源引腳·VCC 電源端·GND 接地端2.外接晶體引腳XTAL1和XTAL2·XTAL1 接外部晶體的一個引腳。在單片機部,它是構(gòu)成片振蕩器的反相放大器的輸入端。當(dāng)采用外部振蕩器時,該引腳接收振蕩器的信號,即把此信號直接接到部時鐘發(fā)生器的輸入端。·XTAL2 接外部晶體的一個引腳。在單片機部,它是上述振蕩器的反相放大器的輸出端。采用外部振蕩器時,此引腳應(yīng)懸浮不連接。3.控制或與其它電源復(fù)用引腳RST、ALE/、

21、和/Vpp·RST/VPP(Pin9):復(fù)位引腳,引腳上出現(xiàn)2個機器周期的高電平將使單片機復(fù)位。·ALE/(Pin30):地址鎖存允許信號。當(dāng)訪問外部存儲器時,ALE(地址鎖存允許)的輸出用于鎖存地址的低位字節(jié)。即使不訪問外部存儲器,ALE端仍以不變的頻率(此頻率為振蕩器的)周期性地出現(xiàn)正脈沖信號。因此,它可用作對外輸出的時鐘,或用于定時目的。然而要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。在對Flash存儲器編程期間,該引腳還用于輸入編程脈沖()。如果需要的話,通過對專用寄存器(SFR)區(qū)中8EH單元的D0位置數(shù),可禁止ALE操作。該位置數(shù)后,只有在執(zhí)行一

22、條MOVX或MOVC指令期間,ALE才會被激活。另外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,該設(shè)定禁止ALE位無效。·(Pin29) 外部存儲器讀選通信號當(dāng)AT89C51由外部程序存儲器取指令(或常數(shù))時,每個機器周期兩次有效(即輸出兩個脈沖)。但在此期間,每當(dāng)訪問外部數(shù)據(jù)存儲器時,這兩次有效的信號將不出現(xiàn)。·/Vpp(Pin31) 外部訪問允許端。要使CPU 只訪問外部程序存儲器(地址為0000H-FFFFH),則端必須保持低電平(接到GND端)。然而要注意的是,如果位LB1被編程,復(fù)位時在部會鎖存端的狀態(tài)。當(dāng)Flash存儲器編程期間,該引腳也用于施加12V的編程允許

23、電源Vpp(如果選用12V編程)。4.輸入/輸出引腳P0.0P0.7、P1.0P1.7、P2.0P2.7、P3.0P3.7·PO口(Pin39Pin32):8位雙向I/O口線,名稱為P0.0P0.7 P1口(Pin1Pin8):8位準(zhǔn)雙向I/O口線,名稱為P1.0P1.7 P2口(Pin21Pin28):8位準(zhǔn)雙向I/O口線,名稱為P2.0P2.7 P3口(Pin10Pin17):8位準(zhǔn)雙向I/O口線,名稱為P3.0P3.7·P0端口(P0.0P0.7) P0是一個8位漏極開路型雙向I/O端口。作為輸出口用時,每位能以吸收電流的方式驅(qū)動8個TTL輸入,對端口寫1時,又可作高

24、阻抗輸入端用。 在訪問外部程序和數(shù)據(jù)存儲器時,它是分時多路轉(zhuǎn)換的地址(低8位)/數(shù)據(jù)總線,在訪問期間激活了部的上拉電阻。在Flash編程時,P0端口接收指令字節(jié);而早驗證程序時,則輸出指令字節(jié)。驗證時,要求外接上拉電阻。·P1端口(P1.0P1.7) P1是一個帶有部上拉電阻的8位雙向I/O端口。P1的輸出緩沖器可驅(qū)動(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過部的上拉電阻把端口拉到高電位,這時可用作輸入口。作輸入口使用時,因為有部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流(I)。在對Flash編程和程序驗證時,P1接收低8位地址。·P2端口(P2.0P

25、2.7) P2是一個帶有部上拉電阻的8位雙向I/O端口。P2的輸出緩沖器可驅(qū)動(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過部的上拉電阻把端口拉到高電位,這時可用作輸入口。P2作輸入口使用時,因為有部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流(I)。 在訪問外部程序存儲器和16位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX DPTR指令)時,P2送出高8位地址。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX R1指令)時,P2口引腳上的容(就是專用寄存器(SFR)區(qū)中P2寄存器的容),在整個訪問期間不會改變。在對Flash編程和程序驗證期間,P2也接收高位地址和一些控制信號。

26、3;P3端口(P3.0P3.7) P3口是一組帶有部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫入“1”時,它們被部上拉電阻拉高并可作為輸入端口。作輸入端時,被外部拉低的P3口將用上拉電阻輸出電流(I)。P3口一除了作為一般的I/0口線外,更重要的用途是它的第二功能,如下表2所示:端口引腳第二功能P3.0RXDP3.1TXDP3.2P3.3P3.4T0P3.5T1P3.6P3.7(表1)P3口還可用于接收一些Flash閃速存儲器編程和程序校驗的控制信號。第四章 飲水機定時器的軟件設(shè)計一 系統(tǒng)軟件設(shè)計要求該定時器主要是由4部分組成:按鍵電路

27、、時鐘電路、顯示電路和繼電器電路組成。對于定時器的軟件設(shè)計要求能夠準(zhǔn)確,不能因為外界的條件變化或是自身的某些原因而出現(xiàn)偏差:還要能夠具有較高的靈活性,在編寫程序的時候,采用自頂向下的分析方法,將整個軟件系統(tǒng)劃分城若干個子系統(tǒng),可以針對每一個子程序編寫程序。如果需要修改現(xiàn)有功能或添加功能,只需要修改或添加相應(yīng)的程序即可。另外還要盡量做到設(shè)置最少的控制端,能夠?qū)崿F(xiàn)最多的功能,做到既實用又方便。二 軟件設(shè)計所需實現(xiàn)的功能(1)正常模式下數(shù)碼管正確顯示時間,顯示時間的時和分。(2)定時模式下能利用按鍵進行正常模式與定時模式能相互切換,能夠利用按鍵組合設(shè)置2個定時時間。(3)定時設(shè)置還可設(shè)置成單次定時和

28、循環(huán)定時2個設(shè)置。(4)正常顯示時間時,若連續(xù)十分鐘沒有進行任何按鍵操作,則數(shù)碼管會自動熄滅,而當(dāng)按下任意按鍵時,數(shù)碼管則會再次點亮并顯示當(dāng)前的時間。三 定時器軟件設(shè)計的流程圖判斷按鍵是否響應(yīng) 初始化時間設(shè)置 DS1302初始化 讀出DS1302中的時分秒 數(shù)碼管顯示是否已設(shè)定時間定時2是否顯示定時1是否顯示 按鍵處理 負載電路斷開 負載電路導(dǎo)通YESYESYES No No No NoYESYES開始(圖10)軟件設(shè)計流程圖程序如下:void ScanKey() P1_0=1; /端口賦1,以保證正確掃描按鍵if(P1_0=0 ) /有鍵按下 delay(80);P1_0=1; /端口賦1,

29、以保證正確掃描按鍵 if(P1_0=0) /去抖動 wait(); if(mark=1) mark=0; minute=min;second=sec; else if(P1_0=1) flag0=1; minute=min;second=sec; /按鍵值 else flag0=2;minute=min;second=sec; P1_3=1; /端口賦1,以保證正確掃描按鍵 if(P1_3=0)/有鍵按下 delay(80); P1_3=1; if(P1_3=0) P1_3=1; while(P1_3=0); if(mark=1) mark=0; minute=min;second=sec;

30、else flag3=!flag3; LED=!LED; minute=min;second=sec; void ScanKey1(void) P1_1=1; if(P1_1=0) delay(80); P1_1=1; if(P1_1=0) wait(); if(P1_1=1) flag1=1;minute=min;second=sec; elseflag1=2;minute=min;second=sec; else flag1=0; P1_2=1; if(P1_2=0) delay(80); P1_2=1; if(P1_2=0) wait(); if(P1_2=1) flag2=1;minu

31、te=min;second=sec; else flag2=2;minute=min;second=sec; else flag2=0;(1)如圖10其中初始化時間設(shè)置是對DS1302時鐘芯片的初始化的前提,其設(shè)置辦法是用兩個按鍵分別調(diào)節(jié)時和分,將時和分調(diào)節(jié)到需要調(diào)節(jié)的當(dāng)前時間后,將該數(shù)據(jù)寫入DS1302中,此時,DS1302中的部時鐘則以剛剛設(shè)定的數(shù)據(jù)為起點,然后再通過讀操作把時間讀出來并顯示即可。(2)按鍵處理包括了定時時間的設(shè)置和已經(jīng)設(shè)置好了定時時間,按模式切換按鍵可以用來查看剛才設(shè)置好的時間。(3)整個軟件程序的編寫時本課題的一個大工程,占畢業(yè)設(shè)計比例最大,花費時間最多的。其結(jié)構(gòu)比較復(fù)

32、雜,需要仔細編寫,思路要清晰,程序要編寫準(zhǔn)確可行。四 上電后設(shè)置流程圖如下圖11是對定時器接通+5V電源后通電時按鍵處理操作流程的說明。結(jié)束 初始化時間按鍵2控制時,按鍵3控制分,調(diào)整完后按住按鍵2進行意識確認啟動時鐘芯片顯示正常的時間按下按鍵1按鍵2控制數(shù)碼管位移,按鍵3控制加1按住按鍵3一會,定時1設(shè)置完成顯示正常時間按下按鍵1不馬上松開按鍵2控制數(shù)碼管位移,按鍵3控制加1 定時時間2設(shè)置按住按鍵3一會,定時1設(shè)置完成顯示正常時間開始(圖11)程序如下:void DealWith() uchar i=0; while(flag0=1) /設(shè)置定時時間1 ScanKey(); ScanKey

33、1(); if(flag0=2) flag0=0; wait(); /等待 P0=seli; P2=tabletimer1i; if(flag1=1) P0=sel+i; if(i=4) i=0; if(flag2=1) timer1i=timer1i+1; /閃爍位加1 if(timer1i=10) timer1i=0; P2=tabletimer1i; if(timer10>2) timer10=0; if(timer12>5) timer12=0; if(timer10=2 && timer11>4) timer11=0; if(flag2=2) FF1

34、=1; while(moment-) display(timer1); flag0=0; while(flag0=2) /設(shè)置定時時間2 ScanKey(); ScanKey1();if(flag0=1) flag0=0; P0=seli; P2=tabletimer2i; if(flag1=1) P0=sel+i; if(i=4) i=0; if(flag2=1) timer2i=timer2i+1; /閃爍位加1 if(timer2i=10) timer2i=0; P2=tabletimer2i; if(timer20>2) timer20=0; if(timer22>5) t

35、imer22=0; if(timer20=2 && timer21>4) timer21=0; if(flag2=2) FF2=1; while(moment-) display(timer2); flag0=0; /*判斷定時到否*/void Compare(void) if(FF1=1) /定時標(biāo)志 if(TimeString0=timer10&&TimeString1=timer11 &&TimeString2=timer12&&TimeString3=timer13) P3_1=0;if(LED=1) /LED為1表

36、示沒有設(shè)置周期定時 FF1=1; else FF1=0; if(FF2=1) if(TimeString0=timer20&&TimeString1=timer21 &&TimeString2=timer22&&TimeString3=timer23) P3_1=1; if(LED=1) /LED為1表示沒有設(shè)置周期定時 FF2=1; else FF2=0; /LED為1表示沒有設(shè)置周期定時第五章 調(diào)試過程中的問題與其解決辦法調(diào)試分為硬件調(diào)試和軟件調(diào)試。一 硬件調(diào)試首先是對電路板的檢查,檢查焊接點有沒有虛焊,脫焊等現(xiàn)象,然后在接通電源之前要檢查各

37、導(dǎo)線是否連接正確,有沒有短路的情況,特別是接電源和接地比較多時,不能接反或漏接。在確保沒有問題的前提下,給實驗板加上+5V的穩(wěn)壓電源,用手觸摸集成芯片,看看有沒有發(fā)燙的情況,若發(fā)燙則應(yīng)立即切斷電源,以免芯片被燒壞,然后仔細檢查原因。當(dāng)集成芯片正常情況下,用萬用表測節(jié)點處的電壓,跟理論值相比較看是否一樣。一般情況下,剛焊完的板子基本上會有點小問題,不可能一接上電源就能正常運行的,所以進行硬件調(diào)試時還是必不可少的。二 軟件調(diào)試 在硬件調(diào)試的基礎(chǔ)上,先編寫一個簡單的顯示電路,將其下載入單片機中,檢測硬件電路是否能正常工作,如果不行,則分析原因,檢查電路,并解決問題,確保在沒有錯誤的硬件電路上調(diào)試程序

38、。硬件調(diào)試完成后逐漸將所要實現(xiàn)的功能一步步加入到程序中,并將程序下載到單片機中運行,觀察數(shù)碼管顯示和功能實現(xiàn),最終設(shè)計完成飲水機節(jié)能控制器。三 本課題在調(diào)試過程中的問題以與解決的辦法1、第一次上電時,數(shù)碼管只亮了后面3個,斷電后經(jīng)過仔細檢查發(fā)現(xiàn)原來接第一個數(shù)碼管的接12號公共腳的導(dǎo)線沒有焊接只連接在上面,接好后全部通電了。 2、其次,上電后發(fā)現(xiàn)數(shù)碼管顯示的數(shù)據(jù)不是初始化的4個零,測試后發(fā)現(xiàn)電路基本沒什么問題,即檢查程序問題發(fā)現(xiàn)編寫的程序代碼有問題,重新計算改過后顯示正常。3、數(shù)碼管問題解決后,發(fā)現(xiàn)開關(guān)按了沒反應(yīng),原來是開關(guān)沒接地4、軟件方面主要是考慮的不夠周到,沒有把各種可能出現(xiàn)的情況都囊括進

39、去,在調(diào)試時總會出現(xiàn)與理論不符的情況,經(jīng)過導(dǎo)師和同學(xué)耐心的指導(dǎo),最后還是調(diào)試成功。第六章 總結(jié)飲水機定時器可以給人們的日常生活帶來極大便利,它可以在無人看守的情況下自動周期性的通斷電源,從而達到節(jié)能的作用,還可以避免因短路引起的火災(zāi)等事故。定時器控制電器設(shè)備的運行,起到節(jié)能環(huán)保、降低成本、延長電器壽命的作用,可以說是家庭,辦公場所必不可少的。本次畢業(yè)設(shè)計我雖然用了較長的時間,但整個過程我都認真的完成了,而且從中獲得很多。畢業(yè)設(shè)計中我對于電路的設(shè)計、程序的編寫、數(shù)碼管的應(yīng)用等各方面都有了一定的提高,可以說是在以前的學(xué)習(xí)的基礎(chǔ)上有了更進一步的理解,相信這對我以后工作有很大的幫助。通過這次畢業(yè)設(shè)計,

40、我發(fā)現(xiàn)做任何事還是要通過理論與實踐相結(jié)合,才能更好的理解與運用。在做畢業(yè)設(shè)計的過程中,發(fā)現(xiàn)了自己自身知識的匱乏,很多地方不能靈活運用所學(xué)過的知識,所以要求自己在今后的生活中要不斷的充實和豐富自己。致參考文獻1、亮、侯國銳編著 單片機C語言編程與實例 人民郵電出版 20032、馬忠梅、籍順心、凱、馬巖編著 單片機的C語言應(yīng)用程序設(shè)計(第四版) 航空航天大學(xué) 20073、竇振中編著 基于單片機的嵌入式系統(tǒng)工程設(shè)計 中國電力 20084、周興華編著 單片機智能化產(chǎn)品C語言設(shè)計實例詳解 航空航天大學(xué) 2006附錄定時器的程序如下:#include<reg51.h>#define uchar

41、 unsigned charuchar sel4=0xfe,0xfd,0xfb,0xf7;uchar flag5=0; uchar moment=50;uchar FF1,FF2=0; uchar mark=0;uchar high=0;uchar sec=0;uchar min=0;uchar hou=0; /秒,分,時寄存器初始值uchar code table10=0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09;uchar timer24=0; uchar minute=0;uchar second=0;uchar timer14=0;

42、 /time0,time1,time2,time3分別存放定時時間 時的高位,時的低位,分的高位,分的低位sbit P1_0=P10;sbit P1_1=P11;sbit P1_2=P12;sbit P1_3=P13;sbit P1_4=P14;sbit P3_1=P31;sbit LED =P36;sbit T_RST=P16; sbit T_IO=P15; sbit T_CLK=P14; sbit ACC0=ACC0;sbit ACC7=ACC7; uchar TimeString4=0;/*DS1302:寫入操作(上升沿)*/ void write_byte(uchar da) ucha

43、r i; ACC=da; for(i=8;i>0;i-) T_IO=ACC0; T_CLK=0; T_CLK=1; ACC=ACC>>1; /*DS1302:讀取操作(下降沿)*/uchar read_byte(void) uchar i; for(i=0;i<8;i+) ACC=ACC>>1; T_CLK = 1; T_CLK = 0; ACC7 = T_IO; return(ACC);/*DS1302:寫入數(shù)據(jù)(先送地址,再寫數(shù)據(jù))*/ void write_1302(uchar addr,uchar da) T_RST=0; /停止工作 T_CLK=0

44、; T_RST=1; /重新工作 write_byte(addr); /寫入地址 write_byte(da); T_CLK=1; T_RST=0;/*DS1302:讀取數(shù)據(jù)(先送地址,再讀數(shù)據(jù))*/uchar read_1302(uchar addr) uchar time; T_RST=0; /停止工作 T_CLK=0; T_RST=1; /重新工作 write_byte(addr); /寫入地址 time=read_byte(); T_CLK=1; T_RST=0; return(time);/*/void wait() uchar i,j,k; for(i=0;i<50;i+)

45、for(j=0;j<50;j+) for(k=0;k<50;k+);/*延時程序*/void delay(uchar m) uchar i,j; for(i=0;i<20;i+) for(j=0;j<m;j+);/*顯示程序*/void display(uchar *p) uchar sel,k; sel=0xfe; for(k=0;k<4;k+) P2=table*p; /段選 P0=sel;/片選 delay(20); sel=sel<<1; sel=sel|0x01;/循環(huán)左移 p+; /*/ timetostring(uchar min,uchar hou)TimeString3 = min&0x0f ; /分的個位TimeString2 = min>>4 ; /分的十位 TimeString1 = hou&0x0f ; /時的個位TimeString0 = hou>>4 ; /時的十位/*按鍵檢測*/void ScanKey() P1_0=1; /端口賦1,以保證正確掃描按鍵if(P1_0=0 ) /有鍵按下 delay(80

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論