51单片机4种流水灯
- 程序说明: LED连接在P2引脚上。
- 程序现象:
1、先从右到左逐个亮灭;再从左到右逐个亮灭;
2、由两侧向中间,再中间向两侧亮灭;
3、先右再左逐个亮起,不熄灭;再从左到右逐个熄灭;
4、先左再右逐个亮起,不熄灭;再从右到左逐个熄灭;
#include "reg52.h" #define led P2 //对整个P2端口进行操作/* 延时函数 */
void delay(unsigned int del) //10ms * del
{unsigned int i,j;for(i=0; i<del; i++)for(j=0; j<1827; j++) ;
}void Led_Pipeline_1() //先从右到左逐个亮灭;再从左到右逐个亮灭;
{unsigned char i; delay(10); led=0xfe; //初始状态将LED0点亮for(i=0;i<8;i++)// 1111 1110{P2=~(0x01<<i); //将0000 0001左移i位,然后将结果取反赋值到P2口delay(20); //大约延时200ms}
// led=0xFF; //熄灭所有LED
// delay(20); for(i=1;i<8;i++){P2=~(0x80>>i); //将1右移i位,然后将结果取反赋值到P2口delay(20); }
// led=0xFF; //熄灭所有LED
}
void Led_Pipeline_2() //两侧向中间,再中间向两侧亮灭
{unsigned char i,High,Low;delay(20);led=0x7E; //初始状态将两侧点亮High=led&0xF0; //高四位 0111 0000Low=led&0x0F; //低四位 0000 1110 delay(30);for(i=0;i<3;i++){High=~(~High>>1); //将0x8F右移1位 0100 0111, 1011 1000Low=~(~Low<<1); //将0xFE左移1位led=(High&0xF0)|(Low&0x0F);//保证高位、低位不受到移位影响delay(30);}
// led=0xFF; //熄灭所有LED
// delay(20);
// led=0xE7;//初始状态将中间两颗LED点亮
// delay(30);for(i=0;i<3;i++){ //1110 0111High=~(~High<<1); //将0x1*左移i位Low=~(~Low>>1); //将0x*8右移i位 led=(High&0xF0)|(Low&0x0F);//保证高位、低位不受到移位影响delay(30);} led=0xFF; //熄灭所有LED
}void Led_Pipeline_3() //先右再左逐个亮起,不熄灭;再从左到右逐个熄灭;
{unsigned char i; delay(20);led=0xfe; //初始状态将LED0点亮delay(10);for(i=0;i<8;i++){P2=0xFE<<i; //将1111 1110左移i位,然后将结果赋值到P2口delay(10); //大约延时100ms}led=0xFF; //熄灭所有LEDfor(i=0;i<8;i++){P2=~(0xFF>>i); //将1111 1111右移i位,然后将结果取反赋值到P2口delay(10); } led=0xFF; //熄灭所有LED
}void Led_Pipeline_4() //先左再右逐个亮起,不熄灭;再从右到左逐个熄灭;
{unsigned char i; delay(20);led=0x7F; delay(10);for(i=0;i<8;i++){P2=0x7F>>i; delay(10); }led=0xFF; for(i=0;i<8;i++){P2=~(0xFF<<i);delay(10); } led=0xFF; //熄灭所有LED
}
void main()
{while(1){Led_Pipeline_1();Led_Pipeline_2();Led_Pipeline_3();Led_Pipeline_4();}
}
51单片机4种流水灯相关推荐
- 51单片机制作花式流水灯的三种方式总结与仿真运行
制作流水灯,一共有三种方式,分别是左右移位,延时,与定时器(计数器)方式 其中移位方式较为简便,常与简单的延时一同使用在各类工程中.除此之外,也可以直接操作寄存器改变灯的亮度. 延时方式通过改变占空比 ...
- 【DIY】多模式51单片机心形流水灯+呼吸灯+蜂鸣器音乐
目录: 总体设计 1.基础硬件DIY设计 1)整体原理图 2)PCB电路 3)3D_PCB 2.单片机程序设计 1)呼吸灯[简易模拟PWM] 2)蜂鸣器音乐 3)几种简易流水灯方式 3.效果展示 1) ...
- 基于51单片机的花样流水灯设计
文章目录 一.前言 二.模块介绍及原理说明 三.硬件连接 四.程序说明 五.效果演示 六.代码链接 一.前言 花样流水灯就是让LED灯按照一定规律进行各种变化,流水灯在生活中也随处可见,例如在建筑物的 ...
- 用51单片机点亮流水灯
用51单片机点亮流水灯的几种方法 1. 直接按位操作一个一个点亮 #include<reg51.h>//头文件 sbit LED0=P2^0; //位定义单片机接LED灯的端口 sbit ...
- 基于51单片机的花样流水灯设计(源码+仿真+设计报告)
资料编号:113 采用51单片机的IO控制多个LED灯,实现多种模式的流水风,全套资料齐全:具体功能请看下方演示视频 113-基于51单片机的花样流水灯设计(源码+仿真+设计报告) 单片机最小系统介绍 ...
- 51单片机点亮流水灯
51单片机点亮流水灯 51单片机点亮流水灯 首先介绍开发板easyboard上的LED灯 P1端口通过74HC573连接到LED灯,查询74HC573芯片手册,内部由8个D锁存器构成,当OE为低电平, ...
- 51单片机按键控制流水灯
1.按键的使用 <1>独立按键的原理图 按键所对应的引脚为P3的0.1.2.3引脚口,并且这里总共有四个独立按键,它们公共的一段都接到了GND电源的负极.这样我们就知道按键上电的默认电平为 ...
- 简单51单片机c语言编程流水灯,51单片机如何实现流水灯?51单片机实现流水灯的三种方法详细分析...
描述 首先,介绍下原理.下图为主控芯片和流水灯模块的原理图.流水灯模块接在单片机的P1口,由原理图可以知道,在P1口给一个低电平即可点亮LED灯.相反,如果要LED灯熄灭,就要把P1口的电平变为高电平 ...
- 51单片机:LED流水灯的设计(两种方法)
(一)首先要设计电路图,利用proteus软件进行电路图的设计.所需元器件:AT89C51单片机 1 个.LED-RED 8 个.电源VCC 1 个.设计电路如下图: (二)使用keil4软件进行 ...
- 基于51单片机的八位流水灯(三种形式)
写一下寒假做的51小项目. 基本项目 基于AT89C51的流水灯:流水灯共八个,可以实现交替闪烁,一起闪烁,左右流水灯等效果. 模式一:按动key1,实现1,3,5,7和2,4,6,8交替闪烁: 模式 ...
最新文章
- 【转】C++中this指针的用法详解
- 5、时间日期的处理:Java Date类、Calendar类详解
- 矩形脉冲信号的频域分析_矩形周期脉冲信号MATLAB实现
- 使用Java流和In-JVM-Memory的超低延迟查询
- 《Head First设计模式》第三章笔记 装饰者模式
- 洛谷2149 Elaxia的路线(dp+最短路)
- matlab小波分析张德丰,MATLAB小波分析
- 关于路由器配置直连路由和静态路由
- linux u盘保护,如何解除U盘写保护状态?
- k8s(十三)、企业级docker仓库Harbor在kubernetes上搭建使用
- 虚拟机克隆的服务器怎么改mac地址,Centos6克隆虚拟机改IP和mac地址
- JAVA小游戏黄金矿工
- 软件项目管理 6.5.自下而上估算法
- 5G网络中TNL和RNL的理解
- 英文简历的写法和模板
- 笔记———计算机网络原理(二)
- 留学Paper写作中的门道怎么讲解?
- 【操作系统】进程:管程
- C语言递归(栈与递归)
- 做的一个wmp11播放器的LOGO