proteus仿真,如何知道led发光没有?

今天刚接触proteus这个软件,想先做一个简单的实验。

但是我怎么知道led发光了没? 它是在图中直接显示吗?

第1个回答  2020-12-11
1. 基于proteus的51单片机开发实例(1)--点亮一个小灯

1.1. 实验目的

通过本实例了解和熟悉以下知识:

1、51单片机I/O端口的输出操作;

2、了解单片机最小系统的组成;

3、了解单片机程序的基本框架;

4、了解LED发光二极管的特性。

1.2. 设计思路

电路设计思路:将一个发光二极管的一端连接到51单片机的一个I/O端口(P1端口)上,发光二极管的另一端连接到电源正极。

程序设计思路:编写程序,通过程序控制连接发光二极管的I/O端口输出高电平(或低电平)来控制发光二极管的点亮(或熄灭)。

1.3. 基础知识

本实例用到的基础知识有以下几方面:

1、51单片机P1端口结构及使用方法;

2、51单片机最小系统的电路组成;

3、发光二极管(LED)的工作原理及使用方法;

4、51单片机的基本程序框架。

下面我们来分别学习一下这些基础知识。

1.3.1. 51单片机P1端口结构及使用方法

首先我们来看看51单片机长什么样,以及在电路图中51单片机的标识符号,如图1,图2所示。

图1 51单片机实物图

图2 51单片机的电路符号

51单片机有4个8位的并行I/O端口,分别是P0、P1、P2、P3。这4个端口分别有不同的电路结构及用途。本例中用到的是P1端口,所以我们先来了解一下51单片机P1端口的内部结构及工作原理。置于P0,P2,P3口的内部结构及工作原理,我们在后续的例子中陆续学习。

图3所示是51单片机P1口的引脚内部结构。

图3 51单片机P1端口内部结构图

51单片机的P1端口只能作为普通的通用I/O口使用(P0,P2,P3口除了作为通用I/O口功能外,还有第二功能,接下来的实例中会讲解)。

从图3中可以看出,在其输出端接有上拉电阻,所以它可以直接输出高电平或者低电平,不需要外接上拉电阻了。

当P1口作为输入口时,必须先向内部锁存器写“1”,这样使场效应管VT截止,才能够从读引脚位置处获取端口的电平状态,否则场效应管如果处于导通状态,就不能够获取正确的引脚电平状态了。

1.3.2. 51单片机最小系统的电路组成

我们知道,想要让一个电路能够正常工作,必须满足它的最基本的工作条件,同样的,对于单片机电路来说,想让单片机电路工作起来,必须满足其最基本的要求,这些要求有:电源,时钟电路,复位电路。

51单片机的最小系统图如图4所示。

图4 51单片机最小系统电路图

对于电子产品来说,首先必须给它提供正常的电源才能工作,没有一个稳定的、适配的电源,它就不能工作。对于51单片机来说,它需要5V的稳定直流电源供电。

单片机必须在稳定的时钟脉冲下才能稳定的工作,就像我们列队操练,必须在统一的“一二一”的口令下,才能够保持队型不乱,步伐一致。

单片机复位电路也是必须的,因为单片机开始工作时,需要先将单片机内部的数据、状态配置在一个初始状态下,才能够按照程序设计的流程正常工作,比如单片机数据存储区(RAM)中的数值都需要按照确定的初始化的默认值开始执行,如果每次不初始化,则这些数值可能每次单片机启动时都不一样,这样就会导致程序执行出现问题。

1.3.3. 发光二极管(LED)的工作原理及使用方法

发光二极管(LED)是单片机学习中最常见的两种元器件(另一个元器件是按键,使用LED和按键就可以把单片机的大部分基础功能实现,在后面的实例中我们会对此有深切体会)。

常见发光二极管的外形接结构图如图5所示。

图5 发光二极管(LED)实物图

发光二极管(LED)和普通二极管的特性一样,都具备单向导电性,不同的是,当加在发光二极管两端的电压超过它的导通电压(一般为1.7~1.9V)后,发光二极管导通,当流过它的电流超过一定值时(一般是2~3mA,不同颜色的发光二极管发光电流不一样),开始发光。

1.3.4. 51单片机的基本程序框架

任何程序的编写都要遵循一定的规则和流程,对于单片机程序来说,同样如此,单片机程序的一般框架如下。

#include <AT89X52.h> //头文件包含

//全局变量声明和定义
//函数声明

int main(void)
{
//初始化设置

while(1)
{
//程序内容
}

}
1.4. 电路设计

本实例的电路如图6所示。单片机的P1.0端口接发光二极管的负极,发光二极管的正极通过限流电阻接到电源的VCC端。

图6 基于proteus的51单片机开发实例(1)--点亮一个小灯

本电路中发光二极管的驱动电路是典型的“灌电流”电路,具体原理是,当P1.0输出高电平时,D1两端都是高电平,所以发光二极管上无压差,不会导通,也就不会发光;当P1.0输出低电平时,D1两端就有了压差,从而导通,发光二极管开始发光。从电流流向来说,电流是从VCC经过限流电阻,到达发光二极管的正极,然后从发光二极管的负极流入到单片机的P1.0口,就好像是电流“灌入”了单片机的P1.0端口,所以称为“灌电流”电流。(与之对应的,还有拉电流电路,下一个例子我们就采用拉电流的方式)

需要注意的是,该电路图并不适合正式产品使用,因为单片机端口的输入或者输出电流的能力都是有限的,并且通常的单片机系统不可能只有一个发光二极管。在后面的例子中,我们会介绍更符合实际应用的发光二极管驱动电路。

1.5. 程序设计

本实例的程序代码如下。

#include <AT89X52.h> //头文件包含

int main(void)
{
P1=0xfe;//P1.0口输出低电平
while(1)
{
//程序一直在此循环
}

}
对于程序中#include <AT89X52.h>这句话的作用,我们可以通过将该语句屏蔽后,编译程序提示的错误信息来了解。

将该语句屏蔽后,编译程序,会出现如图6所示的错误提示,根据这个提示,我们知道,头文件的其中一个作用就是将P1进行了预定义,只有这样我们才能在程序中使用P1而不会出错。

1.6. 实例仿真

单片机程序编译完成后,将生成的hex文件装载到用proteus建立的仿真电路中,点击开始仿真按钮,就可以看到程序的运行结果了,可以看到LED被点亮了。如图6所示。

图6 仿真现象:发光二极管点亮

拓展:大家可以试着在proteus环境下,将电阻R2的阻值或者发光二极管D1的导通电流修改一下,然后再看看发光二极管的亮度会有什么变化。

1.7. 总结

发光二极管是单片机学习中最方便、最直接的指示程序运行结果的器件。所以我们要对发光二极管的特性和工作原理有充分的理解。在后面的实例中,我们将会经常看到使用发光二极管的点亮、熄灭、闪烁等状态指示程序的运行状态。

本系列实例基本都基于keil和proteus两个软件。所以大家需要熟悉如何在keil环境下编写51单片机程序,如何在proteus环境下建立51单片机仿真项目。

Proteus怎么检测LED不亮的问题?
在Proteus中,发光二极管(LED)不亮的问题通常有多种原因。以下是一些常见的排查步骤:1. 连接检查:确保LED正确连接到电路中。检查极性,确保LED的长腿(正极)与电源的正极连接,短腿(负极)与电源的负极连接。2. 电源电压:确保电源电压适用于LED。LED通常需要较低的电压,例如2V至3V,具体取决于LED...

Protel模拟怎么知道LED亮还是灭?
再加一个按键,用P1.1控制P2.1的LED亮灭, 两个按键各自控制对应的LED而且互不影响.如何改或重编程序? 在此先谢谢了!!loop:jnb p1.0,led1 ajmp loop led1:lcall delay jb p1.0,loop clr p2.0 jnb p1.0,loop2:jnb p1.0,led2 ajmp loop2 led2:lcall delay jb p1.0,loop2 se...

proteus仿真led灯不亮,求大神解答
1)先这样搭建电路,观看效果,务必弄出正确的效果来;2)代码中你直接给 while(1) { P1=0;},这样LED应该会全部亮,否则就是总线连接不正确

proteus仿真led灯一直是蓝色
proteus运行仿真后发光二极管就会发光的,有红色的,黄色的,绿色的,蓝色的,仿真后就会显示出这几种颜色的,一看就知道是亮了。但你这个图中的限流电阻R1阻值太大了,所以,不发光了,取100-600殴之间就好了,把那个K去掉。roteus仿真,判断led发光情况:手动输入电平,检测输出情况,即可判断是否发光。

proteus里面发光二极管叫什么名字啊?
在Proteus软件中,发光二极管通常被称为LED(Light Emitting Diode)。要在Proteus中找到发光二极管,首先需要在设备库中查找。在左侧的设备选择栏中,选择Optoelectronics类别,里面包含了各种光电器件,其中包括LED。在Proteus绘制原理图并添加LED后,可以通过调入已编译的目标代码文件(通常以.HEX为扩展名)来...

proteus仿真 LED灯不亮
是仿真,还是实物开发板?程序没问题,LED灯不亮,问题出在电路上,看程序LED灯应该接在P0口上,P2口没用啊。如果LED灯的负极接P0口,是可以亮的,如果是正极接P0口,那P0口要有上拉电阻,LED灯才能亮。对照一下,看你的电路满足这些要求吗?

帮我看一看为什么proteus仿真LED不发光
首先,你用的蜂鸣器就是那个喇叭不对,那是个无源的,需要加音频信号或方波信号才能响。见下图。而你的电路是要加直流电压就响,所以,要用有源的喇叭,见下图,用这个。放置后,双击,要修改电压,见下图画红圈的那项,因你的电路的电源电压是5V的,所以,喇叭的电压也要改成5V的。这些做对,还不...

proteus仿真上电瞬间led灯会闪一下是怎么回事?
proteus仿真上电瞬间led灯会闪一下,一是你电脑运行proteus有点慢,打开后到运行程序有延迟。二是你用IO脚输出的高电平点亮led灯,刚上电单片机复位IO输出高电平,led灯亮。可是你程序中却输出低电平关灯了,所以就闪亮一下又灭了。改进方法,把led灯负极接单片机的IO脚,输出低电平亮灯,输出高电平最...

用proteus做的流水灯,很简单的,怎么不亮呀?
2、51单片机的拉电流(输出电流)能力很弱,灌电流能力较强。拉电流不足以驱动发光二极管,灌电流则可以。3、应该将电阻接地端改为接电源,LED负极接P0口,这样,输出低电平时,LED正常发光。检查一下单片机的晶振和复位电路,看看单片机是否工作了。用Proteus仿真时,单片机的RST复位引脚是不起作用的,即...

proteus仿真LED灯为什么不亮
接在P0.0脚上的LED是会亮的,程序也对,是因为LED正极的连线有问题,重新画一下,而接在P0.1的LED是不会亮的,因不是发光二极管,就是普通的二极管,就算程序P0.1输出低电平就不亮的。

相似回答