⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 三重循环计算工具.cpp

📁 单片机延时计算程序源代码
💻 CPP
字号:
#include<stdio.h>

void main(void)
{
	int k,wck;
    long int i,j,l;
    long int n,n1;
    long int tempx,tempy,tempz;
    while(1)
    {
        printf("-------------------------------------------------------------------------------\n");
		printf("☆请输入☆\n三层循环最大延时为:33 423 880us\t最小延时为:17us\t最小步进为:2us\n");
		printf("-------------------------------------------------------------------------------\n");
yanshi:	printf("--------------------------------\n");
        printf("延迟时间us(单位:微秒):");
		scanf("%ld",&n);
		if(n>33423880||n<17)
		{
			printf("\n输入错误!超出延迟时间范围...\a\n");
            goto yanshi;
		}
wucha:	printf("允许误差us(单位:微秒):");
		scanf("%d",&k);
		printf("--------------------------------\n");
        if(k>30)
		   {
			     printf("\n呵呵~大哥,这误差也未免太大了吧!\a\n");
			     goto wucha;
            }   	
         printf("Calculating....\n");
         for(l=1;l<255;l++)
            for(j=1;j<255;j++)
                for(i=1;i<255;i++)
                    for(wck=1;wck<=k+1;wck++)
				        {
                            if((long int)((2*i*j*l+4*j*l+4*l+7)/wck)==(long int)(n/wck))
					           {
						          tempx=i;tempy=j;tempz=l;
                                  n1=(2*tempx*tempy*tempz+4*tempy*tempz+4*tempz+7);			
				                  printf("x=%ld\ty=%ld\tz=%ld\tDelay_Time=%ld\n",tempx,tempy,tempz,n1);	
					           }
				        }               	
		printf("\n【C51代码:】\n");
		printf("--------------------------------------------------------------\n");
		printf("//函数定义\n");
		printf("void delay(unsigned char x, unsigned char y, unsigned char z)\n");
		printf("{\n");		
		printf("    unsigned char tempx,tempy,tempz=z;\n");
		printf("    do{tempy=y;do{tempx=x;while(--tempx);}while(--tempy);}while(--tempz);\n");
		printf("}\n\n");
		printf("//调用延时函数\n");
		printf("delay(%d, %d, %d);  //%ld%+d us\n",tempx,tempy,tempz,n,(n1-n));
		printf("\n--------------------------------------------------------------\n");
		printf("使用技巧:\n");
		printf("①Alt+空格→E→K 用鼠标选择代码(背景为白色);\n②Alt+空格→E→Y OK!复制完成.(化繁为简,祝你马到成功!)\n");
		printf("③如果要退出,方法很多:◆Alt+空格→C\t◆鼠标双击左上角\t◆鼠标单击右上角\n");
	}
}
/*
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

★最后,实验总结:

【C51代码:】
void delay(unsigned char x, unsigned char y, unsigned char z)
{
        unsigned char tempx,tempy,tempz=z;
        do{tempy=y;do{tempx=x;while(--tempx);}while(--tempy);}while(--tempz);
}

延迟时间为:【Time=[(2*x+2)*y+2*y+2]*z+2*z+7】
即:【Delay_Time=2xyz+4yz+4z+7】

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -