你這延時時間過短了,給你改一下試看,把延時函數里面的前2個循環后面的分號去掉才對。
- #include <at89x51.h>
- sbit L1=P0^1;
- void delay02s(void)
- {
- unsigned char i,j,k;
- for(i=20;i>0;i--)
- for(j=20;j>0;j--)
- for(k=248;k>0;k--);
- }
- void main()
- {
- while(1)
- {
- L1=0;
- delay02s();
- L1=1;
- delay02s();
- }
- }
復制代碼
循環后有分號說明是空循環,一個循環完成后再一個循環,20循環2次248循環一次總加起來太短。
|