51单片机自学笔记(四)——点亮LED灯、流水灯

发布者:binggege最新更新时间:2021-07-28 来源: eefocus关键字:51单片机  LED灯  流水灯 手机看文章 扫描二维码
随时随地手机看文章

LED灯

LED全称为半导体发光二极管,是采用半导体材料制成的,是一种直接将电能转换为光能,电信号转换为光信号的发光器件。其特点是功耗低、高亮度、色彩艳丽、抗振动、寿命长(正常发光时长8—10万小时)、冷光源等,是真正的“绿色照明”。实物图:

在这里插入图片描述

LED在电路图中的符号为:

在这里插入图片描述

它具有二极管的基本特性,即正向导通,反向截止。要想点亮LED需要从正向流过工作电流。


不同LED小灯的工作压降不同,普通发光二极管的工作压降范围为:1.6—2.1V。工作电流为:1—20mA。


点亮单片机中LED灯

单片机中LED模块原理图:

在这里插入图片描述

通过观察电路原理图可以得出:要点亮开发板上LED小灯只需要控制P2口输出低电平即可(即给P2口赋值“0”)。


1.点亮单片机上所有的LED灯

代码如下:


#include


sbit LED1 = P2^0;

sbit LED2 = P2^1;

sbit LED3 = P2^2;

sbit LED4 = P2^3;

sbit LED5 = P2^4;

sbit LED6 = P2^5;

sbit LED7 = P2^6;

sbit LED8 = P2^7;


void main()

{

  LED1 = 0;

  LED2 = 0;

  LED3 = 0;

  LED4 = 0;

  LED5 = 0;

  LED6 = 0;

  LED7 = 0;

  LED8 = 0;

}


运行结果如下:

在这里插入图片描述

2.LED小灯的闪烁

代码:


#include


unsigned int i;


void main()

{

  while(1)

  {

    P2 = 0;

    i = 65535;

    while(i--);

    P2 = 0xff;

    i = 65535;

    while(i--);

  }

}


3.流水灯

代码:


#include

#include


#define uint unsigned int

#define uchar unsigned char


uchar temp;

void delay(uint z)

{

  uint x,y;

  for(x = z;x > 0;x--)

     for(y = 114;y > 0;y--)

}


void main()

{

   temp = 0xfe;

   P2 = temp;

   delay(100);

   while(1)

   {

      temp = _crol_(temp, 1);

      P2 = temp;

      delay(100);

   }

}



关键字:51单片机  LED灯  流水灯 引用地址:51单片机自学笔记(四)——点亮LED灯、流水灯

上一篇:51单片机自学笔记(五)——蜂鸣器
下一篇:51单片机自学笔记(三)——电子电路基础

推荐阅读最新更新时间:2024-11-09 19:54

51单片机控制的DS18B20温度测量报警系统
需要的功能及作用 单片机DS18B20温度测量系统的测量范围为0-99.9摄氏度,可设置上限报 警温度、下限报 警温度(即高于上限值或者低于下限值时蜂鸣器报 警),默认上限报 警温度为38℃、默认下限报 警温度为5℃。报警值可设置范围:最低上限报警值等于当前下限报警值,最高下限报 警值等于当前上限报 警值。将下限报 警值调为0时为关闭下限报 警功能。电源电压VCC为5V,可以焊一只USB座到板上,然后用相应的USB线连接至电脑,通过电脑USB口供电;DS18B20也可以根据需要用屏蔽电缆引出来。K1为进入/退出设置键;K2为增加键;K3为减少键。 废话不多说,先上实物图 因为项目比较简单就不放一些具体的工艺图片了
[单片机]
<font color='red'>51单片机</font>控制的DS18B20温度测量报警系统
基于51单片机的数字频率计
计的频率计范围能够达到1HZ-1MHZ(实际上51单片机达不到这个范围,不要在实验环境下进行),这个是课设来着,用Proteus仿真实现的,给有需要的同学参考一下 单片机源码: #include reg51.h #include stdio.h #include intrins.h typedef unsigned char uchar; typedef unsigned int uint; sbit RS=P2^5; sbit RW=P2^6; sbit E=P2^7; sbit CLK=P2^0; sbit DO=P2^1; sbit DI=P2^1; sbit CS=P2^2; sbit CLR=P3^0;
[单片机]
基于<font color='red'>51单片机</font>的数字频率计
STM32 基于 CubeMX配置GPIO点亮LED灯
1 前言 本文基于ST的STM32F767ZI NUCLEO144开发板,结合CubeIDE的插件CubeMX配置生成代码点亮板载的LED,点亮可谓是单片机开发中的hello world,非常简单; 2 理论分析 2.1 LED 原理 发光二极管简称为LED,生活中几乎无处不在,由含镓(Ga)、砷(As)、磷(P)、氮(N)等的化合物制成。当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管。在电路及仪器中作为指示灯,或者组成文字或数字显示。砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光,氮化镓二极管发蓝光。因化学性质又分有机发光二极管OLED和无机发光二极管LED 1 。 LED是正向
[单片机]
STM32 基于 CubeMX配置GPIO点亮<font color='red'>LED灯</font>
【ARM】led·fs2410流水灯
开发环境 1、硬件平台:FS2410(s3c2410) 2、主机:Ubuntu 12.04 LTS LED原理图 LED的GPIO的配置 配置GPFCON寄存器,设置GPF4-7为输出 配置GPFDAT,设置LED灯亮与灭 主要步骤 通过设置GPFCON将GPF4-7设置为输出 设置GPFDAT,可以将led灯亮或灭,GPFDAT的相应位置1灯灭,置0灯亮 源代码 NAND flash启动 关狗 设置栈 //start.S .text .global _start _start: #define WATCHDOG 0x53000000 ldr
[单片机]
【ARM】led·fs2410<font color='red'>流水灯</font>
51单片机计数中断程序举例 外部按钮产生中断
本程序的功能很简单,按一次按钮1(接在12管脚上的)就引发一次 中断 0,取反一次P1。0,因此理论上按一下灯亮,按一下灯灭,但在实际做实验时,可能会发觉有时不“灵”,按了它没反应,但在大部份时候是对的,这是怎么回事呢?答案请在本站键盘应用中找,这个程序本身是没有问题的。 程序:外部中断实验 ORG 0000H AJMP START ORG 0003H ;外部中断地直入口 AJMP INT0 ORG 30H START: MOV SP,#5FH MOV P1,#0FFH ;灯全灭 MOV P3,#0FFH ;P3口置高电平 SETB EA SETB EX0 AJMP $ INT0: PUSH ACC P
[单片机]
51单片机定时器/计数器基础知识介绍
一、基本概念 1、89C51有两个计数器T0和T1,89C52还有一个T2。每个计数器都是由两个8位的RAM 单元组成的,即每个计数器都是16 位的计数器,最大的计数容量是216=65536,记住是从0-65535。 2、提供给定时器的计数源又是从哪里来的呢?就是由单片机的晶振经过12 分频后获得的一个脉冲源。一个12M 的晶振,它提供给计数器的脉冲时间间隔是就是1us。 3、预置数计数法。如果每个脉冲是1微秒,则计满65536个脉冲需时65.536毫秒。但是如果只需要10毫秒就可以了,怎么办?只要在计数器里预先放进55536,这样只需要计数65536-55536=10000次,也就是10毫秒了。 二、相关寄存器 特殊功能寄存
[单片机]
51单片机汇编语言实验(六)-----8255键盘与显示设计
一、实验目的:    掌握8255外接键盘与数码管显示的设计 二、实验设备:    PC计算机一台,Dais-52PRO+实验系统一套。 三、实验内容:    8255键盘与显示设计 四、 8255键盘与显示设计    1、实验原理:    本实验使用8255的PA7到PA0控制数码管字形口、PB5到PB0控制数码管字位口,同时PB4到PB0作为键盘扫描口、PC3~PC0作为键盘读入口。利用CPU控制8255,对4×5键盘进行扫描和键值读取,将键值显示到6位数码管上。本文介绍的是简化版的实验,不控制最后一列键盘,数码管位选端不接线,直接点亮。    2、实验步骤:   ① 按下图拆除14芯扁平电缆;   ②将8
[单片机]
<font color='red'>51单片机</font>汇编语言实验(六)-----8255键盘与显示设计
At89c51单片机键盘扫描和显示程序
;****************************************************** ;* 名称:kbd ;* 功能:从键盘中读入按键值,存入寄存器A:r*4+c ;* 输入: ;* 输出: A=按键值 ;****************************************************** org 0000h ljmp main org 0200h main: init: MOV 60H,#10h MOV 61H,#10h MOV 62H,#10h MOV 63H,#10h wait: acall keyscan ;有键按下,
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved