今天又小伙伴又来考我了。问我16个LED灯循环点亮怎么变成。我也动了下手,将手里的8个LED灯循环点亮的小程序进行了修改,就完成了16个LED灯循环点亮的小实验。那么下面给大家分享下吧!

其实16个LED灯循环点亮更8个LED灯循环点亮一个道理!我这里用到了移位函数,移位函数都在intrins.h文件里面。这里注意移位函数的选择,8位数据和16位数据要用到不同的移位函数。这里是最关键的,其他的地方也就大同小异了。

下面就看看代码吧!

代码:

#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器

#include//因为要用到左右移函数,所以加入这个头文件

typedef unsigned int u16;  //对数据类型进行声明定义

typedef unsigned char u8;

#define led1 P0   //将P0口定义为led0 后面就可以使用led代替P0口

#define led2 P2   //将P2口定义为led2 后面就可以使用led代替P2口

/*******************************************************************************

* 函 数 名         : delay

* 函数功能   : 延时函数,i=1时,大约延时10us

*******************************************************************************/

void delay(u16 i)

{

while(i--);

}

/*******************************************************************************

* 函 数 名       : main

* 函数功能 : 主函数

* 输    入       : 无

* 输    出    : 无

*******************************************************************************/

void main()

{

u16 i,led;

led=0xfffe;

led1=0xff;

led2=0xff;

while(1)

{

for(i=0;i<15;i++)//将led右移一位

{

led1=led;

led2=_irol_(led,8);

led=_irol_(led,1);

delay(50000); //大约延时450ms

}

//试试将下面的注释去掉会怎样呢?去看看结果吧!

/***********************************************

for(i=0;i<15;i++)//将led右移一位

{

led1=led;

led2=_iror_(led,8);

led=_iror_(led,1);

delay(50000); //大约延时450ms

}

*************************************************/

}

}

代码是不是很简单呢。分享的文件里还有8个LED灯循环点亮的程序,方便大家作对比。还有Proteus的仿真工程,可以直接用软件仿真就可以查看具体效果了。安装了Proteus的小伙伴可以去试试了。

点亮led灯的个数_16个LED灯循环点亮的小程序(代码)相关推荐

  1. 单片机c语言实现小灯循环亮1 8个,实现单片机信号灯1-8依次循环点亮的程序怎么写...

    把各个花样写在子函数,中断中对变量加1,在判断是否大于5,大于5就对变量清零.因为你要5种花样.主函数判断变量的值,1时执行从左到右依次点亮,2时执行从左到右逐个依次熄灭.依次下去 # include ...

  2. 微信小程序 阿里云服务器 非物联网平台自建MQTT代理服务器控制树莓派LED

    微信小程序 阿里云服务器 非物联网平台自建MQTT代理服务器控制树莓派LED 本人大三,临近毕业季,日后希望从事物联网和嵌入式相关工作,所以自己构想了一个项目来练手,之前做大创的时候学了一点微信小程序 ...

  3. 2021-06-01 51蛋骗鸡(单片机开关k1闭合时,实现发光二极管D1~D4,D8~D5循环点亮,k2闭合时,实现D4~D1,D5~D8循环点亮)

    缘由单片机实现发光二极管D1~D4,D8~D5循环点亮 k2闭合实现D4~D1,D5~D8循环点亮" - 24小时必答区 #include "reg52.h" sbit ...

  4. 微信小程序实现两个数之间的运算

    微信小程序实现两个数之间的运算 要求:创建一个微信小程序实现两个数字的比较运算.加法运算.减法运算.乘法运算或者除法运算中的一种,效果如图(这里我写的包含了所有运算,可根据需要自行选择): app.j ...

  5. 大牛教学 | 在51单片机上用C语言实现循环点亮8盏LED灯

    大家好,最近很多同学都在找分享,也有许多同学问我单片机问题. 在此,在CSDN平台开设账号,分享平时给同学们的案例.希望能帮到更多的人.谢谢 首先是循环点亮LED灯 原理图 如上图,我们有8颗LED等 ...

  6. 51单片机基础入门(2)点灯大师:单个LED点亮、多个LED点亮、流水灯(附程序代码、解析)

    点亮LED 一.LED基本概念 二.LED工作参数 三.LED原理图分析 四.实践编程 一.LED基本概念 什么是LED LED(light-emitting diode): 发光二极管 是一种常用的 ...

  7. 用C51汇编语言控制1234灯亮,51单片机:用汇编语言控制LED灯发光

    硬件电路: P1.0 ~ P1.5 外接 6 个 LED,分别称为 D1 ~ D6,低电平发光. P0.0 ~ P0.3 外接 4 个 按键,分别称为 K1 ~ K4. P3.2 ~ P3.3 外接  ...

  8. Linux4个led灯循环点亮程序,循环点亮LED灯实验

    终于把LED等的实验做好了...linux平台上做.  貌似速度很不好... 延迟的函数是递减0x100000, 大约需要三四秒.真够慢的.. 一共有两个文件,一个汇编文件,一个C语言文件,其中汇编文 ...

  9. 点亮 Linux 驱动开发路上的第一个灯

    Linux下的任何外设驱动,最终都是要配置相应的硬件寄存器.前面的文章中介绍了新旧字符设备的驱动开发框架,也介绍了IMX6ULL处理器GPIO的工作原理及配置方法,本篇我们将实际操作一个GPIO,点亮 ...

最新文章

  1. Makefile(一)
  2. 民国大学教授收入有多高?
  3. 找出数组中只出现1次的两个元素
  4. JavaScript数据结构——栈(Stack)
  5. BZOJ1861:[ZJOI2006]书架——题解
  6. 【基础教程】基于matlab图像去噪总结【含Matlab源码 1274期】
  7. java静态方法没有this,super与this无法用在static方法中
  8. 挑战程序设计竞赛 — 知识总结
  9. 多任务学习(Multi-Task Learning)
  10. 多台计算机直接连接打印机,多台电脑如何连接打印机?
  11. 恢复Cisco 2960交换机密码
  12. 【Linux】进程终止与进程等待/僵尸进程与孤儿进程
  13. X上面有一道横线,怎么打出来?
  14. 蛋白和肽测序仪销量、收入、价格、毛利率及市场份额
  15. 如何在CentOS 8上安装Docker
  16. 【华为OD机试/笔试真题 python】出错的或电路
  17. 计算机网络socket翻译成中文,Socket的错误码和描述(中英文翻译)
  18. .chm格式文件如何阅读
  19. 为什么我的js function中的代码不起作用了?
  20. 怎么算程序框图的计算机程序,算法与程序框图导学案

热门文章

  1. [mobx] Dynamic observable objects cannot be frozen 解决记录
  2. Portapack ADS-B接收室外附近飞机信号
  3. Defensive Programming in PHP(PHP中的防御性编程)
  4. Android学习笔记 56. TabLayout 选项卡布局
  5. 你知道有哪些输入文字生成诗句的软件吗?
  6. layui表单数据重载 全局搜索
  7. 【数据结构】set重载 < 运算符
  8. 26个新媒体运营数据来源渠道
  9. 二本计算机专业 考研究生,二本可以考上985的研究生吗?
  10. 利用百度地图,根据经纬度找到对应的具体街道