如图 利用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;
}

谁能帮忙根据电路图 详细讲解一下为什么?
我自学的时候看到的问题。
展开
 我来答
胖大海君
2012-08-12 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1436
采纳率:11%
帮助的人:618万
展开全部

呵呵   为你解答   

1   你的程序中使用的控制引脚为P1.1与电路图中控制LED的引脚P1.0也没有对应上啊

2   修改如下:

    #include "reg51.h"

   sbit P1_0=P1^0;

   void main()

  {

        P1_0=0;        \\   P1.0为低电平时, LED为灭

  } 

 

3  其实电路图 可以更简化和使用些  如下是常用的LED接法

P1.0= 0    LED 亮   P1.0=1  LED 灭

       呵呵   别忘给俺加分哦 (没有分  就选满意回答吧)

追问
能 讲解一下 我给的图 
为什么 给0信号 灯会亮
给1 灯会灭么?
我不懂原理~
追答
呵呵    什么LED呀   为什么接30欧的电阻啊 ?   开始时没有注意到。
烟火夜空
2012-08-12 · TA获得超过6620个赞
知道大有可为答主
回答量:1678
采纳率:93%
帮助的人:547万
展开全部
第一,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,或是编译成 汇编的时候,已经帮忙把循环语句加上去了,所以,不同的编译器,得到的结果不尽相同。这也是无法预测结果的原因。所以,也奉劝新手,不要遗漏小细节,更不要依赖编译器的“智能”设计。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-08-12
展开全部
LED中有电流通过灯亮 没电流通过灯灭
如果如 “给0信号 灯会亮 给1 灯会灭” 那么就是共阳极的 单片机p1灌电流
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ppc68
2012-08-12 · TA获得超过581个赞
知道小有建树答主
回答量:1257
采纳率:100%
帮助的人:771万
展开全部
直接往管脚上写0或1
追问
请看一下问题补充
追答
代码应该是那样写,电路确定没问题么?R1是上拉的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiandaizhugeli
2012-08-12 · 超过12用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:37万
展开全部
同意 "烟火夜空"的说法.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式