沧兴电子 发表于 2021-5-2 20:48 多多包容,我是纯小白开始自学,应该怎么改代码才能解决闪烁 |
70. for(i=0;i<8;i++) 71. { 72. if(i==7&&j==1) 73. { 74. P1=0x80; 75. delay(1); 76. } 77. P0=dispbit; 78. P1=dispcode[count[ i]]; 79. delay(1); 80. } 这个里面突然蹦出来的j是怎么个意思?delay里也在用,你在这里用它会是个什么值? |
仿真是练不出技术的,多做一下实物吧。 |
82.void main() 83.{ 84. 85. if(!k2) 86. { 87. delay(5); 88. if(!k2) 89. j=0; 90. else 91. j=1; 92. } 93. switch(j) 94. { 95. case(0):a=2; LED=1; break; 96. case(1):a=20; LED=0; break; 97. } 这个地方程序开始,一闪而过,估计只能按键开机才会检测到 |
101. do 102. { 103. display(); 104. }while(k2); 这个地方,如果K2是0了,程序结束,显示什么就过 了 |
程序结构不能那样写呀 |
估计多次进入中断造成数码管扫描跟不上。这种情况可以考虑SPI或I2C总线方式驱动数码管,这个不需要经常扫描数码管 |
tyrl800 发表于 2021-5-2 08:54 参考的 |
我问下楼主,程序时你自己写的还是参考的? |
哪位大佬知道该改哪吗 |