用51单片机点亮流水灯的几种方法

1. 直接按位操作一个一个点亮

#include<reg51.h>//头文件
sbit LED0=P2^0;  //位定义单片机接LED灯的端口
sbit LED1=P2^1;
sbit LED2=P2^2;
sbit LED3=P2^3;
sbit LED4=P2^4;
sbit LED5=P2^5;
sbit LED6=P2^6;
sbit LED7=P2^7;
void delay()//延时函数
{unsigned char a,b;for(a=0;a<200;a++)for(b=0;b<200;b++);
}
void main()//主函数
{   while(1){LED0=0;//第一个灯亮delay();//延时LED0=1;//第一个灯灭 以下以此类推LED1=0;delay();LED1=1;LED2=0;delay();LED2=1;LED3=0;delay();LED3=1;LED4=0;delay();LED4=1;LED5=0;delay();LED5=1;LED6=0;delay();LED6=1;LED7=0;delay();LED7=1; }
}

2 利用数组结合for循环点亮流水灯

#include<reg51.h>//头文件
unsigned char table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//将8个LED灯亮放在一个数组中
void delay()//延时函数
{unsigned char a,b;for(a=0;a<200;a++)for(b=0;b<200;b++);
}
void main()//主函数
{unsigned char i;while(1){for(i=0;i<8;i++){P2=table[i];//for循环将LED灯显示出来delay(); //延时}}
}

3 利用左移符号<<实现流水灯显示

#include<reg51.h>//头文件
#define uchar unsigned char//宏定义用uchar表示unsigned char
#define uint unsigned int //宏定义用uint表示unsigned int
void delay()//延时函数
{unsigned char a,b;for(a=0;a<200;a++)for(b=0;b<200;b++);
}
void main()//主函数
{uchar k,i;while(1){k=0xfe;//11111110 <<for(i=0;i<8;i++){P2=k;delay();//延时k=k<<1;  //11111100  <<左移运算符,左移后最右边补0k=k|0x01;//00000001 |按位或,把最低位置变1}        //11111101}        //11111010//00000001//11111011
}

4 利用循环函数实现流水灯

#include<reg51.h>//头文件
#include<intrins.h>//循环函数所在的库
#define uchar unsigned char//宏定义用uchar表示unsigned char
#define uint unsigned int  //宏定义用uint表示unsigned int
void delay() //延时函数
{unsigned char a,b;for(a=0;a<200;a++)for(b=0;b<200;b++);
}
void main()//主函数
{uchar k;k=0xfe;while(1){P2=k;delay();k=_crol_(k,1);//11111110}            //11111101 //_crol_(a,b) 循环左移函数,a是代表左移的值,b是代表左移的位数//_cror_(a,b) 循环右移函数,a是代表右移的值,b是代表右移的位数
}

注:

  1. 该程序51单片机开发板P2口接的是8位跑马灯
  2. 该程序51单片机开发板中LED位低电平驱动,即为0是灯亮

用51单片机点亮流水灯相关推荐

  1. 51单片机点亮流水灯

    51单片机点亮流水灯 51单片机点亮流水灯 首先介绍开发板easyboard上的LED灯 P1端口通过74HC573连接到LED灯,查询74HC573芯片手册,内部由8个D锁存器构成,当OE为低电平, ...

  2. 【DIY】多模式51单片机心形流水灯+呼吸灯+蜂鸣器音乐

    目录: 总体设计 1.基础硬件DIY设计 1)整体原理图 2)PCB电路 3)3D_PCB 2.单片机程序设计 1)呼吸灯[简易模拟PWM] 2)蜂鸣器音乐 3)几种简易流水灯方式 3.效果展示 1) ...

  3. 51单片机制作花式流水灯的三种方式总结与仿真运行

    制作流水灯,一共有三种方式,分别是左右移位,延时,与定时器(计数器)方式 其中移位方式较为简便,常与简单的延时一同使用在各类工程中.除此之外,也可以直接操作寄存器改变灯的亮度. 延时方式通过改变占空比 ...

  4. 基于51单片机的花样流水灯设计

    文章目录 一.前言 二.模块介绍及原理说明 三.硬件连接 四.程序说明 五.效果演示 六.代码链接 一.前言 花样流水灯就是让LED灯按照一定规律进行各种变化,流水灯在生活中也随处可见,例如在建筑物的 ...

  5. 基于51单片机的花样流水灯设计(源码+仿真+设计报告)

    资料编号:113 采用51单片机的IO控制多个LED灯,实现多种模式的流水风,全套资料齐全:具体功能请看下方演示视频 113-基于51单片机的花样流水灯设计(源码+仿真+设计报告) 单片机最小系统介绍 ...

  6. STM32单片机点亮流水灯

    STM32单片机GPIO口点亮流水灯 任何一个单片机,最简单的外设莫过于 IO 口的高低电平控制了,本文将通过一个经典的流水灯程序,了解 STM32F1 的 IO 口作为输出LED:DS0 和 DS1 ...

  7. 51单片机--点亮LED灯和流水灯

    文章目录 前言 LED模块的原理 点亮一个LED灯 LED灯的闪烁 LED流水灯 前言 大家好,这里是诡异森林.我使用的是普中科技的A2的51开发板,适合新手入门.用到的应用是Keil5和Stc-is ...

  8. 【51单片机】花式流水灯

    目录 任务要求: 1.按键 1.2.3.4 按下,使 8 个 LED 实现下面对应的模式 1. 2.        3.4,上电默认每种模式流水灯的流转时间间隔为 500ms. 1)模式1:按照L1. ...

  9. 简单51单片机c语言编程流水灯,51单片机如何实现流水灯?51单片机实现流水灯的三种方法详细分析...

    描述 首先,介绍下原理.下图为主控芯片和流水灯模块的原理图.流水灯模块接在单片机的P1口,由原理图可以知道,在P1口给一个低电平即可点亮LED灯.相反,如果要LED灯熄灭,就要把P1口的电平变为高电平 ...

最新文章

  1. 【MFC】带下拉菜单的工具栏
  2. Java IO: PipedOutputStream
  3. WORD列表缩进的文本起始点
  4. vue import组件的使用
  5. 苹果验证电子邮件地址服务器错误,苹果7P账户申请,验证电子邮件地址创建新Apple ID发生未知错误...
  6. (二)线程--通过委托异步调用方法
  7. linux lasound.so教程,Linux ALSA 音频系统:逻辑设备篇(示例代码)
  8. 【MySQL数据库教程天花板】
  9. Android 自定义View实现拖动滑块完成验证
  10. 【独行秀才】macOS Big Sur 11.6正式版(20G165)原版镜像
  11. android没有adm_这可能是安卓平台上最好的下载器:ADM
  12. freemarer代码生成案例
  13. 软件工程毕业论文mysql英文翻译_软件工程技术英文文献和中文翻译
  14. 盛大无传奇 啥时离职成见面招呼语
  15. 解决https JDK导入安全证书
  16. MAC安装视频播放器MPV
  17. ArcPy - 入门学习
  18. 难复制薇娅李佳琦,如涵的网红牌何时能在资本市场出奇制胜?
  19. 网站统计IP PV UV实现原理
  20. 这对咱们的打算极为不利

热门文章

  1. AD-PCB设计流程(查漏补缺)
  2. vue中使用three.js导入外部3D模型
  3. 【毕业设计】大数据分析的航空公司客户价值分析 - python
  4. 电影推荐系统 python简书_基于Spark的电影推荐系统(实战简介)
  5. 本次秋招最差面试体验给到华为
  6. 【安全资讯】梅开二度,Chrome再次被曝0day漏洞
  7. 查看 adb 可执行命令
  8. 【翻译】RUST无锁编程
  9. 51单片机8通道自动温度检测系统仿真+ Proteus仿真
  10. Matlab R2015b+CUDA7.5+vs2013深度学习网络GPU搭建