📄 c51软件延时计算.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;
while(1)
{
printf("-------------------------------------------------------------------------------\n");
printf("☆请输入☆\n两层循环最大延迟时间为:130 000us\t最小延迟时间为:12us\t最小步进为:2us\n");
printf("-------------------------------------------------------------------------------\n");
yanshi: printf("--------------------------------\n");
printf("延迟时间us(单位:微秒):");
scanf("%ld",&n);
if(n>=130812||n<12)
{
printf("\n输入错误!超出延迟时间范围...\a\n");
goto yanshi;
}
wucha: printf("允许误差us(单位:微秒):");
scanf("%d",&k);
printf("--------------------------------\n");
if(k>50)
{
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+4*i+6)/wck)==(long int)(n/wck))
{
tempx=i;tempy=j;
n1=(2*tempx*tempy+4*tempx+6);
printf("m=%ld\tn=%ld\tDelay_Time=%ld\n",tempy,tempx,n1);
}
}
printf("\n【C51代码:】\n");
printf("--------------------------------------------------------------\n");
printf("//函数定义\n");
printf("void delay(unsigned char m, unsigned char n)\n");
printf("{\n");
printf(" unsigned char tempm,tempn=n;\n");
printf(" do{tempm=m;while(--tempm);}while(--tempn);\n");
printf("}\n\n");
printf("//调用延时函数\n");
printf("delay(%d, %d); //%ld%+d us \n",tempy,tempx,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 m, unsigned char n)
{
unsigned char tempm,tempn=n;
do{tempm=m;while(--tempm);}while(--tempn);
}
延迟时间为:【Time=(2*m+2)*n+n*2+6】
Time=2*m*n+4*n+6
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -