农民讲习所建立通用程序 9 通用数码LED显示模块

通用数码LED显示模块

移植到 nu-lb-nuc140

struct DigitTube{
	unsigned char aDispBuffer[8];		//显示缓冲区开始指针
};

aDispBuffer数组每个字节 对应一个数码管

DigitTest_Loop 负责 把数组aDispBuffer[] 每个字节,填入对应的 数字

农民讲习所建立通用程序 9 通用数码LED显示模块

农民讲习所建立通用程序 9 通用数码LED显示模块

关键函数 解析:

//-------------------------------------------------------------
//循环
//演示:0000 0000计数到FFFF FFFF,每0.3秒加1
//输出结果存放在OutBuffer[8]中
//20ms进入一次
//-------------------------------------------------------------
void DigitTest_Loop(void)
{
	unsigned char i;

	if( ++sInDigitTest.mCount > (300/20) ){

        sInDigitTest.mCount = 0;

		i = 0;
        
		do{
			if( i>7 )break;  // 到达8位数字

			if( sDigitTube.aDispBuffer[i] == 0x09 ){
				sDigitTube.aDispBuffer[i] = 0;	
			}
			else {
				sDigitTube.aDispBuffer[i]++;
			}
		}
		while( sDigitTube.aDispBuffer[i++] == 0);
	}
}

其中的i =7 表示 8位数码管 ,计数到达8位整数的时候

aDispBuffer[0] ----- 个位数字 ----- 一个数码管位
aDispBuffer[1] ----- 十位数字 ----- 一个数码管位
aDispBuffer[2] ----- 百位数字 ----- 一个数码管位
aDispBuffer[3] ----- 千位数字 ----- 一个数码管位

参考代码:

https://download.****.net/download/wowocpp/10774083