單片機(jī)課程設(shè)計(jì)報(bào)告作息時(shí)間控制系統(tǒng)_第1頁
單片機(jī)課程設(shè)計(jì)報(bào)告作息時(shí)間控制系統(tǒng)_第2頁
單片機(jī)課程設(shè)計(jì)報(bào)告作息時(shí)間控制系統(tǒng)_第3頁
單片機(jī)課程設(shè)計(jì)報(bào)告作息時(shí)間控制系統(tǒng)_第4頁
單片機(jī)課程設(shè)計(jì)報(bào)告作息時(shí)間控制系統(tǒng)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、目錄1、緒論12、方案設(shè)計(jì)22.1總體方案22.2 硬件方案32.3 軟件方案33 硬件電路設(shè)計(jì)與分析43.1 cpu時(shí)鐘與復(fù)位電路43.2 數(shù)碼管顯示模塊43.3 8051電路53.4 led顯示模塊63.5 蜂鳴器模塊73.6 按鍵接口模塊84 軟件設(shè)計(jì)94.1主程序設(shè)計(jì)94.2 中斷函數(shù)子程序104.3 蜂鳴器函數(shù)子程序104.4 北京時(shí)間修改函數(shù)子程序114.5 鬧鐘修改函數(shù)子程序125 調(diào)試與測試145.1 硬件調(diào)試145.2 軟件調(diào)試145.3 軟硬件調(diào)試145.4 測試結(jié)果146 總結(jié)16參考文獻(xiàn)17致謝18附錄1 硬件設(shè)計(jì)原理圖19附錄2 程序清單201、緒論 隨著計(jì)算機(jī)技術(shù)的

2、發(fā)展和在控制系統(tǒng)中的廣泛應(yīng)用,以及設(shè)備向小型化、智能化發(fā)展,作為高新技術(shù)之一的單片機(jī)以其體積小、功能強(qiáng)、價(jià)格低廉、使用靈活等優(yōu)勢,顯示出了很強(qiáng)的生命力。進(jìn)入21世紀(jì)以來,開發(fā)推出單片機(jī)的公司很多,各種高性能單片機(jī)芯片市場也異?;钴S,新技術(shù)的不斷采用,更加使單片機(jī)的種類、性能以及應(yīng)用領(lǐng)域不斷擴(kuò)大和提高。因其功耗低,超高型,低成本,功能完整,在國內(nèi)越來越受到用戶的重視和廣泛使用。 本設(shè)計(jì)是一個(gè)具有鬧鐘、顯示北京時(shí)間和修改鬧鐘和北京時(shí)間功能的作息時(shí)間控制系統(tǒng)。由單片機(jī)核心按鍵控制掃描模塊、時(shí)鐘模塊、數(shù)碼顯示模塊、led顯示模塊、蜂鳴器模塊等組成,系統(tǒng)擴(kuò)展4按鍵用于鬧鐘時(shí)間調(diào)整及時(shí)間校正?,F(xiàn)代機(jī)關(guān)企業(yè)

3、,特別是學(xué)校要求對時(shí)間加以控制,要按時(shí)打鈴及播放廣播,以保證學(xué)習(xí)與工作的正常運(yùn)行。本設(shè)計(jì)實(shí)現(xiàn)了這些功能,給學(xué)校及其他機(jī)關(guān)企業(yè)帶來方便,整體性好,人性化強(qiáng)、可靠性高,實(shí)現(xiàn)了對時(shí)間控制的智能化。2、 方案設(shè)計(jì)2.1總體方案 作息時(shí)間控制系統(tǒng)的設(shè)計(jì)有很多方案可以實(shí)現(xiàn),其主流技術(shù)主要有以下幾種: (1)用可編程邏輯器件(如cpld、fpga)來實(shí)現(xiàn),而在本設(shè)計(jì)中如要實(shí)現(xiàn)功能相對來說比較復(fù)雜,必須得用到fpga來實(shí)現(xiàn),而fpga的價(jià)格相對較貴,且系統(tǒng)設(shè)計(jì)比較困難。 (2)用plc來實(shí)現(xiàn),plc其實(shí)就是一被封裝起來的單片機(jī),里面設(shè)有監(jiān)控程序,并對i/o端口進(jìn)行了光電隔離。這樣一來使得plc性能穩(wěn)定且容易使

4、用,且只需簡單外圍電路就可以實(shí)現(xiàn)該系統(tǒng)功能,但plc比較昂貴,這樣會(huì)使成本增高而失去市場競爭。 (3)就是用555定時(shí)器產(chǎn)生時(shí)鐘脈沖和數(shù)字芯片(如74ls14)來實(shí)現(xiàn),但要來實(shí)現(xiàn)本設(shè)計(jì)需要大量的數(shù)字芯片,使得系統(tǒng)穩(wěn)定性下降,生產(chǎn)難度加大,而且成本會(huì)增加。 (4)就是應(yīng)用單片機(jī)充當(dāng)主控器來再加上適量的外圍實(shí)現(xiàn)此功能,且單片機(jī)價(jià)格便宜,性能穩(wěn)定。應(yīng)用的外圍器件相對較少,這就提高了系統(tǒng)的穩(wěn)定性,且單片機(jī)控制簡易,開發(fā)工具簡單,很容易大批量生產(chǎn)。 我們才學(xué)習(xí)了單片機(jī)原理與應(yīng)用,所以我們選擇了方案四。硬件主要利用89c51單片機(jī),8051芯片,4x數(shù)碼管,led顯示燈,獨(dú)立式按鍵,復(fù)位按鍵,蜂鳴器。軟件

5、主要利用keil c51軟件編寫程序,利用stc_isp_v480串口加載程序。最后通過硬件調(diào)試程序。如圖2.1所示是總體方案框圖。按鍵控制掃描數(shù)碼管顯示主控電路指示燈顯示實(shí)現(xiàn)時(shí)鐘led顯示蜂鳴器顯示實(shí)現(xiàn)鬧鐘 圖2.1總體方案框圖 原理說明: 本電路以單片機(jī)at89c51為主控電路,分別連接按鍵控制掃描模塊、時(shí)鐘模塊、鬧鐘模塊、數(shù)碼顯示模塊、led顯示模塊、蜂鳴器模塊、指示燈模塊。首先,按鍵掃描模塊的四個(gè)按鍵分別用來控制數(shù)碼顯示、led顯示和指示燈顯示工作,p0口用來控制其段選以顯示相應(yīng)的數(shù)值。p1口控制數(shù)碼管的位選,以顯示相應(yīng)的數(shù)值。在其位選控制部分,采用了9012型的三極管,要求當(dāng)p1口輸

6、出低電平時(shí),位選成功,使得該位選的數(shù)碼管亮,數(shù)碼管顯示時(shí)分通過按鍵p32控制。p2口作為輸出口,用來控制led的亮滅,要使其亮只需要讓p2.3-p2.6口保持低電平就可以使4個(gè)燈亮起來。通過按鍵p20選擇所要修改的是小時(shí)還是分鐘,最后通過按按鍵p21和p22實(shí)現(xiàn)作息時(shí)間修改的功能。2.2 硬件方案 主要利用89c51芯片讀寫程序;利用4x數(shù)碼管顯示時(shí)鐘時(shí)間和北京時(shí)間,前面兩位顯示小時(shí),后面兩位顯示分鐘,再在利用第二位的數(shù)碼管上點(diǎn),通過對斷碼的控制使它閃爍,即一秒閃爍一次,閃爍60次分鐘就加1;利用led顯示燈作為提示,如:按鍵一被按下,然后就利用一個(gè)led顯示燈亮來提示按鍵被按下;在時(shí)間修改的

7、時(shí)候,通過觀察是哪個(gè)燈亮來確定要修改的是北京時(shí)間或者鬧鐘的小時(shí)還是分鐘。利用復(fù)位按鍵將時(shí)間全部清零;利用獨(dú)立式按鍵控制功能的切換來對時(shí)間操作;利用蜂鳴器響表示鬧鐘時(shí)間到了響鈴,響鈴時(shí)間為一分鐘。2.3 軟件方案設(shè)計(jì)2個(gè)簡單模式,即北京時(shí)間模式(當(dāng)前時(shí)間)和鬧鐘模式。通過對單片機(jī)的學(xué)習(xí),利用定時(shí)器和中斷來實(shí)現(xiàn)其功能,再通過獨(dú)立式按鍵來選擇在那種模式下工作以及對時(shí)間的修改。3 硬件電路設(shè)計(jì)與分析3.1 cpu時(shí)鐘與復(fù)位電路 系統(tǒng)程序主要通過cpu請求定時(shí)器中斷來控制程序,當(dāng)定時(shí)器定時(shí)一個(gè)5ms的時(shí)候,cpu就中斷一次。如圖3.1(a)所示是定時(shí)器的電路連接圖。復(fù)位電路是利用的外部按鍵復(fù)位,這樣在單

8、片機(jī)死機(jī)或遇到程序故障時(shí)系統(tǒng)能夠通過按鍵可以復(fù)位。如圖3.1(b)所示是外部復(fù)位電路圖。 (a) (b)圖3.13.2 數(shù)碼管顯示模塊數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。 靜態(tài)顯示驅(qū)動(dòng):靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的i/o端口進(jìn)行驅(qū)動(dòng),或者使用如bcd碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡單,顯示亮度高,缺點(diǎn)是占用i/o端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×840根i/o端口來驅(qū)動(dòng),要知道一個(gè)89s51單片機(jī)可用的i/o

9、端口才32個(gè)呢:),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。 動(dòng)態(tài)顯示驅(qū)動(dòng):數(shù)碼管動(dòng)態(tài)顯示接口是單片機(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ù)碼管會(huì)顯示出字形,取決于單片機(jī)對位選通com端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮。通過分時(shí)輪流控制各個(gè)數(shù)碼管的的co

10、m端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的i/o端口,而且功耗更低。本電路是以動(dòng)態(tài)顯示的方法,并且低電平有效。每個(gè)數(shù)碼管的公共端(位線)分別由p10、p11、p12、p13接口線控制,外接+5v電壓和10k的固定電阻,圖3.2所示是一個(gè)4位數(shù)碼管動(dòng)態(tài)顯示電路示意圖。圖3.2 4位數(shù)碼管顯示電路圖3.3 8051電路利用8051的io口、cpu

11、中斷源處理該系統(tǒng)程序,如p0口就用作數(shù)據(jù)總線接送段碼,p1口用作四個(gè)數(shù)碼管的位碼口定義,p2口用作led顯示或是按鍵定義,而且低電平有效。具體8051電路設(shè)計(jì)電路圖如圖3.3所示:圖3.3 8051電路圖3.4 led顯示模塊 led(light emitting diode),發(fā)光二極管,是一種固態(tài)的半導(dǎo)體器件,它可以直接把電轉(zhuǎn)化為光。led的心臟是一個(gè)半導(dǎo)體的晶片,晶片的一端附在一個(gè)支架上,一端是負(fù)極,另一端連接電源的正極,使整個(gè)晶片被環(huán)氧樹脂封裝起來。半導(dǎo)體晶片由兩部分組成,一部分是p型半導(dǎo)體,在它里面空穴占主導(dǎo)地位,另一端是n型半導(dǎo)體,在這邊主要是電子。但這兩種半導(dǎo)體連接起來的時(shí)候,它

12、們之間就形成一個(gè)“p-n結(jié)”。當(dāng)電流通過導(dǎo)線作用于這個(gè)晶片的時(shí)候,電子就會(huì)被推向p區(qū),在p區(qū)里電子跟空穴復(fù)合,然后就會(huì)以光子的形式發(fā)出能量,這就是led發(fā)光的原理。而光的波長也就是光的顏色,是由形成p-n結(jié)的材料決定的。 本電路設(shè)計(jì)了四個(gè)led顯示管并聯(lián),分別與p23、p24、p25、p26接口線連接,再外接1k的固定電阻和+5v的電壓。低電平有效。圖3.4所示是一個(gè)4xled顯示管的簡單電路設(shè)計(jì)圖。圖3.4 4xled顯示管顯示電路圖3.5 蜂鳴器模塊 蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時(shí)器等電子

13、產(chǎn)品中作發(fā)聲器件。蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。下面我們以電磁式蜂鳴器為例來說明它的工作原理:電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動(dòng)膜片及外殼等組成。接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,使電磁線圈產(chǎn)生磁場。振動(dòng)膜片在電磁線圈和磁鐵的相互作用下,周期性地振動(dòng)發(fā)聲,當(dāng)輸出高電平時(shí),三極管截止,蜂鳴器的兩引腳間的直流電壓接近于0v,沒有電流流過線圈,蜂鳴器不發(fā)聲;當(dāng)輸出低電平時(shí),三極管導(dǎo)通,使蜂鳴器的兩個(gè)引腳間獲得將接近+5v的直流電壓,這樣蜂鳴器的電流形成回路,發(fā)出聲音。因此,我們可以通過程序控制io口輸出的電平來控制蜂鳴器是否發(fā)出聲音,實(shí)現(xiàn)各種可能音響的產(chǎn)生

14、。在這個(gè)設(shè)計(jì)中是通p1.4口控制其發(fā)聲的,當(dāng)p1.4口輸出低電平時(shí)蜂鳴器發(fā)出聲響。具體電路設(shè)計(jì)圖如圖3.5所示。圖3.5 蜂鳴器接口電路圖3.6 按鍵接口模塊 在實(shí)驗(yàn)中,通過對按鍵mode的切換來實(shí)現(xiàn)我們所選擇的模式,通過dw和up來實(shí)現(xiàn)對時(shí)鐘和鬧鐘的修改。圖3.6所示是一個(gè)獨(dú)立式按鍵接口的簡單電路設(shè)計(jì)圖。圖3.6按鍵接口電路圖4 軟件設(shè)計(jì)4.1主程序設(shè)計(jì)主程序設(shè)計(jì)主要包括五個(gè)函數(shù),即主函數(shù)和中斷函數(shù)和北京時(shí)間的修改和鬧鐘的修改和蜂鳴器。主函數(shù)主要是利用while(1)循環(huán)來等待下一個(gè)中斷,開啟中斷和定時(shí)器的初始化。如圖4.1就是主要程序設(shè)計(jì)的流程圖。開始判斷flag等待定時(shí)器0初始化 fla

15、g=0flag=1鬧鐘的修改鬧鐘的顯示北京時(shí)間修改北京時(shí)間的顯示圖4.1主要程序設(shè)計(jì)的流程圖 4.2 中斷函數(shù)子程序 在中斷函數(shù)里主要設(shè)計(jì)本系統(tǒng)的功能程序和三個(gè)函數(shù)的調(diào)用,首先判斷count是否大于200(1分鐘計(jì)時(shí)數(shù)),然后再分別判斷秒分時(shí)是否大于60,然后更新數(shù)碼管,如果count小于200,則返回。入口ncount>=200?y判斷時(shí)分秒更新數(shù)碼管返回圖4.2 中斷函數(shù)的流程圖4.3 蜂鳴器函數(shù)子程序 根據(jù)功能設(shè)計(jì),蜂鳴器在鬧鐘功能模式下到了響鈴時(shí)間則響鈴。主要是通過按鍵來選擇蜂鳴器工作在那個(gè)模式下,即用變量flag(按鍵p20按下,flag等于1;按鍵p32按下,flag等于0)

16、區(qū)分。當(dāng)flag等于1 的時(shí)候顯示北京時(shí)間,當(dāng)flag等于0的時(shí)候工作在鬧鐘功能模式下。圖4.3所示是具體蜂鳴器子程序設(shè)計(jì)流程圖。入口 y北京時(shí)間=鬧鐘時(shí)間?n鬧鐘響鬧鐘不響返回 圖4.3 蜂鳴器的流程圖4.4 北京時(shí)間修改函數(shù)子程序 將按鍵p20用做選擇要調(diào)整北京時(shí)間的小時(shí)還是分鐘,而按鍵p21和p22鍵分別用做up鍵和down鍵。當(dāng)按鍵p21鍵按下時(shí)讓變量model加1(用model變量來進(jìn)行選擇),當(dāng)model等于1的時(shí)候就修改小時(shí),同時(shí)讓led1作為指示燈(p23)亮;當(dāng)model等于2的時(shí)候就修改分鐘,同時(shí)讓led2(p24)作為指示燈亮。 圖4.4所示是北京時(shí)間修改子程序設(shè)計(jì)流程圖

17、入口n mode = 1 修改小時(shí)ode = 1 修改小時(shí)np20=0?p21=0?p22=0?y返回p22=0p21=0p20=0mode1= 2分鐘減減mode1= 1小時(shí)減減mode1=2分鐘加加mode1= 1小時(shí)加加mode1= 2修改分鐘mode1= 1 修改小時(shí)圖4.4北京時(shí)間修改子程序設(shè)計(jì)流程圖4.5 鬧鐘修改函數(shù)子程序 將按鍵p32用做選擇要調(diào)整北京時(shí)間的小時(shí)還是分鐘,而按鍵p21和p22鍵分別用做up鍵和down鍵。當(dāng)按鍵p21鍵按下時(shí)讓變量model加1(用model變量來進(jìn)行選擇),當(dāng)model等于1的時(shí)候就修改小時(shí),讓led3作為指示燈(p25)亮;當(dāng)model等于2

18、的時(shí)候就修改分鐘,同時(shí)讓led4(p26)作為指示燈亮。圖4.5所示是具體修改鬧鐘的簡單流程圖。入口p32=0?p21=0?p22=0?返回p22=0p21=0p32=0 mode1= 2分鐘減減mode1= 1小時(shí)減減mode1=2分鐘加加mode1= 1小時(shí)加加mode1= 2修改分鐘mode1= 1 修改小時(shí)圖4.5修改鬧鐘的流程圖5 調(diào)試與測試5.1 硬件調(diào)試硬件調(diào)試分為靜態(tài)調(diào)試和動(dòng)態(tài)調(diào)試。靜態(tài)調(diào)試一般采用的工具是萬用表,其是在用戶系統(tǒng)未工作時(shí)的一種硬件檢測。動(dòng)態(tài)調(diào)試是在用戶系統(tǒng)工作的情況下發(fā)現(xiàn)和排查錯(cuò)誤的一種硬件檢測。調(diào)試步驟是:首先把電路分成若干模塊,調(diào)式過程中與該模塊無關(guān)的元件可

19、以不加考慮,這樣可把故障限定在一定的范圍內(nèi);故障清除后,把各個(gè)模塊合在一起進(jìn)行聯(lián)調(diào),即可完成整個(gè)硬件調(diào)試工作。在本次課程設(shè)計(jì)中,調(diào)試的方法主要是利用分塊調(diào)試方法,而且調(diào)試成功一個(gè)再添加其他的功能進(jìn)去,最后對整個(gè)系統(tǒng)進(jìn)行調(diào)試,直到全部調(diào)試成功為止。5.2 軟件調(diào)試 軟件調(diào)試是通過對程序的匯編、連接、執(zhí)行來發(fā)現(xiàn)程序中存在的語法錯(cuò)誤與邏輯錯(cuò)誤并加以排除糾正的過程。5.3 軟硬件調(diào)試 對整個(gè)系統(tǒng)進(jìn)行調(diào)試主要把調(diào)試無誤的軟件程序燒制進(jìn)單片機(jī)芯片內(nèi)部,通過硬件的操作來發(fā)現(xiàn)問題,然后逐個(gè)修改程序和調(diào)試程序。比如對按鍵控制程序的調(diào)試,當(dāng)按鍵按下的時(shí)候,若數(shù)碼管顯示有閃動(dòng)或數(shù)字跳動(dòng)很快或有的數(shù)碼管不亮了或按鍵被

20、按下而看不出效果或者數(shù)碼管顯示的時(shí)候亂碼等,則需修改程序后再調(diào)試。5.4 測試結(jié)果當(dāng)沒有任何按鍵被按下的時(shí)候,數(shù)碼管就顯示北京時(shí)間。當(dāng)有鍵按下時(shí):1、 當(dāng)按鍵p20被按下1次時(shí),數(shù)碼管顯示北京時(shí)間,而且led1(p23)和led2(p24)同時(shí)點(diǎn)亮;2、 當(dāng)按鍵p20被按下2次時(shí),顯示燈只有p23亮,此時(shí)可以修改當(dāng)前北京時(shí)間的小時(shí),按鍵p21是對北京時(shí)間小時(shí)加加,p22是對北京時(shí)間小時(shí)的減減;3、 當(dāng)按鍵p20被按下3次時(shí)只修改北京時(shí)間的分鐘,且顯示燈p24亮,按鍵p21按一下是對北京時(shí)間分鐘加1,按鍵p22按一下是對北京時(shí)間的分鐘減1;4、當(dāng)按鍵p32被按下1次的時(shí)候,數(shù)碼管顯示鬧鐘的第一個(gè)

21、時(shí)間,顯示燈p25和p26同時(shí)亮;5、 當(dāng)按鍵p32被按下2次的時(shí)候,顯示燈只有p25亮,此時(shí)可以修改當(dāng)前的鬧鐘時(shí)間的小時(shí),按鍵p21按一下對鬧鐘時(shí)間小時(shí)加1,按鍵p22按一下是對鬧鐘時(shí)間的小時(shí)減1;6、 當(dāng)按鍵p32按下3次時(shí),顯示燈只有p26亮,此時(shí)可以修改當(dāng)前的鬧鐘時(shí)間的分鐘,按鍵p21按一下對鬧鐘時(shí)間小時(shí)加1,按鍵p22按一下是對鬧鐘時(shí)間的小時(shí)減1;7、當(dāng)按鍵p32被按下4次的時(shí)候,數(shù)碼管顯示第二個(gè)鬧鐘時(shí)間。6 總結(jié) 本實(shí)驗(yàn)硬件用到了單片機(jī)at89c51讀入程序,軟件用到了keil軟件編寫程序,電路原理圖用到了protel99軟件。利用1個(gè)數(shù)組變量sf存儲(chǔ)鬧鐘時(shí)間,前23位儲(chǔ)存鬧鐘時(shí)間

22、的小時(shí),后23為儲(chǔ)存鬧鐘時(shí)間的分鐘。實(shí)驗(yàn)實(shí)現(xiàn)了北京時(shí)間和鬧鐘時(shí)間的顯示與修改,為很多人帶來了方便。在調(diào)試的時(shí)候往往遇到數(shù)碼管顯示不穩(wěn)定(閃爍或者不顯示),和按鍵不穩(wěn)定。數(shù)碼管顯示不穩(wěn)定主要是動(dòng)態(tài)顯示的時(shí)候時(shí)間設(shè)置不對等。按鍵不穩(wěn)定主要是消抖的時(shí)間太長或是太短,通過對軟件的調(diào)試就可以解決這個(gè)問題。對于北京時(shí)間和鬧鐘的修改,我用了兩個(gè)函數(shù),在每個(gè)函數(shù)里面分別定義了所需的按鍵,這樣造成了存儲(chǔ)空間的浪費(fèi),所以以后應(yīng)該分模塊對所需的硬件進(jìn)行整體定義,這樣會(huì)比較清晰也不會(huì)造成資源的浪費(fèi)。由于時(shí)間的關(guān)系,它還是不是很完整,比如一些程序沒有優(yōu)化,功能還不是很強(qiáng)大。如果能有更多的時(shí)間,我相信它的功能會(huì)越來越多,

23、它的不足會(huì)越來越少,會(huì)越來越完美。參考文獻(xiàn)1唐穎.單片機(jī)原理與應(yīng)用及c51程序設(shè)計(jì)m.北京:北京大學(xué)出版社,2008.2徐愛鈞,彭秀華.keil cx51 v7.0單片機(jī)高級編程與uvision2應(yīng)用實(shí)踐m.北京:電子工業(yè)出版社,2004.3趙德安,等.單片機(jī)原理及應(yīng)用m.北京:機(jī)械工業(yè)出版社,2004.4吳飛青,等.單片機(jī)原理及應(yīng)用實(shí)踐指導(dǎo)m.北京:機(jī)械工業(yè)出版社,2009.5段晨東.單片機(jī)原理及接口技術(shù)m.北京:清華大學(xué)出版社,2008.致謝感謝指導(dǎo)老師鐘老師,在專題實(shí)驗(yàn)設(shè)計(jì)期間,許多思想都是在她的指導(dǎo)下得以實(shí)現(xiàn)。她對我們嚴(yán)格要求,盡職盡責(zé)的檢查我們的設(shè)計(jì)報(bào)告,連一點(diǎn)小小的錯(cuò)誤都能檢查出來

24、。正是在這樣嚴(yán)格的要求和關(guān)懷下,專題實(shí)驗(yàn)設(shè)計(jì)期間我們沒有絲毫的松懈,才能夠順利的完成本次專題實(shí)驗(yàn)。同時(shí),還要感謝幫助我的同學(xué),他們提供了很多的幫助,有了這些幫助才能順利的完成專題實(shí)驗(yàn)設(shè)計(jì)。 通過這次專題實(shí)驗(yàn),我明白了一次不能將整個(gè)程序設(shè)計(jì)好,反復(fù)修改、不斷改進(jìn)是程序設(shè)計(jì)的必經(jīng)之路;要養(yǎng)成注釋程序的好習(xí)慣,一個(gè)程序的完美與否不僅僅是實(shí)現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在設(shè)計(jì)課程過程中遇到問題是很正常的,但我們應(yīng)該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題。 再次真心感謝所有幫助過我的老師和同學(xué)們!非常感謝!附錄1 硬件設(shè)計(jì)原理圖附錄2

25、 程序清單#include "reg52.h"#define thco 0xee#define tlco 0x0unsigned char code duan=0x3f, 0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/共陰極數(shù)碼管,0-9段碼表unsigned char data_buffer4=0,0,0,0;/四個(gè)數(shù)碼管顯示數(shù)值,數(shù)組變量定義unsigned int m=0,h=0,l=0,k_count2=0;unsigned char shi=0,fen=0,sec=0;bit flag=0;/1分時(shí)間到標(biāo)志 stati

26、c unsigned char k_count=0;unsigned char sf46=6,7,7,8,8,9,9,10,10,11,11,12,13,13,14,14,15,16,17,17,18,21,23,50,0,25,20,30,15,25,10,30,15,25,10,20,30,15,25,10,30, 0,50, 0,30, 0;sbit p10=p10;/四個(gè)數(shù)碼管的位碼口定義sbit p11=p11;sbit p12=p12;sbit p13=p13;sbit p20=p20; /按鍵定義sbit p21=p21;sbit p22=p22;sbit p32=p32;sbi

27、t led1=p23; /四個(gè)指示燈sbit led2=p24;sbit led3=p25;sbit led4=p26;sbit p14=p14;void key1();void voice();void dispsf();void main() tmod=0x11;/定時(shí)器0初始化 th0=thco; tl0=tlco; tr0=1; et0=1; ea=1; while(1) if(flag=0) 待添加的隱藏文字內(nèi)容1 data_buffer0=shi/10;data_buffer1=shi%10;data_buffer2=fen/10;data_buffer3=fen%10; if(f

28、lag=1) data_buffer0=sfm/10; data_buffer1=sfm%10; data_buffer2=sfm+23/10; data_buffer3=sfm+23%10; void timer0() interrupt 1 static unsigned char bit=0;/靜態(tài)變量,退出程序后,值保留 static unsigned char count=0; th0=thco; tl0=tlco; count+; if(count>=200)/秒計(jì)時(shí),定時(shí)器定時(shí)5ms,計(jì)200次為一秒 count=0; sec+; if(sec>=60) sec=0;

29、 fen+; flag=1;/更新數(shù)碼管顯示 if(fen>=60)/時(shí)間計(jì)時(shí) fen=0; shi+; if(shi>=24)shi=0; bit+; if(bit>=4)bit=0; p1|=0x0f;/先關(guān)位碼 p0=duandata_bufferbit;/開段碼 if(count<100&&bit=1)p0|=0x80;/0.5s中間小數(shù)點(diǎn)亮,之后滅,不斷循環(huán) switch(bit)/送位碼 case 0: p10=0;break; case 1: p11=0;break; case 2: p12=0;break; case 3: p13=0;b

30、reak; key1();voice();dispsf(); void key1() static unsigned char k_count1=0; static unsigned char mode1=0; /mode, 0:實(shí)時(shí)時(shí)鐘;1:修改小時(shí);2:修改分鐘 if(p20=0|p21=0|p22=0)/有鍵按下 k_count1+; if(k_count1>=30)/消抖處理 k_count1=0; if(p20=0|p21=0|p22=0)/有鍵按下 if(p20=0)/修改mode, flag = 0; mode1+; if(mode1>=3)mode1=0; if(mode1=0)led1=1;led2=1;/實(shí)時(shí)時(shí)間 else if(mode1=1) led1=0; /修改小時(shí) else if(mode1=2)led1=1;led2=0;/修改分鐘 if(p21=0) if(mode1=1) /小時(shí)加 shi+;

溫馨提示

  • 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

提交評論