![]() |
發布時間: 2021-9-6 16:33
正文摘要:這是一段花樣流水燈的代碼,想要燈從兩邊往中間亮,一直循環,但現在最中間的兩盞燈不亮,請問如何解決? 單片機源程序如下: #include <reg52.h> void DelayMs(unsigned int n); /*------------------*/ vo ... |
ZMRGHY 發表于 2021-9-6 19:24 厲害了大師,不用了,我自己想想把它搞定 |
小意思,用不再寫一個從中間向倆端的流水燈呀 |
簡化后的。。。。溫故知新,,,溫習一下位移運算。。。。 |
![]() ![]() ![]() ![]() 沒什么問題呀 |
|
|
#include <reg52.h> void DelayMs(unsigned int n); /*------------------*/ void main (void) { unsigned char temp =0x7E; unsigned int temph , templ; while(1) { P1=temp; DelayMs(2000); if(temp==0xff) temp=0x7E; { temph=temp & 0xf0,templ=temp & 0x0f; temph=(temph >> 1)|0x80, templ=(templ << 1)|0x01; temp=temph|templ;} } } /*---------------------*/ void DelayMs(unsigned int n) { unsigned int i,j; for(i=0;i<n;i++) { for(j=110;j>0;j--); } } |