基于stc單片機9999秒倒計時器的設(shè)計_第1頁
基于stc單片機9999秒倒計時器的設(shè)計_第2頁
基于stc單片機9999秒倒計時器的設(shè)計_第3頁
基于stc單片機9999秒倒計時器的設(shè)計_第4頁
基于stc單片機9999秒倒計時器的設(shè)計_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、海 南 師 范 大 學(xué)本 科 生 畢 業(yè) 論 文題目:基于stc單片機9999秒倒計時器的設(shè)計姓 名: 學(xué) 號: 專 業(yè): 自動化 年 級: 2009級 系 別: 完成日期: 2012年5月 指導(dǎo)教師: 本科生畢業(yè)論文(設(shè)計)獨創(chuàng)性聲明本人聲明所呈交的畢業(yè)論文(設(shè)計)是本人在導(dǎo)師指導(dǎo)下進行的研究工作及取得的研究成果,除了文中特別加以標注和致謝的地方外,本論文中沒有抄襲他人研究成果和偽造數(shù)據(jù)等行為 。與我一同工作的同志對本研究所做的任何貢獻均已在論文中作了明確的說明并表示謝意。論文(設(shè)計)作者簽名: 日期: 本科生畢業(yè)論文(設(shè)計)使用授權(quán)聲明海南師范大學(xué)有權(quán)保留并向國家有關(guān)部門或機構(gòu)送交畢業(yè)論文

2、(設(shè)計)的復(fù)印件和磁盤,允許畢業(yè)論文(設(shè)計)被查閱和借閱。本人授權(quán)海南師范大學(xué)可以將本畢業(yè)論文(設(shè)計)的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進行檢索,可以采用影印、縮印或其他復(fù)印手段保存、匯編畢業(yè)論文(設(shè)計)。論文(設(shè)計)作者簽名: 日期: 指 導(dǎo) 教 師 簽 名: 日期: 目 錄1.引言12.系統(tǒng)方案論證及設(shè)計22.1系統(tǒng)方案論證22.2系統(tǒng)方案設(shè)計23.系統(tǒng)硬件電路設(shè)計43.1單片機最小系統(tǒng)電路設(shè)計43.2單片機內(nèi)部定時器53.3單片機與數(shù)碼管的連接電路設(shè)計63.3.1 led 數(shù)碼顯示器的結(jié)構(gòu)63.3.2 led 數(shù)碼管顯示方式83.4按鍵調(diào)整電路設(shè)計84.系統(tǒng)軟件設(shè)計94.1主程序流程圖94.

3、2子程序流程圖124.2.1鍵盤掃描程序設(shè)計124.2.2 倒計時模塊子程序設(shè)計135.實物調(diào)試165.1 軟件仿真165.2 調(diào)試175.2.1系統(tǒng)調(diào)試工具keil uvision3175.2.2調(diào)試的主要方法186.總結(jié)及致謝20參考文獻(references):21附錄 程序21基于stc單片機9999秒倒計時器的設(shè)計作者: 指導(dǎo)教師: (海南師范大學(xué)電子系,??冢?71158)摘 要: 本論文針對倒計時系統(tǒng)的設(shè)計的需求,介紹了stc單片機的部分基本原理,如stc單片機的接口功能、中斷、定時器等等。倒計時系統(tǒng)需要用到鎖存器、led數(shù)碼顯示器等主要模塊,通過不同的模塊之間相互作用,完成倒計

4、時的初步硬件結(jié)構(gòu)。對于倒計時器中的led數(shù)碼顯示器來說,采用以軟件為主的接口方法,即采用keil uvision3軟件程序進行譯碼。關(guān)鍵詞:stc單片機;倒計時器;設(shè)計based stc scm 9999 seconds countdown designauthor: professor: (department of electronics, hainan normal university,haikou, 571158)abstract: this thesis focuses on the needs of the countdown system design introduced s

5、tc scm some of the basic principles, such as stc scm interface functions, interrupts, timers, etc. need to use latches countdown system, led digital display and other major module, through the interaction between the different modules, complete hardware configuration of the initial countdown. for th

6、e countdown in led digital display, the use of software-based interface method, which uses a software program to decode keil uvision3.keywords: stc scm; countdown; design1.引言研究并制造一個倒計時器,利用倒計時可以顯示記錄時間??捎糜诤芏喾矫?,工業(yè)機器的工作時間顯示,家用電器的使用時間,體育中跑步成績等。在研究倒計時器時需要研究怎樣產(chǎn)生脈沖及其脈沖周期。一般的倒計時器的脈沖周期都在一秒。計數(shù)器的置數(shù),及計數(shù)位數(shù)。本課題主要解

7、決的問題是怎么使計數(shù)器實現(xiàn)任意置數(shù)。利用各個芯片的特性實現(xiàn)我們所需要的功能。倒計時器作為一種電子產(chǎn)品在實際運用方面十分廣泛,在交通等各個類型需要計時比賽中都有很廣泛的運用。2.系統(tǒng)方案論證及設(shè)計2.1系統(tǒng)方案論證倒計時器以at89c52單片機為核心,起著控制作用。系統(tǒng)包括四位數(shù)碼管顯示電路、按鍵電路、復(fù)位電路、時鐘電路。倒計時的總體設(shè)計思路分為五個模塊:按鍵電路模塊、復(fù)位電路、晶振電路模塊、at89c52、數(shù)碼管顯示電路模塊。秒脈沖發(fā)生器控制電路譯碼顯示計數(shù)器外部開關(guān)555定時器用來產(chǎn)生周期為1秒的脈沖信號,供計數(shù)器進行倒計數(shù),以便將計數(shù)器輸出的數(shù)據(jù)傳送給譯碼器,譯碼器再譯碼驅(qū)動七段數(shù)碼管顯示

8、輸出,控制電路實現(xiàn)倒計時器的暫停/繼續(xù)工作,清零復(fù)位,置數(shù)/工作;如圖1-1所示。它包括秒脈沖發(fā)生器、計數(shù)器、譯碼顯示電路、和控制電路等四個模塊組成。其中計數(shù)器和控制電路是系統(tǒng)的主要模塊。圖1-12.2系統(tǒng)方案設(shè)計555為一8腳封裝的器件,其各引腳的名稱和作用如下:1腳gnd,接地腳2腳tl,低電平觸發(fā)端3腳q,電路的輸出端4腳/rd,復(fù)位端,低電平有效5腳v_c,電壓控制端6腳th,閾值輸入端7腳dis,放電端8腳vcc,電源電壓端,其電壓范圍為:318v圖1-2由上圖可看出,當(dāng)vo等于低電平時t1處于導(dǎo)通狀態(tài),如果將tl端經(jīng)過一個電阻接到電源正端,而且電阻的阻值足夠大,那么tl也一定是低電

9、平。反之,當(dāng)q等于高電平時t1截止,tl也是高電平。因此,q和tl的高低電平是想相同的。元件清單如下:表1 元件清單列表元件型號元件數(shù)量總計9cm*15cm萬用板1片四位一體共陰數(shù)碼管1只蜂鳴器1只4.7k電阻1只s8550 三極管1只單片機1片40腳ic座1只101排阻1只12m晶振1只22p電容2只10uf電容1只10k電阻1只按鍵6只自鎖開關(guān)1只usb電源線1條導(dǎo)線若干3.系統(tǒng)硬件電路設(shè)計3.1單片機最小系統(tǒng)電路設(shè)計80c52 芯片內(nèi)部集成了cpu、ram、rom、定時/計數(shù)器和i/o口等各功能部件,并由內(nèi)部總線把這些部件連接在一起。80c52單片機內(nèi)部包含以下一些功能部件:一個8位cp

10、u;一個片內(nèi)振蕩器和時鐘電路;4kb rom(80c51有4kb掩膜rom,87c51有4kb eprom,80c31片內(nèi)有無rom); 128b內(nèi)ram; 可尋址64kb的外rom和外ram控制電路; 兩個16位定時/計數(shù)器; 21個特許功能寄存器; 4個8位并行i/o口,共32條可編程i/o端線;振蕩器及時序 osc8051cpu程序存儲器4kb rom數(shù)據(jù)存儲器256b2個16位定時器/計數(shù)器64k總線擴展控制器可編程i/o可編程全雙工串行口 一個可編程全雙工串行口;5個中斷源,可設(shè)置成2個優(yōu)先級。圖3-13.2單片機內(nèi)部定時器時鐘是單片機的心臟,單片機各功能部件的運行都是以時鐘頻率為基

11、準有條不紊地一拍一拍地工作的。因此,時鐘頻率直接影響單片機的速度,時鐘電路的質(zhì)量也直接影響單片機系統(tǒng)得穩(wěn)定性。常用的時鐘電路有兩種方式:一種是內(nèi)部時鐘方式,另一種是外部時鐘方式。單片機必須在時鐘的驅(qū)動下才能工作。在單片機內(nèi)部有一個時鐘振蕩電路,只要外界一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機內(nèi)部的各個單元,決定單片機的工作速度。圖 3-2本系統(tǒng)使用的是內(nèi)部時鐘方式。一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在xtal2引腳產(chǎn)生幅度為3v左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容的作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進行微調(diào)。

12、3.3單片機與數(shù)碼管的連接電路設(shè)計通常在顯示上采用的方法一般包括兩種:一種是靜態(tài)顯示,另一種是動態(tài)顯示。其中靜態(tài)顯示的特點是顯示穩(wěn)定不閃爍,程序編寫簡單,但占用端口資源多,所耗得電能較大;動態(tài)顯示的特點是顯示穩(wěn)定性沒靜態(tài)好,程序編寫復(fù)雜,但是相對靜態(tài)顯示而言占用端口資源少。在本設(shè)計中,為了減少端口資源,降低電能消耗,采用的是動態(tài)顯示方法。本系統(tǒng)的倒計時時間的最大范圍是9999秒,要求精確到秒,顯示格式是9999/999/99/9。從格式可知數(shù)碼管顯示電路要用到4位數(shù)碼管??紤]到數(shù)碼管的段和位比較多,本系統(tǒng)選了兩個4位一體的共陽數(shù)碼管和一個一位的共陽數(shù)碼管。數(shù)碼管有段選和位選控制,在此電路中有8

13、個位選,8個段選,分別用單片機的p0口和p1進行8個位的控制。3.3.1 led 數(shù)碼顯示器的結(jié)構(gòu) led數(shù)碼顯示器是一種有l(wèi)ed發(fā)光二極管組合顯示字符的顯示器件。它使用了 8 個 led 發(fā)光二極管,其中 7 個用于顯示字符,剩下的一個用于顯示小數(shù)點,故通常稱之為 7 段發(fā)光二極管數(shù)碼器。在數(shù)碼管中,若將二極管的陽極連在一起,稱為共陽極數(shù)碼管;若將二極管的陰極連在一起,稱為共陰極數(shù)碼管。如圖3-3所示。圖3-3 (a)為a到g在數(shù)碼管的編排,(b)分別為共陰極、共陽極電路當(dāng)發(fā)光二極管導(dǎo)通時,它就會發(fā)光。每個二極管就是一個筆畫,若干個二極管發(fā)光時,就構(gòu)成了一個顯示字符。若將單片機的i/o口與數(shù)

14、碼管的ag及h相連,高電平的位對應(yīng)的發(fā)光二極管亮,即i/o輸出不同的代碼,就可以控制數(shù)碼管顯示不同的字符。例如:當(dāng)i/o輸出得代碼為0011 1111時,數(shù)碼管顯示的字符為0。這樣形成的顯示字符的代碼稱為顯示代碼或者段選碼。本次設(shè)計的實驗板用的共陰led顯示器,根據(jù)電路連接圖16進制數(shù)字的顯示代碼如表3.1所示2。表3.1 16進制數(shù)字的顯示代碼16進制hgfedcba顯示代碼0001111113fh10000011006h2010110115bh3010011114fh40110011066h5011011016dh6011111017dh70000011107h8011111117fh90

15、11011116fha0111011177hb011111007chc0011100139hd010111105ehe0111100179hf0111000171h.1000000080h圖 3-43.3.2 led 數(shù)碼管顯示方式led顯示器工作方式有兩種:靜態(tài)顯示方式和動態(tài)顯示方式。靜態(tài)顯示的特點是每個數(shù)碼管的段選必須接一個8位數(shù)據(jù)線來保持顯示的字形碼。當(dāng)送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。這種方法的優(yōu)點是占用cpu時間少,顯示便于監(jiān)測和控制。缺點是硬件電路比較復(fù)雜,成本較高。本次設(shè)計采用的是動態(tài)顯示方式。動態(tài)顯示的特點是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控

16、制是哪一位數(shù)碼管有效。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時都在顯示。動態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時應(yīng)略小于靜態(tài)顯示電路中的。 3.4按鍵調(diào)整電路設(shè)計復(fù)位是單片機的初始化操作,只需給at89c52的復(fù)位引腳rst加上大于2個機器周期(即24個時鐘振蕩周期)的高電平就可得單片機復(fù)位.復(fù)位時,pc初始化為0000h,使單片機從out單元開始執(zhí)行程序。除了進入系統(tǒng)的正常初始化之外,由于程序運行出錯或操作錯誤而使系統(tǒng)處于死鎖狀態(tài)。為擺脫死鎖狀態(tài),也需按復(fù)位鍵使得rst

17、腳為高電平,使單片機重新啟動。圖 3-5在系統(tǒng)中,有時會出現(xiàn)顯示不正常。為了調(diào)試方便,需要設(shè)計一個復(fù)位電路。at89c52單片機復(fù)位電路共有上電復(fù)位、按鍵電平復(fù)位和按鍵脈沖復(fù)位。本系統(tǒng)的復(fù)位電路主要完成系統(tǒng)的上電復(fù)位和系統(tǒng)在運行時用戶的按鍵復(fù)位功能。復(fù)位電路可由簡單的rc電路構(gòu)成,也可使用其它的相對復(fù)雜,但功能更完善的電路。本系統(tǒng)采用的電路工作原理是:上電瞬間,rc電路充電,reset引腳端出現(xiàn)正脈沖,只要reset保持10ms以上高電平,就能使單片機有效的復(fù)位。當(dāng)時鐘頻率選用12mhz時,c取10uf,r取10k,上電自動復(fù)位電路由上電瞬間c與r構(gòu)成充電電路,reset端的電位與電源vcc相

18、同,隨著充電電流的減少,reset的電位逐漸下降。rc時間常數(shù)越大,上電時reset端保持高電平的時間越長,這組參數(shù)足以保證復(fù)位操作。若復(fù)位電路失效,加電后cpu從一個隨機的狀態(tài)開始工作,系統(tǒng)就不能正常運行。按鍵s5的功能是按鍵復(fù)位,按下s5鍵時rst為高電平,只要保持10ms以上的高電平,就可以使單片機復(fù)位。按鍵復(fù)位用在系統(tǒng)運行時的復(fù)位,使系統(tǒng)重新運行。4.系統(tǒng)軟件設(shè)計4.1主程序流程圖倒計時器的設(shè)計時可采用模塊化程序設(shè)計的方法,模塊化程序設(shè)計時應(yīng)注意以下事項:首先,每個模塊應(yīng)具有獨立的功能,能產(chǎn)生一個明確的結(jié)果;其次,模塊之間的控制參數(shù)應(yīng)盡量簡單,數(shù)據(jù)參數(shù)應(yīng)該盡量少??刂茀?shù)是指模塊進入和

19、退出的條件和方式,數(shù)據(jù)參數(shù)是指模塊間的信息交換方式、交換量的多少及交換的頻繁程度。最后,模塊長度適中。模塊語句長度通常在 20100 條適合。如果模塊太長時,分析和調(diào)試比較困難,失去了模塊化程序的功能性;如果模塊太短則信息交換太頻繁,也不合適。由以上原則,本次設(shè)計的倒計時軟件系統(tǒng)如下圖4-1所示:圖 4-1 倒計時軟件設(shè)計框圖由上述硬件電路分析可知,本次設(shè)計采用的是定時器 0、工作方式 1,maxtime 為 9999秒的倒計時計數(shù)器。其中最重要的就是主程序的設(shè)計,因為無論多少個子程序模塊,如果主程序沒有能夠合理正確的調(diào)用子程序的話,那么子程序就如同虛設(shè)。主程序的設(shè)計分為:主程序的初始化內(nèi)容。

20、所謂初始化,就是對用到的單片機內(nèi)部部件或者擴展芯片進行工作狀態(tài)設(shè)定,本設(shè)計調(diào)用了一個初始化的子程序 init()。引入鍵盤掃描程序,對按鍵 key 進行判斷,判斷哪個按鍵被按下,本系統(tǒng)設(shè)計調(diào)用的鍵盤掃描程序是 keyscan()。然后對返回值進行判斷:若 key=0x18,則表示按下的鍵是 kc(設(shè)置初值鍵)。然后關(guān)定時器 0,等待初值并與最大值相比進行判斷,引入初值設(shè)置子程序 set-func()。若 key=0x88,則表示按下的鍵是 kf,開始計數(shù)。調(diào)用顯示子程序 display()對以上操作和后面的倒計時進行顯示。display()對倒計時在數(shù)碼管上顯示出來,引入中斷子程序,根據(jù)中斷子

21、程序和主程序的語句開始進行倒計時。最后,根據(jù)主程序語句判斷倒計時是否自減到 0,并進行相應(yīng)的操作。主程序流程圖如圖4-2所示。圖 4-2 主程序流程圖4.2子程序流程圖4.2.1鍵盤掃描程序設(shè)計矩陣鍵盤的掃描程序 keyscan()設(shè)計:if(p0&0x0f)!=0x0f) /判斷是否有有鍵按下delay(1);if(p0&0x0f)!=0x0f) /再次判斷列中是否是干擾信號,不是則向下執(zhí)行sccode = 0xfe; /逐行掃描初值(即先掃描第 1 行)while(sccode&0x10)!=0) /行掃描完成時(即 4行已經(jīng)全部掃描完成)sccode為 1110 1111 停止 whil

22、e首先,根據(jù)列判斷是否有鍵按下,沒有返回則為 0。若有值返回,則逐行掃描以確定按鍵所在的行,再確定按鍵所在列,從而最終確定該按鍵。其次,若有鍵按下,則延時去建抖動(delay(1);),然后進行掃描,找到閉合鍵并計算鍵值。最后,返回鍵值,并進行判斷,建立有效標志,以對主程序的進行。流程圖見圖 4-3所示。圖 4-3 鍵盤掃描程序4.2.2 倒計時模塊子程序設(shè)計中斷程序:void timer0() interrupt 1th0 = (65536-time)/256; /50ms 產(chǎn)生一次中斷tl0 = (65536-time)%256;count+;倒計時程序模塊:if(count = 20)c

23、ount = 0;data_set-;if(data_set = 0) stop_timer0(); 倒計時模塊設(shè)計:首先,初值設(shè)置。對計數(shù)值 count 賦初值 0,對定時器 0 的高八位 th0和低八位 tl0 設(shè)置初值,然后開中斷。其次,根據(jù)中斷子程序及初值,50ms 產(chǎn)生一次中斷,計數(shù)器則加 1,當(dāng)計數(shù)器 count 加到 20 的時候,倒計時器減 1,并且 count 清 0 依次循環(huán)程序。判斷值是否為 0,如果不為 0,繼續(xù)倒計時;如果為 0,則關(guān)中斷程序 stop-timer0(),倒計時結(jié)束。倒計時模塊設(shè)計流程圖如圖 4-4 所示。圖 4-4 倒計時流程圖5.實物調(diào)試5.1 軟

24、件仿真圖5-1 仿真電路圖圖 5-2 pcb圖5.2 調(diào)試5.2.1系統(tǒng)調(diào)試工具keil uvision3keil uvision3 仿真器是一款利用其 ide 集成開發(fā)環(huán)境作為仿真環(huán)境的廉價仿真器,是利用 sst 公司具有 iap 功能的單片機 sst89c58 制作而成,主要是利用了 sst89c58 的 iap功能,所謂 iap 功能是 in application program 的英文縮寫,是在應(yīng)用編程的意思,通俗一點講就是:它可以通過串口將用戶的程序下載到單片機中,可以通過串口對單片機進行編程。它之所以具有這種功能,實際上它有兩塊程序 flash 區(qū),其中一塊 flash 中運行的

25、程序可以更改另外的一塊程序 flash 區(qū)中的程序,正是利用這一特性才用它作成了仿真器,我們把仿真器的監(jiān)控程序事先燒入 sst89c58,監(jiān)控程序通過 sst89c58 的串口和 pc 通訊,當(dāng)使用 keil uvision3 的 ide 環(huán)境仿真時,用戶的程序通過串口被監(jiān)控程序?qū)懭?flash 程序區(qū)中,當(dāng)用戶設(shè)置斷點等操作仿真程序時,flash 程序中的用戶程序也在相應(yīng)的更改,從而實現(xiàn)了仿真功能 。5.2.2調(diào)試的主要方法啟動 keil uvision3。新建一個工程。project 菜單new project ,選擇好我們要保存的文件夾后,鍵入 djs 保存。接著彈出 cpu 類型選擇框

26、,選擇最常用的 atmelat89c51,按確定。在工程中加入文件。新建一個文件,文件菜單 filenew,我們再點擊 save the active document 按鈕,(另存為)彈出對話框后,我們文件名框中鍵入 djs.c(注意文件后綴名是.c)保存,這個時候 c 語言文件創(chuàng)建完畢。現(xiàn)在可以把文件加入到工程中去。點擊 target1 前面的+號,右鍵單擊 source group1選擇 add files to groupsource group 1,在彈出的對話框中選擇一創(chuàng)建好的 djs.c文件,選擇添加 add,然后關(guān)閉此對話框。此時工程建成,可以寫入程序了。在寫入程序的時候,通過

27、軟件設(shè)計模塊,先寫好主程序的框架,然后在需要調(diào)用子程序的時候,一個子程序一個子程序進行編寫、調(diào)試。當(dāng)程序完成之后,點擊 rebuild all target files 按鈕 (重新編譯所有目標文件)進行程序調(diào)試、查錯,在程序下面的提示框 output window 中點擊出錯的提示,進行程序改錯,當(dāng)程序沒有錯誤的時候,出現(xiàn)如下圖 5-3的對話框。圖 5-3 正確編譯時對話框點擊 build target 按鈕 ,此時選擇 options for target 按鈕 ,出現(xiàn)如圖 5-4所示。選擇 dubug 按鈕,選擇 use(keil monitor-51 driver),點擊確定。圖 5-

28、4 options for target窗口點擊 start/stop debug session 按鈕,進入調(diào)試狀態(tài)。第一次將會出現(xiàn)下圖 5-5提示窗口,則需要點擊 settings,在下面彈出窗口如圖5-6中,設(shè)置相應(yīng)端口號。在設(shè)置端口號的時候,先通過右鍵電腦屬性,查看端口號后修改正確的端口號,然后點擊 ok確定,然后再點擊 tryagain,繼續(xù)進行程序下載。圖 5-5 提示選擇窗口圖 16 點擊 run 按鈕 ,在試驗版上即可以看到程序效果(顯示默認初值 9999 并開始以秒為單位倒計時),接下來在實驗板上進行操作。先按下 kc 鍵,等待設(shè)置初值;然后任意按下 k0k9 設(shè)置初值,完成

29、后按下 kf 鍵開始倒計時。 當(dāng)演示完成后,按 reset 開關(guān)鍵復(fù)位,然后點擊。在系統(tǒng)調(diào)試的過程中,出現(xiàn)了很多問題,特別是在編寫程序的時候。因為只要程序語句沒有語法錯誤,軟件就不能檢測出錯誤的地方,必須一個模塊一個模塊仔細編寫。本次設(shè)計同時也讓我學(xué)會了 keil uvision3 的基本用法,但是本設(shè)計是用的 c 語言編程,所以了解的大部分用法都是與 c 語言有關(guān)的,以后需要繼續(xù)學(xué)習(xí)。6.總結(jié)及致謝通過對 mcs-51 單片機原理和接口技術(shù)的初步了解,結(jié)合自己的專業(yè)知識和對 c 語言的基本認識,在導(dǎo)師的幫助指導(dǎo)下完成了基于單片機控制的 9999 秒倒計時系統(tǒng)的設(shè)計和這篇論文,本論文完成了以下

30、幾個方面的工作:介紹了本次倒計時系統(tǒng)的設(shè)計目的、設(shè)計方案和開發(fā)意義。對 mcs-51 單片機的部分基本原理和接口技術(shù)進行了闡述,其中大部分都是本次設(shè)計需要用到,比如中斷原理、定時器等;首先介紹了本次倒計時系統(tǒng)設(shè)計的硬件電路設(shè)計,包括中央處理模塊、led 數(shù)碼顯示器模塊、鎖存器模塊、矩陣鍵盤模塊的設(shè)計;其次是軟件程序設(shè)計,包括主程序設(shè)計和各個模塊的子程序設(shè)計;最后是 keil uvision3 軟件系統(tǒng)調(diào)試的步驟和方法,以完成系統(tǒng)設(shè)計。系統(tǒng)功能:一切就緒后,通過 kc 鍵等待初值設(shè)置,其次通過矩陣鍵盤設(shè)定任何小于9999 的初值,然后通過 kf 鍵開始倒計時,同時設(shè)置有復(fù)位鍵,以達到可以重新設(shè)置

31、初值的目的。通過本次設(shè)計,使我在對單片機一無所知的情況下了解了單片機的部分原理和一些簡單的設(shè)計,同時,也增強了對單片機的興趣。但是由于本次設(shè)計我對單片機是從頭開始學(xué),對知識了解的局限性,使得這個倒計時系統(tǒng)在功能上不完善,對開發(fā)有一定的影響,懇請各位老師原諒!時光飛逝,畢業(yè)設(shè)計完成了,在這個過程中我學(xué)到了很多東西。首先我要感謝我的導(dǎo)師xxx老師,他在我完成論文的過程中,給予了我很大的幫助。他在日常繁忙的工作中,多次詢問我的論文進程,并為我指點迷津。我非常感謝xxx老師的指導(dǎo)。感謝大學(xué)四年所有的授課老師,是他們讓我了解專業(yè)知識,并讓我學(xué)會如何學(xué)習(xí)專業(yè)知識,這是一筆寶貴的財富,我將受用終身。感謝他們

32、的無私奉獻!感謝我的家人,是他們給我的鼓勵和支持,是我前進的動力,讓我不斷進取、完成學(xué)業(yè)。 最后,我要感謝所有關(guān)心、幫助過我的朋友們!祝愿他們在未來的日子里,生活愉快,工作順利!參考文獻(references):1譚浩強,c程序設(shè)計(第三版),清華大學(xué)出版社,2005.72郭天祥,新概念51單片機c語言教程 電子工業(yè)出版社,20093張洪潤,廖勇明,王德超,模擬電路與數(shù)字電路 北京:清華大學(xué)出版社,20094王化祥,感器原理及應(yīng)用(第三版)天津大學(xué)出版社,2007附錄 程序#include#define leddata p0/定時數(shù)碼管的段值從p0口輸出unsigned char code l

33、edcode=0x5f,0x44,0x9d,0xd5,0xc6,0xd3,0xdb,0x45,0xdf,0xd7;/數(shù)碼管0-9的編碼unsigned char minit,second,count,count1; /分,秒,計數(shù)器unsigned char set_minit=99,set_second=99;sbit add1=p13;/每按一次加時間sbit dec1=p14;/每按一次減時間sbit add2=p33;/每按一次加時間sbit dec2=p34;/每按一次減時間sbit secondpoint=p05;/秒閃動點/-數(shù)碼管的位選控制腳,共有11位數(shù)碼管-sbit led

34、1=p23;sbit led2=p24;sbit led3=p25;sbit led4=p26;dabit playon=0;/比賽進行標志位,為1時表示比賽開始,計時開啟bit timeover=0;/比賽結(jié)束標志位,為1時表示時間已經(jīng)完bit halfsecond=0;/半秒標志位/=延時=void delay5ms(void)unsigned int i;for(i=100;i0;i-);void display(void)/-顯示時間分-leddata=ledcodeminit/10;/顯示第一位 9led1=0;delay5ms();led1=1;leddata=ledcodeminit%10;/顯示第二位 9led2=0;delay5ms();led2=1;/-秒點閃動-if(halfsecond=1)secondpoint=1;elsesecondpoint=0;led2=0;delay5ms();led2=1;secondpoint=0;/-顯示時間秒-leddata=ledcodesecond/10;/顯示第三位 9led3=0;delay5ms();l

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論