找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1901|回复: 16
打印 上一主题 下一主题
收起左侧

两个LED之间的控制,怎么用单片机C语言写判断语句?

  [复制链接]
跳转到指定楼层
楼主
46黑币

可能这个图画的不太对,有错误大佬们帮忙指点指点。还有怎么写判断语句,才能让LED1亮,则LED2亮。反之,LED1不亮,LED2不亮。之前试过了用 if(LED1==0) LED2==0   。但是仿真了一下不太对。帮忙解答一下,谢谢大佬们!!!



最佳答案

查看完整内容

决定器件的控制方式,取决于你的原理图的设计方式和元器件的特性,都是满足元器件的工作条件使它工作在你想要的状态下,比如你将LED灯正极接到VCC上,那么只需要控制LED的负极电压,让正负极形成点位电位差,产生电流那么LED就会亮(工作),而单片机的PIN脚可以通过软件控制输出高低电平,从而控制LED的亮和灭。反之LED2就需要控制正极为高电平就能亮。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:733614 发表于 2020-4-20 13:18 | 只看该作者
1577740211 发表于 2020-4-20 17:18
大佬,如果led2换成蜂鸣器,那led1和蜂鸣器的控制方式是否相同呢?
还有控制方式是根据连接的I/O接口决 ...

决定器件的控制方式,取决于你的原理图的设计方式和元器件的特性,都是满足元器件的工作条件使它工作在你想要的状态下,比如你将LED灯正极接到VCC上,那么只需要控制LED的负极电压,让正负极形成点位电位差,产生电流那么LED就会亮(工作),而单片机的PIN脚可以通过软件控制输出高低电平,从而控制LED的亮和灭。反之LED2就需要控制正极为高电平就能亮。
回复

使用道具 举报

板凳
ID:653022 发表于 2020-4-20 15:29 | 只看该作者
if(led1==0)
回复

使用道具 举报

地板
ID:653022 发表于 2020-4-20 15:30 | 只看该作者
if(led1==0)
{
      led2=1;
}
else
{
    led2=0;
}
回复

使用道具 举报

5#
ID:311846 发表于 2020-4-20 15:46 | 只看该作者
if(LED1==0) LED2==0  ;改为if(LED1==0) LED2=0;if(LED1==1) LED2=1;      
回复

使用道具 举报

6#
ID:311846 发表于 2020-4-20 15:48 | 只看该作者
if(LED1==0) LED2=0;
else LED2=1;      
这样更好点
回复

使用道具 举报

7#
ID:94031 发表于 2020-4-20 15:48 | 只看该作者
if(LED1==0) LED2==0; 后一个应该 LED2=0;
回复

使用道具 举报

8#
ID:723156 发表于 2020-4-20 15:53 | 只看该作者
if(LED1==0) LED2=0;
回复

使用道具 举报

9#
ID:716292 发表于 2020-4-20 16:00 | 只看该作者
首先你的 vcc接的不对,其次你要的,led1什么时候亮啊,一直亮,还是周期性质的,你把 led2和  led11
回复

使用道具 举报

10#
ID:733614 发表于 2020-4-20 16:07 | 只看该作者
首先芯片启动的三要素 电源 、复位、时钟,你缺少了什么?其次你的LED1和LED2的控制方式不相同,一个是单片机PIN脚低电平电亮,一个是高电平电亮。代码编写的时候注意“==”和“=”的区别。
回复

使用道具 举报

11#
ID:727190 发表于 2020-4-20 16:11 | 只看该作者
211212 发表于 2020-4-20 16:00
首先你的 vcc接的不对,其次你要的,led1什么时候亮啊,一直亮,还是周期性质的,你把 led2和  led11

大佬,麻烦说清楚一点那个vcc,led1什么时候亮没关系都可以的,我刚学,还有无数的知识没有学会
回复

使用道具 举报

12#
ID:658665 发表于 2020-4-20 16:16 | 只看该作者


仿真及程序.rar

62.51 KB, 下载次数: 2

回复

使用道具 举报

13#
ID:718123 发表于 2020-4-20 16:42 | 只看该作者
我觉得你应该首先把复位电路时钟电路接好然后需要分清=和==的区别一个表示赋值一个表示判断
回复

使用道具 举报

14#
ID:213173 发表于 2020-4-20 17:11 | 只看该作者
由于两个LED连接方向相反,所以 if(LED1==0) LED2=~LED1;
回复

使用道具 举报

15#
ID:727190 发表于 2020-4-20 17:18 | 只看该作者
xu223344558 发表于 2020-4-20 16:07
首先芯片启动的三要素 电源 、复位、时钟,你缺少了什么?其次你的LED1和LED2的控制方式不相同,一个是单片 ...

大佬,如果led2换成蜂鸣器,那led1和蜂鸣器的控制方式是否相同呢?
还有控制方式是根据连接的I/O接口决定的吗?
回复

使用道具 举报

16#
ID:234355 发表于 2020-4-20 19:06 | 只看该作者
直接写:
LED2=~LED1
回复

使用道具 举报

17#
ID:695749 发表于 2020-4-20 19:37 | 只看该作者
针对你提出的问题,
归纳为:一是图画的不太对;二是怎么写判断语句;三是仿真不准确。
一是图画的不太对。你画的图D1是低电压亮,且为单片机P1^0;D2是高电压亮,且为单片机P2^0;
如果你的本意是这样,那就没有错;如果不是,那就错了。
无论对错都可以进行修改,可以修改为低电压亮或高电压,也可以由一个I/O口控制。
二是怎么写判断语句。大家已回答的很好。
三是仿真不准确。解决了一、二问题仿真就没有问题了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表