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