![]() |
發布時間: 2021-4-30 18:03
正文摘要:哪位大佬知道怎么解決嗎,測2k以上頻率數碼管老是循環閃爍 單片機代碼如下 #include <reg52.h >#include <intrins.h >#define uint unsigned int#define uchar unsigned charsbit k1=P ... |
滄興電子 發表于 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 參考的 |
我問下樓主,程序時你自己寫的還是參考的? |
哪位大佬知道該改哪嗎![]() |