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

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

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

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

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

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

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

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

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

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

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

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

13、調(diào)整時(shí)間值,記錄調(diào)整后的時(shí)間值,與希望得到的時(shí)間值進(jìn)行比較。調(diào)整模塊在實(shí)驗(yàn)中得到較好的實(shí)現(xiàn),調(diào)整相應(yīng)按鍵后,led顯示器的顯示數(shù)值也隨之出現(xiàn)了相對(duì)應(yīng)的調(diào)整。綜上所述,本次科研訓(xùn)練的實(shí)驗(yàn)還是有所收獲,雖然沒(méi)能將一個(gè)完整的數(shù)字鐘做出來(lái),但也基本實(shí)現(xiàn)了數(shù)字鐘個(gè)部分的主要功附錄本文對(duì)應(yīng)的匯編語(yǔ)言程序如下: 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. 本站所有資源如無(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)論