8×8 點矩陣實驗

Post on 03-Jan-2016

29 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

8×8 點矩陣實驗. 實驗目的 瞭解點矩陣 LED 控制原理 掌握用行列掃描控制的 LED 點矩陣編譯 實驗內容 編寫程式,在 8×8 上顯示數位或者字母 實驗設備 DMA2440XP 教學平台 ADS 1.2 試用版內建開發環境和除錯軟體 USB 連接線、串列連接線、電源. 1 LED 相關知識. - PowerPoint PPT Presentation

TRANSCRIPT

8×8 點矩陣實驗 實驗目的 瞭解點矩陣 LED 控制原理 掌握用行列掃描控制的 LED 點矩陣編譯實驗內容 編寫程式,在 8×8 上顯示數位或者字母實驗設備 DMA2440XP 教學平台 ADS 1.2 試用版內建開發環境和除錯軟體 USB 連接線、串列連接線、電源

1 LED 相關知識

LED 即發光二極體,是嵌入式系統中常用的輸出設備。單個 LED 通常用作報警之顯示,故障指示或提示信號等。 LED 是一個半導體設備,當電流通過它的時候,可以產生可見光。 LED 的發光強度與通過的電流強度成正比,由 64 個 LED 組成, 8 行 8 列。

由於 LED 的發光顏色和發光效率與製作 LED 的材料和工藝有關,目前廣泛使用的有紅、綠、藍三種。由於 LED工作電壓低(僅 1.5-3V ),能主動發光且 有一定亮度,亮度又能用電壓(或電流)調節,本身又耐衝擊、抗振動、壽命長( 10 萬小時),所以在大型的顯示設備中,目前尚無其他的顯示方式與 LED 顯示 方式匹敵。

顯示範例

8x8 LED 點矩陣的介面圖— 資料 0~15 通過 HC574 栓鎖器,再經過電晶體放大來驅動 8×8 LED

點矩陣,靜態方式顯示。電路介面圖如下:

8x8 LED 點矩陣的介面圖—

8x8 矩陣硬體架構

低位元組

高位元

組低位元

高位元組

Ex:000000010101010100000010101010100000010001010101

1000000010101010

低位元組

高位元

組低位元

高位元組

Ex:000000010000000000000010011111100000010001000010

1000000000000000

練習題 --- 假設三顆燈亮

低位元組(9

-15

高位元組( 0-8 )

表示第六排的 LED8x8_Address=?

練習題 --- 假設三顆燈亮

低位元組(9

-15

高位元組( 0-8 )

表示第六排的 LED8x8_Address=? 00100000 11100110

掃描顯示簡介 -1

原理特色以單位時間只顯示一列資訊,由左至右依序顯示

            現場示範字母“人形”範例講解

掃描顯示簡介 -2

優點 不需改變電流 可增加顯示效果可調整亮度和顏色設計較為方便

如何估算時間估算的一面顯示時間 =

( 每排的掃描時間 *8 + 每面掃描的間隔 ) * 掃描幾次畫面

設計亮度訣竅 每列的掃描時間太多 整體看起來不像一面圖形 畫面跳動 太少 需要更多次刷新才能維持亮度

每面掃描的間隔 太長 畫面閃爍 太短 畫面較暗

每面掃描幾次 太多 時間太長 太少 時間太短

決定亮度的設計關鍵 每排掃描時間 & 每面掃描的間隔 比例調整

3 實驗步驟 新建一個工程名為 LED8x8 ,並新建原始檔案、輸入程式,

設置好工程編譯產生映像檔。 硬體連接:用串列線將 PC 的 COM1 與實驗箱的 UART1 連

起來,再用 USB 連接。 線 (A->B) 將 PC 的 USB HOST 介面與實驗箱的 USB

Device 介面連起來,最後插上 12V 電源。 下載、除錯並執行 結合實驗內容和原理,觀察實驗現象,實驗結果應該是 8×8

點矩陣 LED迴圈顯示字母或數位形狀。 完成實驗練習題。

4 8X8LED 點矩陣應用程式編譯實例 相關函數說明 8×8 LED 點矩陣的位址

#defineLED8X8_Address *(volatile U16 *)( 0x0x08001000 ) //nGCS1

8×8 LED 點矩陣顯示函數 void LED8X8_Display( U16 *LED8X8, U32 d )參數說明: LED8X8 : 特定的顯示陣列指標 D :顯示維持的次數功能說明: 顯示一個特定的陣列裏的資料主要程式如下:

實驗程式Test_LED8×8(void) 功能說明:動態的 LED 顯示主要程式如下:

主程序 Main主要程式如下:

上面是關於該實驗涉及到的部分函數,完整的程式請看光碟目錄的 exp檔案夾下相對應實驗的工程目錄。

作業 各組發揮創意變更顯示圖案

設計程式碼,使其可以利用電腦鍵盤切換多組顯示圖案

設計程式碼,展示 LED 至少兩種顯示亮度

備註 volatile 為一關鍵字 加在變數的前面被 volatile 宣告的變數 將不會使用最佳化編譯

有時一個變數的值改變了 compiler 並不會馬上將他寫入記憶體中而會先把結果放在 CPU暫存器中 等到處理結束之後 才寫入記憶體

若說這個變數是多執行緒的 flag 其他的執行緒要透過這個變數來反應,而這個值卻又沒有寫入記憶體 這時便會發生意想不到的結果

又或者是這變數為一個硬體的暫存器,會被硬體所改變然而 compiler 並沒有正確的將值從硬體暫存器取出來,而是將自己暫存的值拿來使用,這種情況 就是要用 volatile 來宣告變數 告訴 compiler 不要自己暫存變數來提升速度如此這個變數有任何的改變,便會馬上反應出來

top related