【原子哥,各位大神!】想利用八段数码管做一个电子表

2019-08-17 03:30发布

想利用八段数码管做一个电子表。
数码管一个有四片。
最后一片显示秒数。利用延时函数成功实现了,到9的时候,需要进位,想让倒数第二片数码管显示进位的数,但是问题出现了,按理第四片到9,第三片就应该变成1,然后第四片循环,直到下一次到9,第三片才变成2,以此类推。为什么我没有办法让第三片数码管停止在一个数不动,就是等到需要进位的时候第三片的状态完全跟第四片一样了!
[mw_shl_code=c,true] u8 const CharCode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳段码表 //数码管显示 int main(void) { // u8 i; // u8 t; u8 a; //秒个位(第四片) u8 b; //秒十位(第三片) Stm32_Clock_Init(9); //系统时钟设置 delay_init(72); //延时初始化 SEG_Init(); //数码管初始化 SEG_DATAOUT(0); //取段码数据 KEY_Init(); /* 数码管第四片显示秒的个位数 */ b=0; for(a=1;;a++) { if(a==10) { delay_ms(1000); a=0; b=b+1; { SEG_DATAOUT(CharCode<<8); PC8=0; } { SEG_DATAOUT(CharCode[0]<<8); PC9=0; } } else if(a<=9) { delay_ms(1000); SEG_DATAOUT(CharCode[a]<<8); PC9=0; } }[/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。