|
发表于 2023-8-26 17:18:03
|
显示全部楼层
seg动态显示感悟
对于数码管这一设备,通过其他方式学会使用其显示更多的形状
静态演示就不再感悟了以下是0-F的显示码
u8 SEG_Tab[20] = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
根据其代码演示,多位动态数码管的显示原理就是在八位数码之间高速切换,从而达到在人眼下看到的一个常亮的效果,想要达到这一效果就是要在代码中实现在切换每一个位码时赋值上其位所对应的显示码。
而在代码中的展示效果就是在SER_Fre函数中,这个函数集合了切换位码,以及将显示码内容赋值的操作,所以在后续操作中只需要在赋值以后进行这一函数的调用即可。
另外就是一个按键实现开始计数和清零的操作,博主使用了一个RUN_State的值来控制识别每一次按键应该进行哪种操作
每次按就RUN_State = !RUN_State;将此值取反,若此值为1,就开始计时,若此值为0则将计数值清零,但是清零值并不会马上将原本赋值的数清掉,反而将其原本计数的值保留了下来,这个现象也可以根据个人进行修改
最后疑问就是
因为我尝试了在清零以后直接添加显码函数,但是还是不行。
为什么在第二次按下以后,数值会停在那里而不会马上清零?
还有就是在第二次按下时RUN_State为何值?此时的计数值是否已经清零?
如果我想让他马上清零应该怎么操作?
|
|