单片机开发中流水灯其实就是利用二极管发光的原理,构建一排二极管,依次点亮某一个二极管,中间利用延时起到一个过渡的效果,循环往复,这就是我们看到的流水灯效果。

仿真软件Proteus中构建硬件项目,选择8051单片机类型,最后画出如下所示电路图:

在源代码文件main.c中书写如下代码:

#include <reg51.h>
#include <stdio.h>
unsigned char leddata[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void delay()
{unsigned int i,j;for(i=1000;i>0;i--){for(j=110;j>0;j--);}
}
void main(void){ unsigned int i;for(i=0;i<8;i++){P3 = leddata[i];delay();}}

编译,构建。最后进行仿真,效果如下所示:

这里二极管接的是P3引脚的8个引脚,这里二极管负极统一接地,为了让它们依次发光,这里P3一排8个引脚必须依次输入高电平。在某一个引脚为高电平时,其他引脚都是低电平。所以每个在循环结合延时点亮LED的时候,需要给P3赋值,这里8个引脚依次点亮的关系如下:

0000 0001   -> 0x01
0000 0010   -> 0x02
0000 0100   -> 0x04
0000 1000   -> 0x08
0001 0000   -> 0x10
0010 0000   -> 0x20
0100 0000   -> 0x40
1000 0000   -> 0x80

所以在代码中我们声明了如下所示的数组:

unsigned char leddata[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

依次给P3引脚赋值,就可以点亮某一个二极管。

这种实现方式是利用数组,其实数组的每一个值,都是2的幂,基于这特点,还可以采用移位的方式来给P3引脚赋值,就是左移 1<<1,1<<2,1<<3,1<<4,1<<5,1<<6,1<<7,1<<8,这里就不再赘述。

这里值得注意的是,如果二极管公共一端接电源,这里设计图需要修改二极管的方向,并且代码中需要做修改,每次给需要点亮的LED低电平,因此这里对P3赋值需要取反:

P3 = ~leddata[i]

proteus中设计流水灯并编码,让我们再一次感受到了单片机编程的快乐。主要利用Proteus仿真软件设计电路,检查电气规则,编码,仿真,一系列操作下来,最后看到实验结果真的很兴奋,很激动,这太好玩了。

仿真软件proteus构建流水灯实验相关推荐

  1. 电路仿真软件详谈(26),基于电路仿真软件proteus的流水灯设计

    电路仿真软件的使用越来越多,大家对电路仿真软件也越来越了解.该系列对于电路仿真软件的介绍均基于proteus软件,本文针对电路仿真软件的讲解同样不例外.本文中,主要介绍电路仿真软件proteus和Ke ...

  2. PROTEUS电子仿真软件的使用——流水灯

    实验二 熟悉PROTEUS电子仿真软件的使用 一.实验目的 1. 掌握RPROTEUS电子仿真软件的安装过程: 2. 掌握RPROTEUS电子仿真软件的使用方法: 3. 掌握创建电子仿真原理图的过程: ...

  3. 单片机led流水灯实验c语言程序,单片机LED流水灯实验及流程图源代码详解

    利用实验室提供的单片机实验开发板的最小系统电路模块.流水灯电路模块,以及Protues仿真软件搭建电路,实现I/O口循环流水灯演示效果. LED流水灯控制电路如图2-1所示,八个LED灯D0-D7(可 ...

  4. 【紫光同创国产FPGA教程】【第二章】LED流水灯实验及仿真

    原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处(http://www.alinx.com). 适用于板卡型号: PGL22G/PG ...

  5. Zedboard学习(三):PL下流水灯实验

    zynq系列FPGA分为PS部分和PL部分. PL: 可编程逻辑 (Progarmmable Logic), 就是FPGA部分. PS: 处理系统 (Processing System) , 就是与F ...

  6. 流水灯c语言实验报告心得,嵌入式流水灯实验心得体会.docx

    嵌入式流水灯实验心得体会 嵌入式流水灯实验心得体会 篇一:嵌入式流水灯实验 实验三 GPIO输出控制实验 一. 实验目的 熟悉LPCXX系列ARM7微控制器的GPIO输入控制. 二.实验设备 ? 硬件 ...

  7. zynq 7000 的流水灯实验

    流水灯实验是FPGA 的入门实验.最简单并且得到实在的体验,我们就从这里开始zynq 7000的体验吧. 本实验包括3部分:创建工程,添加和建立文件,比特流产生和编程. 1:创建工程:打开Vivado ...

  8. 基于FPGA实现的流水灯实验

    版权声明:如需转载,请注明出处 https://blog.csdn.net/chengfengwenalan/article/details/79606351 基于FPGA实现的流水灯实验 一.开发环 ...

  9. S5PV210 | 裸机汇编LED流水灯实验

    S5PV210 | 裸机汇编LED流水灯实验 开发板: 1.原理图 上图中,当按下POWER键后,VDD_5V和VDD_IO会产生5V和3.3V的电压,其中D26无须GPIO控制,为常亮状态,即我们所 ...

  10. 【连载】【STM32神舟III号实验例程】流水灯实验(实验一)

    源代码流水灯实验例程程序(神舟III号).rar

最新文章

  1. 基于AI的便携式神经假肢让截肢14年患者操作自如,高精度、低延迟
  2. 皮一皮:原来骑骆驼要求这么高。。
  3. [体感游戏]关于体感游戏的一些思考(三) --- 射击
  4. 用Python更改IP地址(转)
  5. 蓝桥杯省内模拟赛解题过程
  6. POJ 2955 区间DP必看的括号匹配问题,经典例题
  7. CentOS下安装VirtualEnv的教程
  8. C语言线性表之双向循环链表
  9. 自助式BI和传统BI有什么区别
  10. 无线路由器打印机服务器设置,路由器 打印机服务器设置方法
  11. VBA的userform 相关的基本事件,方法和属性,以及 userform.name 使用规范备忘
  12. ES3数组和字符串的方法
  13. go clean 命令介绍
  14. 疯狂ios讲义之疯狂打飞机(2)
  15. RGB图像转HSI直方图均衡化后再转回RGB
  16. Docker 使用容器数据卷 实现宿主机与容器共享数据 容器数据持久化
  17. 微信小程序获取右上角胶囊距顶部的距离和胶囊的尺寸
  18. IP地址为140.123.0.0的地址是B类地址,若要切割为10个子网,而且都要连接上Internet,请问子网掩码应设为
  19. 视觉3D感知(一):初步认识
  20. Ubuntu 查看磁盘空间大小命令

热门文章

  1. 初为人师[/size]
  2. 思维导图告诉你怎样正确的做笔记?
  3. 何为挂载(mount)?
  4. oracle 删除 快照,创建和销毁 ZFS 快照
  5. blob和clob类型数据怎么插入数据库
  6. ssh-keygen 参数说明
  7. python3d动画效果_使用Matplotlib 3D实现三维波浪动画
  8. CGAL多面体布尔运算
  9. backdrop-filter高斯模糊
  10. SequoiaDB 巨杉数据库-隔离级别