基于單片機LED顯示器的數(shù)字鐘設(shè)計報告_第1頁
基于單片機LED顯示器的數(shù)字鐘設(shè)計報告_第2頁
基于單片機LED顯示器的數(shù)字鐘設(shè)計報告_第3頁
基于單片機LED顯示器的數(shù)字鐘設(shè)計報告_第4頁
基于單片機LED顯示器的數(shù)字鐘設(shè)計報告_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于單片機led顯示器的數(shù)字鐘設(shè)計本設(shè)計基于8031單片機控制,采用led顯示器設(shè)計一數(shù)字鐘的設(shè)計方案。該數(shù)字鐘能穩(wěn)定顯示時分秒,同時實現(xiàn)時分秒的數(shù)值調(diào)整。本文詳細討論了具體硬件電路,相關(guān)原器件的選擇以及軟件實現(xiàn)過程。比較時鐘調(diào)整的查詢方式和中斷方式,對數(shù)字鐘的穩(wěn)定性和計時的精確性作了相關(guān)的討論。在實驗室通過硬件電路和仿真器進行模擬實驗,驗證電路和程序的正確性。最后給出采用中斷方式實現(xiàn)的數(shù)字鐘的源程序。1.引 言 在單片機技術(shù)日趨成熟的今天,其靈活的硬件電路的設(shè)計和軟件的設(shè)計,讓單片機得到了廣泛的應(yīng)用,幾乎是從小的電子產(chǎn)品,到大的工業(yè)控制,單片機都起到了舉足輕重的作用。單片機小的系統(tǒng)結(jié)構(gòu)幾乎是

2、所有具有可編程硬件的一個縮影,可謂是“麻雀雖小,肝膽俱全”,單片機的學習和研究是對微機系統(tǒng)學習和研究的簡捷途徑。單片機以其體積小,使用靈活方便,成本低,易于產(chǎn)品化,抗干擾能力強,可在各種惡劣環(huán)境下工作等特點,廣泛的應(yīng)用于工業(yè)控制,智能儀表,家用電器,機器人,醫(yī)療儀器,軍事裝備等方面。為了加深對單片機應(yīng)用的認識,鞏固所學的單片機知識,本次科研訓練特選題“基于單片機數(shù)碼管顯示的數(shù)字鐘設(shè)計”,嘗試基本電路設(shè)計和匯編語言編程以及鍛煉實踐動手能力。數(shù)字鐘的實現(xiàn)方法多種多樣,簡單的可以由一些集成電子電路實現(xiàn),精確點的可以通過某些時鐘芯片,如msm5832,ds1216,以及mc146818,結(jié)合相應(yīng)的硬件

3、電路和軟件實現(xiàn)。本次科研訓練本著鍛煉為主的原則,不采用任何現(xiàn)成的時鐘芯片,通過簡單的硬件電路,通過編寫相應(yīng)程序進行計時與時間調(diào)整。本文采用8031單片機,以8255a作其擴展,led顯示器采用共陰極的七段數(shù)碼管,驅(qū)動器采用74ls07芯片,以及普通的按鍵作為基本元器件。2.數(shù)字鐘硬件電路設(shè)計數(shù)字鐘的整體框圖如圖1所示圖1整體框圖按鍵與8031的連接如圖2所示。單片機8031與8255a的硬件連接如圖3所示:圖3. 8031與8255a的連接電路 8255a是一種通用的可編程并行i/o接口芯片,在微型計算機系統(tǒng)中,可不需要附加外部邏輯電路就可直接為cpu與外設(shè)之間提供數(shù)據(jù)通道。在單片機8031與

4、8255芯片連接中應(yīng)接一個74ls373譯碼器,8255a作為8031的數(shù)據(jù)擴展口,輸出所顯示的段碼及位選信號。8255a的片選信號與8031的p2.7相連,所以p2.7作為8255a的片選信號,所以8255a的控制口地址為:efffh,相應(yīng)的,a口的地址為:effch,b口的地址為:effdh。8255a的讀寫信號分別與8031的讀寫信號相連,使其有效時cpu從8255a讀取數(shù)據(jù)或狀態(tài)信息,或向8255a寫入數(shù)據(jù)或控制字。reset是復(fù)位控制信號,高電平有效。該信號有效時,將8255a控制寄存器內(nèi)容都清零,并使所有餓斷口都置成輸入方式。當引腳懸空時,芯片默認為高電平,所以,為了讓8255a在

5、電路中正常工作,將reset接地,強制使復(fù)位控制位失效。 8255a驅(qū)動數(shù)碼管的電路如圖4所示:圖4. 8255a驅(qū)動數(shù)碼管電路圖8255a的a口和b口都作為輸出,根據(jù)cpu輸出的bcd碼得到a口相對應(yīng)的段碼,a口將段碼通過一個同相驅(qū)動器(圖中因未找到同相驅(qū)動器而用反相驅(qū)動器代替)給數(shù)碼管的abcdefg,同時,由b口輸出位選信號,因為本次設(shè)計中使用的數(shù)碼管都是共陰極的,所以,當b口輸出為高電平時,經(jīng)過74ls00與非門后得到低電平,即選中數(shù)碼管。數(shù)字鐘顯示中有八個這樣的數(shù)碼管,他們的數(shù)據(jù)端都是通過a口獲得,其位選信號分別接b口的八個口線。這樣,使pb0置1,則最高位選中,然后將b口數(shù)據(jù)循環(huán)左

6、移,則可依次使各個數(shù)碼管選中顯示。3.系統(tǒng)軟件設(shè)計 3.1軟件總體設(shè)計思想主程序主要由定時模塊,顯示模塊和調(diào)整模塊組成。定時部分采用經(jīng)典的定時器定時,結(jié)合相應(yīng)的時鐘軟件實現(xiàn)計時功能。顯示模塊是實現(xiàn)數(shù)字鐘的另一重要部分,其模塊的獨立程度直接影響到數(shù)字鐘的可視化程度。調(diào)整模塊采用中斷方式,通過按鍵可以調(diào)整數(shù)字鐘時分秒的數(shù)值。3.2定時模塊程序中定時器,一直處于運行狀態(tài),也就是說定時器是理想運作的,其中斷程序每隔0.1秒執(zhí)行一次,在理想狀態(tài)下,定時器定時是沒有系統(tǒng)誤差的,但由于定時器中斷溢出后,定時器從0開始計數(shù),直到被重新置數(shù),才開始正確定時,這樣中斷溢出到中斷響應(yīng)到定時器被重新置數(shù),其間消耗的時

7、間就造成了定時器定時的誤差。如果在前述定時器不關(guān)的情況下,在中斷程序的一開始就給定時器置數(shù),此時誤差最小,誤差大約為:每0.1秒,誤差712個機器周期。當然這是在定時器定時剛好為0.1秒時的情況,由以上分析,如果數(shù)字鐘設(shè)計為查詢的方式或是在中斷的方式下將定時器中斷設(shè)置為最高級,我們在定時值設(shè)置時,可以適當?shù)目鄢?個機器周期的時間值。但如果在中斷的情況下,沒有將定時器中斷設(shè)置為最高級,那就要視中斷程序的大小,在定時值設(shè)置時,扣除相應(yīng)的時間值。3.3顯示模塊顯示模塊的獨立性強,增強了數(shù)字鐘的可視化程度。在此模塊的設(shè)計中,設(shè)置專用顯示數(shù)據(jù)緩沖區(qū)20h-27h與時分秒及其他數(shù)據(jù)緩沖區(qū)數(shù)據(jù)區(qū)別,在其中存

8、放的是各個數(shù)碼管要顯示數(shù)字,而其他緩沖區(qū)存放的是時間數(shù)據(jù)。在顯示時,首先分別將時分秒bcd碼數(shù)據(jù)轉(zhuǎn)化為各個數(shù)碼管要顯示的數(shù)字,分別存儲于相應(yīng)的專用顯示區(qū),然后通過8255a的a口輸出段碼至數(shù)碼管,b口輸出位選信號,接著a口輸出下一個段碼,b口輸出下一個位選信號,依此循環(huán)則可實現(xiàn)八位數(shù)碼管的靜態(tài)輸出。但由于人眼視覺分辨率遠遠低于數(shù)碼管循環(huán)點亮的速度,所以人們看到的數(shù)字鐘還是相對穩(wěn)定的。圖6.顯示模塊流程圖3.4 調(diào)整模塊 數(shù)據(jù)調(diào)整有多種方式:可以直接進入相關(guān)狀態(tài)進行有關(guān)操作;可將調(diào)整分兩步,先進入狀態(tài),然后執(zhí)行操作,分別由兩個鍵控制。前者比較直接,設(shè)計思想也比較簡單,但是,這種方式存在操作時間和

9、控制鍵數(shù)目的矛盾。如果用比較少的鍵,那么可能會在進入狀態(tài)后處于數(shù)據(jù)調(diào)整等待狀態(tài),這樣會影響到顯示的掃描速度。當然在這種方式下,還可以使用多個狀態(tài)鍵,每個狀態(tài)鍵,完成一個對應(yīng)數(shù)據(jù)的調(diào)整。后者則不同,因為狀態(tài)的調(diào)整,與狀態(tài)的操作可以分別由兩個鍵控制,其狀態(tài)的調(diào)整數(shù)可以多達256個(理論上),操作的完成是這樣的,一鍵控制狀態(tài)的調(diào)整,一鍵控制數(shù)據(jù)的調(diào)整。以上兩種方式的實現(xiàn)都可以采用查詢和中斷的方式,且兩者進行相關(guān)操作的過程不能太長否則會影響顯示的掃描。本文中采用的方法是前者,通過四個按鍵,進行簡單的時分秒的調(diào)整。當按鍵k4按下時啟動外中斷,然后通過按鍵k1,k2,k3即可調(diào)整時分秒的數(shù)值。另外,采用中

10、斷的方式,最好將定時器中斷的優(yōu)先級設(shè)置為最高級。圖7.調(diào)整模塊流程圖3.5軟件消抖消抖可以采用硬件(施密特觸發(fā)器)的方式,也可以采用軟件的方式。在此只討論軟件方式。軟件消抖有定時器定時,和利用延時子程序兩種方式。一,定時器定時消抖可以不影響顯示模塊掃描速度,其實現(xiàn)方法是:設(shè)置標志位,在定時器中斷中將其置位,然后在程序中查詢。將其中斷優(yōu)先級設(shè)置為低于時鐘定時中斷,那么它就可以完全不影響時鐘定時。二,在采用延時子程序時,如果顯示模塊的掃描速度本來就不是很快,此時可能會影響到顯示的效果,一般情況下,每秒的掃描次數(shù)不應(yīng)小于50次,否則,數(shù)碼的顯示會出現(xiàn)閃爍的情況。因此,延時子程序的延時時間應(yīng)該小于20

11、毫秒,如果采用定時器定時的方式,延時時間不影響時鐘。如果,設(shè)計時采用的是中斷的方式來完成有關(guān)操作,同樣可以采用軟件的方式來消抖,其處理思想是:中斷不能連續(xù)執(zhí)行,兩次之間有一定的時間間隔。a.子程序延時 b.定時器延時圖8.查詢方式消抖流程圖圖9.中斷方式消抖流程圖3.6主程序流程圖 圖10.主程序流程圖4.實驗在實驗中利用偉福仿真器及其仿真軟件,按照前述的硬件電路圖連接電路,按照上述各步的軟件流程圖編寫匯編語言程序,將軟硬件相連運行程序?qū)浻布M行調(diào)試。觀察各位數(shù)碼管的顯示狀態(tài),并與理論值進行比較分析。實驗過程中,顯示模塊能很好的實現(xiàn),無論是在單步跟蹤還是全速執(zhí)行的時候,led顯示器都能將要顯

12、示的數(shù)值準確且穩(wěn)定的顯示出來。雖然在硬件電路中增加了驅(qū)動電路,但是一個8255a芯片驅(qū)動8個led顯示器效果仍然不是很好,特別是在全速執(zhí)行時,led的亮度及穩(wěn)定性仍有待改進。計時模塊的實驗過程不是很理想。實驗中分別利用一個定時器t0進行定時,定時4000微秒,一個計數(shù)器t1進行計數(shù),計數(shù)250次。當t0定時一次后t1計數(shù)一次,這樣t1計數(shù)溢出時即可計滿1秒,然后對當前時間秒值進行加1處理,以及相應(yīng)的分值時值處理。在程序運行中,可能由于程序編寫得具體細節(jié),定時器中斷返回無法實現(xiàn),從而導致全速執(zhí)行后led顯示器一直保持初始值不變。數(shù)字鐘正常顯示時,按k4鍵,啟動外部中斷子程序,按k1鍵k2鍵k3鍵

13、調(diào)整時間值,記錄調(diào)整后的時間值,與希望得到的時間值進行比較。調(diào)整模塊在實驗中得到較好的實現(xiàn),調(diào)整相應(yīng)按鍵后,led顯示器的顯示數(shù)值也隨之出現(xiàn)了相對應(yīng)的調(diào)整。綜上所述,本次科研訓練的實驗還是有所收獲,雖然沒能將一個完整的數(shù)字鐘做出來,但也基本實現(xiàn)了數(shù)字鐘個部分的主要功附錄本文對應(yīng)的匯編語言程序如下: org 0000h ljmp main org 0003h ljmp int0 org 000bh ljmp tim0 org 0100hmain:mov sp,#70h mov 2ah,#12h mov 2bh,#34h mov 2ch,#56h mov dptr,#7fffh mov a,#80

14、h movx dptr,a mov tmod,#51h mov th1,#0ffh mov tl1,#06h mov th0,#0f0h mov tl0,#74h mov ip,#02h mov ie,#13h mov ip,#02h setb tr0 setb tr1 acall disptim0:clr p3.3 mov th0,#0f0h mov tl0,#74h call disp jnb tf1,$ clr tf1 setb tr1 mov a,2ch add a,#1 da a mov 2ch,a call disp cjne a,#60h,x4 mov 2ch,#00h call

15、 disp mov a,2bh add a,#1 da a mov 2bh,a call disp cjne a,#60h,x4 mov 2bh,#00h call dispmov a,2ah add a,#1 da a mov 2ah,a call disp cjne a,#24h,x4 mov 2ah,#00h call dispx4: retidisp: mov r1,#20h mov r0,#2ch mov r6,#03hdis0:mov a,r0 mov b,#10h div ab mov r1,b inc r1 mov r1,a inc r1 dec r0 djnz r6,dis0

16、 mov a,#0ah mov r1,a inc r1 mov r1,a mov r1,#20h mov r2,#01h mov r7,#08hdis1: mov a,r1 mov dptr,#seg movc a,a+dptr mov dptr,#7ffch movx dptr,a inc dptr mov a,r2 movx dptr,a acall dims inc r1 mov a,r2 rl a mov r2,a djnz r7,dis1 retdims:mov r3,#07h djnz r3,$ retseg: db 37h,06h,5bh,4fh db 66h,6dh,7dh,07h db 7fh,6fh,40hint0: noploop:jb p1.3,n2 call dims mov a,2ch add a,#01 da a mov 2ch,a cjne a,#60h,n1 mov 2ch,#00h ajmp dispn1: jnb p1.3,$ ajmp disp call dimsn2: jb p1

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論