单片机c语言延时函数程序 单片机编程延时函数

单片机C语言延迟程序下面的延时的基本程序(中断加计数器)
********
void
T0_int(void)
interrupt
1
{
TH0
=
0x4C;
//重新装载,50MS定时器初值
TL0
=
0x00;
T0_count;
if(T0_count==20)
//1S到
{
T0_count
=
0;
//在这写程序
}
}
main()
{
TMOD
=
0x01;//定时器0,工作方式1,16位计数
TH0
=
0x4C;
//50MS定时器初值
TL0
=
0x00;
IE
=
0x82;
//开总中断,开T0中断
EA
=
1;
ET0
=
1;
TR0
=
1;
T0_count
=
0;
i
=
0;
loop:
goto
loop;
}
还有:
for(us=0;us60;us);
/*延时500us*/
for(us=0;us1;us);
/*
延时15微秒*/
for(us=0;us5;us);
/*
延时51微秒*/
单片机流水灯C语言程序(8个灯 , 依次点亮每个灯 , 延时500MS)单片机流水灯C语言程序的源代码如下:
#include //51系列单片机定义文件
#define uchar unsigned char //定义无符号字符
#define uint unsigned int //定义无符号整数
void delay(uint); //声明延时函数
void main(void)
{
uint i;
uchar temp;
while(1)
{
temp=0x01;
for(i=0;i8;i) //8个流水灯逐个闪动
{
P1=~temp;
delay(100); //调用延时函数
temp=1;
}
temp=0x80;
for(i=0;i8;i) //8个流水灯反向逐个闪动
{
P1=~temp;
delay(100); //调用延时函数
temp=1;
}
temp=0xFE;
for(i=0;i8;i) //8个流水灯依次全部点亮
{
P1=temp;
delay(100); //调用延时函数
temp=1;
}
temp=0x7F;
for(i=0;i8;i) //8个流水灯依次反向全部点亮
{
P1=temp;
delay(100); //调用延时函数
temp=1;
}
void delay(uint t) //定义延时函数
{
register uint bt;
for(;t;t--)
for(bt=0;bt255;bt);
}
扩展资料
51单片机流水灯的源代码如下
#includereg51.h
#includeintrins.h
void delay(int a)
{
int i;
while(a--)for(i=0;i110;i);
}
main()
{
int i;
while(1)
{
P0=0xfe;
for(i=0;i8;i)
{
P0=_crol_(P0,1);
delay(500);
}
}
}
51单片机C语言程序中延时函数delay的原理是什么?原理:只是执行一些所谓的“无实际意义的指令”,如缩放或执行一个int自加,简单地说,就像高中数学中的“乘法原理”一样 , 很容易迅速增加上面提到的“无意义指令”的数量
关于大小的值:如果是在C语言中,该值不仅与水晶振动、单片机本身的速度,但也与C的编译器,所以 , 虽然这个值可以精确计算,但大多数情况下,程序员是经验值 。
当然,如果你在汇编中编程,情况就不同了,因为每条指令使用一定数量的机器周期,你当然可以根据所有指令使用的总时间来计算特定延迟的总时间 。
扩展资料:
定义延迟XMS毫秒的延迟函数
Voiddelay(unsignedintXMS)//XMS表示需要延迟的毫秒数

无符号intx , y;
For(x=XMS;X0;X-)
For(y=110;Y”0;Y-);

使用:
VoidDelay10us(ucharMs)

Uchar数据我;
(;女士“0;------Ms)
对于(I = 26)我 0;我-);

I=[(延迟值-1.75)*12/ms-15]/4
【单片机c语言延时函数程序 单片机编程延时函数】单片机c语言延时函数程序的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于单片机编程延时函数、单片机c语言延时函数程序的信息别忘了在本站进行查找喔 。

    推荐阅读