首先这是一个延时子程序,函数名是Delay,void delay(unsigned int i)这句里面的void 是指函数执行完成后返回的结果,现在是返回的无类型,就是没有返回结果。在后面(unsigned int i)是要传递给函数运算的数,这个类型是无符号的整型变量。在函数体,unsigned int j;这句是定义一个无符号整型变量j。
定义了三个无符号整型变量i,j,k,其中对k进行了初始化赋值,即k=2500
int 和 unsigned int 比较时,int 会被强制转型成 unsigned int。
定义3个 变量j, i 和k;k同时初始化为2500;
延时,让程序运行要消耗时间,这样达到延时效果
这是典型的单片机上的 通过代码指令实现的延时函数。当运行库不支持sleep/delay这些延时函数时候,就用这个代替。
{ unsigned int i,j; for(i=0; i { for(j=0;j<120;j++) } } void main(void) { while(1) { P10=1; delay(800) ; P10=0; delay(800) } } 设单片机系统时钟频率为12MHz,工作于12时钟模式,试编程使P1.2引脚输出周期为5ms的方波。 请为每条语句加上详细的注释。
这要看你的i+j的输出格式的 如果是%u 输出的话 那肯定是没有负数的。应该是一个很大的正书。但是以%d输出的话就会转成int 类型了 就会是-10了。其实你的理解是对的,不要相信别人的答案
1.h>unsigned char i=0,j=0,t=0;//改变i和j的值,可以修改数码管显示的初始值,(就是从多少开始显示)void delay()//延时20ms{unsigned int i,j;for(i=20;i>0;i--)for(j=120;j>0;j--);}void int0()//定时器初始化{TMOD=0x01;//方式一TH0=0x3c;//初值15536TL0=0xb0;EA=1;//总...