![]() |
發布時間: 2016-12-26 11:18
正文摘要:點亮1,3,5,7這四個發光管,如何用總線操作完成。我自己是這樣的。 #include<reg52.h> void main() { P1=0xfe; P1=0xfc; ... |
MOV P0,H0FE |
按照程序執行順序,11111110執行到11111100到11101111到11001111然后結束,每一條重新執行速度非?,你感受不到,在現實中就是單片機只顯示了第四行功能,也就是只亮兩個燈 |
void main() { whilw(1) { P1=0xaa; } } 這樣就可以了,一次點亮就行,如果要依次點亮就不是這樣寫 |
認真學 發表于 2021-7-14 10:57 你的名字起的真不錯!我只能這么說了。。。按你的名字來吧! |
void main() { P1=Oxfe;Oxfb;Oxef;Oxbf; } 是這樣的嗎 |
.meiyou 問題吧 |
如果只是一次點亮1357用一條語句就行了 |
感覺都沒有循環,雖然我是剛接觸,但還是能看懂一點,呵呵![]() |
你只點亮了一瞬間 沒有保持 while(1) { P1=0xfe; P1=0xfc; P1=0xef; P1=0xcf; } |
//點亮1,3,5,7這四個發光管 #include<reg52.h> void main() { while(1) { P1=0xaa; ) } |
其實你差不多了,再仔細研究一下![]() |
你這個肯定不對三 你不覺得少了東西? |
已經弄明白了,多謝各位的幫助! |
while 來一個循環 |
執行完之后應該最后一條有效吧,然后程序就跑飛了 |
要正確的點亮1357 你可以賦值0x55 |
qq23412 發表于 2016-12-31 21:08 第二條語句點亮的第二個,同時也滅了其他燈。不信你可以留四條賦值語句中的其中一條試試 |
同學,你p1在第一條語句里點亮了第一個燈,但同時也滅了其他的燈 |
試試這個程序怎么樣。 #include<reg52.h> #include<intrins.h> void Delay10ms(unsigned int a) { unsigned int b,c; for(c=a;c>0;c--) for(b=2000;b>0;b--); } main() { unsigned char LED; LED=0x80; while(1) { P0=LED; Delay10ms(50); LED=_crol_(LED,2); } } |
你的這段都不是這個意思 |
本帖最后由 zl2168 于 2016-12-27 21:32 編輯 中間要有延時,而且要循環顯示。 花樣循環燈 ⑴ 花樣循環1 ① 全亮2秒; ② 從上至下依次暗滅(間歇約0.5秒),每次減少一個,直至全滅; ③ 從上至下依次點亮(間歇約0.5秒),每次增加一個,直至全亮; ④ 閃爍5次(亮暗時間各約0.5秒); ⑤ 重復上述過程,不斷循環。 ⑵ 花樣循環2 ① 全亮,全暗,并重復一次; ② 從上至下,每次亮2個,并重復一次; ③ 從上至下,每次亮4個,并重復一次; ④ 從上至下,每次間隔亮2個(亮燈中間暗一個),并重復一次; ⑤ 從上至下,每次間隔亮4個(亮燈中間暗一個),并重復一次; ⑥ 上述過程更新間隔0.5秒,不斷循環重復。 先Proteus仿真一下,確認有效 ![]() 以上摘自張志良編著《單片機實驗實訓100例》 ISBN978-7-5124-1603-1,北航社出版 書中電路和程序設計有詳細說明,程序語句條條有注解。 |
多試幾次 |
如果只是一次點亮1357用一條語句就行了 |