單片機(jī)課程設(shè)計數(shù)字時鐘設(shè)計_第1頁
單片機(jī)課程設(shè)計數(shù)字時鐘設(shè)計_第2頁
單片機(jī)課程設(shè)計數(shù)字時鐘設(shè)計_第3頁
單片機(jī)課程設(shè)計數(shù)字時鐘設(shè)計_第4頁
單片機(jī)課程設(shè)計數(shù)字時鐘設(shè)計_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄一、摘要1二、緒論3設(shè)計的基本思路與主要內(nèi)容3三、數(shù)字時鐘系統(tǒng)設(shè)計43.1系統(tǒng)功能要求43.2整體方案4四、硬件設(shè)計與分析64.1硬件設(shè)計原理64.2各單元電路介紹64.2.1at89c51單片機(jī)介紹6at89c5164.2.2 單片機(jī)最小應(yīng)用系統(tǒng)64.2.3系統(tǒng)原理圖8五、軟件設(shè)計95.1 主程序的設(shè)計95.2鍵輸入程序105.3顯示程序115.4延時程序125.5中斷程序12六、調(diào)試與運行166.1 電路仿真166.2 調(diào)試和運行16七、參考文獻(xiàn)18八、系統(tǒng)原理圖19九、程序清單20數(shù)字時鐘設(shè)計(電子信息工程專業(yè)09(1)班,徐某)一、摘要單片微型計算機(jī)簡稱單片機(jī),它是把微型計算機(jī)的各

2、個功能部件:中央處理器cpu、隨機(jī)存取存儲器ram、只讀存儲器rom、i/o接口、定時器/計數(shù)器以及串行通信接口等待集成在一塊芯片上,構(gòu)成一個完整的微型計算機(jī),故又把它稱為單片微型計算機(jī)。當(dāng)今信息科技高速發(fā)展,使用方便、低成本電子設(shè)備已逐步成為我們?nèi)粘I钪须娮赢a(chǎn)品的主力軍。用軟件代替硬件的電子設(shè)備能大大地節(jié)省成本,且有利于資源的節(jié)約,因此,以軟代硬的設(shè)計必將成為我們現(xiàn)代設(shè)計的主流。本設(shè)計是利用mcs-51系列單片機(jī)內(nèi)部的定時器/計數(shù)器進(jìn)行中數(shù)年定時,配合軟件延時實現(xiàn)時、分、秒的計時。該方案節(jié)省硬件成本,且能夠使設(shè)計者在定時/計數(shù)器的使用、中數(shù)年及程序設(shè)計方面得到鍛煉和提高,因此本系統(tǒng)將采用軟

3、件方法實現(xiàn)計時。關(guān)鍵詞: 單片機(jī);數(shù)碼管;程序設(shè)計二、緒論設(shè)計的基本思路與主要內(nèi)容設(shè)計一個電子產(chǎn)品,首先了解它能實現(xiàn)的功能,時鐘系統(tǒng)最基本的功能就是實現(xiàn)計時,在這里設(shè)計的數(shù)字電子時鐘,它能實現(xiàn)計時和校時的功能,給電子鐘加上電自動計時,設(shè)計一個按鍵對時鐘進(jìn)行復(fù)位和三個按鍵對時間進(jìn)行調(diào)整。硬件設(shè)計很簡單,主要包括:單片機(jī)、按鍵電路、驅(qū)動顯示電路,以及l(fā)ed顯示器四個部分。單片機(jī)選用at89c51芯片,它無須外擴(kuò)程序存儲器,設(shè)計電路很簡單。由于只用了四個按鍵,所以采用獨立式按鍵使設(shè)計更簡單。顯示時、分、秒加兩個分隔符,采用8位的數(shù)碼管,用常用的74ls244來驅(qū)動led數(shù)碼管顯示字符。簡易數(shù)字時鐘可

4、實現(xiàn)校時和整點報時功能,該軟件采用c語言來實現(xiàn),主要包括主程序、鍵輸入程序、顯示程序、定時程序和中斷程序等軟件模塊。把原程序加入原理圖,做出電子鐘的仿真,以秒計數(shù)并顯示時、分、秒。其中秒和分為60進(jìn)制,小時為24進(jìn)制計數(shù)。可通過按鍵實現(xiàn)時鐘復(fù)位和分、秒、時的校正。三、數(shù)字時鐘系統(tǒng)設(shè)計3.1系統(tǒng)功能要求以單片機(jī)技術(shù)為核心,充分應(yīng)用各種外圍電路元器件,設(shè)計一個通過顯示器顯示時間(時、分、秒)的電子鐘。要求:上電時,時、分、秒顯示為00時、00分、00秒,并以秒為單位開始計時;運行狀態(tài)下,按動控制按扭s-set,對秒進(jìn)行調(diào)整;運行狀態(tài)下,按動控制按扭m-set,對分進(jìn)行調(diào)整;運行狀態(tài)下,按動控制按扭

5、h-set,對小時進(jìn)行調(diào)整。當(dāng)數(shù)字時鐘運行到正點時,實現(xiàn)自動報時功能。當(dāng)按下t-set鍵是實現(xiàn)小時由24進(jìn)制和12進(jìn)制的相互轉(zhuǎn)換。3.2整體方案電子鐘的電路圖主要由單片機(jī)(at89c51)、鍵盤電路、驅(qū)動顯示電路和led顯示器四部分組成,它主要實現(xiàn)時鐘的顯示,以及對時、分、秒進(jìn)行調(diào)整,即實現(xiàn)調(diào)時的功能。其數(shù)字鐘系統(tǒng)整體結(jié)構(gòu)如圖2-1所示。七段數(shù)碼管at89c51驅(qū)動led顯示器位選按 鍵圖2-1 電子鐘系統(tǒng)整體結(jié)構(gòu)顯示方案方案一:靜態(tài)顯示就是當(dāng)cpu將要顯示的字或字段碼送到輸出口,顯示器就可以顯示出所要顯示的字符,如果cpu不去改寫它,它將一直保持下去;靜態(tài)顯示硬件開銷大,電路復(fù)雜,信息刷新速

6、度慢。方案二:動態(tài)顯示則是一位一位地輪流點亮顯示器地各個位(掃描)。對于顯示器的每一位而言,每隔一段時間點亮一次;動態(tài)顯示耗能較小,但編寫程序較復(fù)雜。動態(tài)顯示硬件連接簡單,信息刷新速度快。由于本次設(shè)計是對時間進(jìn)行顯示,如采用靜態(tài)顯示,則所占用的i/o口較多,電路較復(fù)雜,所以在此選擇的是方案二,采用動態(tài)顯示。鍵盤方案方案一:獨立式鍵盤。獨立式鍵盤的各個按鍵相互獨立,每個按鍵獨立地與一根數(shù)據(jù)輸入線(單片機(jī)并行接口或其他芯片的并行接口)連接。獨立式鍵盤配置靈活,軟件結(jié)構(gòu)簡單,但每個按鍵必須占用一根接口線,在按鍵數(shù)量不多時,接口線占用多。所以,獨立式按鍵常用于按鍵數(shù)量不多的場合。方案二:矩陣式鍵盤。矩

7、陣式鍵盤采用的是行列式結(jié)構(gòu),按鍵設(shè)置在行列的交點上.(當(dāng)接口線數(shù)量為8時,可以將4根接口線定義為行線,另4根接口線定義為列線,形成4*4鍵盤,可以配置16個按鍵。)由于本設(shè)計只用了四個按鍵,不需要采用矩陣式鍵盤,所以選用第一種方案,采用獨立式鍵盤。計時方案采用軟件控制:利用單片機(jī)內(nèi)部的定時/計數(shù)器進(jìn)行定時,配合軟件定時實現(xiàn)時、分、秒的計時。該方案能夠使設(shè)計者,在設(shè)計的過程中容易實現(xiàn),且節(jié)省硬件成本,因此本系統(tǒng)將采用軟件方法實現(xiàn)計時。四、硬件設(shè)計與分析4.1硬件設(shè)計原理時鐘電路的核心是at89c51單片機(jī),其內(nèi)部帶有2kb的可反復(fù)擦寫的只讀flash程序存儲器和128 bytes的隨機(jī)存取數(shù)據(jù)存

8、儲器(ram),無須外擴(kuò)程序存儲器。電腦時鐘沒有大量的運算和暫存數(shù)據(jù),現(xiàn)有的128b片內(nèi)ram已能滿足要求,也不必外擴(kuò)片ram。系統(tǒng)配備8位led數(shù)碼管顯示和3個獨立式按鍵,用p0口作為鍵盤接口電路,p1口和p3口作為段碼和位碼輸出口,并在字段碼輸出口接74ls245芯片,用該芯片來驅(qū)動led數(shù)碼管顯示。利用p0.0、p0.1和p0.2作為功能按鍵輸入口。4.2各單元電路介紹4.2.1at89c51單片機(jī)介紹 at89c51是一個低電壓,高性能cmos 8位單片機(jī),片內(nèi)含2k bytes的可反復(fù)擦寫的只讀flash程序存儲器和128 bytes的隨機(jī)存取數(shù)據(jù)存儲器(ram),器件采用atmel

9、公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)mcs51指令系統(tǒng),片內(nèi)置通用8位中央處理器和flash存儲單元,所以說at89c51是一個功能強(qiáng)大的單片機(jī)。 at89c51是一個低功耗高性能單片機(jī),它有40個引腳,32個外部雙向輸入/輸出(i/o)端口,同時內(nèi)含2個外中斷口,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,at89c51可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的flash存儲器可有效地降低開發(fā)成本。同時at89c51的時鐘頻率可以為零,即具備可用軟件設(shè)置的睡眠省電功能,系統(tǒng)的喚醒方式有ram、定時/計數(shù)器、串行口

10、和外中斷口,系統(tǒng)喚醒后即進(jìn)入繼續(xù)工作狀態(tài)。省電模式中,片內(nèi)ram將被凍結(jié),時鐘停止振蕩,所有功能停止工作,直至系統(tǒng)被硬件復(fù)位方可繼續(xù)運行。4.2.2 單片機(jī)最小應(yīng)用系統(tǒng)時鐘電路和復(fù)位電路是單片機(jī)最小應(yīng)用系統(tǒng)中必不可少的。單片機(jī)時鐘電路圖,如圖3-1所示:xtal1和xtal2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,xtal2應(yīng)不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。圖3-1 單片機(jī)時鐘電路圖復(fù)位是使單片機(jī)或系統(tǒng)中的其他部件處于某種確定

11、的初始狀態(tài)。單片機(jī)的工作就是從復(fù)位開始的,當(dāng)在單片機(jī)的rst引腳引入高電平并保持2個機(jī)器周期時,單片機(jī)內(nèi)部就執(zhí)復(fù)位操作(若該引腳持續(xù)保持高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài))。實際應(yīng)用中,復(fù)位操作有兩種基本的形式:一種是上電復(fù)位,另一種是上電與按鍵均有效的復(fù)位。由于本次設(shè)計采用的是上電復(fù)位,所以這里只介紹上電復(fù)位,如下圖3-3所示:圖3-3上電復(fù)位電路上電復(fù)位要求接通電源后,單片機(jī)自動實現(xiàn)復(fù)位操作。常用的上電復(fù)位如上圖所示。上電瞬間rst引腳獲得高電平,隨著電容c1的充電,rst引腳的高電平將逐漸下降。4.2.3系統(tǒng)原理圖at89c51的p1口接入三個按鍵,對時、分、秒進(jìn)行調(diào)整。p0口輸出字段碼,

12、控制要顯示的字符,外接74ls245芯片,驅(qū)動led顯示。p3口輸出字位碼,去控制要顯示的位,其原理圖如圖3-6所示。圖3-6 電子鐘原理圖當(dāng)接入電源時,數(shù)字電子鐘以秒為單位開始計時。運行狀態(tài)下,按下控制按鍵s-set,對秒進(jìn)行調(diào)整;按下m-set調(diào)整分鐘;按下h-set對小時進(jìn)行調(diào)整。這樣通過三個按鍵,分別對時、分、秒進(jìn)行調(diào)整,從而實現(xiàn)調(diào)時。五、軟件設(shè)計在軟件設(shè)計中,整個程序的主框架是以定時1s計算的方式來實現(xiàn)電子鐘。定時1s的程序段,使用動態(tài)顯示程序?qū)崿F(xiàn)延時,既完成了延時,也完成了數(shù)字的顯示。在計算程序中,使對應(yīng)于時、分、秒的變化量按照60進(jìn)制和24進(jìn)制進(jìn)行計算,動態(tài)顯示程序直接引用這些變

13、量,達(dá)到顯示的數(shù)字也隨之不斷變化,即完成了電子鐘的功能。其軟件功能模塊主要有鍵輸入程序、中斷程序、顯示程序,以及延時程序。需要說明的是,這里設(shè)計的是簡易的電子鐘,主要是用程序運行來計算時間,這樣用程序來確定出1s的時間精度是很有限的,所以整個時鐘的精度不太高。5.1 主程序的設(shè)計初始化將時、分、秒各單元的內(nèi)容清空,置t0為計數(shù)器方式1,分別給計數(shù)器的高8位和低8位賦計數(shù)初值,啟動t0工作。鍵入一個按鍵,如執(zhí)行此動作,秒值加1,否則重新鍵如按鍵。主程序模塊:主程序流程圖,如圖4-1所示 初始化鍵輸入開始鍵執(zhí)行結(jié)束圖4-1 主程序流程圖5.2鍵輸入程序鍵輸入程序用于調(diào)整時間。以秒為例,按下按鍵s-

14、set,判斷s-set是否真的被按下,若沒有鍵按下,轉(zhuǎn)到a1程序段,再次鍵入按鍵,重新判斷。若按鍵按下了,則調(diào)用延時程序,消除抖動現(xiàn)象秒值加1,當(dāng)秒值大于60時,秒清零,進(jìn)行下一次計時,同時分加一,并轉(zhuǎn)到j(luò)0顯示。此過程循環(huán)執(zhí)行,其程序流程圖如圖4-2所示:顯示s-set是否按下否按下秒值加1秒60 ?清零n調(diào)用延時yyn圖4-2 鍵輸入程序流程圖a1:lcalldisplay;調(diào)用延時程序jnbs_set,s1;判斷按鍵是否按下jnbm_set,s2jnbh_set,s3ljmpa1s1: lcalldelay;去抖動jbs_set,a1incsecond;秒值加1mova,secondcj

15、nea,#60,j0;判斷是否加到60秒movsecond,#0 ;秒清0ljmpj0j0:jbs_set,a1lcalldisplay ;調(diào)用顯示sjmpj05.3顯示程序顯示其時、分、秒的數(shù)值,和兩個分隔符。以顯示秒為例,當(dāng)p3.7輸入高電平時,秒的個位所對應(yīng)的字段碼點亮,顯示其秒的個位;當(dāng)秒有十位輸入時,p3.6輸入高電平,秒所十位對應(yīng)的字段碼點亮,顯示其秒十位。其程序流程圖如圖4-3所示:取字段碼取字位碼顯示秒個位顯示秒十位調(diào)用延時圖4-3 顯示程序流程圖display:mova,second;顯示秒movb,#10divabclrp3.6movca, a+dptr ;取字段碼movp

16、0, alcalldelay ;調(diào)用延時setbp3.6 ;顯示秒十位mova,bclrp3.7movca,a+dptr ;取字段碼movp0,alcalldelay ; 調(diào)用延時,去抖動setbp3.7 ;顯示秒個位clrp3.55.4延時程序按鍵抖動時間一般為5ms10ms,因此延時10ms,其流程圖如圖4-4所示:#10送r6#250送r7返回(r6)=(r7) ?yn圖4-4 延時程序流程圖delay:movr6,#10 ;延時10msd1:movr7,#250djnzr7,$djnzr6,d1ret5.5中斷程序中斷程序主要用于控制顯示的字符。當(dāng)秒值大于60時,秒清零,重新計數(shù),分值

17、加1,秒、分同時顯示;當(dāng)分值大于60時,分清零,重新計數(shù),小時加1,秒、分、時同時顯示,當(dāng)小時大于23時,一天的計時完畢,秒、分、時均清零,進(jìn)行第二天的計時。此任務(wù)循環(huán)執(zhí)行。其程序流程圖如圖4-5所示:秒加1秒59?小時23?分59?秒清0,分加1小時清0分清0,時加1nyyynn圖4-4 中斷程序流程圖display: mova,second;顯示秒movb,#10divabclrp3.6movca, a+dptrmovp0, alcalldelay ;調(diào)用延時setbp3.6 ;顯示秒的十位mova,bclrp3.7movca,a+dptrmovp0,alcalldelaysetbp3.7

18、 ;顯示秒的個位clrp3.5movp0,#40h;顯示分隔符lcalldelaysetbp3.5mova,minute;顯示分鐘movb,#10divabclrp3.3movca,a+dptrmovp0,alcalldelaysetbp3.3 ;顯示分的十位mova,bclrp3.4movca,a+dptrmovp0,alcalldelaysetbp3.4 ;顯示分個位clrp3.2movp0,#40h;顯示分隔符lcalldelaysetbp3.2mova,hour;顯示小時movb,#10divabclrp3.0movca,a+dptrmovp0,alcalldelaysetbp3.0

19、;顯示時的十位mova,bclrp3.1movca,a+dptrmovp0,alcalldelaysetbp3.1 ;顯示時的個位ret六、調(diào)試與運行6.1 電路仿真此設(shè)計的電路在單片機(jī)仿真軟件proteus.professional.7.1中進(jìn)行仿真,仿真電路如圖5-1所示:圖5-1 電子鐘仿真電路圖6.2 調(diào)試和運行在keil (單片機(jī)匯編) c51軟件中編寫好的程序,將程序放入單片機(jī)仿真軟件中,結(jié)合硬件電路進(jìn)行調(diào)試與運行。通過按鍵對時間進(jìn)行調(diào)整。如顯示時間為14-30-22,既是14點30分22秒,通過以下調(diào)整則可實現(xiàn)。按動s-set鍵,將秒調(diào)到22;按動m-set鍵,將分調(diào)到30;按動

20、h-set鍵,將時調(diào)到14。則將時間調(diào)到了所要顯示的時間14-30-22,通過此方法可將時間調(diào)整到任何需要顯示的時間。七、參考文獻(xiàn)1.朱永金等主編,單片機(jī)應(yīng)用技術(shù),中國勞動社會保障出版社。2.彭冬明.韋友春主編,單片機(jī)實驗教程,理工大學(xué)出版社。 3.朱家建主編,單片機(jī)原理及應(yīng)用,機(jī)械工業(yè)出版社。4.胡漢才主編,單片機(jī)原理及接口技術(shù),清華大學(xué)出版社。 5.張偉主編,單片機(jī)原理及應(yīng)用,機(jī)械工業(yè)出版社。八、系統(tǒng)原理圖九、程序清單s_setbitp1.0;數(shù)字鐘秒控制位m_setbitp1.1;分鐘控制位h_setbitp1.2;小時控制位secondequ30hminuteequ31hhourequ

21、32htcntequ34h org00hsjmpstartorg0bhljmpint_t0 start: movdptr,#tablemovhour,#0;初始化movminute,#0movsecond,#0movtcnt,#0movtmod,#01h ;置t0為計數(shù)器方式1movth0,#(65536-50000)/256;定時50毫秒movtl0,#(65536-50000)mod 256movie,#82hsetb tr0 ;啟動t0工作a1:lcall displayjnbs_set,s1jnbm_set,s2jnbh_set,s3ljmpa1s1: lcalldelay;去抖動jb

22、s_set,a1incsecond;秒值加1mova,secondcjnea,#60,j0;判斷是否加到60秒movsecond,#0ljmpj0s2: lcalldelayjbm_set,a1k1: incminute;分鐘值加1mova,minutecjnea,#60,j1;判斷是否加到60分movminute,#0ljmpj1s3: lcalldelayjbh_set,a1k2: inchour;小時值加1mova,hourcjnea,#24,j2;判斷是否加到24小時movhour,#0 ljmpj2 j0:jbs_set,a1lcalldisplaysjmpj0j1:jb m_set,a1 lcalldisplaysjmpj1j2: jb h_set,a1lcall displaysjmp j2int_t0: movth0,#(65536-50000)/256movtl0,#(65536-50000)mod 256inctcntmova,tcn

溫馨提示

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

評論

0/150

提交評論