熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2019-10-30 00:48
正文摘要:這是我的代碼,請問為什么仿真的時(shí)候會一個(gè)燈先走一遍,然后才開始按順序1到8個(gè)等依次走一遍 |
#include<reg52.h> DELAY(unsigned int ms) { unsigned int i,j; for(i=ms;i>0;i--) for(j=114;j>0;j--); return 0; } void main() { int a,b,k,l; while(1) { a=0xfe; for(k=0;k<8;k++) { if(k>0) a=a<<1; b=a; for(l=k;l<8;l++) { P1=b; DELAY(400); b=(b<<1)+1; } } } } 這是我的最終代碼 |
csmyldl 發(fā)表于 2019-10-30 07:52 謝謝,知道了,是第二個(gè)循環(huán)里面要用一個(gè)參數(shù)代替a,我沒注意直接改變a的值了 |
mengzhixinheng 發(fā)表于 2019-10-30 07:49 對,在第二個(gè)循環(huán)要用其他參數(shù)代替a,謝謝 |
|
k=1時(shí),此時(shí)a=0xfe,for (l=1;l<=8;l++)循環(huán)控制一個(gè)燈走一遍,k=2時(shí),此時(shí)a=0xff,執(zhí)行a=a<<k后,a=0xfc,才符合你編程邏輯 |
k值不對,第一遍后a的初值被改變?yōu)?xff |
寫了2種位移,嵌套循環(huán),也算是花樣流水燈了,自己寫的會不知道流水燈效果,那你不是寫,是抄襲的?你可分別把其中一條移位語句注釋掉試看。 |
![]() |
Powered by 單片機(jī)教程網(wǎng)