这里很巧妙的用了 KeilC51 自带的函数库_crol_(),该函数包含在“intrins.h”头文件中,所以需要增加一句#include <intrins.h>包含该头文件。 crol()函数的功能是循环左移,如图 3-36 所示。

循环左移LED灯(跑马灯)代码如下:(P2 = crol(P2,1) ;)

#include "stc15.h"
#include "intrins.h"
sbit LED9 = P5^4;
sbit LED10 = P5^5;
sbit LED11 = P3^6;
sbit LED12 = P3^7;
void Delay100ms()
{unsigned char i, j, k;_nop_();_nop_();i = 5;j = 52;k = 195;do{do{while (--k);} while (--j);} while (--i);
}
void main(void)
{unsigned char i = 0;P3M0 = 0x00;P3M1 = 0x00;while(1){P7 = 0xFE;Delay100ms();for (i = 0; i < 7; i++){P7 = _crol_(P7,1) ;Delay100ms();}P7 = 0xFF;LED9 = 0;Delay100ms();LED9 = 1;LED10 = 0;Delay100ms();LED10 = 1;LED11 = 0;Delay100ms();LED11 = 1;LED12 = 0;Delay100ms();LED12 = 1;}
}


流水灯顾名思义就是让 LED 如同流水一般,从无灯亮,到亮一个,再到亮二个,以此类推,亮 3 个、 4…12 个,最后全部熄灭,再周而复始的循环下去,先看源码,再做讲述。

左移LED灯(流水灯),代码如下(P7 <<= 1;):

#include "stc15.h"
#include "intrins.h"
sbit LED9 = P5^4;
sbit LED10 = P5^5;
sbit LED11 = P3^6;
sbit LED12 = P3^7;
void Delay100ms()
{unsigned char i, j, k;_nop_();_nop_();i = 9;j = 104;k = 139;do{do{while (--k);} while (--j);} while (--i);
}
void main(void)
{unsigned char i = 0;P3M0 = 0x00;P3M1 = 0x00;while(1){P7 = 0xFF;LED9 = 1;LED10 = 1;LED11 = 1;LED12 = 1;Delay100ms();for (i = 0; i < 8; i++){P7 <<= 1;Delay100ms();}LED9 = 0;Delay100ms();LED10 = 0;Delay100ms();LED11 = 0;Delay100ms();LED12 = 0;Delay100ms();}
}

最终循环左移LED灯(跑马灯)和左移LED灯(流水灯)的效果对比

C51 跑马灯和流水灯的区别相关推荐

  1. Step1 :【C51】LED灯闪烁、跑马灯、流水灯、实现每次亮两个灯的流水灯

    Step1Step1Step1 :[C51]LED灯闪烁.跑马灯.流水灯.实现每次亮两个灯的流水灯 在我所使用的开发板中,LED采用共阳极接法,即所有LED阳极管脚接电源VCC,其阴极管脚接到P2口上 ...

  2. FPGA极易入门教程----LED篇(1)跑马灯(流水灯)跑起来

    1.LED的基本原理 LED,又名发光二极管.LED灯工作电流很小(有的仅零点几毫安即可发光),抗冲击和抗震性能好,可靠性高,寿命长.由于这些优点,LED灯被广泛用在仪器仪表中作指示灯.液晶屏背光源等 ...

  3. LabVIEW跑马灯(呼吸灯)-状态机

    LabVIEW仿真跑马灯 一.跑马灯效果 二.实现步骤 1.创建状态机 2.Init 3.Idle (1)更新频率 (2)更改长度 (3)Stop 三.结果 总结 一.跑马灯效果 效果可以看看这位博主 ...

  4. C51单片机实验——LED流水灯

    实验一 LED流水灯实验报告 实验名称:LED流水灯实验 实验环境:普中实验系统:Keil μVision 4软件: 实验目的: (1)掌握uVision实验环境的使用 (2)掌握单片机I/O控制方法 ...

  5. C51单片机按键控制流水灯模式(定时器版本)以及定时器时钟

    上篇文章我们学了关于定时器的三大组成部分及许多寄存器的概念问题,这篇文章我们就要开始讲解实操部分. 首先,我们先来看看本文最后写成的代码: 以上三张是代码的主函数,此外,代码中还需用到的独立按键检测代 ...

  6. 【Keil5 C51】AT89C52 做流水灯实验(调用C51的库函数_crol_)

    _crol_ 函数的介绍 Cx51 User's Guide Summary #include <intrins.h>unsigned char _crol_ (unsigned char ...

  7. keil流水灯c语言程序两个一起亮,我用keil c51编了一个流水灯程序,编译无误却只有第一和第二个灯亮了,最后停在第一个灯处不动...

    满意答案 zJ张俭 2014.02.09 采纳率:43%    等级:12 已帮助:10469人 你有几个错误: 1 你的定时器没有重装,导致第一次中断和后面的中断时间不一样,第一次时间短,后面的时间 ...

  8. 设计分享|基于单片机的跑马灯

    目录 具体实现功能 设计介绍 51单片机简介 设计思路 设计内容 仿真图(protues8.7) 程序(Keil5) 具体实现功能 单片机的P0口驱动8个LED,从右到左依次点亮LED灯,实现跑马灯( ...

  9. 计算机组成原理字发生器及跑马灯,060仪器(标书)

    项目编号:AND2011-12-060 安徽农业大学实验室仪器设备采购招标书 一.购置品目: 1.计算机组成原理教学实验系统 35台 要求能够完成下述实验: 1)运算器及设计实验:2)存储系统及设计实 ...

最新文章

  1. Struts权威著作
  2. [物理学与PDEs]第2章习题13 将 $p$ - 方程组化为守恒律形式的一阶拟线性对称双曲组...
  3. Android系统源码编译最重要的一步
  4. 聊聊spring cloud的DefaultEurekaServerContext
  5. 数据可视化系列(三):布局格式定方圆
  6. VS2008中C++打开Excel(MFC)
  7. vml入门教程 【转】
  8. Cocos2d-X中国象棋的发展《五岁以下儿童》摆棋
  9. 微PE制作纯净U盘启动器及CGI安装镜像
  10. anaconda3.6.5安装pyhive
  11. Ansys Zemax / Ansys Speos | 如何使用Ansys光学解决方案设计和分析 HUD系统
  12. DOS窗口查找电脑端口占用情况
  13. win7动态壁纸_壁纸软件推荐-wallpaper engine
  14. 行政区划代码2020(SQL)--(上)
  15. 【运营数据分析】运营数据分析怎么做?建立运营数据分析思维
  16. 脚本 金盾替换机器码_金盾2018SS加密视频机器码替换工具的分析过程三
  17. secureCRT 连接虚拟机的时候连接失败
  18. 根据父母身高预测儿子身高
  19. JAVA POI删除word里面的批注comment
  20. 【数据库自习室#003】Mysql数据库函数

热门文章

  1. JavaScript 标准日期、中国标准时间、时间戳、毫秒数互转
  2. Android版MT4使用方法,手机版MT4软件基本操作方法
  3. 综合布线包括计算机网络,综合布线系统包括哪7个子系统?
  4. 安川最小巧机器人_安川带你了解几种常用机器人
  5. 点云深度学习的经典理论与实用算法
  6. linux系统移植 基于zynq7000平台
  7. asp.net 母版页使用详解
  8. 以前听不懂的歌词如今都成了共鸣
  9. win10配置深度学习环境(anaconda3+pytorch1.9+python3.7+cuda10.2)
  10. 纯正贵族,英国女王到底多有钱?