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评估板的连接图
图一 : 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初始化范例程式
图二 : MAX6951初始化范例程式
图三
图三

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毫秒。表二为详细代码。



图四 : MAX6951计时范例程式
图四 : MAX6951计时范例程式
图六
图六