用51单片机写1ms延时函数
时间: 2024-05-01 14:23:47 浏览: 260
以下是用51单片机汇编语言编写的1毫秒延时函数:
```
Delay_1ms: ; 延时1ms
mov R7, #5 ; 设置循环次数为5(经过测试比较准确)
Delay_1ms_1:
mov R6, #250 ; 设置内部循环次数为250
Delay_1ms_2:
djnz R6, Delay_1ms_2 ; 内部循环
djnz R7, Delay_1ms_1 ; 外部循环
ret ; 返回
```
使用方法:在需要延时1毫秒的地方调用`Delay_1ms`函数即可。需要注意的是,这个延时函数并不是非常准确,可能会因为不同的晶振频率和环境温度等因素导致延时时间略有偏差。如果需要更高精度的延时,建议使用定时器来实现。
相关问题
用51单片机写1ms延时函数C语言
以下是用51单片机写的1ms延时函数C语言代码:
```
void delay_ms(unsigned int n)
{
unsigned int i,j;
for(i=0;i<n;i++)
for(j=0;j<121;j++);
}
```
其中,n为需要延时的毫秒数,具体的延时时间可能会有所偏差,需要根据实际情况进行调整。
51单片机1ms延时函数
根据提供的引用内容,可以得知51单片机的1ms延时函数有两种实现方式,分别是用于产生较长延时的`Delay1ms(unsigned int i)`函数和用于产生短暂延时的`delayms(unsigned char x)`函数。
以下是两种函数的实现方法:
1. `Delay1ms(unsigned int i)`函数
```c
void Delay1ms(unsigned int i)
{
unsigned char j, k;
while (i--)
{
for (j = 0; j < 4; j++)
{
for (k = 0; k < 113; k++);
}
}
}
```
2. `delayms(unsigned char x)`函数
```c
void delayms(unsigned char x)
{
unsigned char i, j;
while (x--)
{
for (i = 0; i < 13; i++)
{
for (j = 0; j < 200; j++);
}
}
}
```
阅读全文