循环点亮LED灯

复制代码
//object: 循环点亮Led灯,每次点亮一个
//writer: mike
//time: 2020.10.1

#include<reg52.h>
//用于对位的循环
#include<intrins.h>

#define uchar unsigned char
#define uint  unsigned int

void delay(uint);

void main()
{
    uchar i;
    uchar temp;
    //注意16进制,左侧才是低位,右侧是高位
    temp = 0x7f;
    //这里不能直接操作P0口,P0不是变量,直接就点亮小灯
    P1 = temp;
    while(1)
    {
        for(i=0;i<8;i++)
        {
            //每次将temp循环移动一位
            temp = _cror_(temp,1);
            //将移动好的二进制,给P0口
            P1 = temp;
            //延时函数
            delay(1000);
        }
    
    }

}

void delay(uint x)
{
    uint m, n;
    for(m=x;m>0;m--)
    {
        //120是调试出来的,大概执行120次是一个毫秒。
        for(n=120;n>0; n--);
    }


}
复制代码

 

其中  intrins.h 头文件包含了 循环左移动,以及循环右移动函数   _crol_(),    _cror_()

 

posted @   看星星的派大星  阅读(496)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示