延时函数计算(相关代码生成):
#include "reg52.h"
#include <INTRINS.H>
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
_nop_();
i = 22;
j = 3;
k = 227;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
while(1)
{
P2=0x55;//0101 0101
Delay500ms();
P2=0x00;//0000 0000 0ΪÁÁ
Delay500ms();
}
}
LED流水灯:
使用C语言的查表和移位实现简单流水灯_c语言灯移位-CSDN博客
#include "reg52.h"
#include <INTRINS.H>
void Delay1ms() //@11.0592MHz
{
unsigned char i, j;
_nop_();
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
}
void Delay_time(int x)//ms
{
int i;
for(i=0;i<x;i++)
{
Delay1ms();
}
}
void main()
{
unsigned char n;
while(1)
{
P2=0xfe;
for(n=0;n<8;n++)
{
Delay_time(200);
P2<<=1;
P2=P2|0x01;
}
}
}