【blue bridge cup】2月20日 8位LED闪烁

/*******************************************************************************  
* 文件名称: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();
    }
}


Q:一个_nop_();函数延时多长时间?

A:       包括在库函数intrins.h中的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值