多功能數(shù)字鐘課程設(shè)計(jì)_第1頁(yè)
多功能數(shù)字鐘課程設(shè)計(jì)_第2頁(yè)
多功能數(shù)字鐘課程設(shè)計(jì)_第3頁(yè)
多功能數(shù)字鐘課程設(shè)計(jì)_第4頁(yè)
多功能數(shù)字鐘課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、沈陽(yáng)航空工業(yè)學(xué)院課 程 設(shè) 計(jì)(論文)題目 多功能數(shù)字鐘的設(shè)計(jì)班 級(jí) 學(xué) 號(hào) 學(xué) 生 姓 名 指 導(dǎo) 教 師 目 錄0. 前言31. 總體方案設(shè)計(jì)32. 硬件電路的設(shè)計(jì)42.1單片機(jī)主機(jī)系統(tǒng)電路的設(shè)計(jì)2.2汽車(chē)信號(hào)燈模擬系統(tǒng)電路的設(shè)計(jì)2.2.1輸入口電路的設(shè)計(jì)2.2.2輸出口電路的設(shè)計(jì)2.3汽車(chē)?yán)锍瘫砟M系統(tǒng)電路的設(shè)計(jì)3. 軟件編程93.1 T1計(jì)數(shù)子程序的設(shè)計(jì)93.2 外部中斷0子程序的設(shè)計(jì)93.3 外部中斷1子程序的設(shè)計(jì)93.4 里程數(shù)處理及顯示子程序的設(shè)計(jì)94. 系統(tǒng)調(diào)試和分析144.1 軟件調(diào)試94.2 軟硬聯(lián)調(diào)94.3 調(diào)試問(wèn)題及原因分析95. 結(jié)論及進(jìn)一步設(shè)想16參考文獻(xiàn)17課設(shè)體

2、會(huì)19附錄 元件清單18附錄 總體電路圖18附錄 源程序18小五字,宋體,為題目名稱(chēng)多功能數(shù)字鐘的設(shè)計(jì)摘要:本文設(shè)計(jì)的是基于單片機(jī)的多功能數(shù)字鐘的設(shè)計(jì),本系統(tǒng)設(shè)計(jì)以AT89C51單片機(jī)為核心,分成四個(gè)模塊,一是顯示系統(tǒng):此系統(tǒng)采用8位LED顯示,實(shí)現(xiàn)時(shí)、分、秒的精確顯示;二是時(shí)鐘計(jì)算系統(tǒng):此系統(tǒng)主要實(shí)現(xiàn)對(duì)外部脈沖的計(jì)數(shù),并用LED數(shù)碼管將其結(jié)果動(dòng)態(tài)顯示;三是鬧鐘定時(shí)系統(tǒng):該系統(tǒng)主要實(shí)現(xiàn)鬧鐘的定時(shí)與響鈴功能;四是12與24進(jìn)制轉(zhuǎn)換系統(tǒng),此系統(tǒng)主要實(shí)現(xiàn)由12小時(shí)計(jì)時(shí)方式轉(zhuǎn)換為24小時(shí)計(jì)時(shí)方式。, LED數(shù)碼管的動(dòng)態(tài)顯示可以及時(shí)準(zhǔn)確的將精確的時(shí)間顯示出來(lái),在實(shí)際應(yīng)用中很方便。關(guān)鍵詞:AT89C51單

3、片機(jī);按鍵;脈沖計(jì)數(shù);動(dòng)態(tài)顯示 0. 前言20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來(lái)越快。 時(shí)間對(duì)人們來(lái)說(shuō)總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時(shí)間。忘記了要做的事情,當(dāng)事情不是很重要的時(shí)候,這種遺忘無(wú)傷大雅。但是,一旦重要事情,一時(shí)的耽誤可能釀成大禍。目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢(shì)將是進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展。下面是單片機(jī)的主要發(fā)展趨勢(shì)。單片機(jī)

4、應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過(guò)軟件方法來(lái)實(shí)現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱(chēng)為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。單片機(jī)模塊中最常見(jiàn)的是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀(guān)性,且無(wú)機(jī)械裝置,具有更更長(zhǎng)的使用壽命,因此得到了廣泛的使用。數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì).時(shí),分,秒.數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭,車(chē)站, 碼頭辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,

5、使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過(guò)老式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來(lái)了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、定時(shí)開(kāi)關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。在單片機(jī)技術(shù)日趨成熟的今天,其靈活的硬件電路的設(shè)計(jì)和軟件的設(shè)計(jì),讓單片機(jī)得到了廣泛的應(yīng)用,幾乎是從小的電子產(chǎn)品,到大的工業(yè)控制,單片機(jī)都起到了舉足輕重的作用。單片機(jī)小的系統(tǒng)結(jié)構(gòu)幾乎是所有具有可編程硬件的一個(gè)縮影,可謂是“麻雀雖小,肝膽俱全”,單片機(jī)的學(xué)習(xí)和研究是對(duì)

6、微機(jī)系統(tǒng)學(xué)習(xí)和研究的簡(jiǎn)捷途徑。1.總體方案設(shè)計(jì)單 片 機(jī)按鍵開(kāi)關(guān)LED顯示圖1 多功能數(shù)字鐘單片機(jī)模擬系統(tǒng)基本組成框圖單的系統(tǒng)從而達(dá)到強(qiáng)化課本知識(shí)并靈活運(yùn)用的目的。電子數(shù)字鐘是日常生活鐘隨處可見(jiàn)的簡(jiǎn)單系統(tǒng)。對(duì)電子數(shù)字鐘的設(shè)計(jì)比較容易聯(lián)系實(shí)際并進(jìn)行拓展, 在設(shè)計(jì)中我將力求盡可能跳出課本的樣板,從現(xiàn)實(shí)生活中尋找設(shè)計(jì)原型和設(shè)計(jì)思路,爭(zhēng)取有所突破電子時(shí)鐘主要由顯示模塊,校時(shí)模塊,時(shí)鐘運(yùn)算模塊和12與24進(jìn)制轉(zhuǎn)換模塊四大部分組成。其中校時(shí)模塊和時(shí)鐘運(yùn)算模塊要對(duì)時(shí)、分、秒的數(shù)值進(jìn)行操作,并且秒計(jì)算到60時(shí),要自己清零并向分進(jìn)1;分計(jì)算到60時(shí),要自己清零并向時(shí)進(jìn)1;時(shí)計(jì)算到24時(shí),要清零。這樣,才能循環(huán)記

7、時(shí)。89C51是8位CPU,具有片內(nèi)振蕩器和時(shí)鐘電路,2個(gè)16位的定時(shí)器/計(jì)數(shù)器,5個(gè)中斷源,兩個(gè)中斷優(yōu)先級(jí)。89C51單片機(jī)的時(shí)鐘信號(hào)通常用內(nèi)部振蕩方式得到:在引腳XTAL1和XTAL2外接晶體振蕩器(簡(jiǎn)稱(chēng)晶振)或陶瓷諧振器,就構(gòu)成了內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖.電容器Col,C02起穩(wěn)定振蕩頻率、快速起振的作用,其電容值一般在5-30pF。晶振頻率的典型值為12MHZ校時(shí)模塊主要功能是修改時(shí)、分、秒內(nèi)存單元的數(shù)值。每按一次鍵,對(duì)應(yīng)的顯示值便加1。分、 秒加到59后變?yōu)?0;小時(shí)加到23后再按鍵即變?yōu)?0.再調(diào)校時(shí)均不

8、向上一單位進(jìn)位(例如分加到59后變?yōu)?0;但小時(shí)不發(fā)生改變)。注意:在主程序中對(duì)時(shí)間進(jìn)行調(diào)校前應(yīng)關(guān)閉中斷,以防在調(diào)校過(guò)程中定時(shí)中斷服務(wù)程序也對(duì)時(shí)間進(jìn)行修改而造成混淆。數(shù)字鐘的設(shè)計(jì)首先要保證其走時(shí)盡可能準(zhǔn)確,其次再根據(jù)人們?nèi)粘5氖褂昧?xí)慣來(lái)設(shè)定其附加功能。在設(shè)計(jì)中利用單片機(jī)定時(shí)計(jì)數(shù)器來(lái)完成走時(shí)并用兩組輸出口控制數(shù)碼管來(lái)顯示;通過(guò)編程向某一輸出口輸出方波實(shí)現(xiàn)報(bào)時(shí)及鬧鈴;利用輸入端口外接各種開(kāi)關(guān)來(lái)完成對(duì)走時(shí)及顯示的控制(如預(yù)置時(shí)間等)。在設(shè)計(jì)中需要用到許多技巧。以下為我在學(xué)習(xí)單片機(jī)課程中總結(jié)的一些設(shè)計(jì)思想或方法:l 占空比概念在設(shè)計(jì)中的運(yùn)用 圖2 占空比如圖所示的一串方波序列,導(dǎo)通時(shí)間同周期的比值即占

9、空比。在用單片機(jī)控制對(duì)多個(gè)數(shù)碼管的掃描顯示中,數(shù)碼管接收到的電壓可以看成是一串方波序列,占空比控制了數(shù)碼管的亮度。實(shí)際上對(duì)顯示延時(shí)時(shí)間的調(diào)節(jié)就是調(diào)節(jié)數(shù)碼管電壓的占空比,當(dāng)占空比大于一定數(shù)值的時(shí)候數(shù)碼管可以顯示,實(shí)驗(yàn)證明占空比在0.1時(shí)仍可以使數(shù)碼管清晰顯示。利用這個(gè)概念可以比較直觀(guān)地理解顯示延時(shí)的調(diào)節(jié)。l CPU的分時(shí)復(fù)用單片機(jī)只有一個(gè)CPU,因此在一個(gè)時(shí)間內(nèi)只能執(zhí)行一條語(yǔ)句,要使單片機(jī)同時(shí)控制多個(gè)外部元件(比如揚(yáng)聲器和數(shù)碼管)就必須對(duì)單片機(jī)的CPU進(jìn)行分時(shí)復(fù)用,讓單片機(jī)在一小段時(shí)間內(nèi)連續(xù)交替執(zhí)行控制多個(gè)器件的語(yǔ)句,從表面上看,單片機(jī)便用一個(gè)CPU控制了多個(gè)元件。本次課程設(shè)計(jì)中對(duì)整點(diǎn)報(bào)時(shí)和鬧鈴

10、功能的實(shí)現(xiàn)便用到了這個(gè)概念。l 單片機(jī)位尋址區(qū)的使用單片機(jī)內(nèi)部數(shù)據(jù)存儲(chǔ)器由20H到2FH共有16個(gè)字節(jié)的位尋址區(qū)可以被作為程序執(zhí)行過(guò)程中的狀態(tài)參數(shù),許多程序模塊至于兩個(gè)狀態(tài)(比如閃爍與正常顯示,報(bào)時(shí)與不報(bào)時(shí)等)用位尋址區(qū)中的某一位來(lái)記錄程序執(zhí)行狀態(tài),在需要對(duì)狀態(tài)進(jìn)行判斷的時(shí)候十分方便并且節(jié)約空間,一個(gè)字節(jié)便可以判斷八個(gè)狀態(tài),而非位尋址區(qū)的地址記錄程序狀態(tài)時(shí)可能需要先進(jìn)行變換,增加了執(zhí)行成本且容易出錯(cuò)。l檢測(cè)開(kāi)關(guān)時(shí)需要注意的問(wèn)題對(duì)于用各種開(kāi)關(guān)控制程序執(zhí)行狀態(tài)的程序設(shè)計(jì)中,需要注意實(shí)時(shí)地進(jìn)行開(kāi)關(guān)的檢測(cè),以確保一旦有開(kāi)關(guān)動(dòng)作,程序狀態(tài)立即隨之改變。此外,在用多個(gè)開(kāi)關(guān)控制不同執(zhí)行狀態(tài)時(shí),應(yīng)注意設(shè)置開(kāi)關(guān)

11、檢測(cè)的優(yōu)先級(jí)以防止多個(gè)開(kāi)關(guān)同時(shí)按下時(shí)出現(xiàn)錯(cuò)誤。l 系統(tǒng)資源分配與使用單片機(jī)有許多資源是有限的不能濫用,比如定時(shí)計(jì)數(shù)器T,外部中斷等,在設(shè)計(jì)一個(gè)多模塊程序時(shí),要注意先做一個(gè)整體規(guī)劃,把稀缺資源用在最需要用的地方。此外在有多個(gè)模塊時(shí),要注意模塊間的數(shù)據(jù)傳遞,比如累加器A和進(jìn)位標(biāo)志C,在使用時(shí)要注意不能讓前一個(gè)模塊的數(shù)據(jù)對(duì)下一個(gè)模塊產(chǎn)生不希望有的影響。在模塊間的數(shù)據(jù)傳遞比較多時(shí)最好用固定的內(nèi)部數(shù)據(jù)存儲(chǔ)器,以避免沖突發(fā)生錯(cuò)誤。2. 硬件電路設(shè)計(jì)由單片機(jī)硬件設(shè)計(jì)原理可知:(1)盡可能采用功能強(qiáng)的芯片,以簡(jiǎn)化電路;(2)留有余地。在設(shè)計(jì)硬件電路時(shí),要考慮到將來(lái)修改、擴(kuò)展的方便。因此在A(yíng)T89C51芯片本身

12、的最小系統(tǒng)需求外,還選擇了上拉電阻進(jìn)行了簡(jiǎn)單的擴(kuò)展。2.1單片機(jī)主機(jī)系統(tǒng)電路的設(shè)計(jì)單片機(jī)主機(jī)系統(tǒng)原理圖如圖3所示。圖3 單片機(jī)主機(jī)系統(tǒng)原理圖由圖3可知,此系統(tǒng)有兩部分:時(shí)鐘電路和復(fù)位電路。時(shí)鐘電路:AT89C51內(nèi)部有一個(gè)用于構(gòu)成震蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外晶體或陶瓷諧振器一起構(gòu)成一個(gè)自激振蕩器。外接晶體以及電容C1和C2構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。(晶體可在1.2MHz12MHz之間任選,電容C1和C2的典型值在20pF100pF之間選擇)復(fù)位電路:本系統(tǒng)的復(fù)位電路是采用按鍵復(fù)位的電路,復(fù)位輸

13、入引腳RET為AT89C51提供了初始化的手段。當(dāng)89C51的ALE及PSEN兩引腳輸出高電平,RET引腳高電平到時(shí),單片機(jī)復(fù)位。按下按鈕,則直接把+5V加到了RET端從而復(fù)位稱(chēng)為手動(dòng)復(fù)位。復(fù)位后,P0到P3并行I/O口全為高電平,其它寄存器全部清零,只有SBUF寄存器狀態(tài)不確定。2.2多功能數(shù)字鐘的時(shí)、分、秒的調(diào)制電路圖4多功能數(shù)字鐘的時(shí)、分、秒的調(diào)制電路分別設(shè)置了三個(gè)按鍵:set、up、down用于高低電平的輸入。LED燈組與單片機(jī)AT89C51相連接至P0口,用于輸出時(shí)間的狀態(tài)。沒(méi)有開(kāi)關(guān)閉合時(shí),時(shí)間處于正常顯示狀態(tài), LED燈顯示當(dāng)時(shí)的時(shí)間。開(kāi)關(guān)set鍵按下時(shí),如果按下一次,則可以對(duì)小時(shí)

14、進(jìn)行調(diào)整,若小時(shí)加1,則繼續(xù)按up鍵,若需要小時(shí)減1,則需按down鍵;如果set鍵按下兩次,則可以對(duì)分進(jìn)行調(diào)整,具體原理與小時(shí)的調(diào)整一樣;若果set鍵按下三次,則是對(duì)秒進(jìn)行調(diào)整,具體原理 時(shí)、分相同。此系統(tǒng)減少了端口的使用,簡(jiǎn)化了電路,方便了電路以后的使用和修改。2.3多功能數(shù)字鐘顯示系統(tǒng)的設(shè)置:函數(shù)信號(hào)發(fā)生器輸出脈沖作為輸入接至P3.5口,由單片機(jī)內(nèi)部計(jì)數(shù)器T1進(jìn)行計(jì)數(shù),選用7段6位共陽(yáng)極數(shù)碼管,與單片機(jī)的P0口相連,6個(gè)位選端分別與單片機(jī)的P2.0P2.5口相連組成顯示電路,實(shí)現(xiàn)時(shí)間的動(dòng)態(tài)顯示。在多位LED顯示時(shí),為了簡(jiǎn)化電路,節(jié)省I/O口,降低成本,動(dòng)態(tài)顯示方案具備一定的實(shí)用性,也是目

15、前單片機(jī)數(shù)碼管顯示較為常用的一種顯示方法。在本設(shè)計(jì)課題中采用的是7段6位共陽(yáng)極LED數(shù)碼管,它的引腳圖如圖7所示。BITBTI4I5I6I7BIT8圖5 7段6位共陽(yáng)極LED數(shù)碼管引腳圖7段LED數(shù)碼管是利用7個(gè)LED(發(fā)光二極管)外加一個(gè)小數(shù)點(diǎn)的LED組合而成的顯示設(shè)備,7段數(shù)碼管分共陰和共陽(yáng)兩種顯示方式,本設(shè)計(jì)中采用共陽(yáng)極顯示器。共陽(yáng)極顯示器的發(fā)光二極管的陽(yáng)極連接在一起,當(dāng)公共陽(yáng)極接電源+5V時(shí),當(dāng)某個(gè)發(fā)光二極管的陰極接低電平時(shí),發(fā)光二極管被點(diǎn)亮,相應(yīng)的段被顯示。通常將控制發(fā)光二極管發(fā)光的8位字節(jié)數(shù)據(jù)編碼稱(chēng)為L(zhǎng)ED顯示的段選碼,要構(gòu)成多位LED顯示時(shí),除需要段選線(xiàn)外,還需要位選線(xiàn),以確定段

16、選碼對(duì)應(yīng)的顯示位,位選線(xiàn)控制第幾個(gè)LED顯示。段選線(xiàn)控制顯示字形。8個(gè)陰極分別與8個(gè)限流電阻相連,在接到相應(yīng)的電路中(發(fā)光二極管的工作電流選取在10-20ma,限流電阻太大,數(shù)碼管會(huì)太亮),其連接圖如圖6所示。圖6 7段共陽(yáng)極LED連接圖多功能數(shù)字鐘顯示系統(tǒng)電路如圖7所示,當(dāng)按鍵按下輸出脈沖時(shí),內(nèi)部定時(shí)器T1開(kāi)始計(jì)數(shù),脈沖數(shù)相當(dāng)于時(shí)間,脈沖數(shù)通過(guò)單片機(jī)內(nèi)部算法經(jīng)數(shù)碼管顯示結(jié)果。按鍵set為多功能數(shù)字鐘的調(diào)整鍵,模擬多功能數(shù)字鐘時(shí),LED數(shù)碼管顯示當(dāng)前時(shí)間,并隨時(shí)根據(jù)調(diào)整的時(shí)間進(jìn)行實(shí)時(shí)的顯示。圖7多功能數(shù)字鐘顯示系統(tǒng)電路3. 軟件編程在單片機(jī)系統(tǒng)的程序的設(shè)計(jì)開(kāi)發(fā)中,單片機(jī)就如同整個(gè)系統(tǒng)的交通中樞

17、,而程序就是組成交通中樞的條條大道,各個(gè)部分的模塊化的程序就是整個(gè)系統(tǒng)的組成成份。軟件編寫(xiě)的好壞,語(yǔ)句運(yùn)用的是否簡(jiǎn)潔直接關(guān)系單片機(jī)的工作效率。在各個(gè)模塊化的程序中盡量用最少的語(yǔ)句作最多的事情,不讓語(yǔ)句出現(xiàn)歧義,這樣就可以使整個(gè)程序可以在系統(tǒng)中更好的運(yùn)行,使單片機(jī)工作效率大大的提高。本系統(tǒng)編程部分是利用C語(yǔ)言完成的,采用模塊化的設(shè)計(jì)方法,各子程序作為實(shí)現(xiàn)各部分功能和過(guò)程的入口,完成對(duì)燈的控制,脈沖計(jì)數(shù)和LED動(dòng)態(tài)顯示等部分的設(shè)計(jì)。該課題的軟件設(shè)計(jì)采用了模塊化設(shè)計(jì)的思想即將程序劃分為若干個(gè)相對(duì)獨(dú)立的功能模塊,畫(huà)出每一個(gè)功能模塊的詳細(xì)流程圖,并根據(jù)流程圖編寫(xiě)程序,最后按照軟件設(shè)計(jì)的總體結(jié)構(gòu)框圖,將各

18、模塊連接成一個(gè)完整的主程序。在主程序的設(shè)計(jì)中要合理地調(diào)用各模塊程序。模塊化設(shè)計(jì)的優(yōu)點(diǎn)是:無(wú)論是硬件還是軟件,每一個(gè)模塊都相對(duì)獨(dú)立,故能獨(dú)立地進(jìn)行設(shè)計(jì)、研制、調(diào)試和修改,從而使復(fù)雜的工作得以簡(jiǎn)化。模塊之間的相互獨(dú)立也有助于研制任務(wù)的分解和設(shè)計(jì)人員之間的分工合作,這樣可提高工作效率和儀表的研制速度。本系統(tǒng)設(shè)計(jì)以AT89C51單片機(jī)為核心,分成四個(gè)模塊,一是顯示系統(tǒng):此系統(tǒng)采用8位LED顯示,實(shí)現(xiàn)時(shí)、分、秒的精確顯示;二是時(shí)鐘計(jì)算系統(tǒng):此系統(tǒng)主要實(shí)現(xiàn)對(duì)外部脈沖的計(jì)數(shù),并用LED數(shù)碼管將其結(jié)果動(dòng)態(tài)顯示;三是鬧鐘定時(shí)系統(tǒng):該系統(tǒng)主要實(shí)現(xiàn)鬧鐘的定時(shí)與響鈴功能;四是12與24進(jìn)制轉(zhuǎn)換系統(tǒng),此系統(tǒng)主要實(shí)現(xiàn)由1

19、2小時(shí)計(jì)時(shí)方式轉(zhuǎn)換為24小時(shí)計(jì)時(shí)方式。, LED數(shù)碼管的動(dòng)態(tài)顯示可以及時(shí)準(zhǔn)確的將精確的時(shí)間顯示出來(lái),在實(shí)際應(yīng)用中很方便。下面就其主要部分分別分析。3.1主程序流程圖NN時(shí)鐘電路復(fù)位電路關(guān)中斷秒加1處理有鍵按 有鍵有鍵按下?調(diào)用鍵盤(pán)掃描子程序分鍵?分加1處理開(kāi)中斷初始化(定時(shí)器,顯示區(qū)中斷系統(tǒng),計(jì)數(shù)單元等)N小時(shí)鍵?N中斷0子程序返回NY計(jì)數(shù)器停止計(jì)數(shù)Ka是否被按下返回調(diào)用顯示子程序開(kāi)中斷秒鍵?小時(shí)加1處理圖6主程序流程圖3.2定時(shí)中斷流程圖定時(shí)器中斷處理NN重送初值保護(hù)現(xiàn)場(chǎng)計(jì)數(shù)單元加1到1秒?T秒加1B秒到60?T秒清0分加1B分到60?T分清0,小時(shí)加1B小時(shí)到24?T小時(shí)清0B3中斷返回I

20、B2TI恢復(fù)現(xiàn)場(chǎng)1 圖7 定時(shí)器中斷流程圖在單片機(jī)系統(tǒng)的程序的設(shè)計(jì)開(kāi)發(fā)中,單片機(jī)就如同整個(gè)系統(tǒng)的交通中樞,而程序就是組成交通中樞的條條大道,各個(gè)部分的模塊化的程序就是整個(gè)系統(tǒng)的組成成份。軟件編寫(xiě)的好壞,語(yǔ)句運(yùn)用的是否簡(jiǎn)潔直接關(guān)系單片機(jī)的工作效率。在各個(gè)模塊化的程序中盡量用最少的語(yǔ)句作最多的事情,不讓語(yǔ)句出現(xiàn)歧義,這樣就可以使整個(gè)程序可以在系統(tǒng)中更好的運(yùn)行,使單片機(jī)工作效率大大的提高。本系統(tǒng)編程部分是利用C語(yǔ)言完成的,采用模塊化的設(shè)計(jì)方法,各子程序作為實(shí)現(xiàn)各部分功能和過(guò)程的入口,完成對(duì)時(shí),分,秒以及鬧鈴和12進(jìn)制與24進(jìn)制轉(zhuǎn)換的控制,脈沖計(jì)數(shù)和LED動(dòng)態(tài)顯示等部分的設(shè)計(jì)。在主程序的設(shè)計(jì)中要合理地

21、調(diào)用各模塊程序。模塊化設(shè)計(jì)的優(yōu)點(diǎn)是:無(wú)論是硬件還是軟件,每一個(gè)模塊都相對(duì)獨(dú)立,故能獨(dú)立地進(jìn)行設(shè)計(jì)、研制、調(diào)試和修改,從而使復(fù)雜的工作得以簡(jiǎn)化。模塊之間的相互獨(dú)立也有助于研制任務(wù)的分解和設(shè)計(jì)人員之間的分工合作,這樣可提高工作效率和儀表的研制速度。4.調(diào)試分析4.1 軟件調(diào)試本次設(shè)計(jì)采用的是keil仿真器進(jìn)行軟件調(diào)試,此系統(tǒng)可以開(kāi)發(fā)應(yīng)用軟件,以及對(duì)硬件電路進(jìn)行診斷、調(diào)試等。它的具體功能是可以進(jìn)行CPU仿真,可以單步、跟蹤、斷點(diǎn)和全速運(yùn)行,而且,程序的編譯過(guò)程中,可以對(duì)設(shè)計(jì)軟件進(jìn)行自診斷,并自動(dòng)給出故障原因。同時(shí)用戶(hù)調(diào)試程序時(shí),可以通過(guò)窗口觀(guān)察寄存器的工作狀況,以便及時(shí)發(fā)現(xiàn)和排除編程中可能出現(xiàn)的錯(cuò)誤

22、。軟件的調(diào)試是利用keil軟件,模塊化調(diào)試,通過(guò)觀(guān)察存儲(chǔ)單元數(shù)據(jù)的變化,查找并解決程序的語(yǔ)法和邏輯錯(cuò)誤,具體的調(diào)試步驟如下:1. 把系統(tǒng)的各個(gè)模塊在仿真軟件中逐個(gè)調(diào)試,如時(shí)間調(diào)整模塊、顯示模塊等。2. 對(duì)各個(gè)需要賦值模塊調(diào)試時(shí),賦入初值,單步調(diào)試,觀(guān)察數(shù)據(jù)窗口,看輸出結(jié)果是否為設(shè)計(jì)時(shí)想要的結(jié)果。3. 把各個(gè)模塊組合起來(lái),全速運(yùn)行,看程序是否能流暢的,是否能實(shí)現(xiàn)設(shè)計(jì)的系統(tǒng)的所有功能。4.2 軟硬聯(lián)調(diào)本設(shè)計(jì)是采用Proteus軟件實(shí)現(xiàn)電路圖設(shè)計(jì)和仿真的,Proteus軟件與Keil軟件聯(lián)合使用,實(shí)現(xiàn)設(shè)計(jì)要求。在Keil軟件中創(chuàng)建新文件,輸入所編寫(xiě)的c語(yǔ)言程序并保存,在編譯源程序無(wú)誤后,會(huì)產(chǎn)出相應(yīng)的

23、”.HEX”文件;將所生成的”.HEX”文件加載到已繪制好的Proteus原理圖中,使Proteus與Keil真正連接起來(lái),實(shí)現(xiàn)聯(lián)合調(diào)試。調(diào)試結(jié)結(jié)果如圖8所示:BIT1BIT2BIT3BIT4BIT5BIT6BIT7BIT85結(jié)論及進(jìn)一步設(shè)想(需說(shuō)明的問(wèn)題)該課題的主要任務(wù)是設(shè)計(jì)一個(gè)以89C51單片機(jī)為核心的多功能數(shù)字鐘系統(tǒng)。通過(guò)聯(lián)調(diào),實(shí)驗(yàn)驗(yàn)證了系統(tǒng)的可行,能滿(mǎn)足設(shè)計(jì)要求,達(dá)到設(shè)計(jì)的指標(biāo),最后實(shí)現(xiàn)了對(duì)多功能數(shù)字鐘的控制和時(shí)間的計(jì)算并用LED顯示的目的。這個(gè)開(kāi)發(fā)過(guò)程主要包括了硬件電路仿真設(shè)計(jì)和軟件編程兩個(gè)部分。從確定課設(shè)題目,到查閱質(zhì)料確定總體方案設(shè)計(jì),硬件電路仿真的設(shè)計(jì),硬件電路的優(yōu)化,軟件的

24、設(shè)計(jì),軟件的優(yōu)化,檢驗(yàn)仿真電路,調(diào)試軟件程序,到最后的軟硬件聯(lián)調(diào),其中的每一個(gè)過(guò)程都是精心設(shè)計(jì)、仔細(xì)完成的。并且在這次設(shè)計(jì)中,我了解了單片機(jī)的各種問(wèn)題以及單片機(jī)外圍電路的設(shè)計(jì),對(duì)外圍電路所涉及的芯片也有了較深刻的理解。同時(shí)對(duì)單片機(jī)的優(yōu)點(diǎn)有了很好的認(rèn)識(shí)。雖然本次設(shè)計(jì)的系統(tǒng)具有電路簡(jiǎn)單、性能可靠、成本低,還有優(yōu)化的程序等特點(diǎn),但是該設(shè)計(jì)還是不夠完善及人性化,比如加上AT24C02掉電存儲(chǔ)芯片就可以在電源斷開(kāi)的時(shí)候,存儲(chǔ)當(dāng)前信息,再加上語(yǔ)音的提示功能,則可能更會(huì)有生命力??傊?,智能儀器被廣泛應(yīng)用于工程之中,而數(shù)字式儀表領(lǐng)域也被廣泛用于實(shí)際的應(yīng)用中,這也就是智能儀器的工程應(yīng)用價(jià)值。參考文獻(xiàn)1.張毅坤

25、陳善久 裘雪紅. 單片微型計(jì)算機(jī)原理及應(yīng)用. 西安電子科技大學(xué)出版社. 1998年9月第1版.2任為民. 電子技術(shù)基礎(chǔ)課程設(shè)計(jì). 中央廣播電視大學(xué)出版社. 1997年5月第1版.3譚浩強(qiáng). C程序設(shè)計(jì)(第二版). 清華大學(xué)出版社. 1999年12月第2版.。4 劉復(fù)華.單片機(jī)及其應(yīng)用系統(tǒng).北京:清華大學(xué)出版社,19925周堅(jiān). 單片機(jī)C語(yǔ)言輕松入門(mén).北京:航空航天大學(xué)出版社,20066 侯玉寶,陳忠平. 基于Proteus51系列單片機(jī)設(shè)計(jì)與仿真. 北京:電子工業(yè)出版社,20087 戴佳,苗龍,陳斌. 51單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)典型實(shí)例. 北京:中國(guó)電力出版社,20058. 張立科. 單片機(jī)典型模

26、塊設(shè)計(jì)實(shí)例導(dǎo)航.北京:中國(guó)郵電出版社,2006課設(shè)體會(huì)在本次課程設(shè)計(jì)開(kāi)始時(shí)我就希望能通過(guò)這次課程設(shè)計(jì)學(xué)習(xí)到盡可能多的知識(shí)。因此我選擇了難度比較大的數(shù)字鐘。此前在學(xué)習(xí)數(shù)字電子技術(shù)課程的時(shí)候,課程設(shè)計(jì)的題目同樣也是數(shù)字鐘,但是由于使用的語(yǔ)言和硬件不同,設(shè)計(jì)過(guò)程需要考慮的問(wèn)題也大不相同。數(shù)電課程設(shè)計(jì)的模塊劃分是由老師完成的,而這個(gè)工作鍛煉價(jià)值很大;同時(shí),數(shù)電課設(shè)中不需要考慮CPU的時(shí)間復(fù)用問(wèn)題,因此,因此本次課程設(shè)計(jì)的難度比較大。在課程設(shè)計(jì)的第一次調(diào)試過(guò)程中,出現(xiàn)了許多我無(wú)法解釋的問(wèn)題,使我有些灰心,但是在認(rèn)真重新讀完自己的程序以后,我發(fā)現(xiàn)原來(lái)出現(xiàn)問(wèn)題的原因都是自己的粗心,在修改完這些問(wèn)題以后,接下

27、來(lái)的調(diào)試就比較順暢了歸結(jié)原因主要還是我對(duì)流程圖的設(shè)計(jì)下了很多功夫,為調(diào)試打下了良好的基礎(chǔ)。我對(duì)程序設(shè)計(jì)課程的學(xué)習(xí)的目標(biāo)是在若干年以后能夠獨(dú)立設(shè)計(jì)一個(gè)復(fù)雜的系統(tǒng),包括硬件電路和軟件部分。所以,這次課程設(shè)計(jì)我付出了比別人跟多的努力,同樣也學(xué)習(xí)到了更多的知識(shí)。在我能夠獨(dú)立設(shè)計(jì)更復(fù)雜的實(shí)用系統(tǒng)的時(shí)候,回想現(xiàn)在我連設(shè)計(jì)一個(gè)簡(jiǎn)單的數(shù)字鐘系統(tǒng)都沒(méi)有很好的把握時(shí),我一定會(huì)為自己的成長(zhǎng)感到喜悅。通過(guò)兩個(gè)月的學(xué)習(xí)和調(diào)試過(guò)程,終于完成了單片機(jī)模塊數(shù)字鐘的工作。并且使數(shù)字鐘夠順利運(yùn)行,完成了預(yù)期的目標(biāo)。從單片機(jī)模塊數(shù)字鐘的設(shè)計(jì)過(guò)程中也找到了一些單片機(jī)開(kāi)發(fā)的規(guī)律:先了解所有元件的具體內(nèi)容,從而畫(huà)出其電路圖,使數(shù)字鐘從簡(jiǎn)

28、易變成多功能的方式,雖沒(méi)有做多功能數(shù)字鐘,卻知曉了其方法。從而讓我踏入了單片機(jī)應(yīng)用領(lǐng)域的第一步。然而在調(diào)試過(guò)程中有也有許多的不足之處:例如編寫(xiě)調(diào)試程序有點(diǎn)不足。希望能夠在以后的不斷深入學(xué)習(xí)中能夠彌補(bǔ)自己的不足之處。同時(shí)更是朝著單片機(jī)應(yīng)用領(lǐng)域邁進(jìn)。元器件清單元件名稱(chēng)型號(hào)數(shù)量單片機(jī)AT89C511LED數(shù)碼管7SEG-MPX8-CA-BLUE1按鍵BUTTON3附錄I 電路原理圖 附錄2 程序清單共有6種工作模式:正常計(jì)時(shí)、按鍵調(diào)時(shí)、按鍵調(diào)分、按鍵調(diào)秒、鬧鐘調(diào)時(shí)、 鬧鐘調(diào)秒,按設(shè)置鍵切換工作模式。 #include#includeDS18B20.H#define uint unsigned int

29、#define uchar unsigned charuchar code segcode=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xc6;/0,1,2,3,4,5,6,7,8,9,-,Cuchar code dispbit=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;/數(shù)碼管位選碼uchar buffer=0,0,0,0,0,0,0,0;uint hour,min,sec;uint ringhour,ringmin;uint status,T;sbit beep=P10;/鬧鐘bit

30、ringoff;bit flag;void keyprocess(unsigned char);/*延時(shí)函數(shù)*/ void delayMS(uint t) / 晶振頻率12M uint i; while(t-)for(i=0;i125;i+); void delay() /鬧鈴的延時(shí) uint m,n; for(m=0;m20;m+) for(n=0;n20;n+);/*數(shù)碼管顯示函數(shù)*/void display() uchar i; if (status=4|status=5) /鬧鐘調(diào)時(shí)、調(diào)分狀態(tài) buffer0=ringhour/10;buffer1=ringhour%10;buffer

31、3=ringmin/10; / 顯示分的十位buffer4=ringmin%10; / 顯示分的個(gè)位 for(i=0;i8;i+) P0=segcodebufferi; P2=dispbiti; delayMS(1); /防止數(shù)碼管顯示的時(shí)候閃動(dòng) P2=0x0; else /正常計(jì)時(shí)顯示 buffer0=hour/10; / 顯示時(shí)的十位 buffer1=hour%10; / 顯示時(shí)的個(gè)位 buffer2=10; / 顯示- buffer3=min/10; / 顯示分的十位 buffer4=min%10; / 顯示分的個(gè)位 buffer5=10; buffer6=sec/10; / 顯示秒的十

32、位 buffer7=sec%10; / 顯示秒的個(gè)位 for(i=0;i=1000) / 定時(shí) 1S 到,以下為時(shí)鐘的正常走鐘邏輯 count=0; sec+; if(sec= 60) sec=0; min+; if(min= 60) min=0; hour+; if(hour= 24) hour=0; if(sec=15|sec=35|sec=55) flag=1; else if(sec=20|sec=40|sec=0) flag=0; /*按鍵處理函數(shù)*/ void keyprocess(unsigned char key) /鍵值處理,6種狀態(tài),正常計(jì)時(shí),設(shè)置時(shí)分秒,設(shè)置鬧鈴時(shí)分 sw

33、itch (key) case 0xe0:status+; /按下設(shè)置鍵 if (status=6) status = 0; break; case 0xd0:switch(status) /按下加1鍵,5種模式下加1 case 0x01:if(hour23) hour+; else hour=0; break; case 0x02:if(min59) min+; else min=0; break; case 0x03:if(sec59) sec+; else sec=0; break; case 0x04:if(ringhour23) ringhour+; else ringhour=0;

34、 break; case 0x05:if(ringmin0) hour-; else hour=23; break; case 0x02:if(min0) min-; else min=59; break; case 0x03:if(sec0) sec-; else sec=59; break; case 0x04:if(ringhour0) ringhour-; else ringhour=23; break; case 0x05:if(ringmin0) ringmin-; else ringmin=59; break; break; case 0x70: ringoff=ringoff;

35、 /鬧鐘的開(kāi)和關(guān) break; default:break; Y定時(shí)器中斷處理NN重送初值保護(hù)現(xiàn)場(chǎng)到1秒?秒加14. 系統(tǒng)調(diào)試與分析系統(tǒng)的硬件、軟件獨(dú)調(diào)和系統(tǒng)調(diào)試是系統(tǒng)最后的步驟也是系統(tǒng)特別重要的環(huán)節(jié),因?yàn)樵O(shè)計(jì)和開(kāi)發(fā)出的系統(tǒng)是否成功,功能是否完善只有在這里才能顯現(xiàn)出來(lái)。所以為了保證設(shè)計(jì)系統(tǒng)能夠正常工作,必須對(duì)軟件和硬件部分的每一個(gè)部分進(jìn)行調(diào)試和分析。本章詳細(xì)的介紹了軟件調(diào)試和軟硬聯(lián)調(diào)的過(guò)程,并對(duì)調(diào)試結(jié)果進(jìn)行了介紹和分析。圖15 調(diào)試結(jié)果圖5. 結(jié)論及進(jìn)一步設(shè)想課設(shè)體會(huì)在老師的精心指導(dǎo)下三周的課程設(shè)計(jì)結(jié)束了,通過(guò)此次課程設(shè)計(jì)的訓(xùn)練,我深刻的體會(huì)到單片機(jī)技術(shù)是一門(mén)工程特點(diǎn)和實(shí)踐性很強(qiáng)的學(xué)科。剛剛拿

36、到題目時(shí)我覺(jué)得很盲目,根本無(wú)從下手,但是經(jīng)過(guò)老師的指導(dǎo)以及多方面查詢(xún)資料,我終于得出了方案,完成了這次課程設(shè)計(jì)。這次課程設(shè)計(jì)給我們提供了一個(gè)應(yīng)用自己所學(xué)知識(shí)的機(jī)會(huì),從到圖書(shū)館查找資料到對(duì)儀器的設(shè)計(jì)、調(diào)試,再到最后的成型,都對(duì)我所學(xué)的知識(shí)進(jìn)行了檢驗(yàn)。不僅使學(xué)過(guò)的知識(shí)得到了鞏固與復(fù)習(xí),同時(shí)也鍛煉了我們使用儀器和計(jì)算機(jī)輔助軟件的技能。但更重要的是把理論知識(shí)與實(shí)際聯(lián)系在了一起,加強(qiáng)了思考問(wèn)題的的完整性和可行性,鍛煉了我的思考能力和動(dòng)手能力。使學(xué)習(xí)變成了一種樂(lè)趣,使知識(shí)形象具體地被掌握。同時(shí)也為作好畢業(yè)設(shè)計(jì)做好準(zhǔn)備工作。三周的課程設(shè)計(jì),向我的指導(dǎo)老師胡立夫老師致以深深的謝意。為了讓我們更好的做課程設(shè)計(jì),他給我們提供了做課設(shè)的專(zhuān)用實(shí)驗(yàn)室和實(shí)驗(yàn)設(shè)備,在這樣良好的學(xué)習(xí)環(huán)境中我們互相探討問(wèn)題,學(xué)習(xí)氛圍很濃。在這段課設(shè)時(shí)期里,胡老師淵博的知識(shí)、嚴(yán)謹(jǐn)?shù)闹螌W(xué)作風(fēng)深深感染著我。當(dāng)我的課設(shè)進(jìn)度慢下

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論