文章目录

前言

一、LED小灯的原理图分析

二、LED小灯的点亮

三、LED流水灯


前言

前面一段之间在学习51单片机,A2单核,最近期末考试完了有时间准备复习整理一下就开始玩STM32了,供大家一起学习交流。


一、LED小灯的原理图分析

如图所示是单片机上面LED模块,对应的实物图如右图所示从左到右依次是D1-D8即管脚从P2^0到P2^7(在数字电路中读芯片管脚时从高位开始写其即0111 1111对应为0xfe)

我们根据所学习的模拟电子技术技术可以清晰明了的知道,这八个LED小灯左端共接高电平VCC,要使我们的小灯导通需要给小灯右端一个低电平即P2接口这段给上逻辑数字电平0,如我要点亮D1,就需要给P2^0一个低电平0。

二、LED小灯的点亮

代码如下所示,依次导入相关库,定义了D1小灯的管脚,引用了烧入软件STC里面延时软件计时器,Open_Light()函数是用来将LED灯点亮的,正如前面写的原理,给P2^0低电平。

在主函数main()里面调用Open_Light()函数。

/******************** ********************** 项目名称:点亮第一个LED小灯*** 项目效果:LED小灯亮起*** 连线方式:无*** 注意事项:无
********************* *******************/
#include "reg52.h"
#include "intrins.h"typedef unsigned char u8;
typedef unsigned int u16;/*定义管脚*/
sbit LED1 = P2^0;/***************************
** 函数名称 :Delay_5s
** 函数作用 :延时5S函数
** 输入       :
** 输出     :
****************************/
void Delay_5s()     //@11.0592MHz
{unsigned char i, j;i = 54;j = 199;do{while (--j);} while (--i);
}/***************************
** 函数名称 :Open_Light
** 函数作用 :点亮小灯函数
** 输入       :无
** 输出     :无
****************************/
void Open_Light()
{LED1 = 0;
}
/***************************
** 函数名称 :main
** 函数作用 :主函数
** 输入       :
** 输出     :
****************************/
void main()
{while(1){Open_Light();}
}

效果图

三、LED流水灯

代码如下所示,依次导入相关库,用宏定义定义LED灯模块的管脚,为了给后面循环小灯做准备。

在LEDcontrol()函数中,先点亮第一个LED小灯,然后通过左右位移函数来实现,()里面是变量和位移位数。

/******************** ********************** 项目名称:LED流水灯*** 项目效果:LED灯循环流水*** 连线方式:无*** 注意事项:
********************* *******************/
#include "reg52.h"
#include "intrins.h"typedef unsigned char u8;
typedef unsigned int u16;/*定义管脚*/
#define LED P2/***************************
** 函数名称 :Delay_2s
** 函数作用 :延时1s函数
** 输入       :
** 输出     :
****************************/
void Delay_2s()           //@11.0592MHz
{unsigned char i, j;_nop_();_nop_();i = 22;j = 128;do{while (--j);} while (--i);
}/***************************
** 函数名称 :LEDcontrol
** 函数作用 :LED灯循环函数
** 输入       :无
** 输出     :无
****************************/
void LEDcontrol()
{u16 i = 0;LED = 0xfe;Delay_2s();while(1){for(i=0;i<8;i++){LED = _crol_(LED,1);Delay_2s();}for(i=0;i<8;i++){LED = _cror_(LED,1);Delay_2s();}}
}/***************************
** 函数名称 :main
** 函数作用 :主函数
** 输入       :
** 输出     :
****************************/
void main()
{while(1){LEDcontrol();}} 

效果如下视频:

LED流水灯

51单片机—LED小灯的点亮及其流水灯程序相关推荐

  1. 51单片机基础——串口通信发送字符ab控制流水灯

    /* 当串口调试助手发送a时执行5ms流水灯功能, 当串口调试助手发送b时执行50ms流水灯功能 */#include <reg52.h> #include<intrins.h> ...

  2. [51单片机] EEPROM 24c02 [I2C代码封装-保存实现流水灯]

    这里把EEPROM 24c02封装起来,今后可以直接调用,其连线方式为:SDA-P2.1;SCL-P2.0;WP-VCC >_<:i2c.c 1 /*------------------- ...

  3. 51单片机运用数组和if条件语句完成流水灯和蜂鸣器同步

    文章目录 前言 一.蜂鸣器 二.使用步骤 1.引入库 2.读入数据 总结 一.蜂鸣器 #include "reg52.h"sbit FM=P2^5; main(){ FM=1 // ...

  4. 51单片机入门篇-LED点亮以及流水灯

    目录 一.发光二极管简介 1.二极管工作工作原理 2.单片机点亮LED原理 二.硬件电路连接 三.程序部分 3.1 点亮一个LED 3.2 点亮多个LED 3.3 闪烁一个LED 3.4 不同频率闪烁 ...

  5. 51单片机LED模拟交通灯

    51单片机LED模拟交通灯 文章目录 51单片机LED模拟交通灯 实验环境 仿真图 代码解析 效果演示 实验环境 实验软件: Keil5 + Proteus7 实验元件: AT89C51 * 1, L ...

  6. 51单片机-LED模块-来回流水灯

    51单片机-LED模块-来回流水灯 1. 视频 哔哩哔哩视频地址: https://www.bilibili.com/video/av89552821 51单片机-LED模块-来回流水灯 2. 文件 ...

  7. 51单片机led点亮集合

    实验一:点亮单个led灯: 实验二:led灯亮灭闪烁显示: 实验三:led流水灯点亮 实验一程序:点亮单个led灯: #include <rge52.h>void main() { whi ...

  8. 51单片机LED点阵屏逐帧显示和流动显示图像

    上一篇逐帧显示用的是定时和中断控制,碰到了一些麻烦,我觉得也是一种不错的办法,因为Delay的时间更短,而且如果不那么介意亮度的情况甚至可以不用Delay()函数,这里采用将要显示的图像按顺序存储在数 ...

  9. 51单片机LED点阵显示文字

    51单片机LED点阵显示文字 代码如下. #include <REGX51.H> #define u8 unsigned char sbit SER = P3^4; sbit RCLK = ...

  10. 51单片机综合小项目-第2季第4部分-朱有鹏-专题视频课程

    51单片机综合小项目-第2季第4部分-2794人已学习 课程介绍         本课程是<朱有鹏老师单片机完全学习系列课程>第2季第4个课程,也是51单片机学完之后的一个综合小项目,该项 ...

最新文章

  1. asp.net core系列 53 IdentityServer4 (IS4)介绍
  2. nginx+FastCGI到底是谁影响超时时间
  3. Chrome 插件开发-主动获取所有页签的tabid,background.js直接向所有页签同步传递消息
  4. 没有维护在库存管理中用于工厂1112的参数
  5. 【机器学习】梯度下降的Python实现
  6. linux音频时钟bclk,linux alsa音频中采样率fs、比特率BCLK 、主时钟MCLK关系
  7. sqoop2 java api实现_Sqoop2 Java客户端API指南
  8. 关于禁止程序重复启动的另一种需要与实现《转》
  9. Python学习笔记之变量
  10. 【Python】python学习笔记day1
  11. Mvc 4.0实现Response.Write()效果
  12. VS2017社区版离线下载办法
  13. linux虚拟机的密钥,Linux虚拟机之间实现密钥登陆
  14. 思科简单教程CCNA
  15. 如何用微信自动添加wifi连接服务器地址,微信服务号如何实现扫码自动连接WIFI?详细步骤介绍!...
  16. 如何配置无线WiFi短信认证登录?
  17. Java三维数组深度复制,JavaScript —— 如何深浅拷贝数组
  18. sublime 的一个神秘快捷键
  19. 2020-05-10
  20. 【学习笔记】数学小厦

热门文章

  1. [css]画圆形标签
  2. 【数据结构】【王道】【线性表】单链表的实现及基本操作(带头结点)(可直接运行)
  3. 删除计算机用户时拒绝访问权限,c盘为什么拒绝访问 删除c盘文件需要管理员权限怎么办...
  4. #151: 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-x...
  5. HDOJ2067_小兔的棋盘(卡塔兰数)
  6. UTC和GMT时间区别
  7. 如何撰写高水平的博士论文?
  8. macos同时运行多个版本php程序(nginx+php56+php72)
  9. 华硕老毛子padavan固件花生壳ddns设置教程
  10. C语言中取值符(*)与取地址符()