当前位置: 首页 > ai >正文

用P0口实现流水灯效果(STC89C52单片机)

#include <reg52.h>

sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;

void main()
{
    unsigned int i = 0;     //定义循环变量i,用于软件延时
    unsigned char cnt = 0;  //定义计数变量cnt,用于移位控制

    ENLED = 0;
    ADDR3 = 1;
    ADDR2 = 1;
    ADDR1 = 1;
    ADDR0 = 0;
    while (1)  //主循环,程序无限循环执行该循环体语句
    {
        P0 = ~(0x01 << cnt);      //P0等于1左移cnt位,控制8个LED
        for (i=0; i<20000; i++);  //软件延时
        cnt++;                    //移位计数变量自加1
        if (cnt >= 8)             //移位计数超过7后,再重新从0开始
        {
            cnt = 0;
        }
    }
}

http://www.xdnf.cn/news/683.html

相关文章:

  • JavaScript解密实战指南:从基础到进阶技巧
  • 硬件电路(24)-NE555振荡电路
  • 六、小白如何用Pygame制作一款跑酷类游戏(静态障碍物和金币的添加)
  • c++通讯录管理系统
  • 运筹学之引力搜索
  • Mac上Cursor无法安装插件解决方法
  • 【KWDB 创作者计划】_上位机知识篇---ESP32-S3Arduino
  • Aerich实战指南:零基础掌握异步ORM数据库迁移工具
  • Linux `init 6` 相关命令的完整使用指南
  • Android Gradle多渠道打包
  • 【自然语言处理与大模型】Linux环境下Ollama下载太慢了该怎么处理?
  • AIStarter新版本发布:模型、插件与工作流的高效管理工具
  • 【C++初阶】第15课—模版进阶
  • 多模态大语言模型arxiv论文略读(三十)
  • 设计心得——函数参数的封装
  • Redis缓存降级的4种策略
  • QT实现串口透传的功能
  • OSPF综合实验——企业边界路由器、LSA收敛
  • 车载测试用例开发-如何平衡用例覆盖度和测试效率的方法论
  • VSCode 扩展离线下载方法
  • 如何编写JavaScript插件
  • 5、openfeign
  • 初识javascript
  • C++11特性补充
  • 【Ollama:本地LLM工具】
  • JavaScript 位掩码常量教程
  • MySQL 视图
  • Python内存管理之隔代回收机制详解
  • Redis 缓存—处理高并发问题
  • 宝塔面板部署 Dify-latest 最新版本