第1章 課題概述
1.1 課題意義LED顯示屏可以顯示變化的數字、文字、圖形圖像;不僅可以用于室內環(huán)境還可以用于室外環(huán)境,具有投影儀、電視墻、液晶顯示屏無法比擬的優(yōu)點。LED之所以受到廣泛重視而得到迅速發(fā)展,是與它本身所具有的優(yōu)點分不開的。這些優(yōu)點概括起來是:亮度高、工作電壓低、功耗小、小型化、壽命長、耐沖擊和性能穩(wěn)定。LED的發(fā)展前景極為廣闊,目前正朝著更高亮度、更高耐氣候性、更高的發(fā)光密度、更高的發(fā)光均勻性,可靠性、全色化方向發(fā)展。
1.2課題目的通過課程設計,進一步熟悉和掌握AT89C51單片機的結構及工作原理,掌握以單片機核心的電路設計的基本方法和技術,了解表關電路參數的計算方法。通過完成一個包括電路設計和程序開發(fā)的完整過程,進一步了解開發(fā)一單片機應用系統的全過程,通過此綜合訓練,為以后畢業(yè)設計打下一定的基礎。
(1)利用74HC595擴展單片機IO口間接控制LED點陣使其顯示。
(2)綜合運用所學的《單片機原理與應用》理論知識,通過實踐加強對所學知識的理解,具備設計單片機應用系統的能力,加深對單片機課程的全面認識。
(3)通過本次課程設計能夠對程序進行編寫和調試。
(4)通過本次系統設計,增強自己的動手能力。認識單片機在日常生活中的應用的廣泛性,實用性。
1.3課題內容 以AT89C51單片機為控制器,用一個8*8點陣LED點陣顯示屏,顯示“●、○、♥”圖形,通過按鍵來選擇要顯示的圖形。
1.4設計方案點陣LED一般采用掃描式顯示,實際運用分為三種方式: 一、點掃描;二、行掃描;三、 列掃描。 若使用第一種方式,其掃描頻率必須大于16×64=1024Hz,周期小于1ms即 可。若使用第二和第三種方式,則頻率必須大于16×8=128Hz,周期小于7.8ms即可符合視覺暫留要求。此外一次驅動一列或一行(8顆LED)時需外加驅動電路提高電流,否則LED亮度會不足。
所以本設計采用列掃描的方式,行由單片機向74HC595送串行數據,然后74HC595并行輸出到LED點陣模塊,利用外部中斷檢測按鍵控制切換顯示圖像數據輸出,以達到設計要求的目的。
第2章 硬件實現及單元電路設計
2.1 硬件元器件的選擇硬件元器件:AT89C51單片機、兩個8位位移寄存器74HC595、一塊8*8LED點陣、一個按鍵。
2.1.1 單片機型號選擇
AT89C51是一種低功耗、高性能的片內含有4KB快閃可編程/擦除只讀存儲器的8位CMOS微控制器,使用高密度、非易失存儲技術制造,并且與89C51引腳和指令系統完全兼容。 圖2.1.1 AT89C51引腳圖
2.1.2 單片機IO擴展電路芯片選擇74HC595具有8位移位寄存器和一個存儲器,三態(tài)輸出功能。 移位寄存器和存儲器有相互獨立的時鐘。利用它可以將8線IO縮小到3個IO使用即可滿足設計需求。
圖2.1.2 74HC595引腳圖
2.1.3 8*8LED點陣模塊選擇如下圖一為8×8點陣LED外觀及引腳圖,圖二為其等效電路圖,只要其對應的X、Y軸順向偏壓,即可使LED發(fā)亮。例如如果想使左上角LED點亮,則Y0=1,X0=0即可。應用時限流電阻可以放在X軸或Y軸。滿足設計需求。
圖(一) 圖(二)
2.2 硬件電路設計2.2.1主控電路的設計- 晶振電路設計:該電路晶振采用11.052MHz晶振,為單片機提供機械脈沖源。
- 復位電路設計:在單片機的RST端給高電平可使得單片機復位。
(3)電源電路設計:該電路采用VS1838b穩(wěn)壓三極管,使得系統電源穩(wěn)定在5V。
(4)單片機IO:引腳如圖所示的單片機是引腳雙列直插封裝方式,電源引腳40腳與接地腳20。 P0口作輸入口使用時,應先向口鎖存器寫入1。P1口是一個帶有內部上拉電阻的8 位雙向I/O端口。P1的輸出緩存可驅動4個TTL輸入。P2口是一個帶有內部上拉電阻的8位雙向I/O端口。P3口也是一個帶有內部上拉電阻的8位雙向I/O端口, P3端口還用于一些復用功能。
2.2.2 LED點陣模塊電路設計
74HC595的輸入端連接單片機的P2.2,P3.3,P2.3,輸出端控制LED點陣模塊引腳。 2.2.3 按鍵電路設計如圖為按鍵電路,采用上拉電阻式設計,使得按鍵初始狀態(tài)穩(wěn)定在高電平,抗干擾能力得到加強。
其中按鍵接口為單片機外部中斷引腳。
第3章 軟件設計
3.1 程序流程圖第4章 調試及分析
本次設計是我第一次接觸LED點陣顯示設計,在經過老師簡介LED點陣工作原理后,我在電腦仿真上先利用電源和地簡單的測試理論,然后在一次次動手過程中最終理解了LED點陣的工作原理,在書寫程序時,我分為以下幾個步驟:
- 學會使用74HC595輸出預設的數據。
- 結合74HC595點亮LED點陣里面的任意LED燈。
- 將點亮LED點陣單個LED函數封裝成整體顯示函數,顯示預設簡單圖案如圖一。
- 調通按鍵部分,使其工作正常,并可隨意控制。
- 將按鍵和LED顯示結合起來,利用按鍵改變LED顯示圖案。
- 將設計要求的圖案替換原先簡單圖形,如圖二至四。
圖一 圖二
圖三 圖四
心得體會
本次課程設計分為兩個部分,單片機開發(fā)板焊接、調試與程序設計。我們花了一天的時間焊接,調試單片機。看似簡單的一件事,需要耐心和細心。其中貼片元件是最難焊的。最后還是順利完成了。
程序設計部分,之前參考例程,把一個簡單的圖形顯示了出來,獲得了不少的成就感,然后按照例程里面的圖形數組的數據,自己修改,把自己設想的圖案顯示出來。之后一直在努力實現按鍵切換功能的實現,但一直都沒有思路,后來想到用三個普通按鍵實現三種圖形切換,發(fā)現這種方法實現起來很簡單,之后想起應該要盡量減少硬件的使用以降低成本和工藝復雜度,用一個按鍵結合外部中斷來實現圖形切換的功能,反應速度要比之前顯著提高。
改進的思路如下:之前采用一個一維數組儲存一個圖形的數據,如果要增加多個圖形,則明顯增加變量,然后我就想到了用一個二維數組來儲存多個圖形數據,因為其本身就已經保留了圖形編號,便于調用。關于圖形切換,采用按鍵觸發(fā)中斷,當按鍵按下時,其中斷服務函數里面的變量自增一次,而在主函數里面查詢這個變量的值,不同的值顯示不同的圖案。
最終實現了一個按鍵切換三個圖形的功能,但主體程序完成后,我發(fā)現之前的圖形取模不規(guī)范,然后利用軟件取模的方法,使得模組數據規(guī)范化,使得最終的顯示達到標準。
參考文獻
【1】曾屹.單片機原理與應用.第2版.湖南:中南大學出版社,2009
【2】郭天祥.51單片機C語言教程.新概念.北京:電子工業(yè)出版社,2009
3.2主程序的設計
3.3 顯示程序設計
(詳見附件)