仿真软件proteus构建流水灯实验
单片机开发中流水灯其实就是利用二极管发光的原理,构建一排二极管,依次点亮某一个二极管,中间利用延时起到一个过渡的效果,循环往复,这就是我们看到的流水灯效果。
仿真软件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构建流水灯实验相关推荐
- 电路仿真软件详谈(26),基于电路仿真软件proteus的流水灯设计
电路仿真软件的使用越来越多,大家对电路仿真软件也越来越了解.该系列对于电路仿真软件的介绍均基于proteus软件,本文针对电路仿真软件的讲解同样不例外.本文中,主要介绍电路仿真软件proteus和Ke ...
- PROTEUS电子仿真软件的使用——流水灯
实验二 熟悉PROTEUS电子仿真软件的使用 一.实验目的 1. 掌握RPROTEUS电子仿真软件的安装过程: 2. 掌握RPROTEUS电子仿真软件的使用方法: 3. 掌握创建电子仿真原理图的过程: ...
- 单片机led流水灯实验c语言程序,单片机LED流水灯实验及流程图源代码详解
利用实验室提供的单片机实验开发板的最小系统电路模块.流水灯电路模块,以及Protues仿真软件搭建电路,实现I/O口循环流水灯演示效果. LED流水灯控制电路如图2-1所示,八个LED灯D0-D7(可 ...
- 【紫光同创国产FPGA教程】【第二章】LED流水灯实验及仿真
原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处(http://www.alinx.com). 适用于板卡型号: PGL22G/PG ...
- Zedboard学习(三):PL下流水灯实验
zynq系列FPGA分为PS部分和PL部分. PL: 可编程逻辑 (Progarmmable Logic), 就是FPGA部分. PS: 处理系统 (Processing System) , 就是与F ...
- 流水灯c语言实验报告心得,嵌入式流水灯实验心得体会.docx
嵌入式流水灯实验心得体会 嵌入式流水灯实验心得体会 篇一:嵌入式流水灯实验 实验三 GPIO输出控制实验 一. 实验目的 熟悉LPCXX系列ARM7微控制器的GPIO输入控制. 二.实验设备 ? 硬件 ...
- zynq 7000 的流水灯实验
流水灯实验是FPGA 的入门实验.最简单并且得到实在的体验,我们就从这里开始zynq 7000的体验吧. 本实验包括3部分:创建工程,添加和建立文件,比特流产生和编程. 1:创建工程:打开Vivado ...
- 基于FPGA实现的流水灯实验
版权声明:如需转载,请注明出处 https://blog.csdn.net/chengfengwenalan/article/details/79606351 基于FPGA实现的流水灯实验 一.开发环 ...
- S5PV210 | 裸机汇编LED流水灯实验
S5PV210 | 裸机汇编LED流水灯实验 开发板: 1.原理图 上图中,当按下POWER键后,VDD_5V和VDD_IO会产生5V和3.3V的电压,其中D26无须GPIO控制,为常亮状态,即我们所 ...
- 【连载】【STM32神舟III号实验例程】流水灯实验(实验一)
源代码流水灯实验例程程序(神舟III号).rar
最新文章
- 基于AI的便携式神经假肢让截肢14年患者操作自如,高精度、低延迟
- 皮一皮:原来骑骆驼要求这么高。。
- [体感游戏]关于体感游戏的一些思考(三) --- 射击
- 用Python更改IP地址(转)
- 蓝桥杯省内模拟赛解题过程
- POJ 2955 区间DP必看的括号匹配问题,经典例题
- CentOS下安装VirtualEnv的教程
- C语言线性表之双向循环链表
- 自助式BI和传统BI有什么区别
- 无线路由器打印机服务器设置,路由器 打印机服务器设置方法
- VBA的userform 相关的基本事件,方法和属性,以及 userform.name 使用规范备忘
- ES3数组和字符串的方法
- go clean 命令介绍
- 疯狂ios讲义之疯狂打飞机(2)
- RGB图像转HSI直方图均衡化后再转回RGB
- Docker 使用容器数据卷 实现宿主机与容器共享数据 容器数据持久化
- 微信小程序获取右上角胶囊距顶部的距离和胶囊的尺寸
- IP地址为140.123.0.0的地址是B类地址,若要切割为10个子网,而且都要连接上Internet,请问子网掩码应设为
- 视觉3D感知(一):初步认识
- Ubuntu 查看磁盘空间大小命令