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

📄 a51软件延时计算.cpp

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

void main(void)
{
    int x=256,y=256;
	int k,wck;
    long int i,j;
    long int n,n1;
    long int tempx,tempy,tempk;
    while(1)
    {
		printf("请输入\n两层循环最大延迟时间为:130 000us\t最小延迟时间为:11us\t最小步进为:2us\n");
yanshi:	printf("延迟时间us(单位:微秒):");
		scanf("%ld",&n);
		if(n>=130812||n<11)
		{
			printf("\n输入错误!超出延迟时间范围...\a\n");
            goto yanshi;
		}

wucha:	printf("允许误差us(单位:微秒):");
		scanf("%d",&k);
		if(k>250)
		{
			printf("\n呵呵~大哥,这误差也未免太大了吧!\a\n");
			goto wucha;	
		}

		for(i=1;i<x;i++)
			for(j=1;j<y;j++)
				for(wck=1;wck<=k+1;wck++)
				{
					if((long int)((2*i*j+3*i+6)/wck)==(long int)(n/wck))
					{
						 tempx=i;tempy=j;
						 n1=2*tempx*tempy+3*tempx+6;
						 printf("x=%ld\ty=%ld\tDelay_Time=%ld\n",tempx,tempy,n1);
					}
				}
		printf("\n【A51代码:】\n");
		printf("----------------------------------------\n");
		printf("DELAY:                   ; %ld%+d us \n",n,n1-n);
		printf("       MOV     R7,#%d\n",tempx);
		printf("DEL1:  MOV     R6,#%d\n",tempy);
		printf("       DJNZ    R6,$\n");
		printf("       DJNZ    R7,D1\n");
		printf("       RET\n");
		printf("\n----------------------------------------\n");
		printf("①Alt+空格→E→K 用鼠标选择代码(背景为白色);\n②Alt+空格→E→Y OK!复制完成.(化繁为简,祝你马到成功!)\n");
		printf("③如果要退出,方法很多:◆Alt+空格→C\t◆鼠标双击左上角\t◆鼠标单击右上角\n");
	}   
}
/*
----------------------------------------------------------------
▲测试结论:
延迟时间:	Delay_Time=(2*y+1)*x+2*x+6	(包括ACALL 2')	
----------------------------------------------------------------
▲程序代码:
DELAY:
	MOV	R7,#x		
D1:	MOV	R6,#y	
	DJNZ	R6,$			
	DJNZ	R7,D1			
	RET				
*/

⌨️ 快捷键说明

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