51单片机流水灯的实现

发布者:huanli最新更新时间:2022-10-18 来源: csdn关键字:51单片机  流水灯  LED 手机看文章 扫描二维码
随时随地手机看文章

流水等的实现需要先实现灯光的闪烁


#include

#define uint unsigned int

sbit p1=P1^0;

void delay1s();

main()

{

    while(1)

        {

            p1=0;//打开第一个发光二极管

            delay1s();//延迟一秒

            p1=1;//关闭第一个发光二级管

            delay1s();

        }

}

void delay1s()

{

    uint i,j;

    for(i=500;i>0;i--)

        for(j=110;j>0;j--);

}


因此需要延时函数


如下,灯亮200ms,暗800ms,时间在delayms中自己


#include

#define uint unsigned int

sbit p1=P1^0;

void delayms(uint);

void main()

{

    while(1)

    {

        p1=0;

        delayms(200);

        p1=1;

        delayms(800);

    }

}

 

void delayms(uint xms)

{

    uint i,j;

    for(i=xms;i>0;i--)        //延时xms毫秒

        for(j=110;j>0;j--);

}


用C51实现流水灯的操作需要用到移位操作


也就是C语言中的左移,右移运算符<<,>>,


该运算符是直接对二进制起作用的


最高位补0,其他位0变1,1变0

但是在C51中,可以直接用“_crol_”函数实现


C51左移程序

#include

#define uint unsigned int

 

uchar a;

 

main()

 

{

 

        a=0xaa;

 

         while(1)

 

                {

 

                 a=a<<1;//右移变">>"

 

                 }

 

}


最终实现的程序

 

#include

#include//包含_crol_函数所在的头文件

#define uint unsigned int

#define uchar unsigned char

void delayms(uint);

uchar aa;        //定义一个变量来给P1赋值

void main()

{

    aa=0xfe;//赋初值11111110 

    while(1)

    {    

        P1=aa;//点亮第一个灯

        delayms(500);//延时500ms

        aa=_crol_(aa, 1);//aa循环左移1位后再给aa

    }

}

 

void delayms(uint xms)

{    

    uint i,j;

    for(i=xms;i>0;i--)

        for(j=110;j>0;j--);

}


一个菜鸟的学习之路


关键字:51单片机  流水灯  LED 引用地址:51单片机流水灯的实现

上一篇:STC89C52单片机引脚对应的功能以及实例讲解
下一篇:51单片机学习——点亮第一个发光二极管

推荐阅读最新更新时间:2024-11-09 14:23

C51单片机学习笔记之LED
简介 LED就是一个发光二极管,没啥好说的。唯一 一点就是低电平有效! 原理图 代码部分 #include REGX52.H void delay() { unsigned int i; for(i=0;i 30000;i++); } main() { unsigned int i; unsigned char J; while(1) { /*P0=0xFE; delay(); P0=0xFD; delay(); P0=0xFB; delay(); P0=0xF7; delay(); P0=0xEF; delay(); P0=0x
[单片机]
C<font color='red'>51单片机</font>学习笔记之<font color='red'>LED</font>
C51---3.2 独立按键控制LED亮灭状态
原理图 按键消抖 对于机械开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开,所以在开关闭合及断开的瞬间会伴随一连串的抖动。所以我们需要给按键进行延时消抖 main函数 独立按键控制LED灯亮灭 按键按下并松开时 LED灯状态翻转 #include REGX52.H //0 num 65535 void Delay_ms(unsigned int num) //@12.000MHz { unsigned char i, j; while(num) { i = 2; j = 239; do { while (-
[单片机]
C51---3.2 独立按键控制<font color='red'>LED</font>亮灭状态
51单片机——LED流水灯
一、查表法实现流水灯 查看开发板的原理图,知道了控制LED2~LED7的端口为P0口,所以可以通过对P0口赋值控制发光二极管的亮灭。比如,用十六进制表示P0的值,P0=0xfe,即LED2发光,其他LED熄灭。要实现流水灯的话,让发光二极管从LED2到LED7顺序发光就可以了,也就是说,P0口的值依次为0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,简简单单。 而查表法就是把P0口要表示的值做成数组,再利用'code'将其存入ROM中,使用时,让P0口等于数组中的某个值。 程序如下: #include reg52.h sbit ADDR0=P1^0; sb
[单片机]
<font color='red'>51单片机</font>——<font color='red'>LED</font><font color='red'>流水灯</font>
艾迈斯欧司朗LED产品搭配二维码(Data Matrix)技术,帮助汽车制造商简化生产流程
艾迈斯欧司朗LED产品搭配二维码(Data Matrix)技术,帮助汽车制造商简化生产流程 创新型二维码技术为每颗LED提供独立的身份识别号,并与其测试数据一一对应; 制造商可直接获取每颗LED的数据,从而大幅降低了光学校准操作,简化了生产流程; DMC项目的推出充分彰显艾迈斯欧司朗致力于LED产品增值的战略布局。 中国 上海,2024年3月25日—— 全球领先的光学解决方案供应商艾迈斯欧司朗近日宣布,推出了创新型二维码产品创新技术,旨在助力汽车照明模组与系统制造商提高产能与生产效率,同时确保光学质量与性能实现高度一致性。 OSIRE® E5515应用图片(图片:艾迈斯欧司朗) 二维码(Data Mat
[电源管理]
艾迈斯欧司朗<font color='red'>LED</font>产品搭配二维码(Data Matrix)技术,帮助汽车制造商简化生产流程
汽车LED驱动电路的设计方案
在汽车或汽车中,LED已发展成为照明的首选。无论是后尾灯还是仪表盘中的指示灯,如下图 1 所示,如今都集成了LED。其紧凑的尺寸有助于设计的多功能性,并提供与车辆预期寿命本身一样耐用的期望。 在汽车或汽车中,LED已发展成为照明的首选。无论是后尾灯还是仪表盘中的指示灯,如下图 1 所示,如今都集成了LED。其紧凑的尺寸有助于设计的多功能性,并提供与车辆预期寿命本身一样耐用的期望。 LED实际上是一个P型N型(PN)结二极管,它允许电流仅在一个方向上通过它。一旦 LED 两端的电压达到最小正向电压(VF),电流就开始流动。 LED的照明水平或亮度由正向电流(IF)决定;而 LED 消耗的电流取决于施加在 LED 上的电压。
[嵌入式]
汽车<font color='red'>LED</font>驱动电路的设计方案
LED基础知识及万用表测试LED方法
  LED(发光二极管)是一种半导体二极管(一种p-n结),可在正电流从LED阳极流向阴极时发光。阳极表示为“+”,即二极管的正极。阴极表示为“-”,即二极管的负极。   问:如何测试LED   本文将介绍一些关于LED的基础知识以及如何测试LED的相关知识。   LED的基础知识   LED(发光二极管)是一种半导体二极管(一种p-n结),可在正电流从LED阳极流向阴极时发光。阳极表示为“+”,即二极管的正极。阴极表示为“-”,即二极管的负极。   二极管的符号表示为前端与竖线相接的箭头。箭头的指向为可以让LED发光的电流方向。有时,LED的符号还包括其他的箭头,用以表示二极管发光的方向。      大部分封装都不
[测试测量]
<font color='red'>LED</font>基础知识及万用表测试<font color='red'>LED</font>方法
什么是51单片机最小系统
1.什么是51单片机 51 内核单片机是 指兼容Intel 的8051指令系统的单片机统称;从诞生到现在的几十年时间,已成为一款经过市场考验、成熟的芯片产品。目前国内也众多51单片机厂家,且还有众多带51内核,用于各种不同场景的专用类单片机。 51单片机内部框架: 以下以STC89C52单片机为例,其内部总体结构其基本特性如下: 8位CPU、4-8k 字节 ROM、128 字节 RAM、21 个特殊功能寄存器32根I/0线、可寻址的 64 字节外部数据、程序存贮空间、2个 16 位定时器计数器中断结构:具有二个优先级、五个中断源、一个全双工串行口、位寻址(即可对寄存器进行位操作)功能,能按位进行逻辑运算的位处理器。 除 1
[单片机]
什么是<font color='red'>51单片机</font>最小系统
串口通信 校验码_8051单片机串口通信中的检错方法
对于基于flash控制器的8051的芯片结构,一般在进行数据传输时,都是先通过串口将数据传送到flash控制器的buffer中。由于buffer的大小为512 bytes,所以每次传输的最大数据量为512bytes。本文中所讨论的三种检错方法的传输数据量均为512 bytes。 1 检错方式 基于8051的串口数据通信系统的硬件开发平台框图如图1所示。利用该平台进行数据传输时,通常有三种数据检错方式。 1.1 奇偶校验 奇偶校验是检错中比较常见的一种方法。它利用数据中的1的个数作为检错的标志位,若1的个数为奇数个,则错误检测的标志位为1,若1的个数为偶数,则错误检测的标志位为0。在发送端和接收端同时检测奇偶位,若得到相同
[单片机]
串口通信 校验码_80<font color='red'>51单片机</font>串口通信中的检错方法
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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