基于單片機(jī)的5×7LED字幕顯示的設(shè)計(jì)_第1頁
基于單片機(jī)的5×7LED字幕顯示的設(shè)計(jì)_第2頁
基于單片機(jī)的5×7LED字幕顯示的設(shè)計(jì)_第3頁
基于單片機(jī)的5×7LED字幕顯示的設(shè)計(jì)_第4頁
基于單片機(jī)的5×7LED字幕顯示的設(shè)計(jì)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、理工大學(xué)課程設(shè)計(jì)目 錄1 方案選擇及總體設(shè)計(jì)11.1 方案確定11.1.1 功能要求11.2.2 方案確定11.2 器件選擇12 控制系統(tǒng)設(shè)計(jì)22.1 控制系統(tǒng)硬件設(shè)計(jì)22.1.1整體模塊設(shè)計(jì)22.2 晶振電路設(shè)計(jì)22.3 復(fù)位電路設(shè)計(jì)32.4 驅(qū)動電路設(shè)計(jì)42.5 led點(diǎn)陣顯示設(shè)計(jì)53 控制系統(tǒng)軟件設(shè)計(jì)63.1 軟件設(shè)計(jì)思想63.2 主程序流程圖64 系統(tǒng)仿真及性能分析84.1 系統(tǒng)仿真84.2調(diào)試結(jié)果84.3 性能分析9總 結(jié)10參考文獻(xiàn)11附 錄12附錄a 硬件結(jié)構(gòu)圖12附錄b 主程序清單121 方案選擇及總體設(shè)計(jì)1.1 方案確定 1.1.1 功能要求 1、采用stc-52單片機(jī)作為微

2、處理器。 2、設(shè)計(jì)一個57點(diǎn)陣led數(shù)碼字符顯示器。 3、在目測條件下led顯示屏各點(diǎn)亮度均勻、充足、穩(wěn)定、清晰無串?dāng)_。 4、動態(tài)顯示“ac”幾個字符。 1.2.2 方案確定 采用st89c52單片機(jī)作為微處理器,將共陽極二極管用共陰型接法連接成57點(diǎn)陣led數(shù)碼字符陣列,通過程序控制,采用動態(tài)顯示,建立字符庫“09”。1.2 器件選擇微處理器采用st89c52系列單片機(jī),st89c52單片機(jī)是這幾年在我國非常流行的單片機(jī),是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲器(fperomflash programmable and erasable read only memory)高性能單片機(jī),可擦

3、除只讀存儲器可以反復(fù)擦除100次,具有低功耗、高性能的特點(diǎn)。 2 控制系統(tǒng)設(shè)計(jì)2.1 控制系統(tǒng)硬件設(shè)計(jì)2.1.1整體模塊設(shè)計(jì)本設(shè)計(jì)行、列驅(qū)動電路,顯示器電路,運(yùn)用單片機(jī)的智能化,系統(tǒng)的將每個功能電路模塊連接在一起,總體結(jié)構(gòu)設(shè)計(jì)如圖2.1所示。圖2.1 硬件系統(tǒng)框圖此次需要實(shí)現(xiàn)的功能是利用一個st89c52,一個57led點(diǎn)陣,動態(tài)顯示“ac”10個字,采用pc上位機(jī)驅(qū)動顯示電路。st89c52單片機(jī)最小系統(tǒng)電路由復(fù)位電路、晶振電路兩部分組成。2.2 晶振電路設(shè)計(jì)st89c52單片機(jī)芯片內(nèi)部設(shè)有一個由反向放大器構(gòu)成的振蕩器,xtal1和xtal2分別為振蕩電路的的輸入端和輸出端,時鐘可有內(nèi)部或外

4、部生成,在xtal1和xtal2引腳上外接定時元件,內(nèi)部振蕩電路就會產(chǎn)生自激振蕩。系統(tǒng)采用的定時元件為石英晶體和電容組成的并聯(lián)諧振回路。晶振頻率采用12mhz,c1、c2的電容值取30pf,電容的大小起頻率微調(diào)的作用。晶振電路圖如圖所示。圖2.2 晶振電路圖2.3 復(fù)位電路設(shè)計(jì)st89c52單片機(jī)在啟動運(yùn)行時或者出現(xiàn)死機(jī)時需要復(fù)位,使cpu以及其他功能部件處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。單片機(jī)有多種復(fù)位方式,常用的復(fù)位操作有上電復(fù)位和手動復(fù)位方式。本設(shè)計(jì)采用最簡單的上電復(fù)位方式,電路如圖3所示。上電復(fù)位是通過外部復(fù)位電路的電容充電來實(shí)現(xiàn)的,復(fù)位電路產(chǎn)生的復(fù)位信號(高電平有效)由r

5、st引腳送入到內(nèi)部的復(fù)位電路,對st89c52單片機(jī)進(jìn)行復(fù)位,復(fù)位信號要持續(xù)兩個機(jī)器周期(24個時鐘周期)以上,才能使st89c52單片機(jī)可靠復(fù)位。當(dāng)上電時,c1相當(dāng)于短路,有時碰到干擾時會造成錯誤復(fù)位,可在復(fù)位端加個去耦電容,可以取得很好的效果。 st89c52單片機(jī)復(fù)位電路如下圖所示: 圖2.3 上電復(fù)位電路圖 圖2.4 按鍵電平復(fù)位電路圖復(fù)位電路工作原理: 上電瞬間rst引腳的電位與vcc等電位,rst引腳為高電平,隨著電容c5充電電流的減少,rst引腳的電位不斷下降,可以保持rst引腳在為高電平的時間內(nèi)完成復(fù)位操作。當(dāng)單片機(jī)已在運(yùn)行當(dāng)中時,按下復(fù)位鍵s5后再松開,也能使rst引腳為一段

6、時間的高電平,從而實(shí)現(xiàn)st89c52單片機(jī)復(fù)位。2.4 驅(qū)動電路設(shè)計(jì)正向點(diǎn)亮一顆led,至少也要1020ma,若電流不夠大,則led不夠大。而不管是st89c52的i/o口,還是ttl、cmos的輸出端,其高態(tài)輸出電流都不是很高,不過12ma而已。因此很難直接高態(tài)驅(qū)動led,這時候就需要額外的驅(qū)動電路,通常有共陽型與共陰型led陣列驅(qū)動電路,本設(shè)計(jì)才用共陰型高態(tài)掃描信號驅(qū)動電路。共陰型led陣列驅(qū)動電路采用高態(tài)掃描,也就是任何時間只有一個高態(tài)信號,其它則為低態(tài)。一行掃描完成后,再把高態(tài)信號轉(zhuǎn)化到近鄰的其他行,掃描信號接用一個反向驅(qū)動器,st89c52本身內(nèi)置一個反向驅(qū)動器,本設(shè)計(jì)將st89c5

7、2作為點(diǎn)矩陣顯示控制系統(tǒng)的控制核心,通過點(diǎn)矩陣實(shí)時顯示并移動字符。單片機(jī)的串口與行驅(qū)動器相連,用來發(fā)送顯示數(shù)據(jù)信息。p0口與led陣列的行引腳相連,送出數(shù)據(jù)、地址以及系統(tǒng)控制信號。輸出低態(tài)時,最大可吸取0.5a,即500ma,若每個led取30ma,7個led同時點(diǎn)亮,需要210ma,完全滿足led點(diǎn)亮的基本條件。圖2.5 驅(qū)動電路圖所要顯示的信號送入74hc573芯片,然后連接到led陣列的列陣腳。對于高態(tài)的顯示信號,將可提供其所連接led的驅(qū)動電流,而這個驅(qū)動電流經(jīng)過led到輸出端,形成正向回路,即可點(diǎn)亮該led。其中每個晶體管任何時間只需負(fù)責(zé)驅(qū)動一個led,所以選擇30ma射極電流的晶體

8、管。驅(qū)動電路如圖5所示。2.5 led點(diǎn)陣顯示設(shè)計(jì) 本設(shè)計(jì)采用atmel公司的at89c51作矩陣顯示控制系統(tǒng)控制核心,12mhz晶振,57點(diǎn)陣共陽led顯示器。其中,p1口作為字符數(shù)據(jù)輸出口,p3口為字符顯示掃描輸出口,第31腳(ea)接電源,改變電阻(270*8)的大小可改變顯示字符的亮度,驅(qū)動用74hc573芯片。本設(shè)計(jì)led矩陣顯示器電路選用57點(diǎn)陣模塊,系統(tǒng)由單片機(jī)控制。 led顯示屏是將發(fā)光二極管按行按列布置的,在掃描驅(qū)動方式下可以按行掃描按列控制,也可以按列掃描按行控制。本文就是使用1塊57點(diǎn)陣,采用按列掃描按行控制控制方式,掃描順序自左向右,以滿足漢字顯示的要求。圖2.8 57

9、點(diǎn)陣led等效電路一個57點(diǎn)陣是由35個發(fā)光二極管按規(guī)律組成的,如圖2.8所示。圖中,行接低電平,列接高電平,發(fā)光二極管導(dǎo)通發(fā)光。3 控制系統(tǒng)軟件設(shè)計(jì)3.1 軟件設(shè)計(jì)思想 主程序先進(jìn)行設(shè)置中斷,并啟動,再進(jìn)行鍵盤掃描載入“09”字型,然后判斷一組字型是否掃描完,按不同情況進(jìn)行循環(huán)調(diào)用子程序。進(jìn)入子程序后,首先設(shè)置相應(yīng)的程序,反復(fù)調(diào)用顯示子程序,并在顯示過程中反復(fù)調(diào)用鍵盤掃描子程序進(jìn)行延時,判斷是否退出相應(yīng)的方式顯示子程序。設(shè)計(jì)過程中,能很好得提高按鍵響應(yīng)速度。如圖3.1所示為軟件系統(tǒng)框圖。圖3.1 軟件系統(tǒng)框圖字符編碼:57點(diǎn)陣可以看成是從上至下8個字節(jié),每個字節(jié)8位,因?yàn)樵擖c(diǎn)陣為共陰型點(diǎn)陣,

10、因此若該燈亮,則該位為“1”;該燈不亮,則該位為“0”。3.2 主程序流程圖主程序首先設(shè)置并啟動t0中斷,然后調(diào)用初始化程序,為后面程序要用到的數(shù)據(jù)調(diào)入,并清零一些用到的數(shù)據(jù)單元,然后載入“ac”字型,進(jìn)行掃描。圖3.2為主程序流程圖,詳細(xì)主程序清單及子程序設(shè)計(jì)見附錄b。開 始初 始 化讀取顯示數(shù)據(jù)依次選通列,行74ls164的clock端置低,鎖存器禁止輸出對應(yīng)行數(shù)組元素與0x01相與,相與結(jié)果寫入單片機(jī)端口輸出數(shù)組元素右移一位,對應(yīng)74ls164 clock端置高n右移次數(shù)是否為7?y鎖存器允許輸出圖3.2 主程序流程圖4 系統(tǒng)仿真及性能分析4.1 系統(tǒng)仿真本設(shè)計(jì)是以wave與proteu

11、s.isis相結(jié)合方式來實(shí)現(xiàn)本led點(diǎn)矩陣顯示器的仿真實(shí)現(xiàn)過程。電路的核心是單片機(jī)st89c52。單片機(jī)的p0口八個引腳通過總線連接到led矩陣顯示器的段選碼和位選碼(a、b、c、d、e、f、g和1、2、3、4、5、6、7、8)的引腳上,來作為控制信號的來源。如圖11、12所示。圖 4.1 動態(tài)顯示程序調(diào)試結(jié)果圖 4.2 延時程序調(diào)試結(jié)果4.2調(diào)試結(jié)果經(jīng)軟件調(diào)試-仿真器proteus調(diào)試通過,得到所要求的設(shè)計(jì)結(jié)果 圖4.3 調(diào)試結(jié)果4.3 性能分析此次系統(tǒng)設(shè)計(jì)結(jié)果較好,led顯示屏能很好的顯示信息。led顯示屏由1塊88的led小模塊組成,整個顯示屏可以動態(tài)顯示88的“09”字型。這個方案設(shè)計(jì)

12、的88的點(diǎn)陣led圖文顯示屏,電路簡單,成本較低,且較易擴(kuò)展;顯示屏各點(diǎn)亮度均勻、充足;顯示圖形或文字穩(wěn)定、清晰無串?dāng)_。總 結(jié)本次課程設(shè)計(jì)到現(xiàn)在有一個多星期,回顧這些天我感到學(xué)到了很多東西,在寫這個心得的時候,我想就這些天的收獲,說一說自己內(nèi)心的想法。本設(shè)計(jì)是一個8x8的點(diǎn)陣led數(shù)碼顯示器,能夠在目測條件下led顯示屏各點(diǎn)亮度均勻、充足,可顯示圖形和文字,顯示圖形和文字應(yīng)穩(wěn)定、清晰無串?dāng)_。圖形或文字顯示有靜止、移入移出等顯示方式。本系統(tǒng)具有硬件少,結(jié)構(gòu)簡單,容易實(shí)現(xiàn),性能穩(wěn)定可靠,成本低等特點(diǎn)。 總結(jié)本文的研究工作,主要做了下面幾點(diǎn)工作: 一、通過查閱大量的相關(guān)資料,詳細(xì)了解了led的發(fā)光原

13、理和led顯示屏的原理,了解了led的現(xiàn)狀,清楚地了解了led顯示屏與其它顯示屏相比較有那些優(yōu)點(diǎn),明確了研究目標(biāo)。并且通過對單片機(jī)資料的查閱和應(yīng)用,更進(jìn)一步增加了對單片機(jī)知識的理解和運(yùn)用能力。并證實(shí)了自己的思路:“查資料思考總結(jié)運(yùn)用找出差錯,再查資料和向別人詢問再次運(yùn)用”的正確性。二,本文設(shè)計(jì)的led顯示屏能夠?qū)崿F(xiàn)在目測條件下led顯示屏各點(diǎn)亮度均勻、充足,可顯示圖形和文字,顯示圖形和文字應(yīng)穩(wěn)定、清晰無串?dāng)_。三,本文列出了系統(tǒng)具體的硬件設(shè)計(jì)方案,硬件結(jié)構(gòu)電路圖,軟件流程圖和具體匯編語言程序設(shè)計(jì)與調(diào)試等方面。四,在這次課程設(shè)計(jì)的過程中學(xué)會了 proteus 的基本使用,感到proteus對電子專

14、業(yè)的同學(xué)來說是一個很有用的軟件。在運(yùn)用proteus時可以運(yùn)用一些快捷的標(biāo)號,總線的方法畫圖,這樣既能使電路圖清晰,簡單,更能大大提高畫圖速度五,通過這次課程設(shè)計(jì),重新復(fù)習(xí)并進(jìn)一步增強(qiáng)了動手的能力,學(xué)以致用,把只是運(yùn)用到實(shí)際生活中才是根本目的。總體來說這次的科研實(shí)踐很成功,達(dá)到了預(yù)想的目的:學(xué)到了知識,提高了能力,完成了任務(wù)。有點(diǎn)缺憾是時間有限,不能進(jìn)一步深入和擴(kuò)散學(xué)習(xí)和研究。希望有時間可以對程序和電路圖作更進(jìn)一步的改進(jìn),譬如實(shí)現(xiàn)點(diǎn)陣的上下移動,對角線移動,多色顯示等。參考文獻(xiàn)1 張靖武,周靈彬 單片機(jī)系統(tǒng)的proteus設(shè)計(jì)與仿真北京 電子工業(yè)出版社2 吳金戌,沈慶陽,郭庭吉 8051單片機(jī)

15、實(shí)踐與應(yīng)用北京 清華大學(xué)出版社3 李群芳,肖看 單片機(jī)原理、接口及應(yīng)用北京 清華大學(xué)出版社4 張毅剛,彭喜元等 新編mcs-51單片機(jī)應(yīng)用設(shè)計(jì) 黑龍江 哈爾濱工業(yè)大學(xué)出版社 5 張義和,陳敵北編著 例說8051北京 人民郵電出版社 附 錄附錄a 硬件結(jié)構(gòu)圖附錄b 主程序清單org 0000h ljmp start org 0003hljmp interupt org 0100hstart: /*初始化寄存器*/setb eaclr it0setb ex0mov a,#00h mov r0,#20hmov r1,#6eh ;調(diào)入數(shù)據(jù)到內(nèi)存的數(shù)據(jù)長度 (tab數(shù)據(jù)量決定)mov r2,#00hmo

16、v r3,#20h ;a顯示時長mov r4,#20h ;b顯示時長mov r5,#20h ;c顯示時長mov dptr,#tabacall initljmp maininit:mov a,r2 ;將數(shù)據(jù)調(diào)入內(nèi)存(使用r0數(shù)據(jù)儲存器儲存數(shù)據(jù))movc a,a+dptrmov r0,ainc r0inc r2djnz r1,initret org 0200hinterupt:/*中斷函數(shù):移位操作*/ ;由于寄存器使用數(shù)量較大,用循環(huán)地 址加5需加寄存器數(shù)據(jù)儲存讀取 clr ea ;已無法達(dá)到簡化效果,故使用固定地址mov r5,#02h work_1: mov r0,#2fh ;移位循環(huán) 1l

17、call boot_inmov r0,#34hlcall boot_inmov r0,#39hlcall boot_inmov r0,#3ehlcall boot_inmov r0,#43hlcall boot_indjnz r5,work_1mov r5,#02h work_2:mov r0,#48h ;移位循環(huán) 2 右移 ;lcall boot_inmov r0,#4dhlcall boot_inmov r0,#52hlcall boot_in mov r0,#57hlcall boot_in mov r0,#5chlcall boot_indjnz r5,work_2mov r5,#02

18、h work_3:mov r0,#61h ;移位循環(huán) 3右移 lcall boot_inmov r0,#66hlcall boot_inmov r0,#6bh lcall boot_inmov r0,#70h lcall boot_inmov r0,#75hlcall boot_indjnz r5,work_3work_2:mov r0,#48h ;移位循環(huán) 2上移lcall boot_inmov r0,#4dhlcall boot_inmov r0,#52hlcall boot_inmov r0,#57hlcall boot_inmov r0,#5chlcall boot_inmov r0,

19、#61hlcall boot_inmov r0,#66hlcall boot_indjnz r5,work_2mov r5,#02hwork_3:mov r0,#6bh ;移位循環(huán) 3 下移lcall boot_inmov r0,#70hlcall boot_inmov r0,#75hlcall boot_inmov r0,#7ahlcall boot_inmov r0,#7fhlcall boot_inmov r0,#84hlcall boot_inmov r0,#89hlcall boot_indjnz r5,work_3mov r3,#20h ;中斷返回重新初始化mov r4,#20hm

20、ov r5,#20hsetb ea retiboot_in:mov a,r0 ;顯示輸出初始化 mov r3,amov r4,#10h loop_in:mov a,r3 ;輸出循環(huán)使字符“穩(wěn)定”mov r0,amov r1,#01h mov r2,#05hpio_in:mov a,r0 ;輸出一個完整字符mov p0,amov a,r1mov p2,alcall delaymov p0,#0ffh ;p0口清零消除顯示誤差rl amov r1,aclr ainc r0djnz r2,pio_indjnz r4,loop_inret org 0300hmain:/*a,b,c循環(huán)顯示*/led_

21、a:mov r0,#20h;r0地址為20h24h時r0內(nèi)儲存的數(shù)據(jù)為a的顯示數(shù)據(jù)ajmp bootled_b: mov r0,#25h;r0地址為25h29h時r0內(nèi)儲存的數(shù)據(jù)為b的顯示數(shù)據(jù)ajmp bootled_c: mov r0,#2ah;r0地址為2ah2eh時r0內(nèi)儲存的數(shù)據(jù)為c的顯示數(shù)據(jù)boot:mov r1,#01h ;顯示輸出初始化 mov r2,#05h ;輸出循環(huán)使字符“穩(wěn)定”pio:mov a,r0 ;輸出一個完整字符mov p0,amov a,r1mov p2,alcall delaymov p0,#0ffh ;p0口清零消除顯示誤差rl amov r1,aclr a

22、inc r0djnz r2,pioajmp workwork:djnz r3,led_a ;顯示數(shù)據(jù)切換函數(shù)mov r3,#01hdjnz r4,led_bmov r4,#01hdjnz r5,led_cmov r3,#20hmov r4,#20hmov r5,#20hljmp led_adelay:mov r7,#01fhdel: mov r6,#05ah djnz r6,$ djnz r7,del rettab:db 03h, 61h, 64h, 61h, 03h ;adb 00h, 36h, 36h, 36h, 49h ;bdb 41h, 3eh, 3eh, 3eh, 5dh ;cdb 0ffh, 5dh, 40h, 5fh, 0ffh ;1 右移db 0ffh, 0ffh, 5dh, 40h, 5fhdb 5fh, 0ffh, 0ffh

溫馨提示

  • 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

提交評論