|  | 
 
5鱼币 
| 复制代码#include <reg51.h> 
#include <intrins.h>
#define  NOP() _nop_()  /* 定义空指令 */         
void delay(unsigned int i);      //函数声明
 
// 此表为LED字模          
unsigned char code LED7Code[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
                               /*  { ~0x01,~0x02,~0x04,~0x08,~0x10,~0x20,~0x40,~0x80}*/
 
main()
{  
   unsigned int LedNumVal=1 ,C ;  //定义变量
   
  while(1)
  {         
           if (++C>= 300) 
                  { LedNumVal++ ;         //每隔300个扫描周期加1
                  C =0;                 //每隔300个扫描周期清0
                 }        
           // 将字模送到P0口         
                P0 = LED7Code[LedNumVal%10];     //LED7 
                  
                             
                delay(150);          //调用延时函数
         
  }   
}
        
/*****************************************************************
*                                                                                                                                 *
*                         延时函数                                                                                 *
*                                                                                                                                 *
*****************************************************************/
void delay(unsigned int i)
{
    char j;
    for(i; i > 0; i--)
        for(j = 200; j > 0; j--);
} 
 
 以上程序为89C51 8位数码管显示程序,延时看不懂。delay(150),这个150啥意思,与下面的相乘还是搞啥?下面的 for 语句,第一个,i没初始化,定义无符号的i,想不通,i--为啥值?下面的for,后面有分号,初始化j=200,条件判断j已经大于0,应该不循环,百思不得其解。。。。百度无果。自己转程序,打delay 的值,2个都为4199866,改delay(150)里面的值,明显数码管刷新变快,但打印值还是4199866。
 
 
第一个,i没初始化,定义无符号的i,想不通 其实是已经初始化了,就是函数传入的参数 150
 下面的for,后面有分号,初始化j=200,条件判断j已经大于0,应该不循环,百思不得其解。。。。 的解答是:
 分号就是运行一句空语句
 因为后面还有j--所以当j减到0的时候再下一次循环就不满足条件了,那时才停止循环
 
 最好delay函数的作用就是单词的含义,延迟的作用让单片机执行领个嵌套的for循环。因为每一个语句的执行都需要时间,这样就达到延时的效果
 | 
 
最佳答案
查看完整内容 第一个,i没初始化,定义无符号的i,想不通 其实是已经初始化了,就是函数传入的参数 150
下面的for,后面有分号,初始化j=200,条件判断j已经大于0,应该不循环,百思不得其解。。。。 的解答是:
 分号就是运行一句空语句
因为后面还有j--所以当j减到0的时候再下一次循环就不满足条件了,那时才停止循环
最好delay函数的作用就是单词的含义,延迟的作用让单片机执行领个嵌套的for循环。因为每一个语句的执行都需要时间,这 ... |