MAX6950和MAX6951分別為5位元和8位元共陰極LED顯示驅動器,透過高速SPI 介面控制。此兩款元件採用獨特的多工結構,大幅減少了LED驅動器與LED面板的連線。MAXQ2000為一款高性能、16位元RISC微控制器,整合SPI模組,簡化LED驅動器與微控制器的連接。本應用筆記提供MAXQ組合語言程式範例,說明MAXQ2000 SPI模組與MAX6951/MAX6950的配合使用。
硬體和軟體需求
為了實現本文中的介面試驗,需要MAX6951評估板(EV kit)、MAXQ2000評估板(包括MAX-IDE軟體)、提供最小200mA電流的+5V電源和具備一個可用序列埠的PC。
硬體設定
1.MAX6951評估板跳線設定
去除JU2、JU3和JU4接腳1與接腳2之間的跳線,斷開/CS\、DIN和SCLK訊號與評估板上位準轉換器的連接。
2. MAXQ2000評估板跳線和DIP開關設定
開關SW3的1-8接腳置於off位置
JU1:連接接腳1和接腳2
JU2:連接接腳1和接腳2
JU3:連接接腳1和接腳2
JU4:開路
JU10:開路
JU11:接通(MAXQ2000評估板由一塊JTAG介面板供電,電源為+5V)
3.如圖一所示連接兩塊評估板。
圖一 : MAX6951評估板與MAXQ2000評估板的連接圖 |
|
韌體說明
從網站下載完整韌體檔,透過ADI提供的整合式開發環境和偵錯環境,用於MAXQ系列微控制器的MAX-IDE,進行編譯。
main.asm文件
該檔為本專案的主迴圈程式,其透過調用不同的副程式展示正確寫入MAX6951暫存器的數據。韌體展示MAX6951的以下功能:
1. MAX6951 SPI介面初始化。
2. 在16進制解碼方式下,對MAX6951所有數字的P0和P1級寫入並顯示0、1、2、...、A、B、C、D、E、F和8個小數位(如,點亮所有LED欄位)。
3. 在非解碼方式下,寫入並顯示上述字母和其它使用者內建字元,如H、L、P、Q、Y等。
4. LED亮度調節,該程式說明如何設定MAX6951亮度暫存器,測試數位亮度控制功能。
5. 掃描限制迴圈程式。該程式用相同亮度迴圈顯示第1位元到第8位元數字。
注:監控進程,以確認掃描限制提高時,降低亮度。
6. 閃爍控制,該程式將不同數值寫入每位元資料的P0級和P1級。還可採用快速閃爍方式展示段閃爍控制功能,可同步多個LED驅動器。
7. 滾動迴圈,該程式從左到右、從右到左滾動顯示文本資訊:HELLO。
8. 跳動迴圈,該程式在LED兩個邊緣之間跳動顯示文本資訊:HELLO。
9. 計時迴圈,此程式說明在16進制解碼方式和非解碼方式下,如何設計顯示毫秒級計時。
max2000ev_6951.asm文件
該檔包含所有用於MAX6951評估板與MAXQ2000微控制器之間通訊的功能函數。其主要函數有:
1. max6951_init:該函數正確設定MAXQ2000的SPI模式,實現與MAX6951的連接。使能SPI,並初始化MAX6951,在顯示板上顯示八個0。表一為該函數的詳細代碼。
max6951_transmit:該函數向Max6951發送一個暫存器位址和數據位元組(16位元)。
2. max6951_set_all_n:這些函數將一位元數位暫存器的P0級和P1級設定為數字“n”。所有函數具備16進制解碼和非解碼模式。
3. max6951_e_d_s_d:該函數先使能MAX6951顯示,然後延遲半秒,關斷顯示,再延遲100ms。
4. max6951_screenshot:這些函數在8位元數位LED面板的八個不同位置處顯示HELLO。
5. max6951_scroll_R_to_L:以不同順序顯示,該函數以非解碼方式從右至左滾動顯示HELLO。
6. max6951_scroll_L_to_R:以不同順序顯示,該函數以非解碼方式從左至右滾動顯示HELLO。
7. max6951_bouncing:該函數在LED的兩個邊緣之間跳動顯示HELLO。
8. font_lookup:給定一個16進制數,該函數查詢在標準7段LED上以非解碼方式顯示的相同字元。
9. max6951_counting:該函數用於顯示毫秒計時,精準度為10毫秒。表二為詳細代碼。