单片机八路抢答器,程序有一段不知道什么意思,能不能解释一下
发布网友
发布时间:2023-09-03 19:25
我来回答
共4个回答
热心网友
时间:2024-08-08 06:18
这个是延时啊,就是让单片机去做一些自减运算,浪费掉执行这些指令时间,达到延时的目的。这个有什么好解释的咯?
for(x=z;x>0;x--)
for(y=110;y>0;y--);
写完整了,就是
for(x=z;x>0;x--)
{
for(y=110;y>0;y--)
{
;//这个分号不能少哦,这里是空指令的意思,但是照样需要浪费掉指令周期的
}
}追问那个Y=110是什么?谢谢你啦
追答就是y自减110次的意思,这个是C的基本语句啊,自减运算没什么好说的。
如果你会用Keil软件仿真的话,设定好晶振频率后,可以得到准确的延时时间,就是执行了delay这个函数一次,会消耗这么多的时间。
具体仿真方法可以在网上找找,这里不好上图
热心网友
时间:2024-08-08 06:19
没什么意思就是一个延时程序,你后面会用到delay(10),括号里是你写的数字,如果是1就代表延时1毫秒,没什么其他的, 这都是固定的!!!希望对你有用!!
热心网友
时间:2024-08-08 06:19
Z是个变量 当Z取值时 X=Z,X和Y是乘积关系
热心网友
时间:2024-08-08 06:20
void delay (unsigned char z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
这个延时是什么意思?后面就没用到x y z 了;
这是一个软件延时子函数。
以上是让单片机执行内部for循环for(x=z;x>0;x--) ,注意你要是在delay (100)写入100,for(x=100;x>0;x--),x= 100; 大于0,x--减到0为止,
注意for(y=110;y>0;y--); y = 110;大于0,y--减到0为止, for(x=z;x>0;x--) for(y=110;y>0;y--); 这里x-1每减次,y要减去110;
Z = 100;相当于X减去100,Y要执行Y--减去100次,在这段时间单片机在执行for浪费的时间称之为延时。
这个延时是什么意思?后面就没用到x y z 了; x y z是定义一个存放初值变量。