wojiaodongrui 发表于 2019-11-27 23:46 你的电路是IO直接驱动数码管位的,第二个程序是支持移位寄存器的参考代码 |
huwqly 发表于 2019-11-27 05:03 谢谢大佬批评,但是这程序有点问题,第一个程序我让它显示4321但显示的是反着的6、8、9、8.第二个程序我让他显示4321但显示的是111灭。最后还是很感谢。 |
消隐是段位控制的,你用的位码,所有的P0=0XFF,改P2=0XFF,就O了 |
刷新之前清一下缓存 |
你真执着也真懒,宁可截屏都不拷代码,你的硬件电路应该带移位寄存器吧,P0送消隐P0=0xff后要送P2显示一下的,下面2种方式,你看哪一个适合你; 1: P0=0xff; P2=0x8f; P0=d[4]; P2=0x8f; delay(300); P0=0xff; P2=0x4f; P0=d[4]; P2=0x4f; delay(300); P0=0xff; P2=0x2f; P0=d[4]; P2=0x2f; delay(300); P0=0xff; P2=0x1f; P0=d[4]; P2=0x1f; delay(300); 2硬件电路应该有移位寄存器: P0=d[4]; P2=0x8f; P0=d[4]; P2=0x4f; P0=d[4]; P2=0x2f; P0=d[4]; P2=0x1f; delay(300); P0=0xff; P2=0x8f; P2=0x4f; P2=0x2f; P2=0x1f; |
只需在每一位输出显示前先消除上次显示的数据即可,电路中采用共阳数码管,程序中P0=d[];语句前各加一条P0=0xff;即可 |