#include <regx52.h>
#include <intrins.h>
void Delay1ms(unsigned int xms) //@12.000MHz
{
unsigned char i, j;
i = 2;
j = 239;
while(xms)
{
//i = 2; //这两个放到这里和放到上面完全不一样,上面延迟正常;下面延迟偏长;怀疑是溢出问题
//j = 239;
do
{
while (--j);
} while (--i);
xms--;//xms=xms-1;
}
}
void main()
{
while(1) //???
{
P1=0X0F;//0000 1111
Delay1ms(100);
P1=0X87;//1000 0111
Delay1ms(100);
P1=0XC3;//1100 0011
Delay1ms(100);
P1=0XE1;//1110 0001
Delay1ms(100);
P1=0XF0;//1111 0000
Delay1ms(100);
P1=0X78;//0111 1000
Delay1ms(100);
P1=0X3C;//0011 1100
Delay1ms(100);
P1=0X1E;//0001 1110
Delay1ms(100);
}
}
本文详细描述了一个C语言程序,其中包含了一个自定义的延时函数voidDelay1ms,用于在嵌入式微控制器上实现1ms的延迟。程序中使用位操作控制GPIO端口,并探讨了可能影响延迟性能的问题,如定时器溢出和中断处理。

被折叠的 条评论
为什么被折叠?



