上传者: 38593644
|
上传时间: 2022-05-10 23:46:11
|
文件大小: 183KB
|
文件类型: PDF
#include
sbit P1_0 = P1^0;
void Delay(); // 下面引用时一定要和这里的大小写一致否则会有警告或错误
void Main()
{
while (1) // 开始一直循环
{
P1_0 = 0;
Delay(); // 没有参数也要加 () 否则会有Warning
P1_0 = 1;
Delay();
}
}
void Delay() // 12M晶振1s延时
{
unsigned char h, i, j, k;
for (h = 5; h 》 0; h--)
for (i = 4; i 》 0; i--)
for (j = 116; j 》 0; j--)
for (k = 214; k 》 0; k--); // 最后个要有 ; 号
}
//=======以下非代码==========//
原理,利用h,i,j,k循环指令消耗掉一定时间来达到延时,为什么利用循环延时的做法,在12M晶振延时1秒中需要h,i,j,k四个变量,且各变量的值是上面代码中那样呢?这要从单片机的周期说起,单片机有指令周期,机器