TM1680参考程序提供了一套详细的代码示例和操作指南,旨在帮助开发者轻松理解和应用TM1680芯片的各项功能,加速产品开发进程。
/******
TM1680初始化及测试代码
这段代码主要用于驱动TM1680显示模块进行各种操作的示例程序。
包括了基本的初始化、PWM调节功能演示,以及一些特定模式下的显示效果。
函数列表:
- TM1680Init:对TM1680进行初始化设置
- PWMTest:用于测试不同频率下LED亮度变化的效果
- TM1680IDChange:根据不同的地址码配置相应的引脚状态
- TM1680PerDisp: 逐段点亮显示,展示每一段的亮起过程
主函数中实现了TM1680初始化、清零与全显操作,并执行了逐段显示的效果测试。
*/
/*********
基本库及头文件定义部分已省略,仅列出关键功能实现代码
***********/
void TM1680Init(void)
{
// 初始化序列发送给TM1680模块进行设置
}
// PWM调节函数用于改变LED亮度的频率和占空比
void PWMTest(unsigned char sTime)
{
unsigned char i;
for(i=0; i<16; ++i) {
TM1680WriteCmd(PWM01 | i); // 发送PWM命令与参数组合到模块中
delayms(sTime);
delayms(sTime);
}
}
// 根据不同的地址码配置相应的引脚状态,用于识别不同ID的TM1680设备
void TM1680IDChange(void)
{
switch(TM1680ID) {
case 0xe4: MA1=MA2=0; break;
case 0xe5: MA1=0, MA2=1; break;
case 0xe6: MA1=MA2=!MA2; break;
case 0xe7: MA1=MA2=!MA1; break;
}
}
// 显示每个段码的点亮效果
void TM1680PerDisp(void)
{
unsigned char i, j;
for(i = 0 ; i < 32 ; ++i) {
for(j = 0 ; j < 8 ; ++j){
fdate |= TM1680perseg[j];
TM1680WriteOneByte(faddr,fdate);
delayms(20); // 延时,观察效果
}
faddr += 2;
fdate = TM1680perseg[0];
}
}
// 主函数执行初始化及测试显示流程
void main(void)
{
unsigned char i, j;
TM1680IDChange(); // 根据设备地址码配置引脚状态
TM1680Init(); // 初始化TM1680模块
delayms(100); // 等待初始化完成的延时
TM1680PageAllWrite(0x00, 0xff, 32); // 设置所有段显示为全亮
TM1680PerDisp(); // 每一段逐个点亮,观察效果
while (1) { ; } // 主循环保持运行
}