51单片机流水灯三种实现方法
流水灯可以用三种方法实现
一.通过移位函数 _crol_() 和 _cror_()
二.位移实现流水灯
三.数组流水灯实现
首先说一下流水灯的原理
让0从左往右位移或者从右往左位移
从而实现流水灯依次点亮
电路图如下,使用软件是project
一.通过移位函数 _crol_() 和 _cror_()
_crol_()是左移函数
_cror_()是右移函数
使用移位函数需要包含头文件#include<intrins.h>
使用左移函数代码如下
///运行结果是LED灯从上到下依次点亮
右移函数代码如下
///运行结果是LED灯从下到上依次点亮
二.位移实现流水灯
左移 “<<” 流水灯代码
///运行结果是LED灯从上到下依次点亮
左移 “>>” 流水灯也是同理
三.数组流水灯实现
原理是新建一维数组,利用循环依次赋值11111110(0xFE),11111101(0xFD)........
代码如下
///运行结果是LED灯从上到下依次点亮
补充,如果要从上到下依次点亮,再从下到上点亮,再加一个for(),就可以实现了
比如运用位移实现流水灯从上到下闪烁,再从下到上闪烁
代码如下
#include<reg51.h> //51头文件
void delay(int t) //定义延时函数
{
int j;
while(t--)
{
for(j=0;j<500;j++);
}
}
void main()
{
int i;
while(1)
{
for(i=0;i<7;i++) //循环点亮LED,到第7个LED延时一会就结束循环
{
//P1对应的是P1端口,对端口赋值
P1=~(0x01<<i); //根据原理,0x01转换2进制是00000001,所以取反变成11111110,依次位移i位,就形成了流水灯
delay(100); //调用延时函数
}
for(i=0;i<7;i++)
{
P1=~(0x80>>i); //0x80取反对应的是第8个led灯亮,LED从下到上依次点亮
delay(100);
}
}
}
小白51单片机笔记,有不足之处欢迎指出,谢谢啦
51单片机流水灯三种实现方法相关推荐
- 单片机流水灯三种实现
单片机流水灯的三种实现方式(由上至下,再重下到上) 原理图 一般使用单片机的P1口 输出,不需要加上拉电阻: 由原理图可以看出这里采用低电平输出. 一.采用数组方式进行字节定义,最好理解的方式 #in ...
- keil流水灯c语言程序两个一起亮,Keil单片机点亮一个灯及循环流水灯三种实现方法详解...
实验名称:keil工程建立,点亮一个led灯 实验目的:学会keil软件安装,熟悉keil界面并学习如何新建一个工程 实验器材:安装有keil的电脑一台 预习内容及原理: Keil C51已集成到一个 ...
- 51单片机流水灯制作
文章目录 51单片机流水灯制作 初试与复试 初试 复试 制作 分工 制作之硬件 制作之软件 总结 51单片机流水灯制作 我不得不承认自己的毅力实在是太差了,原先准备一星期写一篇博客的目标一致没有实现, ...
- 51单片机流水灯现象1
**` 51单片机流水灯程序 `** 初学者小白,分享上课时写的小程序和普中科技程序,感兴趣的可以瞧瞧. 程序如有相同冒犯了. /*********************************** ...
- 51单片机流水灯的三种实现方法
首先,介绍下原理.下图为主控芯片和流水灯模块的原理图.流水灯模块接在单片机的P1口,由原理图可以知道,在P1口给一个低电平即可点亮LED灯.相反,如果要LED灯熄灭,就要把P1口的电平变为高电平即可. ...
- 51单片机流水灯控制(5种方法)
实现流程: 1. 新建一个工程(新项目)2. 查看原理图确定需求(流水灯)对应LED引脚在单片机上的哪个引脚3. 编写程序(通过查看原理图可以看到我们需要控制整个P2口以控制8个LED灯)4. 编译程 ...
- 如何用多种代码实现51单片机流水灯
用51单片机实现流水灯的方法有多种:普通电灯法,位移法,数组法.其次模拟电路的电流图也与点一盏LED相似.具体如下: 一 首先是最简单的代码: #include <reg52.h> ...
- 51单片机-------流水灯(实验报告)
实验二:LED流水灯 一.实验目的 掌握51单片机开发板的使用步骤: 掌握51单片机开发板所需软件的安装过程: 以LED流水灯实验为例子,掌握软件KEIL4的使用方法. 二.实验设备 实验仪器设备: ...
- 设计一:51单片机流水灯控制
目录 一.设计内容 二.硬件电路分析 三.仿真原理图 四.程序设计 五.仿真结果 六.思考题 作者有话说 一.设计内容 本次设计使用4个按键,当KEY1按下时,P0口所接的发光二极管(D1~D8)以1 ...
- 51单片机——流水灯
51单片机--单向流水灯 编写程序8个LED灯从最高位依次点亮,每次只亮一盏灯,依此循环. 电路原理图 源代码 #include "reg51.h" #define u8 unsi ...
最新文章
- ubuntu安装KVM虚拟机管理virt-manager
- python 400集大型视频下载_Python400集大型视频,无偿分享,从正确方向学习python...
- java对象赋值_Java 对象不使用时为什么要赋值为 null?
- castle windsor学习----- Services and Components 两者的定义
- 测试题的答案(技术博客)
- 前端需要了解的http知识
- OFD文件结构--带签名
- 面试时如何在众多Java工程师中脱颖而出
- Vue调试工具 vue-devtools的安装
- python模块datetime_Python模块学习 datetime介绍
- 使用/调用 函数的时候, 前面加不加 对象或 this?
- android数据绑定_Android数据绑定
- Struts2出现的问题:
- border 0px和border none的区别
- win10-64位-汇编环境配置
- Python 的图形用户界面
- 上市集团计算离职率sql案例
- 猿创征文|我的Python成长之路
- C++ 头文件系列(set)
- oracle 监听 宕机,由重启引起的Oracle RAC节点宕机分析及追根溯源
热门文章
- 自考本科计算机要学什么,计算机自考本科需要考哪些科目
- opengl 加载obj模型
- VMS-B230/260如何登录存储控制器
- Android热修复Sophix的使用
- Xshell v6 Build 0193 绿色特别版及全套产品
- 大气数据计算机输出形式,大气数据计算机
- 二叉树非递归遍历(先序、中序、后序)(C++)
- php中字符串分割函数是,php分割字符串的函数是什么
- 日常生活开支记账明细_你的理财小管家!简单明了!皮面理财记账本明细流水支出笔记本!...
- 图像识别的原理、过程、应用前景,精华篇!