#include <reg52.h> //52系列單片機頭文件
下面這個簡單程序,延時函數的參數設置超過無符號整型0-65535的范圍后,在單片機執行結果是led小燈一直亮,keil無報錯。這是怎么回事??
#define uint unsigned int //宏定義
sbit led1=P1^0; //聲明單片機P1口的第一位
void delayms(uint); //聲明子函數
void main() //主函數
{
while(1) //大循環
{
led1=0; /*點亮第一個發光二極管*/
delayms(200); //延時200毫秒
led1=1; /*關閉第一個發光二極管*/
delayms(800); //延時800毫秒
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--) //i=xms即延時約xms毫秒
for(j=110;j>0;j--);
}
|