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

一、点亮8个LED流水灯(数组、位移)

文章目录

  • 1、点亮8个蓝色LED灯
    • 1.1效果图
    • 1.2代码块
  • 2、实现8个蓝色LED流水灯数组方式
    • 2.1效果图
    • 2.2代码块
  • 3、实现8个蓝色LED流水灯位移方式
    • 3.1效果图
    • 3.2代码块
  • 4、小灯闪烁
    • 4.1效果图
    • 4.2代码块

1、点亮8个蓝色LED灯

1.1效果图

1.2代码块

#include<reg51.h>// 包含头文件sbit LED1=P0^0;// P0.0 连接 D1sbit LED2=P0^1;// P0.1 连接 D2sbit LED3=P0^2;// P0.2 连接 D3sbit LED4=P0^3;// P0.3 连接 D4sbit LED5=P0^4;// P0.4 连接 D5sbit LED6=P0^5;// P0.5 连接 D6sbit LED7=P0^6;// P0.6 连接 D7sbit LED8=P0^7;// P0.7 连接 D8voidmain(){LED1=0;// 使 P0.0 低电平,点亮 D1LED2=0;// 使 P0.1 低电平,点亮 D2LED3=0;// 使 P0.2 低电平,点亮 D3LED4=0;// 使 P0.3 低电平,点亮 D4LED5=0;// 使 P0.4 低电平,点亮 D5LED6=0;// 使 P0.5 低电平,点亮 D6LED7=0;// 使 P0.6 低电平,点亮 D7LED8=0;// 使 P0.7 低电平,点亮 D8while(1);// 保持运行}

2、实现8个蓝色LED流水灯数组方式

2.1效果图

2.2代码块

#include<reg51.h>// 包含头文件#defineucharunsignedchar// 简单的延时循环voiddelay(unsignedinttime){unsignedinti,j;for(i=0;i<time;i++)for(j=0;j<120;j++);}// 定义一个流水灯模式的数组(从左往右点亮)unsignedchartable[]={0xFE,// 1111 1110 -> 点亮 P1.00xFD,// 1111 1101 -> 点亮 P1.10xFB,// 1111 1011 -> 点亮 P1.20xF7,// 1111 0111 -> 点亮 P1.30xEF,// 1110 1111 -> 点亮 P1.40xDF,// 1101 1111 -> 点亮 P1.50xBF,// 1011 1111 -> 点亮 P1.60x7F// 0111 1111 -> 点亮 P1.7};voidmain(){uchar i;while(1){for(i=0;i<8;i++){P0=table[i];// 从数组中取出模式delay(200);// 延时}}}

3、实现8个蓝色LED流水灯位移方式

3.1效果图

3.2代码块

#include<reg51.h>// 包含51单片机的特殊功能寄存器定义#defineucharunsignedchar// 定义 uchar 为 unsigned char 类型,方便使用#defineuintunsignedintuchar a;// 定义全局变量 a,用来保存当前灯的状态// 延时函数 约50ms @ 12MHz晶振voiddelay(unsignedinttime){unsignedinti,j;for(i=0;i<time;i++){for(j=0;j<120;j++){// 空循环体}}}// ------------------------------// 主函数:main()// 作用:以移位方式控制 P0 口实现流水灯// ------------------------------voidmain(){a=0xFE;// 初始状态:1111 1110,P0.0点亮(低电平有效)while(1)// 无限循环{// 方法1:左移流水(从上往下)P0=a;// 将当前状态输出到P0口delay(500);// 延时约0.5秒(10*50ms=500ms)a=(a<<1)|0x01;// 左移一位,最低位补1(保持低电平有效)// 当a变成0xFF时(全灭),重置为0xFE重新开始if(a==0xFF){a=0xFE;}}}

4、小灯闪烁

4.1效果图

4.2代码块

#include<reg51.h>// 包含头文件// 定义单个 LED 的端口映射【sbit 变量名 = 端口^位号;】sbit LED1=P0^0;// 延时函数voiddelay(unsignedinttime){unsignedinti,j;for(i=0;i<time;i++)for(j=0;j<120;j++);}// 主函数voidmain(){while(1){LED1=0;// 让第1个LED亮delay(500);LED1=1;// 让第1个LED熄灭delay(500);}}
http://www.jsqmd.com/news/1237508/

相关文章:

  • AI 电动家居 餐具消毒器智能功率 MOSFET 核心选型方案
  • 在轨姿态自主:AS32S601型抗辐射MCU在卫星姿态确定与控制系统中的集成应用
  • Django生态:Django-admin、Django-Compressor、Django-grappelli、django-rules
  • AI工具组合的“外科手术式精简”:从混沌到确定性的7步裁剪法(含兼容性矩阵与ROI测算表)
  • 红黑树:平衡二叉搜索树的工业级实现与优化
  • 504错误解析:从技术原理到人生隐喻
  • 真力时烟台官方客服热线及售后地址公告:2026年7月最新网点服务信息发布 - 亨得利钟表维修中心
  • PS 如何无痕去除图片水印?3 种不破坏原图的修图方法
  • 2026大连空调维修哪家效率高?3家平台响应速度实测 - 简单到家
  • Node.js安全扫描Web界面:从可视化结果到高效修复的实战指南
  • AI 电动家纺包装机智能功率 MOSFET 完整选型方案
  • 当散点图不够用时:用 t-SNE 可视化多维数据
  • 51单片机串口通信
  • 异构联盟链跨链互通的工程实现:从中继架构到接入连接器
  • 企业知识库RAG实战:用向量数据库构建精准语义检索系统
  • XXL-JOB分布式任务调度平台核心原理与实践指南
  • MCP Server:AI Agent安全高效调用业务API的标准化方案
  • Java面试突击:从八股文背诵到构建最小知识体系与问题拆解框架
  • 跨系统查数据要2天?企业AI落地的核心病根,藏在看不见的语义
  • 广州电商公司税务合规怎么做?2026电商行业合规管理与机构选型攻略 - 米諾
  • Qt的概述
  • YOLOv13涨点改进| CVPR 2026 | 独家Conv与频域改进篇| 引入SSFModule选择性空间频率模块,助力无人机航拍、遥感影像、小目标检测、语义分割、实例分割、目标跟踪任务,有效涨点
  • 郴州甲醛检测公司怎么选:只做检测不除醛的专业CMA资质实验室——国慷测研CMA甲醛检测及公共卫生检测 - CMA甲醛检测中心
  • 2026山西企业获客复盘:为什么传统SEO失效,GEO优化成主流? - 米諾
  • ElevenLabs语音合成API实战踩坑与优化指南
  • SpringBoot进阶实战:从原理到生产级应用与面试突破
  • SlowHTTPTest终极指南:如何用免费工具发现并防御慢速HTTP攻击漏洞
  • Claude Code与DeepSeek API一键安装配置指南
  • 石家庄平山县亨得利官方名表服务中心电话公示(2026年7月最新) - 亨得利官方
  • AI伦理三脚架:原则、流程与工具的落地断层解析