第一章 方案選擇及總體設(shè)計
1.1 方案確定
1.1.1 功能要求 1、采用STC-52單片機(jī)作為微處理器。 2、設(shè)計一個8×8點(diǎn)陣LED數(shù)碼字符顯示器。 3、在目測條件下LED顯示屏各點(diǎn)亮度均勻、充足、穩(wěn)定、清晰無串?dāng)_。 4、動態(tài)顯示“0——9”幾個字符。 1.2.2 方案確定 采用ST89C52單片機(jī)作為微處理器,將共陽極二極管用共陰型接法連接成8×8點(diǎn)陣LED數(shù)碼字符陣列,通過程序控制,采用動態(tài)顯示,建立字符庫“0——9”。 1.2 器件選擇微處理器采用ST89C52系列單片機(jī),ST89C52單片機(jī)是這幾年在我國非常流行的單片機(jī),是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)高性能單片機(jī),可擦除只讀存儲器可以反復(fù)擦除100次,具有低功耗、高性能的特點(diǎn)。 第二章 控制系統(tǒng)設(shè)計2.1 控制系統(tǒng)硬件設(shè)計 2.1.1整體模塊設(shè)計本設(shè)計行、列驅(qū)動電路,顯示器電路,運(yùn)用單片機(jī)的智能化,系統(tǒng)的將每個功能電路模塊連接在一起,總體結(jié)構(gòu)設(shè)計如圖1所示。 圖1 硬件系統(tǒng)框圖
此次需要實現(xiàn)的功能是利用一個ST89C52,一個8×8LED點(diǎn)陣,動態(tài)顯示“0——9”10個字,采用PC上位機(jī)驅(qū)動顯示電路。 2.1.2 單片機(jī)最小系統(tǒng)設(shè)計ST89C52單片機(jī)最小系統(tǒng)電路由復(fù)位電路、晶振電路兩部分組成。 2.1.2.1 晶振電路設(shè)計ST89C52單片機(jī)芯片內(nèi)部設(shè)有一個由反向放大器構(gòu)成的振蕩器,XTAL1和XTAL2分別為振蕩電路的的輸入端和輸出端,時鐘可有內(nèi)部或外部生成,在XTAL1和XTAL2引腳上外接定時元件,內(nèi)部振蕩電路就會產(chǎn)生自激振蕩。系統(tǒng)采用的定時元件為石英晶體和電容組成的并聯(lián)諧振回路。晶振頻率采用12MHZ,C1、C2的電容值取30pF,電容的大小起頻率微調(diào)的作用。晶振電路圖如圖所示。 圖2 晶振電路圖
2.1.2.2 復(fù)位電路設(shè)計ST89C52單片機(jī)在啟動運(yùn)行時或者出現(xiàn)死機(jī)時需要復(fù)位,使CPU以及其他功能部件處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。單片機(jī)有多種復(fù)位方式,常用的復(fù)位操作有上電復(fù)位和手動復(fù)位方式。本設(shè)計采用最簡單的上電復(fù)位方式,電路如圖3所示。上電復(fù)位是通過外部復(fù)位電路的電容充電來實現(xiàn)的,復(fù)位電路產(chǎn)生的復(fù)位信號(高電平有效)由RST引腳送入到內(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ù)位電路如下圖所示:
圖3 上電復(fù)位電路圖 圖4 按鍵電平復(fù)位電路圖 復(fù)位電路工作原理: 上電瞬間RST引腳的電位與VCC等電位,RST引腳為高電平,隨著電容C5充電電流的減少,RST引腳的電位不斷下降,可以保持RST引腳在為高電平的時間內(nèi)完成復(fù)位操作。 當(dāng)單片機(jī)已在運(yùn)行當(dāng)中時,按下復(fù)位鍵S5后再松開,也能使RST引腳為一段時間的高電平,從而實現(xiàn)ST89C52單片機(jī)復(fù)位。 2.1.3 驅(qū)動電路設(shè)計正向點(diǎn)亮一顆LED,至少也要10~20mA,若電流不夠大,則LED不夠大。而不管是ST89C52的I/O口,還是TTL、CMOS的輸出端,其高態(tài)輸出電流都不是很高,不過1~2mA而已。因此很難直接高態(tài)驅(qū)動LED,這時候就需要額外的驅(qū)動電路,通常有共陽型與共陰型LED陣列驅(qū)動電路,本設(shè)計才用共陰型高態(tài)掃描信號驅(qū)動電路。 共陰型LED陣列驅(qū)動電路采用高態(tài)掃描,也就是任何時間只有一個高態(tài)信號,其它則為低態(tài)。一行掃描完成后,再把高態(tài)信號轉(zhuǎn)化到近鄰的其他行,掃描信號接用一個反向驅(qū)動器,ST89C52本身內(nèi)置一個反向驅(qū)動器,本設(shè)計將ST89C52作為點(diǎn)矩陣顯示控制系統(tǒng)的控制核心,通過點(diǎn)矩陣實時顯示并移動字符。 單片機(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)亮的基本條件。 
圖5 驅(qū)動電路圖 所要顯示的信號送入74HC573芯片,然后連接到LED陣列的列陣腳。對于高態(tài)的顯示信號,將可提供其所連接LED的驅(qū)動電流,而這個驅(qū)動電流經(jīng)過LED到輸出端,形成正向回路,即可點(diǎn)亮該LED。其中每個晶體管任何時間只需負(fù)責(zé)驅(qū)動一個LED,所以選擇30mA射極電流的晶體管。驅(qū)動電路如圖5所示。 2.1.4 LED點(diǎn)陣顯示設(shè)計 本設(shè)計采用ATMEL公司的AT89C51作矩陣顯示控制系統(tǒng)控制核心,12MHZ晶振,8 8點(diǎn)陣共陽LED顯示器。其中,P1口作為字符數(shù)據(jù)輸出口,P3口為字符顯示掃描輸出口,第31腳(EA)接電源,改變電阻(270*8)的大小可改變顯示字符的亮度,驅(qū)動用74HC573芯片。 本設(shè)計LED矩陣顯示器電路選用8×8點(diǎn)陣模塊,系統(tǒng)由單片機(jī)控制。 LED顯示屏是將發(fā)光二極管按行按列布置的,在掃描驅(qū)動方式下可以按行掃描按列控制,也可以按列掃描按行控制。本文就是使用1塊8×8點(diǎn)陣,采用按列掃描按行控制控制方式,掃描順序自左向右,以滿足漢字顯示的要求。8×8點(diǎn)陣LED結(jié)構(gòu)如圖6所示。
圖6 LED數(shù)碼顯示管 8×8 點(diǎn)陣LED的工作原理。圖7為8×8點(diǎn)陣LED外觀及引腳圖,其等效電路如圖8所示,只要其對應(yīng)的X、Y軸順向偏壓,即可使LED發(fā)亮。例如如果想使左上角LED點(diǎn)亮,則Y0=1,X0=0即可。應(yīng)用時限流電阻可以放在X軸或Y軸。 圖7 8×8點(diǎn)陣LED外觀及引腳圖 圖8 8×8點(diǎn)陣LED等效電路 一個8×8點(diǎn)陣是由64個發(fā)光二極管按規(guī)律組成的,如圖8所示。圖中,行接低電平,列接高電平,發(fā)光二極管導(dǎo)通發(fā)光。 2.2控制系統(tǒng)軟件設(shè)計2.2.1 軟件設(shè)計思想 主程序先進(jìn)行設(shè)置中斷,并啟動,再進(jìn)行鍵盤掃描載入“0——9”字型,然后判斷一組字型是否掃描完,按不同情況進(jìn)行循環(huán)調(diào)用子程序。進(jìn)入子程序后,首先設(shè)置相應(yīng)的程序,反復(fù)調(diào)用顯示子程序,并在顯示過程中反復(fù)調(diào)用鍵盤掃描子程序進(jìn)行延時,判斷是否退出相應(yīng)的方式顯示子程序。設(shè)計過程中,能很好得提高按鍵響應(yīng)速度。如圖9所示為軟件系統(tǒng)框圖。
圖9 軟件系統(tǒng)框圖
字符編碼:8×8點(diǎn)陣可以看成是從上至下8個字節(jié),每個字節(jié)8位,因為該點(diǎn)陣為共陰型點(diǎn)陣,因此若該燈亮,則該位為“1”;該燈不亮,則該位為“0”。所以“0——9”的編碼為,從上至下: DB 00H,00H,3EH,41H,41H,41H,3EH,00H DB 00H,00H,00H,00H,21H,7FH,01H,00H DB 00H,00H,27H,45H,45H,45H,39H,00H DB 00H,00H,22H,49H,49H,49H,36H,00H DB 00H,00H,0CH,14H,24H,7FH,04H,00H DB 00H,00H,72H,51H,51H,51H,4EH,00H DB 00H,00H,3EH,49H,49H,49H,26H,00H DB 00H,00H,40H,40H,40H,4FH,70H,00H DB 00H,00H,36H,49H,49H,49H,36H,00H DB 00H,00H,32H,49H,49H,49H,3EH,00H 2.2.2 主程序流程圖主程序首先設(shè)置并啟動T0中斷,然后調(diào)用初始化程序,為后面程序要用到的數(shù)據(jù)調(diào)入,并清零一些用到的數(shù)據(jù)單元,然后載入“0——9”字型,進(jìn)行掃描。圖10為主程序流程圖,詳細(xì)主程序清單及子程序設(shè)計見附錄B。 
圖10 主程序流程圖
2.2.3 子程序流程圖(定時中斷服務(wù)程序)圖11 子程序流程圖(定時中斷服務(wù)程序) 第三章 系統(tǒng)仿真及性能分析3.1 系統(tǒng)仿真本設(shè)計是以wave與Proteus.ISIS相結(jié)合方式來實現(xiàn)本LED點(diǎn)矩陣顯示器的仿真實現(xiàn)過程。電路的核心是單片機(jī)ST89C52。單片機(jī)的P0口八個引腳通過總線連接到LED矩陣顯示器的段選碼和位選碼(a、b、c、d、e、f、g和1、2、3、4、5、6、7、8)的引腳上,來作為控制信號的來源。如圖11、12所示。 
 
 3.2 性能分析此次系統(tǒng)設(shè)計結(jié)果較好,LED顯示屏能很好的顯示信息。LED顯示屏由1塊8×8的LED小模塊組成,整個顯示屏可以動態(tài)顯示8×8的“0——9”字型。這個方案設(shè)計的8x8的點(diǎn)陣LED圖文顯示屏,電路簡單,成本較低,且較易擴(kuò)展;顯示屏各點(diǎn)亮度均勻、充足;顯示圖形或文字穩(wěn)定、清晰無串?dāng)_。
總結(jié)致謝本次課程設(shè)計到現(xiàn)在有一個多星期,回顧這些天我感到學(xué)到了很多東西,在寫這個心得的時候,我想就這些天的收獲,說一說自己內(nèi)心的想法。 本設(shè)計是一個8x8的點(diǎn)陣LED數(shù)碼顯示器,能夠在目測條件下LED顯示屏各點(diǎn)亮度均勻、充足,可顯示圖形和文字,顯示圖形和文字應(yīng)穩(wěn)定、清晰無串?dāng)_。圖形或文字顯示有靜止、移入移出等顯示方式。本系統(tǒng)具有硬件少,結(jié)構(gòu)簡單,容易實現(xiàn),性能穩(wěn)定可靠,成本低等特點(diǎn)。 總結(jié)本文的研究工作,主要做了下面幾點(diǎn)工作: 一、通過查閱大量的相關(guān)資料,詳細(xì)了解了LED的發(fā)光原理和LED顯示屏的原理,了解了LED的現(xiàn)狀,清楚地了解了LED顯示屏與其它顯示屏相比較有那些優(yōu)點(diǎn),明確了研究目標(biāo)。并且通過對單片機(jī)資料的查閱和應(yīng)用,更進(jìn)一步增加了對單片機(jī)知識的理解和運(yùn)用能力。并證實了自己的思路:“查資料→思考總結(jié)→運(yùn)用→找出差錯,再查資料和向別人詢問→再次運(yùn)用”的正確性。 二,本文設(shè)計的LED顯示屏能夠?qū)崿F(xiàn)在目測條件下LED顯示屏各點(diǎn)亮度均勻、充足,可顯示圖形和文字,顯示圖形和文字應(yīng)穩(wěn)定、清晰無串?dāng)_。 三,本文列出了系統(tǒng)具體的硬件設(shè)計方案,硬件結(jié)構(gòu)電路圖,軟件流程圖和具體匯編語言程序設(shè)計與調(diào)試等方面。 四,在這次課程設(shè)計的過程中學(xué)會了 PROTEUS 的基本使用,感到PROTEUS對電子專業(yè)的同學(xué)來說是一個很有用的軟件。在運(yùn)用PROTEUS時可以運(yùn)用一些快捷的標(biāo)號,總線的方法畫圖,這樣既能使電路圖清晰,簡單,更能大大提高畫圖速度 五,通過這次課程設(shè)計,重新復(fù)習(xí)并進(jìn)一步增強(qiáng)了動手的能力,學(xué)以致用,把只是運(yùn)用到實際生活中才是根本目的。 六,存在問題:沒有考慮仿真軟件是一個理想的仿真環(huán)境,而實際連接的電路板會由于譬如連接不當(dāng),相鄰器件間的干擾等等的問題導(dǎo)致在仿真軟件中能良好運(yùn)行的程序,出現(xiàn)顯示問題,經(jīng)過排查和合理的器件擺放焊接,問題解決。 總體來說這次的科研實踐很成功,達(dá)到了預(yù)想的目的:學(xué)到了知識,提高了能力,完成了任務(wù)。有點(diǎn)缺憾是時間有限,不能進(jìn)一步深入和擴(kuò)散學(xué)習(xí)和研究。希望有時間可以對程序和電路圖作更進(jìn)一步的改進(jìn),譬如實現(xiàn)點(diǎn)陣的上下移動,對角線移動,多色顯示等。 在此感謝指導(dǎo)老師姜靜老師和余國衛(wèi)老師的悉心教導(dǎo),改正了很多不曾發(fā)現(xiàn)的問題,為即將的畢業(yè)設(shè)計打下了基礎(chǔ)。 參考文獻(xiàn)[1] 張靖武,周靈彬 《單片機(jī)系統(tǒng)的PROTEUS設(shè)計與仿真》北京 電子工業(yè)出版社 [2] 吳金戌,沈慶陽,郭庭吉 《8051單片機(jī)實踐與應(yīng)用》北京 清華大學(xué)出版社 [3] 李群芳,肖看 《單片機(jī)原理、接口及應(yīng)用》北京 清華大學(xué)出版社 [4] 張毅剛,彭喜元等 《新編MCS-51單片機(jī)應(yīng)用設(shè)計 》黑龍江 哈爾濱工業(yè)大學(xué)出版社 [5] 張義和,陳敵北編著 《例說8051》北京 人民郵電出版社 附 錄附錄A 硬件結(jié)構(gòu)圖 附錄B 主程序清單
- TIM EQU 30H ;//定義TIM為30H
- CNTA EQU 31H ;//定義CNTA為31H
- CNTB EQU 32H ;//定義CNTB為33H
- ORG 00H ;//將后面的程序匯編后存入ROA的0000H以后單元
- LJMP START ;//程序入口,轉(zhuǎn)開始START
- ORG 0BH ;//將后面的程序匯編后存入ROA的000BH以后單元
- LJMP T0X ;//中斷入口,轉(zhuǎn)中斷T0X
- ORG 30H ;//將后面的程序匯編后存入ROA的0030H以后單元
- START: MOV TIM,#00H ;//將數(shù)據(jù)0000H送入30H單元
- MOV CNTA,#00H ;//清零31H單元
- MOV CNTB,#00H ;//清零32H單元
- MOV TMOD,#01H ;//設(shè)置T0方式1工作
- MOV TH0,#(65536-4000)/256
- MOV TL0,#(65536-4000) MOD 256 ;//設(shè)置T0的計數(shù)初值
- SETB TR0 ;//開啟T0中斷
- SETB ET0 ; //允許T0中斷
- SETB EA ;//開總中斷
- SJMP [ DISCUZ_CODE_1 ]nbsp; ;//原地踏步
- ;*****************定時中斷服務(wù)程序*******************
- T0X: ;//中斷程序
- MOV TH0,#(65536-4000)/256
- MOV TL0,#(65536-4000) MOD 256 ;//設(shè)置T0的計數(shù)初值
- MOV DPTR,#TAB ;//取數(shù)據(jù)表TAB的首地址
- MOV A,CNTA ;//將31H單元內(nèi)容送入A
- MOVC A,@A+DPTR ;//讀取顯示數(shù)碼管地址
- MOV P3,A ;//輸出顯示數(shù)碼管地址
- MOV DPTR,#DIGIT ;//取數(shù)據(jù)表DIGIT的首地址
- MOV A,CNTB ;//將32H單元內(nèi)容送入A
- MOV B,#8 ;//將十進(jìn)制8賦值給B
- MUL AB ;//A乘B
- ADD A,CNTA ;//寄存器直接尋址
- MOVC A,@A+DPTR ;//讀取顯示數(shù)碼管地址
- MOV P1,A ;//輸出顯示數(shù)碼管地址
- INC CNTA ;//31H單元內(nèi)容加1
- MOV A,CNTA ;//將31H單元內(nèi)容送入A
- CJNE A,#8,NEXT ;//8個數(shù)碼管的顯示數(shù)據(jù)沒有都輸出則轉(zhuǎn)NEXT
- MOV CNTA,#00H ;//8個數(shù)碼管的顯示數(shù)據(jù)都輸出了則清31H單元
- NEXT: INC TIM ;//32H單元內(nèi)容加1
- MOV A,TIM ;//將30H單元內(nèi)容送入A
- CJNE A,#250,NEX ;//比較轉(zhuǎn)移指令
- MOV TIM,#00H ;//清零30H單元
- INC CNTB ;//32H單元內(nèi)容加1
- MOV A,CNTB ;//將32H單元內(nèi)容送入A
- CJNE A,#10,NEX ;//比較轉(zhuǎn)移指令
- MOV CNTB,#00H ;//清零32H單元
- NEX: RETI ;//中斷返回
- TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
- DIGIT: DB 00H,00H,3EH,41H,41H,41H,3EH,00H
- DB 00H,00H,00H,00H,21H,7FH,01H,00H
- DB 00H,00H,27H,45H,45H,45H,39H,00H
- DB 00H,00H,22H,49H,49H,49H,36H,00H
- DB 00H,00H,0CH,14H,24H,7FH,04H,00H
- DB 00H,00H,72H,51H,51H,51H,4EH,00H
- DB 00H,00H,3EH,49H,49H,49H,26H,00H
- DB 00H,00H,40H,40H,40H,4FH,70H,00H
- DB 00H,00H,36H,49H,49H,49H,36H,00H
- DB 00H,00H,32H,49H,49H,49H,3EH,00H
- END
復(fù)制代碼
完整的Word格式文檔51黑下載地址:
基于單片機(jī)的8×8LED字幕顯示設(shè)計.doc
(521.44 KB, 下載次數(shù): 12)
2018-7-9 15:27 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|