代码解释void Delay10ms(unsigned int c) { unsigned char a,b; for(;c>0;c--) for(b=38;b>0;b--) for(a=130;a>0;a--); }
时间: 2023-05-30 09:02:32 浏览: 45
这段代码是一个延时函数,用来产生一定时间的延时。函数的输入参数为一个无符号整型数 c,表示需要延时的毫秒数。
函数的实现过程是一个三重循环嵌套。循环的次数由参数 c 决定。在每次循环中,内层的两个循环分别使变量 b 和 a 递减,从而产生一定的延时。由于循环次数较多,所以可以产生精度较高的延时效果。
具体来说,内层的两个循环分别使用变量 b 和 a 控制循环次数。循环次数的计算是通过不断递减变量 b 和 a 实现的。具体的值是经过实验调试得到的,可以产生一定的延时效果。
相关问题
void delay(unsigned int xms){ //ÑÓʱº¯Êý unsigned int i, j; for(i=0; i<xms; ++i) for(j=0; j<110; ++j); } void delay1ms(unsigned char c) { unsigned char a,b; for(c ;c>0;c--) for(b=142;b>0;b--) for(a=2;a>0;a--); }
这段代码是实现延时的函数,其中delay函数的参数是需要延时的毫秒数,而delay1ms函数的参数是需要延时的毫秒数的字符表示。具体实现是使用了循环计数的方式来进行延时。其中,delay函数的内部循环计数器为110,而delay1ms函数的内部循环计数器为142,这些计数器的具体值可以根据实际需求进行调整。需要注意的是,使用这种方式进行延时会占用CPU的时间,因此在实际应用中应该尽量避免使用。
#include <stc8.h> #define c 30 void delay(unsigned int ms) { unsigned int i,j; for(i=ms;i>0;i--) { for(j=147;j>0;j--); } } void pwm(unsigned char k) { unsigned char n; for(n=0;n<c;n++) { P3=0X00; delay(k); P3=0XFF; delay(c-k); } } void main() { //³õʼ»¯´úÂë P3 = 0x00; //ÉèÖÃÖÐ¶Ï EA = 1; while (1) { //Ö÷Ñ»·´úÂë unsigned char t; for (t = 1; t < c; t++) { pwm(t); } for (t = c - 1; t > 0; t--) { pwm(t); } delay(2000); } } 优化一下代码
#include <stc8.h>
void delay(unsigned int ms)
{
unsigned int i, j;
for (i = ms; i > 0; i--)
{
for (j = 147; j > 0; j--);
}
}
void pwm(unsigned char k)
{
unsigned char n;
for (n = 0; n < k; n++)
{
P3 = 0x00;
delay(k);
P3 = 0xFF;
delay(c - k);
}
}
void main()
{
// 初始化引脚
P3 = 0x00;
// 设置中断
EA = 1;
while (1)
{
unsigned char t;
// 主循环
for (t = 1; t < c; t++)
{
pwm(t);
}
for (t = c - 1; t > 0; t--)
{
pwm(t);
}
delay(2000);
}
}
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)