单片机延时计算程序源代码

源代码在线查看: for循环精确定时计算.cpp

软件大小: 64 K
上传用户: lonelysnow
关键词: 单片机 延时计算 程序 源代码
下载地址: 免注册下载 普通下载 VIP

相关代码

				#include
				
				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 358 595us\t最小延时为:13us\t最小步进为:3us\n");
						printf("-------------------------------------------------------------------------------\n");
				yanshi:	printf("--------------------------------\n");
				        printf("延迟时间us(单位:微秒):");
						scanf("%ld",&n);
						if(n>33358595||n						{
							printf("\n输入错误!超出延迟时间范围...\a\n");
				            goto yanshi;
						}
				wucha:	printf("允许误差us(单位:微秒):");
						scanf("%d",&k);
						printf("--------------------------------\n");
				        if(k>5)
						   {
							     printf("\n呵呵~大哥,这误差也未免太大了吧!呵呵,是不是不相信我的计算能力啊!\a\n");
							     goto wucha;
				            }   	
				         printf("Calculating....\n");
				         for(l=1;l				            for(j=1;j				                for(i=1;i				                    for(wck=1;wck								        {
				                            if((long int)((((2*i+3)*j+3)*l+5)/wck)==(long int)(n/wck))
									           {
										          tempx=l;tempy=j;tempz=i;//最内
				                                  n1=(((2*tempz+3)*tempy+3)*tempx+5);			
								                  printf("i=%ld\tj=%ld\tk=%ld\tDelay_Time=%ld\n",tempx,tempy,tempz,n1);	
									           }
								        }               	
						printf("\n【C51代码:】\n");
						printf("--------------------------------------------------------------\n");
						printf("//延时%ld%+dus 函数定义\n",n,(n1-n));
						printf("void delay%ldms(void)\n",(n/1000));
						printf("{\n");		
						printf("    unsigned char i,j,k;\n");
						printf("    for(i=%d;i>0;i--)\n",tempx);
						printf("    for(j=%d;j>0;j--)\n",tempy);
						printf("    for(k=%d;k>0;k--);\n",tempz);
						printf("}");
						printf("\n--------------------------------------------------------------\n");
						printf("使用技巧:\n");
						printf("①Alt+空格→E→K 用鼠标选择代码(背景为白色);\n②Alt+空格→E→Y OK!复制完成.(化繁为简,祝你马到成功!)\n");
						printf("③如果要退出,方法很多:◆Alt+空格→C\t◆鼠标双击左上角\t◆鼠标单击右上角\n");
					}
				}
				/*
				〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
				
				★最后,实验总结:
				
				【C51代码:】
				▲程序代码:
				void delay__ms(void)	//x,y,z位固定值,故不能接受参数
				{
					unsigned char i,j,k;
					for(i=x;i>0;i--)
					for(j=y;j>0;j--)
					for(k=z;k>0;k--);
				}
				【Delay_Time=[(2z+3)*y+3]*x+5】
				
				〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
				*/
							

相关资源