![基于51單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)的畢業(yè)設(shè)計(jì)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/17/5472c762-9720-4c60-8bf3-908b6dbee7bf/5472c762-9720-4c60-8bf3-908b6dbee7bf1.gif)
![基于51單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)的畢業(yè)設(shè)計(jì)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/17/5472c762-9720-4c60-8bf3-908b6dbee7bf/5472c762-9720-4c60-8bf3-908b6dbee7bf2.gif)
![基于51單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)的畢業(yè)設(shè)計(jì)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/17/5472c762-9720-4c60-8bf3-908b6dbee7bf/5472c762-9720-4c60-8bf3-908b6dbee7bf3.gif)
![基于51單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)的畢業(yè)設(shè)計(jì)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/17/5472c762-9720-4c60-8bf3-908b6dbee7bf/5472c762-9720-4c60-8bf3-908b6dbee7bf4.gif)
![基于51單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)的畢業(yè)設(shè)計(jì)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/17/5472c762-9720-4c60-8bf3-908b6dbee7bf/5472c762-9720-4c60-8bf3-908b6dbee7bf5.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、安徽財(cái)貿(mào)職業(yè)學(xué)院 電子1201班 單片機(jī)技術(shù)及應(yīng)用課程設(shè)計(jì) 第 20 頁(yè) 2022/3/17摘 要2Abstract3第一章 緒論41.1多功能數(shù)字鐘設(shè)計(jì)的背景4第二章 AT89C51單片機(jī)簡(jiǎn)介42.1 單片機(jī)介紹42.2 單片機(jī)的應(yīng)用特點(diǎn)52.3 單片機(jī)的應(yīng)用領(lǐng)域52.4 單片機(jī)的中斷與定時(shí)系統(tǒng)52.4.1 MCS51單片機(jī)中斷系統(tǒng)52.4.2 MCS-51 單片機(jī)的定時(shí)器/計(jì)數(shù)器62.4.3 MCS-51定時(shí)器/計(jì)數(shù)器的四種工作方式72.5 AT89C51引腳功能介紹7第三章 設(shè)計(jì)方案93.1 主程序93.2 數(shù)碼管顯示模塊103.3 定時(shí)器計(jì)數(shù)器T0中斷服務(wù)程序103.4按鍵處理模塊10
2、第四章 硬件電路設(shè)計(jì)104.1 復(fù)位電路114.2 時(shí)鐘電路114.3 按鍵電路124.4 數(shù)碼管顯示電路134.5 電源電路設(shè)計(jì)14第五章 軟件設(shè)計(jì)與程序代碼155.1 軟件選擇與介紹155.1.1 軟件介紹155.1.2 Proteus7.8的特點(diǎn)155.2 軟件仿真電路全圖165.3 源程序代碼16第六章 結(jié)論21參考文獻(xiàn)22致謝23 20摘 要近幾年,單片機(jī)在各個(gè)領(lǐng)域得到廣泛的應(yīng)用。從工業(yè)到人們的日常生活,大部分的科技產(chǎn)品都是通過(guò)單片機(jī)來(lái)控制。在它問(wèn)世之前,自動(dòng)控制設(shè)備得不到廣泛的應(yīng)用,這是因?yàn)榭刂圃O(shè)備的體積龐大,耗電量大,價(jià)格昂貴。在第一臺(tái)微處理器成功研制不久,第一個(gè)單片機(jī)就問(wèn)世了。
3、因?yàn)槠湫∏傻捏w積,低功耗,以及高效的性能,單片機(jī)受到了大家的歡迎。本設(shè)計(jì)利用STC89C51單片機(jī)對(duì)電子時(shí)鐘進(jìn)行開(kāi)發(fā),設(shè)計(jì)了實(shí)現(xiàn)所需功能的硬件電路,應(yīng)用C語(yǔ)言進(jìn)行軟件編程,并用Proteus軟件進(jìn)行演示、驗(yàn)證。主要介紹用單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器來(lái)實(shí)現(xiàn)電子時(shí)鐘的方法,本設(shè)計(jì)由單片機(jī)STC89C51芯片和LED數(shù)碼管為核心,輔以必要的電路,構(gòu)成了一個(gè)單片機(jī)的數(shù)字電子時(shí)鐘。它的計(jì)時(shí)周期為24小時(shí),顯滿(mǎn)刻度為“23時(shí)59分59秒”,且配有8個(gè)獨(dú)立鍵盤(pán),可以靈活地調(diào)節(jié)時(shí)間和日期,并具有一定的擴(kuò)展性。關(guān)鍵詞:?jiǎn)纹瑱C(jī),數(shù)字時(shí)鐘,動(dòng)態(tài)顯示,LED數(shù)碼管顯示,獨(dú)立按鍵。第一章 緒論多功能數(shù)字鐘設(shè)計(jì)的背景單片機(jī)自
4、從1976年由Intel公司推出MCS-48開(kāi)始,迄今已有二十多年之久了。由于單片機(jī)集成度高、功能強(qiáng)、可靠性高、體積小、功耗低、使用方便、價(jià)格低廉等一系列優(yōu)點(diǎn),目前已經(jīng)滲入到人們工作和生活的方方面面,單片機(jī)應(yīng)用領(lǐng)域已經(jīng)從面向工業(yè)控制、通訊、交通、智能儀表等方面迅速發(fā)展到家用消費(fèi)產(chǎn)品、辦公自動(dòng)化、汽車(chē)電子、PC機(jī)外圍以及網(wǎng)絡(luò)通訊等廣大領(lǐng)域。本文討論的單片機(jī)多功能數(shù)字鐘系統(tǒng)的核心是目前應(yīng)用極為廣泛的51系列單片機(jī),配置了外圍設(shè)備,構(gòu)成了一個(gè)可編程的計(jì)時(shí)定時(shí)系統(tǒng),具有體積小,可靠性高,功能多等多種特點(diǎn)。不僅能滿(mǎn)足所需要求而且還有很多功能可供擴(kuò)展,有著廣泛的應(yīng)用實(shí)踐領(lǐng)域。第二章STC89C51單片機(jī)簡(jiǎn)
5、介2.1 單片機(jī)介紹 單片機(jī)又稱(chēng)單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開(kāi)發(fā)提供了便利條件。同時(shí),學(xué)習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最佳選擇。 單片機(jī)內(nèi)部也用和電腦功能類(lèi)似的模塊,比如CPU,內(nèi)存,并行總線(xiàn),還有和硬盤(pán)作用相同的存儲(chǔ)器件,不同的是它的這些部件性能都相對(duì)我們的家用電腦弱很多,不過(guò)價(jià)錢(qián)也是低的,一般不超過(guò)10元即可。用它來(lái)做一些控制電器一類(lèi)不是很復(fù)雜的工作足矣了。我們現(xiàn)在用的全自動(dòng)滾筒洗衣機(jī)、排煙罩、VCD等等的家電里面都可以看到它的身影!它主要是作為控制
6、部分的核心部件。它是一種在線(xiàn)式實(shí)時(shí)控制計(jì)算機(jī),在線(xiàn)式就是現(xiàn)場(chǎng)控制,需要的是有較強(qiáng)的抗干擾能力,較低的成本,這也是和離線(xiàn)式計(jì)算機(jī)的(比如家用PC)的主要區(qū)別。 單片機(jī)是靠程序的,并且可以修改。通過(guò)不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,這是別的器件需要費(fèi)很大力氣才能做到的,有些則是花大力氣也很難做到的。一個(gè)不是很復(fù)雜的功能要是用美國(guó)50年代開(kāi)發(fā)的74系列,或者60年代的CD4000系列這些純硬件來(lái)搞定的話(huà),電路一定是一塊大PCB板!但是如果要是用美國(guó)70年代成功投放市場(chǎng)的系列單片機(jī),結(jié)果就會(huì)有天壤之別!只因?yàn)閱纹瑱C(jī)的通過(guò)你編寫(xiě)的程序可以實(shí)現(xiàn)高智能,高效率,以及高可靠性!2.2 單片
7、機(jī)的應(yīng)用特點(diǎn)隨著集成電路技術(shù)的發(fā)展,單片機(jī)的功能越變?cè)綇?qiáng),涉及到各個(gè)電子應(yīng)用領(lǐng)域。目前單片機(jī)的系列也十分多,各有各的特點(diǎn),如目前的MCS51系列、PIC系列等等,通過(guò)這幾年的應(yīng)用,普通感覺(jué)到特別需要單片機(jī)具有如下幾個(gè)應(yīng)用特點(diǎn): 1.低功耗、寬電壓工作范圍,內(nèi)部看門(mén)狗;2.高速指令系統(tǒng),單字節(jié)指令,精簡(jiǎn)指令集易學(xué)易用;3.內(nèi)部ROM結(jié)構(gòu),且具有廉價(jià)OTP(一次性寫(xiě)入程式)ROM,以便小批量生產(chǎn),減少M(fèi)ASK風(fēng)險(xiǎn);4.程序保密功能,防止拷貝,保護(hù)成果;5.方便的開(kāi)發(fā)工具(仿真器與燒入器)。2.3 單片機(jī)的應(yīng)用領(lǐng)域目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒(méi)有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝
8、置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過(guò)程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車(chē)的安全保障系統(tǒng),錄象機(jī)、攝象機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開(kāi)單片機(jī)。更不用說(shuō)自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。因此,單片機(jī)的學(xué)習(xí)、開(kāi)發(fā)與應(yīng)用將造就一批計(jì)算機(jī)應(yīng)用與智能化控制的科學(xué)家、工程師。 單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專(zhuān)用設(shè)備的智能化管理及過(guò)程控制等領(lǐng)域。2.4 HT1380引腳功能介紹1、HT1380的引腳功能HT1380采用DIP8封裝形式封裝,其引腳分配如圖3所示。各引腳的功能及其用法如下。
9、1)、腳(NC):空引腳。2)、腳(X1):內(nèi)部振蕩器輸入腳。3)、腳(X2):內(nèi)部振蕩器輸出腳。HT1380片內(nèi)集成有高增益的自激振蕩放大電路,2)腳、3)腳為該放大電路的輸入、輸出引腳,2)腳、3)腳間接外接32.768khz的晶振,就可以產(chǎn)生頻率為32.768khz的時(shí)鐘信號(hào)。4)、腳(GND):接地引腳。5)、腳(RST):復(fù)位引腳。當(dāng)RST=0時(shí),芯片復(fù)位,單片機(jī)對(duì)HT1380所建立的控制邏輯無(wú)效,所有數(shù)據(jù)傳送終止。當(dāng)RST=1時(shí),所建立的控制邏輯有效。只有RST=1時(shí),才可以對(duì)HT1380進(jìn)行讀、寫(xiě)或測(cè)試操作。6)、腳(I/O):數(shù)據(jù)輸入/輸出引腳。7)、腳(SCLK):串行時(shí)鐘輸
10、入引腳。8)、腳(VCC):電源引腳。2、HT1380的應(yīng)用電路HT1380的應(yīng)用電路如下。HT1380 的SCLK、I/O、RST腳分別與單片機(jī)的3根I/O口線(xiàn)P1.1、P1.2、P1.3相接,單片機(jī)的P1.1口線(xiàn)充當(dāng)時(shí)鐘線(xiàn),向HT1380傳送時(shí)鐘信號(hào),P1.2口線(xiàn)充當(dāng)數(shù)據(jù)線(xiàn),用來(lái)與HT1380之間傳輸數(shù)據(jù),p1.3口線(xiàn)充當(dāng)芯片選擇控制線(xiàn),控制芯片的選擇。C1、C2為5P8P的小電容,起穩(wěn)頻和加速起振的作用。第三章 設(shè)計(jì)方案通常通過(guò)單片機(jī)設(shè)計(jì)電子時(shí)鐘有2種方法:一是通過(guò)單片機(jī)內(nèi)部的定時(shí)器計(jì)數(shù)器。采用軟件編程實(shí)現(xiàn)時(shí)鐘計(jì)數(shù),一般稱(chēng)為軟時(shí)鐘,這種方法硬件線(xiàn)路簡(jiǎn)單,程序比較復(fù)雜。系統(tǒng)的功能一般與軟件
11、相關(guān)。通常用于對(duì)時(shí)間精度要求不高的場(chǎng)合。二是采用時(shí)鐘芯片 他的功能強(qiáng)大,功能不見(jiàn)集成在芯片內(nèi)需,自動(dòng)產(chǎn)生時(shí)鐘等相關(guān)功能。硬件成本較高,軟件編程。通常對(duì)時(shí)鐘精確度要求較高的場(chǎng)合。電子時(shí)鐘的系統(tǒng)軟件程序有、由主程序和子程序組成,主程序包含初始化參數(shù)設(shè)置,按鍵處理,數(shù)碼管顯示模塊等。在設(shè)計(jì)時(shí)候、各個(gè)模塊都采用子程序結(jié)構(gòu)設(shè)計(jì)。在主程序中調(diào)用。由于定時(shí)器,計(jì)數(shù)器采用中斷方式處理,應(yīng)此還用辨析定時(shí)器,中斷服務(wù)子程序,在定時(shí)器,計(jì)數(shù)器中斷服務(wù)子程序種對(duì)時(shí)鐘進(jìn)行調(diào)整。3.1 主程序主程序執(zhí)行流程圖如圖1所示。主程序先對(duì)顯示單元和定時(shí)器計(jì)數(shù)器初始化,然后重復(fù)調(diào)用數(shù)碼管顯示模塊和按鍵處理模塊,當(dāng)有建按下,則轉(zhuǎn)入相
12、應(yīng)的功能程序。 圖1 主程序執(zhí)行流程圖 3.2 系統(tǒng)框圖項(xiàng)目系統(tǒng)框圖如圖2所示。3.3 數(shù)碼管顯示模塊本設(shè)計(jì)的顯示模塊采用6位一體共陰極數(shù)碼管,顯示分為時(shí)鐘顯示模式,顯示時(shí)鐘模式,從右到左依次顯示秒個(gè)位,秒十位,分個(gè)位,分十位,時(shí)個(gè)位,時(shí)十位;數(shù)碼管顯示的信息用6個(gè)內(nèi)存單元存放,這6個(gè)內(nèi)存單元為顯示緩沖區(qū),其中秒個(gè)位和秒十位,分個(gè)位和分十位,時(shí)個(gè)位和時(shí)十位分別由秒數(shù)據(jù),分?jǐn)?shù)據(jù)和小時(shí)數(shù)據(jù)分拆得到。在本系統(tǒng)種數(shù)碼管顯示采用軟件譯碼動(dòng)態(tài)顯示。在存儲(chǔ)器中首先建立一張顯示信息字段碼表,顯示的時(shí)候,先從顯示緩沖區(qū)中取出顯示的信息,然后通過(guò)查表程序在字段碼表中查出的所顯示的字段碼。從P2口輸出,同時(shí)在P1口
13、將對(duì)應(yīng)的位選碼輸出,選中顯示的數(shù)碼管,就能在相應(yīng)的數(shù)碼管上顯示顯示緩沖區(qū)的內(nèi)容。3.4按鍵處理模塊按鍵處理設(shè)置為:如果沒(méi)有按鍵,則為時(shí)鐘模式,時(shí)鐘正常走時(shí),當(dāng)依次按下時(shí)間按鍵和秒按鍵時(shí)秒單元每次加1或減1,當(dāng)加到59后跳為00,當(dāng)按下分按鍵的時(shí)候,分單元每次加1或減1,當(dāng)加到59的時(shí)候跳到00;當(dāng)按下時(shí)按鍵的時(shí)候,時(shí)單元每次加1,當(dāng)加到23的時(shí)候跳為00,反之亦然。 第四章 硬件電路設(shè)計(jì)4.1 復(fù)位電路 MCS-51單片機(jī)的復(fù)位是由外部的復(fù)位電路來(lái)實(shí)現(xiàn)的。復(fù)位引腳RST通過(guò)一個(gè)斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來(lái)抑制噪聲,在每個(gè)機(jī)器周期的S5P2,斯密特觸發(fā)器的輸出電平由復(fù)位電路采樣一
14、次,然后才能得到內(nèi)部復(fù)位操作所需要的信號(hào)。上電復(fù)位:上電復(fù)位電路是種簡(jiǎn)單的復(fù)位電路,只要在RST復(fù)位引腳接一個(gè)電容到VCC,接一個(gè)電阻到地就可以了。上電復(fù)位是指在給系統(tǒng)上電時(shí),復(fù)位電路通過(guò)電容加到RST復(fù)位引腳一個(gè)短暫的高電平信號(hào),這個(gè)復(fù)位信號(hào)隨著VCC對(duì)電容的充電過(guò)程而回落,所以RST引腳復(fù)位的高電平維持時(shí)間取決于電容的充電時(shí)間。為了保證系統(tǒng)安全可靠的復(fù)位,RST引腳的高電平信號(hào)必須維持足夠長(zhǎng)的時(shí)間。上電自動(dòng)復(fù)位是通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn)的。只要Vcc的上升時(shí)間不超過(guò)1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位。按鍵復(fù)位:電路在運(yùn)行過(guò)程中,也可以通過(guò)按鍵進(jìn)行復(fù)位。當(dāng)按下復(fù)位按鍵,復(fù)位引腳RST通過(guò)
15、按鍵與地相接,得到低電平,從而實(shí)現(xiàn)復(fù)位。電路圖如圖2所示:圖2 復(fù)位電路4.2 時(shí)鐘電路時(shí)鐘是單片機(jī)的心臟,單片機(jī)各功能部件的運(yùn)行都是以時(shí)鐘頻率為基準(zhǔn),有條不紊的一拍一拍地工作。因此,時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。常用的時(shí)鐘電路有兩種方式:一種是內(nèi)部時(shí)鐘方式,另一種為外部時(shí)鐘方式。本文用的是內(nèi)部時(shí)鐘方式。電路圖如圖3所示: 圖3 時(shí)鐘震蕩電路MCS-51單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,該高增益反向放大器的輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。這兩個(gè)引腳跨接石英晶體振蕩器和微調(diào)電容,就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。4.3 按
16、鍵電路按鍵的開(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),稱(chēng)為抖動(dòng)。抖動(dòng)持續(xù)時(shí)間的常長(zhǎng)短與開(kāi)關(guān)的機(jī)械特性有關(guān),一般在5-10ms之間。為了避免CPU多次處理按鍵的一次閉合,應(yīng)采用措施消除抖動(dòng)。本文采用的是獨(dú)立式按鍵,直接用I/O口線(xiàn)構(gòu)成單個(gè)按鍵電路,每個(gè)按鍵占用一條I/O口線(xiàn),每個(gè)按鍵的工作狀態(tài)不會(huì)產(chǎn)生互相影響。電路圖如圖4所示: 圖4 按鍵電路 P1.4口所接的按鍵為模式切換按鍵,當(dāng)不按下此按鍵時(shí)為時(shí)鐘顯示模式,當(dāng)按下此按鍵時(shí)為日期和星期顯示模式。當(dāng)為時(shí)鐘顯
17、示模式的時(shí)候,端口連接分別表示如下:P0.4口表示調(diào)整秒、分“+”,按一下則時(shí)加1,當(dāng)加到59后再加一次為0; P0.3口表示調(diào)整秒、分“-”,按一下則時(shí)減1,當(dāng)減到0后再減一次為59;P0.4口表示調(diào)整時(shí)“+”,按一下則時(shí)加1,當(dāng)加到23后再加一次為0; P0.3口表示調(diào)整時(shí)“-”,按一下則時(shí)減1,當(dāng)減到0后再減一次為23;P0.2口表示確認(rèn)鍵;P0.1口表示調(diào)整秒按鍵;P0.5口表示調(diào)整分按鍵;P0.6口表示調(diào)整時(shí)按鍵;4.4 數(shù)碼管顯示電路數(shù)碼管是由6個(gè)發(fā)光二極管構(gòu)成的顯示器件。在數(shù)碼管中,若將二極管的陽(yáng)極連在一起,稱(chēng)為共陽(yáng)極數(shù)碼管;若將二極管的陰極連在一起,稱(chēng)為共陰極數(shù)碼管。本設(shè)計(jì)用到
18、的6個(gè)數(shù)碼管均是共陰極的。當(dāng)發(fā)光二極管導(dǎo)通時(shí),它就會(huì)發(fā)光。每個(gè)二極管就是一個(gè)筆劃,若干個(gè)二極管發(fā)光時(shí),就構(gòu)成了一個(gè)顯示字符。將單片機(jī)的I/O口控制相應(yīng)的芯片與數(shù)碼管的a-g相連,低電平的位對(duì)應(yīng)的發(fā)光二極管亮,這樣,由I/O口輸出不同的代碼,就可以控制數(shù)碼管顯示不同的字符。本設(shè)計(jì)的6個(gè)數(shù)碼管均采用動(dòng)態(tài)顯示方式,系統(tǒng)采用動(dòng)態(tài)顯示方式,用P0口來(lái)控制LED數(shù)碼管的段控線(xiàn),而用P2口來(lái)控制其位控線(xiàn)。動(dòng)態(tài)顯示通常都是采用動(dòng)態(tài)掃描的方法進(jìn)行顯示,即循環(huán)點(diǎn)亮每一個(gè)數(shù)碼管,這樣雖然在任何時(shí)刻都只有一位數(shù)碼管被點(diǎn)亮,但由于人眼存在視覺(jué)殘留效應(yīng),只要每位數(shù)碼管間隔時(shí)間足夠短,就可以給人以同時(shí)顯示的感覺(jué)。電路圖如圖
19、5所示:圖5 數(shù)碼管顯示電路電路第五章 軟件設(shè)計(jì)與程序代碼5.1 軟件設(shè)計(jì)5.1.1系統(tǒng)框圖如圖5.1.2程序流程圖如圖5.2 軟件仿真電路全圖圖7 軟件仿真電路全圖此圖為時(shí)鐘顯示模式,顯示內(nèi)容為15時(shí)9分49秒圖8 軟件仿真電路全圖此圖為日期和星期顯示模式,顯示內(nèi)容為6月4日星期二5.3 源程序代碼#include <reg51.h>#define uchar unsigned char#define DCOUNT 6#define MinusVal 0x02#define PlusVal 0x04#define RightVal 0x08#define LeftVal 0x10
20、#define TimeVal 0x20#define DateVal 0x40#define SetVal 0x80#define CKeyVal 25#define port_s P1#define port_b P2#define keyport P0uchar data wcnt,second;int data timcnt;uchar data h,m,s;uchar code led=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/uchar code ledctrl=0xfe,0xfd;uchar buf8;uchar cod
21、e ledctrl=0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01;uchar idata disdat6;uchar idata keytim;uchar data flashsite;uchar second_buff;uchar m_buff;uchar h_buff;int k;bit down,keytreated,setdis,dattim;void display(uchar);void display_hms();void init_T1(void);void disdate(void);void distim(void);void key(vo
22、id);void main() second_buff=0; m_buff=0; h_buff=0; second=0; h=m=s=0; init_T1(); timcnt=0; wcnt=0; while(1) display_hms(); / PCON|=0x01; void init_T1(void) TMOD=0x11; TL1=(65536-9216)%256; TH1=(65536-9216)/256; TL0=(65536-1843)%256; TH0=(65536-1843)/256; PT1=1; ET1=1; ET0=1; EA=1; TR1=1; TR0=1;void
23、tim_T1(void) interrupt 3 using 1 TL1=(65536-9216)%256; TH1=(65536-9216)/256; timcnt+; if(timcnt>=100) timcnt=0; second+; if(second>=60) second=0; m+; if(m>=60) m=0; h+; if(h>=24) h=0; buf0=second%10; buf1=second/10; buf2=0x40; buf3=m%10; buf4=m/10; buf5=0x40; buf6=h%10; buf7=h/10; /displ
24、ay_hms(h,m,second);/*void display(uchar time) port_s=0; port_b=ledctrlwcnt; if(wcnt=0)xzzx port_s=ledtime%10; else port_s=ledtime/10; wcnt+; wcnt=wcnt%2;*/ void tim_T0(void) interrupt 1 using 2 TL0=(65536-1843)%256; TH0=(65536-1843)/256; key(); wcnt+; wcnt=wcnt%8; void display_hms() /port_s=0; switc
25、h(wcnt) case 0: port_b=ledctrlwcnt; port_s=ledbuf0;break; case 1: port_b=ledctrlwcnt; port_s=ledbuf1;break; case 2: port_b=ledctrlwcnt; port_s=buf2;break; case 3: port_b=ledctrlwcnt; port_s=ledbuf3;break; case 4: port_b=ledctrlwcnt; port_s=ledbuf4;break; case 5: port_b=ledctrlwcnt; port_s=buf5;break
26、; case 6: port_b=ledctrlwcnt; port_s=ledbuf6;break; case 7: port_b=ledctrlwcnt; port_s=ledbuf7;break; void init_distim(void) distim(); flashsite=6; setdis=0; dattim=0;void init_disdat(void) disdate(); flashsite=6; setdis=0; dattim=1;void init_settim(void) distim(); flashsite=6; setdis=1; dattim=0;vo
27、id init_setdat(void) disdate(); flashsite=0; setdis=1; dattim=1;void kplus(void) /0x04 確定 /if(setdis) / disdatflashsite=(disdatflashsite+1)%10; second=second_buff; m=m_buff; h=h_buff; TR1=1; void kminus(void) /0x02 秒的設(shè)置 / if(setdis) / disdatflashsite=(disdatflashsite+10-1)%10; TR1=0; second_buff=sec
28、ond; k=0; void ktim(void) /0x20 分的設(shè)置 /if(setdis) init_settim(); /else init_distim(); TR1=0; m_buff=m; k=1; void kdat(void) /0x40 時(shí)的設(shè)置 /if(setdis) init_setdat(); /else init_disdat(); TR1=0; h_buff=h; k=2; void kleft(void) /0x10 自加 /if(setdis) / flashsite=(flashsite+1)%DCOUNT; switch(k) case (0): seco
29、nd_buff+; if(second_buff>59) second_buff=0; buf0=second_buff%10; buf1=second_buff/10;break; case (1): m_buff+; if(m_buff>59) m_buff=0; buf3=m_buff%10; buf4=m_buff/10;break; case (2): h_buff+; if(h_buff>23) h_buff=0; buf6=h_buff%10; buf7=h_buff/10;break; void kright(void) /0x08 自減 /if(setdis
30、) / flashsite=(flashsite+DCOUNT-1)%DCOUNT; switch(k) case (0): second_buff-; if(second_buff=255) second_buff=59; buf0=second_buff%10; buf1=second_buff/10;break; case (1): m_buff-;if( m_buff=255) m_buff=59; buf3=m_buff%10; buf4=m_buff/10;break; case (2): h_buff-;if(h_buff=255) h_buff=23; buf6=h_buff%
31、10; buf7=h_buff/10;break; void kset(void) if(setdis) init_distim(); else init_settim();void key(void) uchar keyval; keyport=0xff; keyval=keyport; / keyval=keyval; if(keyval) if(down) if(!keytreated) switch (keyval) case MinusVal: kminus(); break; case PlusVal: kplus(); break; case LeftVal: kleft();
32、break; case RightVal: kright(); break; case TimeVal: ktim(); break; case DateVal: kdat(); break; case SetVal: kset(); default: break; keytreated=1; else ; /*if(keyval=MinusVal)|(keyval=PlusVal) keytim+; if(keytim=CKeyVal) keytim=0; if(keyval=PlusVal) kplus(); else kminus(); */ else down=1; else down
33、=0; keytreated=0; 第六章 結(jié)論 通過(guò)做這一次畢業(yè)論文,感覺(jué)自己的收獲很多。畢業(yè)論文是為了讓我們對(duì)平時(shí)學(xué)習(xí)的理論知識(shí)與實(shí)際操作相結(jié)合,在理論和實(shí)踐教學(xué)的基礎(chǔ)上進(jìn)一步鞏固已學(xué)基本理論及應(yīng)用知識(shí)并加以綜合提高,學(xué)會(huì)將知識(shí)應(yīng)用于實(shí)際,提高分析和解決問(wèn)題的能力。本次設(shè)計(jì)主要涉及了單片機(jī)原理及接口技術(shù)的相關(guān)知識(shí)和C語(yǔ)言編程的諸多要領(lǐng)。設(shè)計(jì)中涉及到的許多問(wèn)題,更是對(duì)以前所學(xué)的知識(shí)的回顧及在過(guò)去的三年中學(xué)到知識(shí)的總結(jié),這次設(shè)計(jì)對(duì)我將來(lái)的工作有著重要的意義。在此設(shè)計(jì)中,我積極查閱資料,細(xì)心鉆研各個(gè)細(xì)節(jié),完成了數(shù)字電子時(shí)鐘時(shí)鐘的電路設(shè)計(jì),也讓我明白了在設(shè)計(jì)中考慮問(wèn)題應(yīng)該全面。在設(shè)計(jì)中既鞏固了我的
34、理論知識(shí),又學(xué)會(huì)提煉需要的信息的方法。這次對(duì)數(shù)字電子時(shí)鐘的設(shè)計(jì),讓我了解了設(shè)計(jì)電路的步驟,也讓我了解了有關(guān)數(shù)字電子時(shí)鐘的原理與設(shè)計(jì)理念,要實(shí)現(xiàn)電路功能總要先設(shè)計(jì),成功之后才實(shí)際接線(xiàn)的?,F(xiàn)在還只停留在理想階段,也許在設(shè)計(jì)實(shí)際電路過(guò)程中會(huì)有困難但是我相信只要努力一定能真正設(shè)計(jì)出實(shí)際產(chǎn)品。 在做畢業(yè)論文的過(guò)程中,我深深地感受到了自己所學(xué)到知識(shí)的有限,明白了只學(xué)好課本上的知識(shí)是不夠的,要通過(guò)圖書(shū)館和互聯(lián)網(wǎng)等各種渠道來(lái)擴(kuò)充自己的知識(shí)面。我并不在乎設(shè)計(jì)是否會(huì)成功,這不重要,最重要的是設(shè)計(jì)的過(guò)程。因?yàn)樵O(shè)計(jì)的過(guò)程在整個(gè)過(guò)程中所占時(shí)間最多,鍛煉我們的價(jià)值也是最大的。設(shè)計(jì)開(kāi)始的時(shí)候我真的是毫無(wú)頭緒,手足無(wú)措,甚至有過(guò)放棄的想法,但終于堅(jiān)持了下來(lái)。我明白了要設(shè)計(jì)一個(gè)成功的電路,除了有創(chuàng)新能力之外,必須要有扎實(shí)的知識(shí)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2022-2023學(xué)年江西省宜春市袁州區(qū)四年級(jí)(上)期末數(shù)學(xué)試卷
- 人教版小學(xué)數(shù)學(xué)二年級(jí)下冊(cè)《除法的初步認(rèn)識(shí)(二)》練習(xí)題(含答案)
- 2025年買(mǎi)賣(mài)房屋協(xié)議書(shū)合同(2篇)
- 2025年代理銷(xiāo)售合同標(biāo)準(zhǔn)樣本(2篇)
- 2025年中學(xué)九年級(jí)歷史教學(xué)工作總結(jié)(二篇)
- 2025年九年級(jí)班主任下學(xué)期的工作總結(jié)(2篇)
- 2025年五年級(jí)小學(xué)數(shù)學(xué)教師工作總結(jié)樣本(四篇)
- 2025年人才開(kāi)發(fā)專(zhuān)項(xiàng)資金使用協(xié)議樣本(三篇)
- 2025年二手房屋買(mǎi)賣(mài)合同協(xié)議簡(jiǎn)單版(2篇)
- 地鐵站裝修工程合同范例
- 2025年電力鐵塔市場(chǎng)分析現(xiàn)狀
- 2025-2030年中國(guó)清真食品行業(yè)運(yùn)行狀況及投資發(fā)展前景預(yù)測(cè)報(bào)告
- 廣東省茂名市電白區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期期末質(zhì)量監(jiān)測(cè)生物學(xué)試卷(含答案)
- 《教育強(qiáng)國(guó)建設(shè)規(guī)劃綱要(2024-2035年)》全文
- 山東省濱州市2024-2025學(xué)年高二上學(xué)期期末地理試題( 含答案)
- 化學(xué)-江蘇省蘇州市2024-2025學(xué)年2025屆高三第一學(xué)期學(xué)業(yè)期末質(zhì)量陽(yáng)光指標(biāo)調(diào)研卷試題和答案
- 2025年河南洛陽(yáng)市孟津區(qū)引進(jìn)研究生學(xué)歷人才50人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年度軍人軍事秘密保護(hù)保密協(xié)議與信息安全風(fēng)險(xiǎn)評(píng)估合同3篇
- 蛋雞生產(chǎn)飼養(yǎng)養(yǎng)殖培訓(xùn)課件
- 數(shù)字化轉(zhuǎn)型中的職業(yè)能力重構(gòu)
- 運(yùn)用PDCA降低住院患者跌倒-墜床發(fā)生率
評(píng)論
0/150
提交評(píng)論