用數(shù)碼管設(shè)計(jì)的可調(diào)式電子鐘_第1頁
用數(shù)碼管設(shè)計(jì)的可調(diào)式電子鐘_第2頁
用數(shù)碼管設(shè)計(jì)的可調(diào)式電子鐘_第3頁
用數(shù)碼管設(shè)計(jì)的可調(diào)式電子鐘_第4頁
用數(shù)碼管設(shè)計(jì)的可調(diào)式電子鐘_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

..-..-可修遍-單片機(jī)原理及其應(yīng)用課程設(shè)計(jì)說明書課題名稱:用數(shù)碼管設(shè)計(jì)的可調(diào)式電子鐘班級:B電氣102學(xué)生:佳琨學(xué)號(hào):1010601223指導(dǎo)教師:陸廣平完成日期:2013.6.16目錄1、引言:21.1課題研究意義與目的21.2背景21.3定義22、課題方案論證22.1開發(fā)與運(yùn)行環(huán)境22.2系統(tǒng)總體設(shè)計(jì)要求22.3硬件功能描述23、硬件模塊設(shè)計(jì)23.1總體設(shè)計(jì)23.2最小系統(tǒng)電路如下圖23.3按鍵局部電路如下圖23.4數(shù)碼管及其譯碼局部電路如下圖23.5單片機(jī)89C52模塊24、嵌入式軟件設(shè)計(jì)24.1主程序24.2顯示子程序24.3定時(shí)器/計(jì)數(shù)器中斷效勞程序25、軟硬件聯(lián)調(diào)及調(diào)試結(jié)果25.1調(diào)試步驟25.2實(shí)際出現(xiàn)的問題及解決方法25.3仿真圖如下圖25.4實(shí)物圖及運(yùn)行如下圖26、設(shè)計(jì)經(jīng)歷總結(jié)27、參考文獻(xiàn)2附錄2附錄1.Proteus仿真圖2附錄2.altiumdesigner原理圖2附錄3.PCB圖2附錄4.C語言程序清單2附錄5.元器件清單21、引言:1.1課題研究意義與目的此次設(shè)計(jì)是單片機(jī)部的定時(shí)/計(jì)數(shù)器來實(shí)現(xiàn)電子時(shí)鐘的方法以及借助鍵盤直接控制整時(shí)的調(diào)整,本設(shè)計(jì)根據(jù)STC89C52單片機(jī)系統(tǒng)擴(kuò)展的根本原理和方法,由單片機(jī)STC89S52芯片,數(shù)碼管和鍵盤為核心,輔以必要的電路,構(gòu)成了一個(gè)單片機(jī)電子時(shí)鐘。一塊單片機(jī)芯片就是一臺(tái)計(jì)算機(jī),由于單片機(jī)以其集成度高、體積小、可靠性高、控制功能強(qiáng)、低電壓、低功耗等特點(diǎn)使它應(yīng)用于智能儀器儀表、機(jī)電一體化、實(shí)時(shí)程控、人類生活中。除此之外還廣泛應(yīng)用辦公自動(dòng)化領(lǐng)域、商業(yè)營銷領(lǐng)域、汽車及通信系統(tǒng)、計(jì)算機(jī)外部設(shè)備等各領(lǐng)域中,并且單片機(jī)已成為計(jì)算機(jī)開展和應(yīng)用的一個(gè)重要方面。由此可見掌握單片機(jī)的使用方法和利用單片機(jī)解決實(shí)際問題具有重要的意義。而此次的設(shè)計(jì)剛好用到單片機(jī)相關(guān)的知識(shí)可以說這是這次設(shè)計(jì)的重要意義和目的所在。再者,此設(shè)計(jì)的數(shù)碼管電子時(shí)鐘主要是顯時(shí)間的,是時(shí)鐘用途。在此設(shè)計(jì)的根底上人們還可根據(jù)不同的需求和不同的設(shè)計(jì)水平做出不同的設(shè)計(jì)工程。也可以加上日期,溫度的顯示和鬧鐘的功能。如果設(shè)計(jì)水平還更高的話還可以設(shè)計(jì)LED電子顯示屏。因此說,數(shù)碼管電子時(shí)鐘設(shè)計(jì)是最簡單和根底的。而且電子時(shí)鐘很實(shí)用,準(zhǔn)確性也很好,也容易調(diào)節(jié),假設(shè)有毀壞更換元器件也簡單,制作原理和過程也很易懂易做,本錢也不高。在此設(shè)計(jì)間也包含了很多的知識(shí),跟我所學(xué)專業(yè)又對口,所以,做這個(gè)LED電子時(shí)鐘是個(gè)很用很好很值得做的設(shè)計(jì)。1.2背景20世紀(jì)末,電子技術(shù)獲得了飛速的開展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的開展和社會(huì)信息化程度的提高。目前,單片機(jī)正朝著高性能和多品種方向開展,開展趨勢將進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路裝化等幾個(gè)方面開展。單片機(jī)應(yīng)用的重要意義在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大局部功能,現(xiàn)在已能用單片機(jī)通過軟件方法來實(shí)現(xiàn)了。單片機(jī)模塊中最常見的是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。1.3定義〔1〕單片機(jī):單片機(jī)微型計(jì)算機(jī)簡稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。通常,單片機(jī)由單塊集成電路芯片構(gòu)成,部包含有計(jì)算機(jī)的根本功能部件:中央處理器、存儲(chǔ)器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。〔2〕STC89C52單片機(jī):本設(shè)計(jì)中采用型號(hào)為STC89C52的單片機(jī),STC89C52是一個(gè)低功耗高性能單片機(jī),40個(gè)引腳,32個(gè)外部雙向輸入/輸出〔I/O〕端口,同時(shí)含6個(gè)中斷源,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,片含8KB的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器〔ROM〕和256B的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器〔RAM〕,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-52指令系統(tǒng)。〔3〕中斷:就是當(dāng)CPU正在執(zhí)行程序A時(shí),發(fā)生了另一個(gè)急需處理的事件B,這時(shí)CPU暫停當(dāng)前執(zhí)行的程序A,立即轉(zhuǎn)去執(zhí)行處理事件B的程序,處理完事件B后,再返回到程序A繼續(xù)執(zhí)行,這個(gè)過程被叫做中斷?!?〕數(shù)碼管:分段式顯示器〔LED數(shù)碼管〕由7條線段圍成8字型,每一段包含一個(gè)發(fā)光二極管。外加正向電壓時(shí)二極管導(dǎo)通,發(fā)出清晰的光。只要按規(guī)律控制各發(fā)光段亮、滅,就可以顯示各種字形或符號(hào)。LED數(shù)碼管有共陽、共陰之分?!?〕KEILuVISION:是眾多單片機(jī)應(yīng)用開發(fā)軟件中優(yōu)秀的軟件之一,它支持眾多不同公司的MCS51架構(gòu)的芯片,它集編輯,編譯,仿真等于一體,同時(shí)還支持,PLM,匯編和C語言的程序設(shè)計(jì),它的界面和常用的微軟VC++的界面相似,界面友好,易學(xué)易用,在調(diào)試程序,軟件仿真方面也有很強(qiáng)大的功能。〔6〕Proteus:Proteus軟件是LabcenterElectronics公司的一款電路設(shè)計(jì)與仿真軟件,它包括ISIS、ARES等軟件模塊,ARES模塊主要用來完成PCB的設(shè)計(jì),而ISIS模塊用來完成電路原理圖的布圖與仿真。Proteus的軟件仿真基于VSM技術(shù),它與其他軟件最大的不同也是最大的優(yōu)勢就在于它能仿真大量的單片機(jī)芯片,比方MCS-51系列、PIC系列等等,以及單片機(jī)外圍電路,比方鍵盤、LED、LCD等等。通過Proteus軟件的使用我們能夠輕易地獲得一個(gè)功能齊全、實(shí)用方便的單片機(jī)實(shí)驗(yàn)室。2、課題方案論證2.1開發(fā)與運(yùn)行環(huán)境本設(shè)計(jì)以C語言為開發(fā)語言,在KeiluVISION4軟件平臺(tái)上進(jìn)展C程序的編輯,連接和調(diào)試,最終與Proteus仿真軟件相結(jié)合,進(jìn)展相關(guān)的電路仿真及修改,最后利用Altiumdesigner10/軟件進(jìn)展產(chǎn)品的PCB繪制和設(shè)計(jì),最終完成電路的焊接和調(diào)試,制作出成品。2.2系統(tǒng)總體設(shè)計(jì)要求本次設(shè)計(jì)中的LED數(shù)碼管電子時(shí)鐘電路采用24小時(shí)制記時(shí)方式。本次設(shè)計(jì)采用STC89C52單片機(jī)的擴(kuò)展芯片和1個(gè)74LS245做驅(qū)動(dòng)。本數(shù)字鐘顯示時(shí)間需8位,格式為12-00–00,因此需采用8個(gè)數(shù)碼管,假設(shè)采用單獨(dú)數(shù)碼管連線時(shí)比擬麻煩,而市場上無8位一體的數(shù)碼管,故本數(shù)字鐘采用4位一體的共陰極數(shù)碼管,其引腳圖如下:假設(shè)使8個(gè)數(shù)碼管正常顯示時(shí)間,必須采用數(shù)碼管的動(dòng)態(tài)掃描方式,即每一時(shí)刻只有一個(gè)數(shù)碼管點(diǎn)亮,采用軟件延時(shí)和人眼的視覺停留效果,使人眼看到的數(shù)碼管是同時(shí)點(diǎn)亮的。因此需要用8個(gè)端口控制數(shù)碼管的段選,即決定數(shù)碼管顯示什么字符,8個(gè)端口控制數(shù)碼管的位選,即決定該時(shí)刻讓哪個(gè)數(shù)碼管點(diǎn)亮??紤]到數(shù)碼管采用動(dòng)態(tài)掃描方式,即循環(huán)掃描數(shù)碼管的8位,并將顯示字符送入段選段,為了節(jié)省單片機(jī)的輸入/輸出端口和易于程序的編寫,采取直接用P0口控制數(shù)碼管的8個(gè)段選位,其中數(shù)碼管的小數(shù)點(diǎn)控制位DP不用可直接懸空。8位8段LED數(shù)碼管作正常、調(diào)時(shí)顯示,時(shí)間按時(shí)分秒排列,時(shí)鐘誤差:24小時(shí)誤差3~5秒,并且在按鍵的作用下可以進(jìn)展調(diào)時(shí),調(diào)分功能。本電路采用直流5V電源供電。同時(shí)為了限流保護(hù)電路也用了假設(shè)干個(gè)阻值不等的電阻。在本文一開場做了一些概述主要說明此設(shè)計(jì)的目的和意義,并會(huì)對這類設(shè)計(jì)工程開展情況做個(gè)簡介。這是對這次設(shè)計(jì)很重要的一個(gè)認(rèn)識(shí)是前提和設(shè)計(jì)者必須明確和了解的。然后本文對此設(shè)計(jì)做了一些簡要分析,這對理清設(shè)計(jì)思想很重要。然后還對設(shè)計(jì)中用到的元器件進(jìn)展比擬全面的介紹。只有真正了解了元器件的特性和功能才能讓這些元器件在設(shè)計(jì)中起到作用。電子整個(gè)設(shè)計(jì)第一步是電路原理圖,它直接關(guān)系著后續(xù)的工作。接著當(dāng)原理圖完成好后就要為后面的刻板做準(zhǔn)備了,這就是PCB印制電路板的制作。它影響了整個(gè)設(shè)計(jì)的布局是能不能成功的條件。緊接著就是程序了,如果只有硬件電路而沒有程序,那么這個(gè)設(shè)計(jì)將一文不值,也就是說是一堆破銅爛鐵。所以這局部也是非常重要的。最后結(jié)合整個(gè)設(shè)計(jì)總結(jié)了一些心得體會(huì)為這次的設(shè)計(jì)畫上完滿的句號(hào)。也為以后更好的設(shè)計(jì)提供經(jīng)歷。2.3硬件功能描述此數(shù)字鐘可實(shí)現(xiàn)根本的走時(shí)和顯示時(shí)間時(shí)、分、秒;時(shí)間的調(diào)整,具體如下:〔1〕實(shí)現(xiàn)根本的走時(shí)和顯示時(shí)間的時(shí)、分、秒,上電自動(dòng)顯示初始時(shí)間12-00-00。〔2〕當(dāng)?shù)谝淮伟聪碌谝粋€(gè)輕觸按鍵時(shí)進(jìn)入時(shí)間的調(diào)節(jié)狀態(tài),此時(shí)實(shí)現(xiàn)對顯示時(shí)間的分鐘調(diào)節(jié),按下第二個(gè)按鍵時(shí)實(shí)現(xiàn)分鐘的加1調(diào)節(jié),按下第三個(gè)按鍵時(shí)實(shí)現(xiàn)分鐘的減1調(diào)節(jié)?!?〕當(dāng)?shù)诙伟聪碌谝粋€(gè)輕觸按鍵時(shí)進(jìn)入顯示時(shí)間的小時(shí)調(diào)節(jié)狀態(tài),按下第二個(gè)按鍵時(shí)實(shí)現(xiàn)小時(shí)的加1調(diào)節(jié),按下第三個(gè)按鍵時(shí)實(shí)現(xiàn)小時(shí)的減1調(diào)節(jié)。〔4〕當(dāng)?shù)谌伟聪碌谝粋€(gè)輕觸按鍵時(shí)數(shù)字鐘恢復(fù)正常時(shí)間顯示3、硬件模塊設(shè)計(jì)3.1總體設(shè)計(jì)電子鐘的原理框圖如下圖。它由以下幾個(gè)部件組成:單片機(jī)STC89C52、電源、時(shí)分秒顯示部件。時(shí)分秒顯示采用動(dòng)態(tài)掃描,以降低對單片機(jī)端口數(shù)的要求,同時(shí)也降低系統(tǒng)的功耗。時(shí)分顯示模塊以及顯示驅(qū)動(dòng)都通過STC89C52的I/O口控制。電源局部:整流穩(wěn)壓來得到+5V電壓,維持系統(tǒng)的正常工作。3.2最小系統(tǒng)電路如下圖單片機(jī)最小系統(tǒng)就是能使單片機(jī)工作的最少的器件構(gòu)成的系統(tǒng),是大多數(shù)單片機(jī)控制系統(tǒng)中不可缺少的關(guān)鍵局部。A.片帶程序存儲(chǔ)器的單片機(jī)的最小應(yīng)用系統(tǒng):8051,8751,8052本身時(shí)鐘電路復(fù)位電路即可構(gòu)成最小應(yīng)用系統(tǒng)EA接低電平,系統(tǒng)就可以工作。特點(diǎn):系統(tǒng)有大量的輸入輸出線可供用戶使用,P0,P1,P2,P3四個(gè)口都可以作為輸入輸出口使用;部存儲(chǔ)器的容量有限,只有128B的RAM和4KB的程序存儲(chǔ)器。B.片無程序存儲(chǔ)器的單片機(jī)的最小系統(tǒng):8031,8032本身時(shí)鐘電路復(fù)位電路片外存儲(chǔ)器芯片地址鎖存器即可構(gòu)成最小應(yīng)用系統(tǒng)EA接高電平,ALE接地址鎖存器,PSEN接存儲(chǔ)器的輸出允許端。3.3按鍵局部電路如下圖開關(guān)采用一種常開型按鍵開關(guān),在常態(tài)時(shí)開關(guān)觸點(diǎn)處于斷開狀態(tài),只有按下按鍵時(shí)開關(guān)觸點(diǎn)才閉合短路,所以可以用萬用表檢測開關(guān)的管腳排列、好壞和質(zhì)量。按鍵是利用機(jī)械觸點(diǎn)的合、斷來實(shí)現(xiàn)鍵的閉合與釋放,由于彈性作用,機(jī)械觸點(diǎn)在閉合及斷開瞬間會(huì)有抖動(dòng)的過程,從而使鍵輸入電壓的信號(hào)也存在抖動(dòng)現(xiàn)象。抖動(dòng)時(shí)間的長短與開關(guān)的機(jī)械特性有關(guān),一般為5~10ms,穩(wěn)定閉合期時(shí)間的長短由按鍵的動(dòng)作決定,一般為幾百毫秒到幾秒。為了保證按鍵按動(dòng)一次,CPU對鍵閉合僅作一次按鍵處理,必須去除抖動(dòng)的影響。去除抖動(dòng)的方法一般有硬件和軟件兩種:硬件方法就是在按鍵輸出通道上添加去抖動(dòng)電路,從根本上防止電壓抖動(dòng)的產(chǎn)生,去抖動(dòng)電路可以是雙穩(wěn)態(tài)電路或者濾波電路。軟件方法通常是在檢測到有鍵按下時(shí)延遲10~20ms的時(shí)間,待抖動(dòng)期過去后,再次檢測按鍵的狀態(tài),如果仍然為閉合狀態(tài),才認(rèn)為是有鍵按下,否那么認(rèn)為是一個(gè)擾動(dòng)信號(hào)。按鍵釋放的過程與此一樣,都要利用延時(shí)進(jìn)展消抖處理。由于人的按鍵速度與單片機(jī)的運(yùn)行速度相比要慢很多,所以,軟件延時(shí)的方法簡單可行,而且不需要增加硬件電路,本錢低,因而被廣泛采用。其中第一個(gè)按鍵控制選擇需要的鐘位,第二個(gè)按鍵控制加一調(diào)節(jié),第三個(gè)按鍵控制減一調(diào)節(jié)。3.4數(shù)碼管及其譯碼局部電路如下圖3.5單片機(jī)89C52模塊STC89C52兼容MCS51指令系統(tǒng),提供以下標(biāo)準(zhǔn)功能8K字節(jié)Flash閃速存儲(chǔ)器,256字節(jié)部RAM,32個(gè)I|O口線,3個(gè)16位定時(shí)器計(jì)數(shù)器,一個(gè)6向量兩級中斷構(gòu)造,一個(gè)全雙工串行通信口,片振蕩器及時(shí)鐘電路。同時(shí)STC89C52可以降至0HZ的靜態(tài)邏輯系操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停頓CPU的工作,但允許RAM,定時(shí)器計(jì)數(shù)器,串行通信接口,以及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的容,但振蕩器停頓工作并制止其他所有部件工作,直到下一個(gè)硬件復(fù)位。具體管腳作用說明:A.P0口:是一組8位漏極開路型雙向I|O口,也即地址|數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8個(gè)TTL邏輯門電路,對端口P0寫"1〞時(shí),可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址〔低8位〕和數(shù)據(jù)總線復(fù)用,在訪問期間激活部上拉電阻。在Flash編程時(shí),P0口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。B.P1口:一個(gè)帶部上拉電阻的8位雙向I|O口,P1的輸出緩沖級可驅(qū)動(dòng)〔吸收或輸出電流〕4個(gè)TTL邏輯門電路。對端口寫"1〞,通過部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)椴看嬖谏侠娮?,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流〔IIL〕。與AT89C51不同之處是,P1.0和P1.1還可分別作為定時(shí)計(jì)數(shù)器2的外部計(jì)數(shù)輸入〔P1.0|T2〕和輸入〔P1.1|T2EX〕,F(xiàn)lash編程和程序校驗(yàn)期間,P1接收低8位地址。C.P2口:是一個(gè)帶有部上拉電阻的8位雙向I|O口,P2的輸出緩沖級可驅(qū)動(dòng)〔吸收或輸出電流〕4個(gè)TTL邏輯門電路。對端口P2寫"1〞,通過部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)椴看嬖谏侠娮?,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流〔IIL〕。在訪問外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的容。Flash編程或校驗(yàn)時(shí),P2亦接收高位地址和一些控制信號(hào)。D.P3口:是一組帶有部上拉電阻的8位雙向I|O口。P3口輸出緩沖級可驅(qū)動(dòng)〔吸收或輸出電流〕4個(gè)TTL邏輯門電路。對P3口寫入"1〞時(shí),它們被部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的P3口將用上拉電阻輸出電流〔IIL〕。P3口除了作為一般的I|O口線外,更重要的用途是它的第二功能。P3口還接收一些Flash閃速存儲(chǔ)器編程和校驗(yàn)的控制信號(hào)。E.RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。F.ALE|PROG:當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE〔地址鎖存允許〕輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1|6輸出固定的脈沖信號(hào),因此它可對外輸出時(shí)鐘或用于定時(shí)目的。G.PSEN:程序儲(chǔ)存允許輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)STC89C52由外部程序存儲(chǔ)器取指令〔或數(shù)據(jù)〕時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次PSEN信號(hào)。H.EA|VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲(chǔ)器〔地址為0000H-FFFFH〕,EA端必須保持低電平〔接地〕。I.XTAL1:振蕩器反相放大器的部時(shí)鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。4、嵌入式軟件設(shè)計(jì)4.1主程序主程序執(zhí)行流程如下圖,主程序先對顯示單元和定時(shí)器/計(jì)數(shù)器初始化,然后重復(fù)調(diào)用數(shù)碼管顯示模塊和按鍵處理模塊,當(dāng)有鍵按下,那么轉(zhuǎn)入相應(yīng)的功能程序。4.2顯示子程序本系統(tǒng)共用8個(gè)數(shù)碼管,從右到左依次顯示秒個(gè)位、秒十位、橫線、分個(gè)位、分十位、橫線、時(shí)個(gè)位和時(shí)十位。采用軟件譯碼動(dòng)態(tài)顯示。由于采用8位共陰LED數(shù)碼管動(dòng)態(tài)掃描實(shí)現(xiàn)數(shù)據(jù)顯示,所以顯示用十進(jìn)制BCD碼數(shù)據(jù)的對應(yīng)段碼存放在ROM中。4.3定時(shí)器/計(jì)數(shù)器中斷效勞程序定時(shí)器/計(jì)數(shù)器T0用于時(shí)間計(jì)時(shí)。選擇方式1,重復(fù)定時(shí),定時(shí)時(shí)間設(shè)為50ms,定時(shí)時(shí)間到那么中斷,在中斷效勞程序中用一個(gè)計(jì)數(shù)器對50ms計(jì)數(shù),計(jì)20次那么對秒單元加1,秒單元加到60那么對分單元加1,同時(shí)秒單元清0;分單元加到60那么對時(shí)單元加1,同時(shí)分單元清0;時(shí)單元加到24那么對時(shí)單元清0,標(biāo)志一天時(shí)間計(jì)滿。在對各單元計(jì)數(shù)的同時(shí),把它們的值放到存儲(chǔ)單元的指定位置。定時(shí)器/計(jì)數(shù)器T0中斷效勞程序流程圖如下圖。5、軟硬件聯(lián)調(diào)及調(diào)試結(jié)果5.1調(diào)試步驟〔1KEIL軟件中編寫程序,完成后,單擊"工程〞下的"編譯〞,產(chǎn)生".hex〞文件?!?〕翻開proteus軟件,畫上硬件電路圖,保存?!?〕雙擊AT89C52芯片,在中參加".hex〞文件,按確定?!?〕調(diào)試運(yùn)行。5.2實(shí)際出現(xiàn)的問題及解決方法在proteus仿真軟件調(diào)試成功后,實(shí)際卻出現(xiàn)了一些問題。首先是市場上沒有賣八位共陰數(shù)碼管的商家,最后只好用兩個(gè)四位共陰數(shù)碼管,這使得在狹小的電路板上的焊接難度又加大了一番。另外市場上沒有買到排阻,所以用8個(gè)10K的電阻代替。但數(shù)碼管亮度明顯缺乏,于是最終選擇直接將電阻短接,最終取得效果非常棒。5.3仿真圖如下圖5.4實(shí)物圖及運(yùn)行如下圖實(shí)物圖正面實(shí)物圖反面初始通電顯示12-00-00通過按鍵設(shè)置時(shí)間,此時(shí)為21-44-416、設(shè)計(jì)經(jīng)歷總結(jié)由于電路設(shè)計(jì)合理,功能電路根本能實(shí)現(xiàn)設(shè)計(jì)要求。從硬件焊接反方面來說,覺得比擬棘手的就是在焊數(shù)碼管時(shí),和整體器件的布局。因?yàn)椴捎昧藘蓚€(gè)四位數(shù)碼管,版面線路較多,布局不好會(huì)影響后面工序的焊接,在這點(diǎn)上我自己覺得做的很不錯(cuò),布線焊接模塊功能區(qū)清楚確。其中最小系統(tǒng)以及按鍵局部均采用拉錫的工藝完成。在編程中遇到的最大困難就是延時(shí)的計(jì)算和數(shù)碼管的顯示程序段,在整體程序來看,我采用程序的構(gòu)造化,使程序明朗,各功能程序段都以子程序的方式調(diào)用,所以在主程序中是相當(dāng)?shù)暮唵蚊骼实?。在硬件和軟件的結(jié)合過程中也遇到比擬大的問題,就是一開場數(shù)碼管不是顯示8,就是亂碼之類的,進(jìn)過調(diào)試,現(xiàn)在沒有出現(xiàn)這樣的現(xiàn)象了。這也是我的一大攻關(guān)吧。但是,對于程序我還是很不好以后在這方面要多多加強(qiáng)。而在硬件的調(diào)試中,由于選用電阻過大,數(shù)碼管的亮度非常的低,我觀察周圍的同學(xué)有做相似課題的也多少會(huì)有這個(gè)問題。關(guān)于這個(gè)問題我本來的解決方案是采用三極管對電路信號(hào)進(jìn)展放大,但后來考慮到我板子上的線路已經(jīng)成型且非常密集。最終采取降阻來提高信號(hào),過程中我發(fā)現(xiàn)直接將電阻短接可以取得更好的效果,也可以是板面保持美觀,所以將段選上的電阻全部短接,最終實(shí)物才取得令我比擬滿意的效果。在整個(gè)設(shè)計(jì)過程中我學(xué)會(huì)了很多,不僅穩(wěn)固了我的專業(yè)知識(shí),提升了我的學(xué)習(xí)能力和知識(shí)能力,也使我學(xué)習(xí)到很多書上沒有的,更加強(qiáng)了我的動(dòng)手能力。從這次的設(shè)計(jì)中我確實(shí)受益匪淺,我想也不枉陸教師對我的一路輔導(dǎo)與幫助。我相信,以后有時(shí)機(jī)一定會(huì)做更多這樣的設(shè)計(jì)。大學(xué)三年,一晃就過去了,我很想靠自己的專業(yè)做個(gè)東西給自己留念。單片機(jī)是一個(gè)非常正統(tǒng)的本專業(yè)學(xué)科,用其來做出實(shí)物很有成就感。再者就也考驗(yàn)了一下自己三年的學(xué)習(xí)成果,檢驗(yàn)了自己的現(xiàn)有的知識(shí)儲(chǔ)藏和動(dòng)手能力。未來的工作中我們會(huì)遇到比這個(gè)復(fù)雜得多的系統(tǒng)設(shè)計(jì),這次也是一次難得的珍貴的經(jīng)歷。為今后的人生道路打下了夯實(shí)的根底。7、參考文獻(xiàn)[1]蘭紅.,鄒華.單片機(jī)原理及其應(yīng)用[M].:機(jī)械工業(yè),2012.[2]郭天祥.新概念51單片機(jī)C語言教程[M].:電子工業(yè),2010.[3]毅剛,喜元,董繼成.單片機(jī)原理及其應(yīng)用[M].:高等教育,2008.[4]偉.單片機(jī)C語言設(shè)計(jì)實(shí)訓(xùn)100例[M].:電子工業(yè),2010.[5]益飛.單片機(jī)原理及應(yīng)用技術(shù)[M].:國防工業(yè),2011.[6]陸廣平.實(shí)驗(yàn)指導(dǎo)書附錄附錄1.Proteus仿真圖附錄2.altiumdesigner原理圖附錄3.PCB圖附錄4.C語言程序清單#include<reg52.h>UnsignedcharSeg[]={0X3f,0X06,0X5b,0X4f,0X66,0X6d,0X7d,0X07,0X7f,0X6f,0x40,0x00};//數(shù)碼管顯示1-9和—的斷碼unsignedchar[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};//數(shù)碼管亮滅的數(shù)組/*定義全局變量*/unsignedintcounter;//定義計(jì)數(shù)數(shù)據(jù)unsignedcharsign;//定義閃爍標(biāo)志位unsignedcharmode;//定義模式unsignedcharsecond=0,minute=0,hour=12;//定義秒分時(shí)的初值unsignedcharADD_bit=0,DEC_bit=0,flag=0;//加標(biāo)志位和減標(biāo)志位賦初值0/*定義按鍵*/Sbitms=P1^0;//按鍵P^0調(diào)節(jié)模式變化sbitADD=P1^1;//按鍵P1^1實(shí)現(xiàn)加一sbitDEC=P1^2;//按鍵P1^2實(shí)現(xiàn)減一/*延時(shí)函數(shù)*/voiddelay(unsignedintt) {while(--t);}/*數(shù)碼管掃描*/voidSegplay(){/*模式0正常模式*/if(mode==0){P0=Seg[second%10];P2=[7];delay(500);P2=[8];P0=Seg[second/10];P2=[6];delay(500);P2=[8];P0=Seg[10];P2=[5];delay(500);P2=[8];P0=Seg[minute%10];P2=[4];delay(500);P2=[8];P0=Seg[minute/10];P2=[3];delay(500);P2=[8];P0=Seg[10];P2=[2];delay(500);P2=[8];P0=Seg[hour%10];P2=[1];delay(500);P2=[8];P0=Seg[hour/10];P2=[0];delay(500);P2=[8];}/*模式1可加減分*/if(mode==1){if(sign==1){P0=Seg[second%10];P2=[7];delay(500);P2=[8];P0=Seg[second/10];P2=[6];delay(500);P2=[8];P0=Seg[10];P2=[5];delay(500);P2=[8];P0=Seg[minute%10];P2=[4];delay(500);P2=[8];P0=Seg[minute/10];P2=[3];delay(500);P2=[8];P0=Seg[10];P2=[2];delay(500);P2=[8];P0=Seg[hour%10];P2=[1];delay(500);P2=[8];P0=Seg[hour/10];P2=[0];delay(500);P2=[8];}if(sign==0){P0=Seg[second%10];P2=[7];delay(500);P2=[8];P0=Seg[second/10];P2=[6];delay(500);P2=[8];P0=Seg[10];P2=[5];delay(500);P2=[8];P0=Seg[11];P2=[4];delay(500);P2=[8];P0=Seg[11];P2=[3];delay(500);P2=[8];P0=Seg[10];P2=[2];delay(500);P2=[8];P0=Seg[hour%10];P2=[1];delay(500);P2=[8];P0=Seg[hour/10];P2=[0];delay(500);P2=[8];}}/*模式2可加減時(shí)*/if(mode==2){if(sign==1){P0=Seg[second%10];P2=[7];delay(500);P2=[8];P0=Seg[second/10];P2=[6];delay(500);P2=[8];P0=Seg[10];P2=[5];delay(500);P2=[8];P0=Seg[minute%10];P2=[4];delay(500);P2=[8];P0=Seg[minute/10];P2=[3];delay(500);P2=[8];P0=Seg[10];P2=[2];delay(500);P2=[8];P0=Seg[hour%10];P2=[1];delay(500);P2=[8];P0=Seg[hour/10];P2=[0];delay(500);P2=[8];}if(sign==0){P0=Seg[second%10];P2=[7];delay(500);P2=[8];P0=Seg[second/10];P2=[6];delay(500);P2=[8];P0=Seg[10];P2=[5];delay(500);P2=[8];P0=Seg[minute%10];P2=[4];delay(500);P2=[8];P0=Seg[minute/10];P2=[3];delay(500);P2=[8];P0=Seg[10];P2=[2];delay(500);P2=[8];P0=Seg[11];P2=[1];delay(500);P2=[8];P0=Seg[11];P2=[0];delay(500);P2=[8];} }}/*按鍵掃描*/voidKeyget(){/*通過標(biāo)志位來控制模式*/if(ms==0){flag=1;}if((ms)&&(flag)){flag=0; mode++; if(mode==3) mode=0;}if(mode==1){/*加按鍵*/if(ADD==0){ADD_bit=1;}if((ADD)&&(ADD_bit)){ADD_bit=0; minute++; if(minute==60) minute=0;}/*減按鍵*/if(DEC==0){DEC_bit=1;}if((DEC)&&(DEC_bit==1)){DEC_bit=0; if(minute==0) minute=59; minute--;}}if(mode==2)

溫馨提示

  • 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

提交評論