1樓:石燕橋
你呼叫函式的時候delay(200),會有個延時時間,如果你的延時是是200,200就被賦值給z
然後再把z賦值給x 所以x就是200的值,
若你把函式該成delay(400),那麼應該x就等於400.
2樓:匿名使用者
z 是呼叫該子函式時賦值的,如 delay(200)for(x=z;x>0;x--) 是 賦值 x=z 如果 x > 0 則 x = x-1
for(y=200;y>0;y--); 是 賦值 y=200 如果 y > 0 則 y = y -1
結果 z = 200 是不變的
x = 200 是 因為 x 迴圈 還沒有開始,y = 0 是 y 已經結束一個迴圈。
3樓:匿名使用者
這個呼叫的時候才給z 和x賦值,
如:delay(1);
這時候 z==1;
for(x=1;x>0;x--) x 的值 每-1for(y=200;y>0;y--);這個迴圈200次; 每次退出的時候y=0;
我不知道 你 怎麼呼叫的這個函式;我猜 你 可能是這樣呼叫的: delay(200) ;
4樓:匿名使用者
延時函式。如果z是毫秒為單位,那麼for(x=z;x>0;x--)的每一步就是1ms.
之所以寫上for(y=200;y>0;y--);,是因為你的**每跑一次for,需要消耗2條指令(一條y--,一條y>0),這兩條指令合起來在你的**上耗時0.005ms。
5樓:走過燈火瀾柵處
因為這是一個帶引數的子函式,子函式被呼叫時需要賦值給傳遞引數,例如delay(200); 這就是呼叫這個函式語句,它把200這個值賦值給傳遞引數z,所以z就是200了,你的程式應該有這麼一段,並不是單獨這一個子函式就可以執行的,還要有main(),在main()函式或者其他函式裡應該有這麼一句,當然你也可以改變z的傳遞數值例如delay(80); 那麼z的值就是80這個函式也是這個意圖,方便不同時候賦值不同,得到延時的時間不同。
6樓:匿名使用者
看上面,是一個延時3程式。z是呼叫子程式時賦值的,其它參照1樓解答就可以了。但個人感覺,x也應該是0。
7樓:匿名使用者
這是一個延遲函式,簡單點說,就是讓程式停在這裡一段時間,在for迴圈中,x和z的值都賦值了。
8樓:06米老鼠
你仔細查一下呼叫delay(uint z);函式的時候給沒給值。一般不給值編輯不過去。你給的值是多少x的值就是多少,假如為1,執行函式時,第一個for語句執行一次,後一個要執行200次。
9樓:徐霄沛
這是一個雙重迴圈呀,一般做cpu空轉用的延時程式。y在每次內部迴圈的時候,都會重置為200,然後迴圈200次內迴圈。
10樓:咋都註冊了
這個是個子函式。你肯定在別的地方有這麼一句。 delay(200)
C51微控制器程式設計
include define uchar unsigned char define uint unsigned intsbit high key p1 0 sbit low key p1 1 sbit led p2 0 sbit speak p2 1 uint count void delay ui...
c51微控制器中斷程式中的interrupt1,2,3是由什麼決定的
衛戍邊疆 中斷是由於某種事件的發生 硬體或者軟體的 計算機暫停執行當前的程式,轉而執行另一程式,以處理髮生的事件,處理完畢後又返回原程式繼續作業的過程。中斷是處理器一種工作狀態的描述。1 int0 外部中斷0,由p3.2埠引入,低電平或下降沿引起。預設優先順序最高。2 int1 外部中斷1,由p3....
C51微控制器PWM管腳輸出電壓異常
你微控制器的具體型號是什麼?微控制器的管腳分為了漏極開路和推輓兩種輸出方式,如果你用的微控制器是漏極開路輸出的,要在管腳上加上拉電阻。如果是推輓輸出可以不用加。按照你說的情況你的微控制器可能是漏極開路輸出的,在管腳上加下拉電阻肯定是把電平拉低。你可以試試把管腳配置為推輓輸出方式 正常,開路測肯定還是...