/*******************************************************************************
* 文件名称:LED闪烁实验
* 实验目的:1.掌握单片机IO口操作的基本方法
* 2.掌握软件延时函数的设计方法
* 程序说明:LED以0.2S为间隔亮灭
* 硬件环境:IAP15F2K61S2单片机,单片机内部振荡器频率:11.0592M
* 日期版本:2012-9-3/V1.0a
*******************************************************************************/
#include "reg52.h" //定义51单片机特殊功能寄存器
#include "intrins.h"
//关闭外设
void cls_buzz(void)
{
P2 = (P2&0x1F|0xA0);
P0 = 0x00;
P2 &= 0x1F;
}
//延时函数
void delay() //@11.0592MHz
{
unsigned char i, j, k;//定义一个8位的无字符变量,取值范围0-255
_nop_();
_nop_();
i = 9;
j = 104;
k = 139;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
//主函数
void main(void)
{
cls_buzz();
while(1)
{
P2 = ((P2&0x1f)|0x80);
P0 = 0xff; //LED熄灭
P2 &= 0x1f;
delay();
P2 = ((P2&0x1f)|0x80);
P0 = 0x00; //LED点亮
P2 &= 0x1f;
delay();
}
}
A: 包括在库函数intrins.h中的