如图 利用51单片机引脚P1.0引接一只LED,送“0”信号时点亮灯,送“1”信号时灯灭。
#include"reg51.h"sbitP1_0=P1^0;voidmain(){P1_1=0;}谁能帮忙根据电路图详细讲解一下为什么?我自学的时候看到的问题。...
#include "reg51.h"
sbit P1_0=P1^0;
void main()
{
P1_1=0;
}
谁能帮忙根据电路图 详细讲解一下为什么?
我自学的时候看到的问题。 展开
sbit P1_0=P1^0;
void main()
{
P1_1=0;
}
谁能帮忙根据电路图 详细讲解一下为什么?
我自学的时候看到的问题。 展开
展开全部
追问
能 讲解一下 我给的图
为什么 给0信号 灯会亮
给1 灯会灭么?
我不懂原理~
追答
呵呵 什么LED呀 为什么接30欧的电阻啊 ? 开始时没有注意到。
展开全部
第一,2楼说的不假,用 简化电路比较实用,而且程序 跟 LZ 的也一样,无需变更。但,LED电路中串联的电阻是 30Ω,普通LED 导通压降为1.8-2V,也有3V左右的。按2V计算,那电流 I=(VCC-Vled)/R1=(5-2)V/30Ω=100mA,单片机IO 口没有如此大的灌电流,这会 烧毁单片机IO。
第二,搞不懂LZ 想问什么,不过,可以简单介绍下这个电路。我们先把 电阻R1 跟 LED D1的交点称为 A 点,而A点 左边 的三角形 是个 反相器,那么:
当P10 为低电平0时,经过反相器后,A点为 高电平,LED导通点亮。
当P10 为高电平1时,经过反相器后,A点为 低电平,LED截止熄灭。
第三,LZ 的程序,主函数中 缺乏 循环语句,是个 单次系统。按理论,这样的系统只会执行一次,其结果无法预测,可能亮一下后系统结束就没了(当然你根本看不到它亮),也可能系统结束后IO电平不变,一直亮。
但事实上,很多编译器会考虑新手的这个情况,于是生成Hex,或是编译成 汇编的时候,已经帮忙把循环语句加上去了,所以,不同的编译器,得到的结果不尽相同。这也是无法预测结果的原因。所以,也奉劝新手,不要遗漏小细节,更不要依赖编译器的“智能”设计。
第二,搞不懂LZ 想问什么,不过,可以简单介绍下这个电路。我们先把 电阻R1 跟 LED D1的交点称为 A 点,而A点 左边 的三角形 是个 反相器,那么:
当P10 为低电平0时,经过反相器后,A点为 高电平,LED导通点亮。
当P10 为高电平1时,经过反相器后,A点为 低电平,LED截止熄灭。
第三,LZ 的程序,主函数中 缺乏 循环语句,是个 单次系统。按理论,这样的系统只会执行一次,其结果无法预测,可能亮一下后系统结束就没了(当然你根本看不到它亮),也可能系统结束后IO电平不变,一直亮。
但事实上,很多编译器会考虑新手的这个情况,于是生成Hex,或是编译成 汇编的时候,已经帮忙把循环语句加上去了,所以,不同的编译器,得到的结果不尽相同。这也是无法预测结果的原因。所以,也奉劝新手,不要遗漏小细节,更不要依赖编译器的“智能”设计。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-08-12
展开全部
LED中有电流通过灯亮 没电流通过灯灭
如果如 “给0信号 灯会亮 给1 灯会灭” 那么就是共阳极的 单片机p1灌电流
如果如 “给0信号 灯会亮 给1 灯会灭” 那么就是共阳极的 单片机p1灌电流
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接往管脚上写0或1
追问
请看一下问题补充
追答
代码应该是那样写,电路确定没问题么?R1是上拉的?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
同意 "烟火夜空"的说法.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询