單片機(jī)課程設(shè)計(jì)LED點(diǎn)陣電子顯示屏的設(shè)計(jì)_第1頁
單片機(jī)課程設(shè)計(jì)LED點(diǎn)陣電子顯示屏的設(shè)計(jì)_第2頁
單片機(jī)課程設(shè)計(jì)LED點(diǎn)陣電子顯示屏的設(shè)計(jì)_第3頁
單片機(jī)課程設(shè)計(jì)LED點(diǎn)陣電子顯示屏的設(shè)計(jì)_第4頁
單片機(jī)課程設(shè)計(jì)LED點(diǎn)陣電子顯示屏的設(shè)計(jì)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、led點(diǎn)陣電子顯示屏的設(shè)計(jì)簡述:led點(diǎn)陣顯示系統(tǒng),由at89s52單片機(jī)、串口通信模塊、led屏幕顯示模塊等組成,實(shí)現(xiàn)了對星期、年月日、時分秒的顯示。關(guān)鍵詞:led點(diǎn)陣電子顯示屏單片機(jī)鍵盤控制一、選用器材at89c52單片機(jī)1個,74ls138型號3線8線譯碼器1個,74ls373三態(tài)輸出的八d 透明鎖存器型號,+5v電源1個,led8*8點(diǎn)陣屏綠色5個, tpd pd5個,帶公共端的8電阻排(排阻)1個,電容30pf3個,電阻10k歐1個,按鈕6個 ,石英晶振1mhz1個二、設(shè)計(jì)方案1、實(shí)驗(yàn)功能本實(shí)驗(yàn)要實(shí)現(xiàn)的功能就是,顯示時分秒,年月日,且可修改。實(shí)現(xiàn)實(shí)時時間的顯示,顯示屏數(shù)字顯示,時:分

2、:秒;星期的顯示;年月日的顯示。顯示屏通過按鍵切換顯示星期,年月日,時間。2、總體方案(1)工作原理用單片機(jī)at89s52控制,寫入程序,將數(shù)據(jù)傳輸?shù)斤@示模塊,即點(diǎn)陣led電子顯示屏顯示器,實(shí)現(xiàn)日歷的顯示。(2)總體設(shè)計(jì)電路圖led和52單片機(jī)配合實(shí)現(xiàn)時間顯示功能。顯示模塊為點(diǎn)陣led電子顯示屏顯示器,把單片機(jī)中的數(shù)據(jù)顯示出來。該電路是通過按鍵來切換各種顯示要求。3、方案論證(1)顯示部分:顯示部分是本次設(shè)計(jì)最核心的部分,對于led8*8點(diǎn)陣顯示有以下兩種方案:靜態(tài)顯示,即將每個二極管的狀態(tài)分別用1和0表示,0則無電流,為暗,1則有電流,為亮。若給每個二極管一個驅(qū)動電路,一個圖像輸入后,所有l(wèi)

3、ed的狀態(tài)保持到下一個圖像。對于靜態(tài)顯示方式,所需的譯碼驅(qū)動裝置很多,引線多而負(fù)責(zé),成本高,可靠性也低。動態(tài)顯示,即對每一個led屏進(jìn)行分割,對組成圖像的各個部分分別顯示,這樣利用人眼的暫留效應(yīng)和發(fā)光二極管發(fā)光時間的長短,也同樣可以實(shí)現(xiàn)顯示功能,這樣就可以避免靜態(tài)顯示出現(xiàn)的問題。但是,設(shè)計(jì)上如果處理不當(dāng),容易造成圖像閃爍的問題,因此合理的涉及要保證驅(qū)動電路容易實(shí)現(xiàn)而且保證圖像穩(wěn)定補(bǔ)閃爍。(2)數(shù)字時鐘本實(shí)驗(yàn)采用軟件實(shí)現(xiàn)數(shù)字時鐘。原理為:在單片機(jī)內(nèi)部存儲器分別存放時鐘的年、月、日、時、分、秒、星期的信息。利用定時器與軟件結(jié)合實(shí)現(xiàn)1秒定時中斷,每產(chǎn)生一次中斷,存儲器內(nèi)相應(yīng)的秒值加1;若秒值達(dá)到60

4、,則清零且相應(yīng)的分值加1;若分值達(dá)到60,則清零且相應(yīng)的時值加1;若相應(yīng)的時值達(dá)到24,則清零且相應(yīng)的日值加1;若相應(yīng)的日值分別達(dá)到29,30,31時,根據(jù)判斷來增加月值;若相應(yīng)的月值達(dá)到12時,清零且年值加1。(3)顯示接口芯片的選擇采用串口輸入,使用少量i/o口,但傳輸速度稍微慢了一些,但是不影響顯示質(zhì)量。于是我們采用ti公司的dmos器件tpic6b595,其最大特點(diǎn)是驅(qū)動功率大,可直接做led的驅(qū)動。4、元件介紹(1) at89s52 是一種低功耗、高性能cmos8位微控制器,具有 8k 在系統(tǒng)可編程 flash 存儲器。使用atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80c5

5、1 產(chǎn)品指令和引腳完 全兼容。片上flash允許程序存儲器在系統(tǒng)可編程,亦適于 常規(guī)編程器。在單芯片上,擁有靈巧的8 位cpu 和在系統(tǒng) 可編程flash,使得at89s52為眾多嵌入式控制應(yīng)用系統(tǒng)提 供高靈活、超有效的解決方案。 at89s52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)flash,256字節(jié)ram, 32 位i/o 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位 定時器/計(jì)數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時鐘電路。另外,at89s52 可降至0hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,cpu 停止工作,允許ram、定時器/計(jì)數(shù)器、串口、中斷繼續(xù)

6、工 作。掉電保護(hù)方式下,ram內(nèi)容被保存,振蕩器被凍結(jié), 單片機(jī)一切工作停止,直到下一個中斷或硬件復(fù)位為止。at89s52單片機(jī)引腳圖(2)74ls37374ls373為三態(tài)輸出的八d透明鎖存器。它的輸出端o0o7可直接與總線相連。當(dāng)三態(tài)允許控制端oe為低電平時,o0o7為正常邏輯狀態(tài),可用來驅(qū)動負(fù)載或總線。當(dāng)oe為高電平時,o0o7呈高阻態(tài),即不驅(qū)動總線,也不為總線的負(fù)載,但鎖存器內(nèi)部的邏輯操作不受影響。當(dāng)鎖存允許端le為高電平時,o隨數(shù)據(jù)d而變。當(dāng)le為低電平時,o 被鎖存在已建立的數(shù)據(jù)電平。74ls373引腳圖(3)74ls13871ls138有三個附加的控制端、和。當(dāng)、時,輸出為高電平

7、(s1),譯碼器處于工作狀態(tài)。否則,譯碼器被禁止,所有的輸出端被封鎖在高電平,如表3.3.5所示。這三個控制端也叫做“片選”輸入端,利用片選的作用可以將多篇連接起來以擴(kuò)展譯碼器的功能。帶控制輸入端的譯碼器又是一個完整的數(shù)據(jù)分配器。在圖3.3.8電路中如果把作為“數(shù)據(jù)”輸入端(在同一個時間),而將作為“地址”輸入端,那么從送來的數(shù)據(jù)只能通過所指定的一根輸出線送出去。這就不難理解為什么把叫做地址輸入了。例如當(dāng)101時,門的輸入端除了接至輸出端的一個以外全是高電平,因此的數(shù)據(jù)以反碼的形式從輸出,而不會被送到其他任何一個輸出端上。74ls138引腳圖 (4)led8*8點(diǎn)陣屏雙基色8*8 點(diǎn)陣嚴(yán)格有共

8、陰型和共陽型之分的,一個雙基色led(一個發(fā)亮點(diǎn))陰極接在一起就是共陰、否則反之為共陽。我們使用的就是共陽型的led雙基色8*8點(diǎn)陣屏。三、結(jié)論與總結(jié)本電路的設(shè)計(jì)原理比較復(fù)雜,而焊接電路的難度更加之高,由于線路的復(fù)雜性,使得焊接時很容易出現(xiàn)錯誤,以致于一步失誤全盤皆輸。通過實(shí)驗(yàn)對單片機(jī)有了進(jìn)一步的了解,也加強(qiáng)了動手焊接的能力。所以,通過此實(shí)驗(yàn)認(rèn)識了很多新問題,以及培養(yǎng)了解決問題的能力。四、參考文獻(xiàn)1 李朝青. 單片機(jī)原理及接口技術(shù) m. 北京航空航天大學(xué)出版社,2005.附:a電路設(shè)計(jì)實(shí)物圖 正面 反面b 實(shí)驗(yàn)程序#include reg51.h#define uchar unsigned c

9、har#define uint unsigned int#define true 1#define faluse 1sbit set_key = p30;sbit up_key = p31;sbit down_key = p32;sbit sign = p33;sbit select_key= p34;sbit set_ring_key = p35;uint sec;uint min=23;uint hour=12;uint day=10;uint month=10;uint yearl=7;uint yearh=20;uint tcnt;uint cnt=0;uint cursor=0;ui

10、nt sjsz=0;uchar a=0xff;uchar code seg=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;void delay(uint t) uint i; while(t-) for (i=0;i0;i-) for(j=248;j0;j-);void display(uchar l1,uchar l2,uchar l3,uchar l4,uchar l5,uchar l6,uchar l7,uchar l8,uchar l9,uchar l10,uchar l11,uchar l12,uchar l13,uchar l1

11、4)if(cnt=1) if(cursor=6)p2=0x7f|a;p0=l1;delay(1);elsep2=0x7f;p0=l1;delay(1); /yearh if(cursor=6)p2=0xbf|a;p0=l2;delay(1);elsep2=0xbf;p0=l2;delay(1); /yearh if(cursor=6)p2=0xdf|a;p0=l3;delay(1);elsep2=0xdf;p0=l3;delay(1); /yearl if(cursor=6)p2=0xef|a;p0=l4;delay(1);elsep2=0xef;p0=l4;delay(1); /yearl

12、if(cursor=5)p2=0xf7|a;p0=l5;delay(1);elsep2=0xf7;p0=l5;delay(1); /month if(cursor=5)p2=0xfb|a;p0=l6;delay(1);elsep2=0xfb;p0=l6;delay(1); /month if(cursor=4)p2=0xfd|a;p0=l7;delay(1);elsep2=0xfd;p0=l7;delay(1); /day if(cursor=4)p2=0xfe|a;p0=l8;delay(1);elsep2=0xfe;p0=l8;delay(1); /day p2=0xff;else if(

13、cursor=3)p2=0x7f|a;p0=l9;delay(1);elsep2=0x7f;p0=l9;delay(1); /hour if(cursor=3)p2=0xbf|a;p0=l10;delay(1);elsep2=0xbf;p0=l10;delay(1); /hour if(cnt!=1)p2=0xdf;p0=0x40;delay(1); if(cursor=2)p2=0xef|a;p0=l11;delay(1);elsep2=0xef;p0=l11;delay(1); /min if(cursor=2)p2=0xf7|a;p0=l12;delay(1);elsep2=0xf7;p

14、0=l12;delay(1); /min if(cnt!=1)p2=0xfb;p0=0x40;delay(1); if(cursor=1)p2=0xfd|a;p0=l13;delay(1);elsep2=0xfd;p0=l13;delay(1); /sec if(cursor=1)p2=0xfe|a;p0=l14;delay(1);elsep2=0xfe;p0=l14;delay(1); /sec p1=0xff;main() tmod=0x02; /設(shè)置模式為定時器t0的模式2 斷的產(chǎn)生中斷去執(zhí)行中斷函數(shù)本次定時時間為64ms th0=0x06; /設(shè)置計(jì)數(shù)器初值,靠th0存儲重裝的計(jì)數(shù)值x

15、0=256-250=6 tl0=0x06; tr0=1; /啟動t0 et0=1; /開啟定時器t0中斷允許 ea=1; /開啟中斷總控制 while(1) if(set_key=0) kdelay(); if(set_key=0) cursor+; if(cursor=7)cursor=0; /在選擇到調(diào)整年時又返回秒設(shè)置,當(dāng)cursor=7時不選中 if(up_key=0) kdelay(); if(up_key=0) /加部分 if(cursor=1)sec+;if(sec=60)sec=0; if(cursor=2)min+;if(min=60)min=0; if(cursor=3)h

16、our+;if(hour=24)hour=0; if(cursor=4)day+;if(day=31)day=1; if(cursor=5)month+;if(month=13)month=1; if(cursor=6)yearl+;if(yearl=100)yearl=0; if(cursor=7)yearh+;if(yearh=30)yearh=20; if(down_key=0) kdelay(); if(down_key=0) /減部分 if(cursor=1)sec-;if(sec=00)sec=59; if(cursor=2)min-;if(min=0)min=59; if(cur

17、sor=3)hour-;if(hour=0)hour=23; if(cursor=4)day-;if(day=0)day=31; if(cursor=5)month-;if(month=0)month=12; if(cursor=6)yearl-;if(yearl=0)yearl=99; if(cursor=7)yearh-;if(yearh=20)yearh=30; if(select_key=0) kdelay();if(select_key=0)cnt+;if(cnt=2)cnt=0; display(segyearh/10,segyearh%10,segyearl/10,segyear

18、l%10,segmonth/10,segmonth%10,segday/10,segday%10,seghour/10,seghour%10,segmin/10,segmin%10,segsec/10,segsec%10); void t0(void)interrupt 1 using 0 /t0的中斷程序 tcnt+; if(tcnt=4000)/定時器的定時計(jì)數(shù),4000次250us為1秒,中斷4000次后才執(zhí)行刷新,期間照上面的語句顯示 tcnt=0; sign=sign; a=a; sec+; if(sec=60) sec=0; min+; if(min=60) min=0; hour+; if(hour=24) hour=0

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論