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

51单片机LED驱动

  本章节介绍51单片机硬件IO口输出模式应用示例。通过对IO输出模式应用,实现对硬件LED灯驱动。
  LED 即发光二极管。它具有单向导电性,通过 5mA 左右电流即可发光,电流越大,其亮度越强,但若电流过大,会烧毁二极管,一般我们控制在 3 mA-20mA之间,通常我们会在 LED 管脚上串联一个电阻,目的就是为了限制通过发光二极管的电流不要太大,因此这些电阻又可以称为“限流电阻”。当发光二极管发光时,测量它两端电压约为 1.7V,这个电压又叫做发光二极管的“导通压降”。下图左右分别为直插式发光二极管和贴片式发光二极管实物图。发光二极管正极又称阳极,负极又称阴极,电流只能从阳极流向阴极。直插式发光二极管长脚为阳极,短脚为阴极。仔细观察贴片式发光二极管正面的一端有彩色标记,通常有标记的一端为阴极。
在这里插入图片描述

  • 硬件接口
    在这里插入图片描述
      本次开发板上有8个LED灯,位D1D8,IO驱动端口为P2^0P2^8,硬件原理图如上所示。根据原理图可知,对P2端口写入低电平即可实现LED点亮,写入高电平则熄灭。

  • 软件设计

  • 创建main.h文件

  为了便于后续LED应用,可以创建一个”main.h”头文件,在”main.h”中添加下面代码:

#ifndef _MAIN_H
#define _MAIN_H
#include <reg52.h>
#include <intrins.h>
typedef unsigned char u8;
typedef unsigned short u16;
#define LED P2//LED硬件接口
#endif
  • 创建delay.c和delay.h文件

  为了便于后续延时函数应用,创建”delay.c”和”delay.h”文件,编写延时函数,代码实现如下:

#include "delay.h"
void Delay1us()		//@11.0592MHz
{_nop_();_nop_();_nop_();
}
void Delay1ms()		//@11.0592MHz
{unsigned char i, j;_nop_();_nop_();_nop_();i = 11;j = 190;do{while (--j);} while (--i);
}
void Delay_Us(u16 time)
{while(time--){Delay1us();}
}
void Delay_Ms(u16 time)
{while(time--){Delay1ms();}  
}

  注意:其中”Delay1us()”和”Delay1ms()”函数是通过STC工具生成。

  • 实现流水灯效果
#include "main.h"
#include "delay.h"
int main()
{u8 i=0;LED=~0x1;while(1){for(i=0;i<7;i++){//LED=~(1<<i);LED=_crol_(LED,1);//左移一位Delay_Ms(20);}for(i=0;i<7;i++){//LED=~(0x80>>i);LED=_cror_(LED,1);//右移一位Delay_Ms(20);}}
}

  KEIL C51软件内有对应的移位库函数,左移函数是_crol_(),右移函数是_cror_(),要使用这两个函数在我们的程序中,必须包含intrins.h头文件。

  • 程序下载在这里插入图片描述
      注意:波特率不要调太高,否则会下载失败。

http://www.mrgr.cn/news/51273.html

相关文章:

  • vulnhub靶场之digitalworld.local: MERCY v2
  • TestNg
  • 汽车结构设计外覆盖件抗凹分析的评价指标
  • 【智能算法应用】引力搜索算法求解二维路径规划问题
  • C语言函数重制版(内含指针串讲)
  • LeetCode :LCR 173. 点名
  • 进程信号大总结(整理)
  • React Agent 自定义实现
  • STM32-USART串口协议
  • 奖金——Topsort
  • 《RECONX: RECONSTRUCT ANY SCENE FROM SPARSEVIEWS WITH VIDEO DIFFUSION MODEL》论文阅读
  • 记录 ruoyi-vue-plus在linux 部署遇到的问题
  • 【Python爬虫实战】XPath与lxml实现高效XML/HTML数据解析
  • MySQL索引优化
  • 【Next.js 项目实战系列】03-查看 Issue
  • jmeter响应断言放进csv文件遇到的问题
  • 第二课:Python入门学习之开发工具的安装
  • 专题:数组(已完结)
  • 2024全国大数据与计算智能挑战赛火热报名中!
  • 【优选算法】(第四十四篇)