定時(shí)開(kāi)關(guān)控制器設(shè)計(jì)解讀_第1頁(yè)
定時(shí)開(kāi)關(guān)控制器設(shè)計(jì)解讀_第2頁(yè)
定時(shí)開(kāi)關(guān)控制器設(shè)計(jì)解讀_第3頁(yè)
定時(shí)開(kāi)關(guān)控制器設(shè)計(jì)解讀_第4頁(yè)
定時(shí)開(kāi)關(guān)控制器設(shè)計(jì)解讀_第5頁(yè)
已閱讀5頁(yè),還剩23頁(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、定時(shí)開(kāi)關(guān)控制器設(shè)計(jì)摘要:本次設(shè)計(jì)以STC89C51RC&片為核心,輔以必要的外圍電路,設(shè)計(jì)了一個(gè)定時(shí)器,它由5V直流電源供電。在硬件方面,除了CPU7卜,使用四個(gè)七段 LED數(shù)碼管來(lái)進(jìn)行顯示,LED數(shù)碼管采用的是動(dòng)態(tài)掃描顯示。數(shù)碼管能夠準(zhǔn)確顯示時(shí)、分。5個(gè)按鍵可以實(shí)現(xiàn)對(duì)定時(shí)時(shí)間的調(diào)整。軟件方面采用C語(yǔ)言編程。整個(gè)定時(shí)系統(tǒng)能完成時(shí)間的顯示,調(diào)時(shí),啟閉負(fù)載電源等功能。關(guān)鍵詞:STC89C51RC定時(shí)器;數(shù)碼管Timer Switch Controller DesignAbstract: This design uses STC89C51RC chip as the core, with t

2、he necessary peripheral circuits, designed a timer, which is powered by 5V DC power supply.In terms of hardware, in addition to CPU, the use of four LED seven segment digital tube display, LED digital tube by using dynamic scanning display. The digital tube can display, divided. 5 keys can be achiev

3、ed on the timing adjustment. Software using C programming language. The timing system can achieve time display, timing, opening and closing load power function.Keywords: STC89C51; timer; Digital tube1. 概述 12. 方案設(shè)計(jì) 12.1 要求功能 12.2 電路設(shè)計(jì)方案確定 22.3 STC89C51 單片機(jī)介紹 22.3.1 主要功能、性能參數(shù) 22.3.2 引腳分配 33. 硬件電路設(shè)計(jì) 43

4、.1 單片機(jī)最小系統(tǒng) 43.1.1 振蕩電路 43.1.2 復(fù)位電路 43.2 數(shù)碼管驅(qū)動(dòng)電路 53.3 按鍵電路 53.4 中斷觸發(fā)電路 63.5 繼電器控制電路 73.6 顯示系統(tǒng) 73.7 整機(jī)工作原理 84. 軟件設(shè)計(jì) 85. 系統(tǒng)調(diào)試 105.1 軟件調(diào)試概述 105.2 軟件調(diào)試 105.3 系統(tǒng)仿真測(cè)試 105.3.1 仿真測(cè)試方法 105.3.2 仿真測(cè)試結(jié)果 116. 結(jié)論 11參考文獻(xiàn) 13致 謝 14附錄1:定時(shí)器源程序 15附錄2:定時(shí)器電路圖 211 .概述隨著產(chǎn)業(yè)結(jié)構(gòu)的不斷調(diào)整、生產(chǎn)工藝的飛速發(fā)展、人們生活水平的不斷提高及家用電 器的逐漸普及,市場(chǎng)對(duì)定時(shí)控制系統(tǒng)的需

5、求越來(lái)越大 .如定時(shí)自動(dòng)報(bào)警、定時(shí)自動(dòng)打鈴、 定時(shí)開(kāi)關(guān)烘箱、定時(shí)通斷動(dòng)力設(shè)備以及各種電氣的定時(shí)啟動(dòng)等都屬于定時(shí)控制系統(tǒng)。定時(shí) 控制系統(tǒng)的實(shí)現(xiàn)方法很多,本文主要介紹以80C51系列單片機(jī)中的STC89C5為核心的智能 定時(shí)控制系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)方式.80C51系列單片機(jī)進(jìn)入市場(chǎng)時(shí)間早,總線開(kāi)放,仿真開(kāi)發(fā) 設(shè)備多,芯片及其開(kāi)發(fā)價(jià)格低廉、速度較快、電磁兼容性較好。本文所述定時(shí)開(kāi)關(guān)控制系統(tǒng)主要包括時(shí)間設(shè)置,數(shù)碼管顯示,中斷程序設(shè)置等功能。硬件與軟件方面的設(shè)計(jì)。硬件部分主要由 STC89C51片機(jī),LED顯示電路,以及調(diào)時(shí)按鍵 電路等組成,系統(tǒng)通過(guò)LED顯示數(shù)據(jù),所以具有人性化的操作和直觀的顯示效果。軟件方

6、 面主要包括中斷程序、鍵盤程序,顯示程序等。本系統(tǒng)以單片機(jī)的C語(yǔ)言進(jìn)行軟件設(shè)計(jì),為了便于擴(kuò)展和更改,軟件的設(shè)計(jì)采用模塊 化結(jié)構(gòu),使程序設(shè)計(jì)的邏輯關(guān)系更加簡(jiǎn)潔明了,以便更簡(jiǎn)單地實(shí)現(xiàn)調(diào)整時(shí)間及顯示功能。 所有程序編寫完成后,在Keil軟件中進(jìn)行調(diào)試,確定沒(méi)有問(wèn)題后,在Proteus 軟件中嵌 入單片機(jī)內(nèi)進(jìn)行仿真。在日新月異的 21世紀(jì)里,家用電子產(chǎn)品得到了迅速發(fā)展。許多家 電設(shè)備都趨于人性化、智能化,這些電器設(shè)備大部分都含有單片機(jī)控制器,具有操作簡(jiǎn) 單的特點(diǎn)。2 .方案設(shè)計(jì)2.1 要求功能定時(shí)開(kāi)關(guān)控制器廣泛應(yīng)用于日常生活及工業(yè)生產(chǎn)中負(fù)載電源的通斷,達(dá)到方便用電和 節(jié)電的目的。用單片機(jī)實(shí)現(xiàn)電源開(kāi)關(guān)控

7、制,可以由人通過(guò)按鍵來(lái)設(shè)定負(fù)載電源的開(kāi)/關(guān)時(shí)問(wèn),并通過(guò)顯示器觀察時(shí)間,達(dá)到定時(shí)開(kāi)關(guān)機(jī)的目的。本設(shè)計(jì)中4位數(shù)碼管中前兩位顯示“小時(shí)”,后兩位顯示“分”,最大預(yù)約時(shí)間為12小時(shí)。按鍵操作:1 .開(kāi)始鍵:按下該鍵,電源接通?;虍?dāng)調(diào)時(shí)結(jié)束后按下該鍵,電源將在設(shè)定時(shí)間到達(dá)后接 通。2 .關(guān)閉鍵:按下該鍵,切斷電源。3 .預(yù)約鍵:第一次按下該鍵,可以對(duì)電源的接通時(shí)間進(jìn)行“小時(shí)”調(diào)整;第二次按下該鍵, 可以對(duì)電源的接通時(shí)間進(jìn)行“分鐘”調(diào)整。4 .加“1”鍵:按下該鍵,調(diào)“小時(shí)”時(shí)間加1,最可加到11;調(diào)“分鐘”時(shí)加1,最大可 加到59。即最長(zhǎng)定時(shí)時(shí)間為11小時(shí)59分。5 .減“1”鍵:按下該鍵,調(diào)“小時(shí)”時(shí)

8、減1,最小值為0;調(diào)分鐘時(shí),“分鐘”減1,最小 值為0。6 .預(yù)留鍵:在本設(shè)計(jì)中,無(wú)作用。顯示功能:(1)按鍵指示燈D1:只要有按鍵被按下,指示燈會(huì)點(diǎn)亮。(2)電源開(kāi)關(guān)狀態(tài)指示燈D3:當(dāng)電源和負(fù)載接通時(shí),該燈點(diǎn)亮。1.1 位數(shù)碼管:前兩位為小時(shí),后兩位顯示分。上電即顯示“-”;預(yù)約調(diào)時(shí)前兩位 閃爍,預(yù)約調(diào)分鐘后兩位閃爍。預(yù)約時(shí)間內(nèi),倒計(jì)時(shí)顯示。1.2 電路設(shè)計(jì)方案確定綜上要求所述,對(duì)此次設(shè)計(jì)的方案選定:以單片機(jī)STC89C5為主控制器,采用單片 機(jī)內(nèi)部定時(shí)、獨(dú)立式按鍵和動(dòng)態(tài)LED顯示。采用51單片機(jī)可以實(shí)現(xiàn)一些功能不多的控制環(huán)境,既節(jié)約經(jīng)濟(jì)又達(dá)到了我們所需的 智能化控制。本設(shè)計(jì)主要從以下三個(gè)方

9、面入手:一是實(shí)現(xiàn)按鍵功能,可以接通和關(guān)閉電源并設(shè)定時(shí) 問(wèn);二是實(shí)現(xiàn)顯示功能,顯示設(shè)定時(shí)間;三是實(shí)現(xiàn)定時(shí)功能,當(dāng)時(shí)間到達(dá)設(shè)定值時(shí)可以通 過(guò)繼電器動(dòng)作控制負(fù)載電源的啟閉,并通過(guò)指示燈顯示任務(wù)的完成。設(shè)計(jì)的總體方案如圖 2-1所示,由單片機(jī)最小系統(tǒng)、LED數(shù)碼管顯示電路、繼電器控制電路、按鍵電路及 5V 直流供電電路組成。為了實(shí)現(xiàn)智能控制和簡(jiǎn)化設(shè)計(jì),選用了 STC89C51集成芯片。圖2-1基于STC89系列單片機(jī)的定時(shí)控制系統(tǒng)1.3 STC89C51單片機(jī)介紹STC系列單片機(jī)是最新推出的一種新型51內(nèi)核的單片機(jī)。片內(nèi)含有Flash程序存儲(chǔ)器、SRAM UART SPI、AD、PW疇模塊。該器件的基

10、本功能與普通的 51單片機(jī)完全兼容。1.3.1 主要功能、性能參數(shù)1 .內(nèi)置標(biāo)準(zhǔn)51內(nèi)核;2. 工作頻率范圍:040MHz相當(dāng)于普通8051的080MHz3.STC89C5xRC寸應(yīng) Flash 空間:4KB8KB15KB4 .內(nèi)部存儲(chǔ)器(RAM) 512B;5 .定時(shí)器 計(jì)數(shù)器:3個(gè)16位;6 .通用異步通信口( UART 1個(gè);7 .中斷源:8個(gè);8 .有ISP(在系統(tǒng)可編程)IAP(在應(yīng)用可編程),無(wú)需專用編程器 仿真器;9 .通用 IO 口: 3236 個(gè);10 .工作電壓:3.85.5V ;11 .外形封裝:40腳 PDIP、44腳 PLCCffi PQFFP?o2.3.2引腳分配S

11、TC89C51RC片機(jī)弓1腳圖如圖2-2 日。U5伯>XTAL1fojO/adoPO 1/AD1 PO 2/AD2XTAL2FOJ/AK3PO.AM P0 5/AD5 po.e/AreRSTPO 7/AD7P2.0/ P之 HAS P2.2ZA10ae183S3738g353433322921222324PSENP2.3M11ALEP2.4ZA42EAF2.5ZA13P2.6/A14 F 2 7/A+5P1.0/T2P3.O/RXDP1 1/T2EXP3 1/TXDP1.2F3.2/INTOP,3P33/1NT1P1 4P3.4HnP1 5P3T51P1.0P3 6/WRP1.7P3.7

12、/RD302531261272S102113124135146157ieS17RU_ftTggcse<TEXT>圖 2-2 STC89C51RC 弓 I腳圖根據(jù)設(shè)計(jì)要求,選用 STC89C51R0為電路的控制核心,電路中包含了時(shí)鐘電路,復(fù) 位電路作為單片機(jī)的最小系統(tǒng)。晶體振蕩器頻率為12MHz P0.0P0.7作為四位七段數(shù)碼管的段碼輸出端,P1.0P1.3 作為四位數(shù)碼管(共陰極)的位碼輸出端。P2.0P2.5作為鍵盤信號(hào)的輸出端。P3.6作為 控制端信號(hào)的輸出,控制繼電器吸合與釋放。3 .硬件電路設(shè)計(jì)3.1 單片機(jī)最小系統(tǒng)3.1.1 振蕩電路STC89C5是內(nèi)部具有振蕩電路的單

13、片機(jī),只需在18腳和19腳之間接上石英晶體,給 單片機(jī)加工作所需的直流電源,振蕩器就開(kāi)始振蕩起來(lái)。振蕩電路為單片機(jī)工作提供了所 需要的時(shí)鐘脈沖信號(hào),單片機(jī)開(kāi)始執(zhí)行程序。振蕩電路不工作,整個(gè)單片機(jī)電路都不能正1uso 18常工作。本設(shè)計(jì)中STC89C51外接12MHz的石英晶體,單片機(jī)的機(jī)器周期恰好為18腳輸入外部3.1.2復(fù)位電路7復(fù)位電路就是在RST端(9腳)外接的一個(gè)電路,目的是使單片機(jī)上電開(kāi)始工作時(shí), 內(nèi)部寄存器進(jìn)行初始化,讓單片機(jī)從初始狀態(tài)開(kāi)始工作。在時(shí)鐘電路工作的情況下,只要 復(fù)位引腳高電平保持在兩個(gè)機(jī)器周期以上的時(shí)間,STC89C51便能完成系統(tǒng)初始化工作,使得內(nèi)部特殊功能寄存器的

14、內(nèi)容均被設(shè)置成已知狀態(tài),并且從ROM中地址0000H處讀入程序代碼而執(zhí)行程序。復(fù)位電路如圖 3-2所示圖3-2復(fù)位電路3.2 數(shù)碼管驅(qū)動(dòng)電路由于P0 口的輸出端為漏極開(kāi)路門,必須通過(guò)外接上拉電阻和+5V電源連接,輸出高電 平。本設(shè)計(jì)中上拉電阻的值為10kQ。由于P0 口輸出電流有限,為減輕單片機(jī)的負(fù)擔(dān),在 P0 口外接了一個(gè)8路同相三態(tài)雙向驅(qū)動(dòng)器74LS245(起電流放大作用)。19腳是它的片選 端,低電平有效,1腳是輸入/輸出端口轉(zhuǎn)換用,當(dāng)該引腳接高電平時(shí),信號(hào)由“ A端傳 向"B'端,該引腳接低電平時(shí),信號(hào)由“B”端傳向“A”端。P1 口通過(guò)一個(gè)六反相器74LS04 和數(shù)

15、碼管的位碼輸入端相連,故 P1.0P1.3輸出高電平時(shí),相應(yīng)的數(shù)碼管才能點(diǎn)亮。驅(qū)動(dòng) 電路如圖3-3所示。圖3-3驅(qū)動(dòng)電路3.3 按鍵電路按鍵的開(kāi)關(guān)狀態(tài)通過(guò)一定的電路轉(zhuǎn)換為高、低電平狀態(tài)。按鍵閉合過(guò)程在相應(yīng)的I/O端口形成一個(gè)負(fù)脈沖。閉合和釋放過(guò)程都要經(jīng)過(guò)一定的過(guò)程才能達(dá)到穩(wěn)定。這一過(guò)程是處 于高、低電平之間的一種不穩(wěn)定狀態(tài),稱為抖動(dòng)。抖動(dòng)的持續(xù)時(shí)間長(zhǎng)短與開(kāi)關(guān)的機(jī)械特性 有關(guān),一般在510ms之間。為了避免CPU次處理按鍵的一次閉合,應(yīng)采用軟件法去抖 動(dòng)消除抖動(dòng)。本設(shè)計(jì)采用的是獨(dú)立式按鍵,直接用 I/O 口線構(gòu)成獨(dú)立按鍵電路,每個(gè)按鍵 占用一條I/O 口線,每個(gè)按鍵的工作狀態(tài)不會(huì)產(chǎn)生相互影響。6

16、個(gè)獨(dú)立按鍵分別和P2.0P2.5 口相連接,通過(guò)上拉電阻和電源相連接,當(dāng)按鍵沒(méi)有按下時(shí),P2.0P2.5端口輸出為“1”,表示無(wú)信號(hào)輸入。6個(gè)按鍵只要有1個(gè)按鍵按下,相應(yīng)的引腳變?yōu)榈碗娖剑?表示有信號(hào)輸入,執(zhí)行相應(yīng)的按鍵命令。P2.0 口表示開(kāi)始鍵;P2.1 口表示關(guān)閉鍵;P2.2 口表示預(yù)約鍵;P2.3 口表示數(shù)字加1 鍵;P2.4 口表示數(shù)字減1鍵;P2.5 口表示預(yù)留鍵,在本任務(wù)中該鍵預(yù)留。按鍵電路如圖3-4所示。F2J1WBF2.1JW9 明的口 電MM1P2SW13P2J6MU P2.7Jft15叼hr工口PJ.1HXD '3Z.1NTE" 網(wǎng)肝TP3.UT m&a

17、mp;ri電7航圖3-4按鍵電路Ci2ktE>!T>3.4 中斷觸發(fā)電路中斷觸發(fā)電路主要由8輸入與非門74HC30及非門74LS04構(gòu)成,當(dāng)六個(gè)按鍵中只要有一個(gè)按鍵按下,8輸出與非門74HC30I勺輸出端必然輸出高電平(它的邏輯功能為:全 1出 0,有0出1),經(jīng)非門電路74LS04倒相后,按鍵按下時(shí)輸出為負(fù)脈沖,該負(fù)脈沖信號(hào)接單 片機(jī)的外部中斷信號(hào)輸入端INTO(即P3.2引腳),從而引起單片機(jī)中斷,停止執(zhí)行正在執(zhí) 行的程序,轉(zhuǎn)而去執(zhí)行中斷服務(wù)程序。電路圖如圖 3-5所示。3.5 繼電器控制電路繼電器控制電路如圖3-6所示。由于單片機(jī)I/O 口輸出電流小驅(qū)動(dòng)能力有限,從圖中可以看

18、出我們利用三極管來(lái)控制, 通過(guò)如圖的連接方式,可以提高驅(qū)動(dòng)負(fù)載的能力,利用三極管截止和飽和導(dǎo)通去控制繼電 器的閉合/斷開(kāi)。因?yàn)镻3.6 口作為控制信號(hào)的輸出口,控制繼電器吸合與釋放,所以當(dāng)定 時(shí)時(shí)間未到時(shí),P3.6引腳輸出的是高電平,三極管處于截止?fàn)顟B(tài),繼電器無(wú)動(dòng)作,開(kāi)關(guān)不 會(huì)閉合,負(fù)載不工作。當(dāng)定時(shí)時(shí)間到,P3.6引腳輸出的是低電平,三極管飽和導(dǎo)通,繼電3.6 顯示系統(tǒng)LED顯示器由多位數(shù)碼管組成,各段 LED顯示器需要由驅(qū)動(dòng)電路驅(qū)動(dòng)。七段 LED數(shù)碼 管顯示器通常將各段發(fā)光二極管的陰極或陽(yáng)極連在一起作為公共端。將各段發(fā)光二極管陽(yáng) 極連在一起的叫共陽(yáng)極顯示器,用低電平驅(qū)動(dòng);將陰極連在一起的叫

19、共陰極顯示器,用高 電平驅(qū)動(dòng)。靜態(tài)顯示就是每一個(gè)顯示器各筆畫段都要獨(dú)占具有一個(gè)鎖存功能的輸出口線, CPUfc要顯示的字形代碼送到輸出口上, 就可以使顯示器上顯示所需的數(shù)字或符號(hào), 此后, 即使CPU再去訪問(wèn)它,因?yàn)楦鞴P畫段接口具有鎖存功能,顯示的內(nèi)容也不會(huì)消失。動(dòng)態(tài) 顯示是指顯示器顯示某一字符時(shí),相應(yīng)段的發(fā)光二極管恒定地導(dǎo)通或截止。在本系統(tǒng)中為 共陰極數(shù)碼管,采用動(dòng)態(tài)掃描顯示。如圖 3-7所示。圖3-7時(shí)間顯示電路3.7 整機(jī)工作原理定時(shí)器電路圖如附錄2所示。開(kāi)啟仿真開(kāi)關(guān)后,按下開(kāi)始,電源接通。通過(guò)設(shè)置按鈕,我們可以很方便的設(shè)置時(shí)間。 我們調(diào)整好時(shí)間后,按開(kāi)始鍵,當(dāng)時(shí)間到達(dá)所定時(shí)時(shí)間時(shí),通過(guò)

20、控制繼電器的動(dòng)作接通電 源,電源接通指示燈亮。4 .軟件設(shè)計(jì)整套系統(tǒng)的運(yùn)行都是基于 8051內(nèi)核指令控制運(yùn)行的。由任務(wù)目標(biāo)分析,采用中斷處 理方式設(shè)計(jì)程序流程圖,如下圖所示,主要程序見(jiàn)附錄1。程序開(kāi)始首先對(duì)按鍵變量和小時(shí)、分鐘變量進(jìn)行定義,對(duì)共陰極數(shù)碼管的段碼(字型 碼)以一維數(shù)組方式定義。另外對(duì)延時(shí)函數(shù)、定時(shí)器初始化子函數(shù)、求按鍵子函數(shù)、按鍵 處理子函數(shù)、計(jì)時(shí)子函數(shù)、顯示子函數(shù)進(jìn)行聲明。在定時(shí)器T0、T1初始化和外部中斷0 (INTO)子函數(shù)中,規(guī)定定時(shí)器T0、T1的工作 模式為方式1,定時(shí)時(shí)間為50ms外部中斷0采用下降沿觸發(fā)方式。定時(shí)器工作在中斷方 式,即定時(shí)時(shí)間到,立即停止執(zhí)行主函數(shù),

21、轉(zhuǎn)而去執(zhí)行中斷服務(wù)函數(shù)。圖4-2定時(shí)器T0中斷函數(shù)框圖圖4-3定時(shí)器T1中斷服務(wù)函數(shù)框圖延時(shí)消抖鍵值獲取子困數(shù)等待按鍵釋放報(bào)鍵處理子畫數(shù)圖4-4外部中斷0中斷服務(wù)函數(shù)框圖在顯示子函數(shù)中,上電復(fù)位后4位數(shù)碼管顯示“-”。其中包括走時(shí)轉(zhuǎn)換函數(shù), 負(fù)責(zé)將定時(shí)器走時(shí)數(shù)據(jù)轉(zhuǎn)換為分鐘的十位和個(gè)位,超過(guò) 60分鐘的數(shù)據(jù)再轉(zhuǎn)換為小時(shí)的十 位和個(gè)位。在計(jì)時(shí)子函數(shù)中,設(shè)置每 50ms中斷1次,分鐘計(jì)數(shù)器中計(jì)數(shù)值為1200時(shí),時(shí)間為1 分鐘。小時(shí)計(jì)數(shù)器計(jì)數(shù)值為60時(shí),時(shí)間為1小時(shí).預(yù)約時(shí)間到,單片機(jī)P3.6引腳輸出低 電平,驅(qū)動(dòng)三極管飽和導(dǎo)通,繼電器的線圈中有電流經(jīng)過(guò),而產(chǎn)生吸合動(dòng)作,接通電源, 用電器開(kāi)始工作。5

22、 .系統(tǒng)調(diào)試5.1 軟件調(diào)試概述單片機(jī)系統(tǒng)經(jīng)過(guò)總體設(shè)計(jì),完成了硬件和軟件設(shè)計(jì)開(kāi)發(fā)。通過(guò)軟件和硬件相結(jié)合系統(tǒng) 即可運(yùn)行。但編制好的程序或焊接好的線路不能按預(yù)計(jì)的那樣正常工作是常見(jiàn)的事,經(jīng)常 會(huì)出現(xiàn)一些硬件、軟件上的錯(cuò)誤,這是軟件和硬件開(kāi)發(fā)者經(jīng)常遇見(jiàn)的,這就需要通過(guò)調(diào)試 來(lái)發(fā)現(xiàn)錯(cuò)誤并加以改正。調(diào)試可分為硬件調(diào)試和軟件調(diào)試。本設(shè)計(jì)系統(tǒng)的已經(jīng)在 PC機(jī)上 用模擬開(kāi)發(fā)軟件進(jìn)行了檢測(cè)和調(diào)試,并運(yùn)行成功,最后進(jìn)行實(shí)物圖的硬件組裝與調(diào)試,這 樣就給開(kāi)發(fā)者在提供了方便。5.2 軟件調(diào)試本設(shè)計(jì)是在Proteus軟件和Keil軟件相結(jié)合調(diào)試的,完全用仿真軟件在 PC機(jī)上對(duì)目 標(biāo)電路原理圖和程序進(jìn)行檢測(cè)和調(diào)試。調(diào)試過(guò)

23、程中單片機(jī)相應(yīng)輸入端由通用鍵盤鼠標(biāo)設(shè) 定,運(yùn)行狀態(tài)、各寄存器狀態(tài)、端口狀態(tài)等都可以在指定的窗口區(qū)域顯示出來(lái),以確定程 序運(yùn)行有無(wú)錯(cuò)誤。目標(biāo)程序糾錯(cuò):該階段工作通常在目標(biāo)程序編輯時(shí)就完成。一般來(lái)說(shuō),仿真軟件能為 用戶輸入的程序指令糾錯(cuò),包括書(shū)寫格式、標(biāo)號(hào)未定義或多重定義、轉(zhuǎn)移地址溢出等錯(cuò)誤。整體程序調(diào)試:即把各子程序整體連起來(lái)進(jìn)入到綜合電路調(diào)試,看是否能實(shí)現(xiàn)預(yù)計(jì)的 功能顯示。在這階段若發(fā)生故障,可以考慮各子程序在運(yùn)行時(shí)是否破壞現(xiàn)場(chǎng),數(shù)據(jù)緩沖單 元是否發(fā)生沖突,標(biāo)志位的建立和清除在設(shè)計(jì)上是否失誤,堆棧是否溢出,輸入輸出狀態(tài) 是否正常等。5.3 系統(tǒng)仿真測(cè)試5.3.1 仿真測(cè)試方法系統(tǒng)測(cè)試內(nèi)容包括能

24、否正常設(shè)定時(shí)間、數(shù)碼管是否正常顯示、是否能正常定時(shí)及繼電 器電路是否正常工作,具體測(cè)試方法如表 5-1所示。表5-1系統(tǒng)測(cè)試項(xiàng)目與測(cè)試方法序號(hào)測(cè)試項(xiàng)目測(cè)試方法1是否能正常設(shè)置時(shí)間數(shù)碼管是含止常顯示1、打開(kāi)仿真開(kāi)關(guān),通過(guò)預(yù)約鍵進(jìn)入時(shí)間設(shè)置;2分別設(shè)置小時(shí),分鐘,觀察是否止常。2是否能準(zhǔn)確定時(shí)1、通過(guò)預(yù)約設(shè)置按鈕進(jìn)入定時(shí)設(shè)置;2、按下開(kāi)始鍵,等待時(shí)間到點(diǎn),觀察繼電器是否,作。3指示燈及繼電器電路是否止常工作1、觀察當(dāng)項(xiàng)目2中定時(shí)到點(diǎn)時(shí),電源接通指示燈 是否亮,及繼電器是否,作,是否接通電源。5.3.2仿真測(cè)試結(jié)果系統(tǒng)測(cè)試結(jié)果如表5-2所示。表5-2系統(tǒng)測(cè)試結(jié)果序號(hào)測(cè)試項(xiàng)目測(cè)試結(jié)果1是否能正常設(shè)置時(shí)

25、間數(shù)碼管是含止常顯示能很好的設(shè)置和保存所設(shè)置的時(shí)間,且正常工作。2是否能準(zhǔn)確定時(shí)能夠準(zhǔn)確定時(shí)。3指示燈及繼電器電路是否正常工作指示燈能正常工作,定時(shí)結(jié)束后繼電器動(dòng)作,接通 電源。結(jié)果:整個(gè)系統(tǒng)能按照預(yù)定的計(jì)劃運(yùn)行,此次制作圓滿成功6 .結(jié)論整個(gè)設(shè)計(jì)所實(shí)現(xiàn)的功能非常簡(jiǎn)單,歸結(jié)為四個(gè)字:定時(shí)開(kāi)關(guān)。所謂定時(shí)就是實(shí)現(xiàn) STC89C5的定時(shí)器精確定時(shí)到1秒的功能,整個(gè)顯示部分實(shí)現(xiàn)了時(shí)顯示和分顯示兩部分, 同時(shí)實(shí)現(xiàn)了鍵盤的相關(guān)鍵值功能,實(shí)現(xiàn)了負(fù)載電源定時(shí)啟閉的功能,同時(shí)在設(shè)定定時(shí)時(shí)間 值的時(shí)候,實(shí)現(xiàn)了當(dāng)前設(shè)定位的閃爍效果,當(dāng)啟動(dòng)預(yù)約以后,也實(shí)現(xiàn)了所設(shè)定時(shí)間值不閃 爍的效果,同時(shí)也實(shí)現(xiàn)了對(duì)設(shè)定時(shí)間值的保存。

26、最后,當(dāng)負(fù)載電源啟動(dòng)或關(guān)閉后,按下鍵 盤當(dāng)中的預(yù)約鍵,實(shí)現(xiàn)再次定時(shí)開(kāi)關(guān)的功能。硬件系統(tǒng)關(guān)系到所要設(shè)計(jì)的電子產(chǎn)品好懷,如系統(tǒng)抗干擾性等,所以要合理的安排盡 量減少干擾,提高性能。單片機(jī)是很容易受干擾的控制器,當(dāng)采用外部晶振時(shí),應(yīng)盡量讓 其靠近單片機(jī)減少對(duì)其干擾,防止程序亂飛現(xiàn)象。同時(shí)還可以采用隔離等方式減少干擾, 硬件系統(tǒng)設(shè)計(jì)的好壞很大部分來(lái)源于經(jīng)驗(yàn),所以我們要有動(dòng)手的好習(xí)慣。軟件設(shè)計(jì)是核心部分,具有多樣化,靈活性高,易移植等優(yōu)點(diǎn),要深深理會(huì)各指令的 含義才能更加熟練應(yīng)用,中斷的合理利用可以減少 CPURJ用資源,具有執(zhí)行效率高等優(yōu)點(diǎn), 本設(shè)計(jì)用到定時(shí)器中斷以減少對(duì) CPU勺占用,更好的處理其他

27、功能。軟件的設(shè)計(jì)大部分采 用模塊化設(shè)計(jì)的方法以方便調(diào)試,并使其可讀性大大增強(qiáng),方便更改和移植。在本次畢業(yè)設(shè)計(jì)當(dāng)中,自己深深的明白了理論知識(shí)一定要和實(shí)踐相結(jié)合的道理,只有 把理論知識(shí)貫穿到實(shí)踐當(dāng)中,才能真正的學(xué)到有用的知識(shí),自己在這次畢業(yè)設(shè)計(jì)中也學(xué)到 了很多新的知識(shí)。25參考文獻(xiàn)1王靜霞主編.單片機(jī)應(yīng)用技術(shù)(C語(yǔ)言版).北京:電子工業(yè)出版社,2012.52胡輝主編.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與訓(xùn)練.北京:中國(guó)水利水電出版社,2004.93戴佳.戴衛(wèi).51單片機(jī)C語(yǔ)言應(yīng)用程序設(shè)計(jì)實(shí)例精講.電子工業(yè)出版社,20064王幸之主編.AT89系列單片機(jī)原理與接口技術(shù).高等教育出版社,2004.75何宏主編.單片機(jī)

28、原理與接口技術(shù)北京國(guó)防工業(yè)出版社,2006.76李光.單片機(jī)基礎(chǔ).北京:北京航空航天大學(xué)出版社,19947倪曉軍.單片機(jī)原理與接口技術(shù)教程 .北京:清華大學(xué)出版社, 20098姚年春.向華Protel99SE基礎(chǔ)教程.北京:人民名郵電出版社,20099韓穎.Proteus在單片機(jī)技術(shù)實(shí)訓(xùn)中的應(yīng)用J;中國(guó)科教創(chuàng)新導(dǎo)刊,2008 , 31期10李貴庭.單片機(jī)應(yīng)用技術(shù)及項(xiàng)目化訓(xùn)練.西南交通大學(xué)出版社,2009致謝不知不覺(jué),畢業(yè)設(shè)計(jì)結(jié)束了。我的畢業(yè)論文已整理完畢,電路調(diào)試進(jìn)展良好。畢業(yè) 設(shè)計(jì)的完成意味著我的大學(xué)學(xué)習(xí)生活即將結(jié)束,從此我將進(jìn)入一個(gè)新的人生旅途、開(kāi)始一 段嶄新的生活一一工作。在此,我衷心地

29、感謝所有在我做畢業(yè)設(shè)計(jì)期間幫助過(guò)我人。首先我要感謝李學(xué)明老師的大力幫助和支持。在整個(gè)設(shè)計(jì)過(guò)程當(dāng)中,為我的畢業(yè)設(shè)計(jì) 帶來(lái)了很大方便。同時(shí)在我完成畢業(yè)設(shè)計(jì)的過(guò)程中提供了很多指導(dǎo)性的意見(jiàn)使我受益匪 淺。在此,我衷心感謝老師給予我的幫助和教育。止匕外,還要衷心感謝其他所有對(duì)本課題的研究和論文撰寫有過(guò)幫助的同學(xué)。最后,我要感謝我的母校一一江蘇農(nóng)林職業(yè)技術(shù)學(xué)院,在校期間,這里給我留下了美 好的回憶。特別是在我即將踏上工作崗位的同時(shí),畢業(yè)設(shè)計(jì)整個(gè)過(guò)程給了我這樣一個(gè)鍛煉 的機(jī)會(huì),使我加深了對(duì)以前知識(shí)的理解和鞏固,拓寬了知識(shí)面,也提高了我對(duì)所學(xué)知識(shí)的 綜合應(yīng)用能力。祝愿母校的將來(lái)更美好!附錄1:定時(shí)器源程序#i

30、nclude<reg52.h>#define uchar unsigned char#define uint unsigned intsbit KEYON =P2A0;/開(kāi)始鍵sbit KEYOFF=P2A1;/關(guān)閉鍵sbit KEYSET=P2A2;/預(yù)約鍵sbit KEYINC=P2A3;/加1鍵sbit KEYDEC=P2A4;/減1鍵sbit KEYFREE=P2A5;/預(yù)留鍵sbit POWER=P3A6;/電源升關(guān)指刁號(hào)sbit LED=P3A3 ;/按鍵指示燈uchar code dispcode"0x3f,0x06,0x05b,0x4f,0x66,0x6d

31、,0x7d,0x07,0x7f,0x6f,0x40;/0-9的字型碼uchar data disbuf=0,0,0,0;/顯示緩沖區(qū)uchar hour,min ;bit Onflag,flag;uchar Setflag;void delay(uchar);void init(void);/uchar GetKeyNum(); void Keyprocess(uchar);void calculate。;void display();/ 主區(qū)void main(void)init();P1=0x00;while(1) display();/ 定時(shí)器TQvoid init()TMOD=0x11

32、;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;IT0=1;/EX0=1;/小時(shí)、分變量/延時(shí)子函數(shù),定時(shí)器初始化子函數(shù)/按鍵處理子函數(shù)/計(jì)時(shí)子函數(shù)7顯示子函數(shù)D數(shù)T1初始化,外部中斷0初始化子函數(shù)-/TO、T1作定時(shí)器、工作方式1/定時(shí)50ms選擇外部中斷0為下降沿觸發(fā)方式 開(kāi)外部中斷0/ / /ET1=1; ET0=1; EA =1; TR0=1; /void display。 uchar i,j=0x08; if(Setflag=0)&&!(m

33、in|hour) / for(i=0;i<4;i+) disbufi=dispcode10; else/ disbuf0 = dispcodemin%10; / disbuf1 = dispcodemin/10;/disbuf2 = dispcodehour%10+0x80; / disbuf3 = dispcodehour/10;/ if(Setflag!=0)&flag)/ for(i=0;i<4;i+) if(disbufi=0x3f)&&(i>2)/P0=0; else P0=disbufi;if(Setflag=1) P1=j&0xf

34、c; / else P1=j & 0xf3;/delay(5);/P1=0x00; j=j>>1; else/ for(i=0;i<4;i+) if(disbufi=0x3f)&&(i>2) P0=0;/else P0=disbufi; P1=j;/delay(5);/顯示子函數(shù)開(kāi)定時(shí)器1開(kāi)定時(shí)器0 開(kāi)總中斷數(shù)碼管顯示”正常顯示時(shí)間分個(gè)位分十位小時(shí)個(gè)位小時(shí)十位如果調(diào)時(shí),數(shù)碼管閃爍顯示不顯示前面的0調(diào)時(shí),關(guān)斷前兩位位碼 調(diào)分,關(guān)斷后兩位位碼 延時(shí)2.5ms數(shù)碼管正常顯示不顯示前面的0位選通延時(shí)2.5msP1=0X00;j=j>>1;/外

35、部中斷0中斷函數(shù)void int0()interrupt 0 using 0 uchar keynum;display。;/if(INT0=0)/keynum=GetKeyNum();/while(INT0=0);/Keyprocess(keynum);/動(dòng)態(tài)顯示程序作為去抖動(dòng)判斷是否有按鍵按下有效鍵,獲取鍵值等待按鍵釋放按鍵處理/- 定時(shí)器0中斷子函數(shù)void time0() interrupt 1/static uchar ledcnt,num;/TH0=(65536-50000)/256;/TL0=(65536-50000)%256;if(Onflag && (hour

36、| min)!=0) |! Onflag)/處理調(diào)時(shí)、顯示器閃爍設(shè)置靜態(tài)變量定時(shí)50ms指示燈每隔0.5s閃爍ledcnt+;if(ledcnt=10)ledcnt=0;LED=LED;if(Setflag!=0)/ 10 X 50mS=0.5S/調(diào)時(shí)閃爍num+;if(num=5)num=0;flag=flag;/ 定時(shí)器1中斷子函數(shù)void time1() interrupt 3TH1=(65536-50000)/256;TL1=(65536-50000)%256;calculate。;/計(jì)時(shí)/ 求按鍵號(hào) uchar GetKeyNum()uchar temp;if(KEYON=0) temp=1

溫馨提示

  • 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)論