导航:首页 > 操作系统 > 单片机1ms延时

单片机1ms延时

发布时间:2023-08-04 19:42:21

A. 设单片机系统采用6M晶振,写出用定时器1方式2实现1ms的延时程序

6M晶振,方式2定时1mS的时间太长,不能直接实现,(最大定时应该是512uS)下面是500uS定时示例程序,可在中断函数中计数每2次得1S。
void Timer1Init(void) //500微秒@6.000MHz
{
AUXR &= 0xBF; //定时器时钟12T模式
TMOD &= 0x0F; //设置定时器模式
TMOD |= 0x20; //设置定时器模式
TL1 = 0x06; //设置定时初值
TH1 = 0x06; //设置定时重载值
TF1 = 0; //清除TF1标志
TR1 = 1; //定时器1开始计时
}

B. C51单片机,谁帮我写个1ms的延时

void delay(uint i) //调用子程序所需时间)
{
uchar j,k;
for (j=i; j>0; j--)
for(k=0;k<30;k++);
}

在程序调用函数就可以得到1ms的程序,具体调用如下:
delay(10); //延时1.011ms

C. 51单片机中,写个延时函数,延时1ms,该怎么写,为什么

用汇编语言写可以精确计算,但有时想拼出整数的ms或10ms也不容易,计算方法如下图说明:

而C语言靠经验和实验得来的,如下面程序

如果不准(与晶振频率有关),调K的值,,软件仿真查看,直到大致准确,想更精确用定时器

void delay(unsigned char i)//延时程序
{

unsigned chari,k;

for(j=i;j>0;j--)
for(k=125;k>0;k--);
}

D. 单片机延时1ms问题

首先,不知道你的晶振频率是多少,然后不知道你使用的是哪种类型的单片机。
我根据KEILC的测试:for循环这个语句是双周期指令2个机器周期,j=0;j<33;j++。这有三步单周期指令,每次三个机器周期。。。所以时间是(3j+2) 乘以循环次数i。就是时间微秒
上述指令在12MHZ的晶振频率,AT89S52的单片机测试情况下为0.0001060秒。也就是1MS

E. 求一个1ms的单片机C语言延时程序

void
delay(char
x)
{
unsigned
char
a,b,c;
for(c=x;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--);
}
学过标准C就知道了,char

int
是可以相互转换的,char的取值范围是-128~+127
unsigned
char
的是0~255
可以用unsigned
int啊,我一般都是用char的,用unsigned
int的话占的字节比较多,运行速度也没char那么快,计算机会麻烦点,建议使用char

阅读全文

与单片机1ms延时相关的资料

热点内容
如何让软件在多个安卓系统上运行 浏览:571
java判断半角 浏览:880
java判断正负 浏览:320
刷头条程序员的日常 浏览:102
吉林程序员吐槽 浏览:243
单片机温度范围 浏览:419
程序员为什么素质低 浏览:897
可爱的程序员小姐姐 浏览:145
服务器上网站的地址 浏览:798
苹果平板如何找到app资源库 浏览:321
阿里云可以云服务器地址 浏览:249
熊猫绘画app如何导入图片 浏览:555
如何自己编辑手机app 浏览:924
程序员那么可爱带的项链 浏览:532
安卓系统导航mic什么意思 浏览:192
编译sdk如何输出bin文件 浏览:678
如何用html5开发app 浏览:142
怎么隐藏苹果的app 浏览:328
上海積架空气压缩机 浏览:458
51单片机换行 浏览:739