【问题标题】:How to hook up LED lights in C++ without microcontroller?如何在没有微控制器的情况下用 C++ 连接 LED 灯?
【发布时间】:2014-03-10 23:46:17
【问题描述】:

我想在没有微控制器的情况下点亮/关闭 LED。我希望通过编写 C++ 程序来控制 LED。但我遇到的问题是将它们连接起来有没有免费的方法!!!!

如果相关,我正在使用 Windows XP。

我有 LED,但没有微控制器。

好吧,我找到了一些函数,但是它们的标题不起作用,那么有人可以帮我找到标题吗?

下面是我所说的一个例子:

poke(0x0000,0x0417,16);
gotoxy(1,1);
printf("Num Lock LED is now on    r");
delay(10);

另外,有人有“内核编程”电子书吗?

我还需要一个电路图来显示 LED 的连接位置。

【问题讨论】:

  • 您有什么特别的 LED 吗?
  • 试图清理问题,我希望这样做不会丢失任何信息。

标签: c++ led


【解决方案1】:

这完全取决于您拥有哪种硬件,这决定了您需要哪种驱动程序。那时,我得到了一个简单的 LED 并将其放入打印机 LPT 端口。然后我可以向地址 0x0378h 写入一个字节,其中的位确定引脚是否有电(使用 linux)。对于 Windows,您需要一个允许您直接访问 lpt 端口的驱动程序。我当时也和朋友一起做过,效果很好(我们建立了一个红绿灯:))阅读this page(单击左侧的并行端口。出于某种原因,我无法直接链接到它)了解详情在窗户上。并在 Linux 上阅读man outb。现在,那个港口真的很老了。但是,如果您周围有一些机器仍然有一台,我认为玩它会很有趣。

不管怎样,我有一个带有整洁 LED 的 Fritz 盒子。可以通过telnet 连接到它,然后在/proc/lediirc 中写一些东西(我忘记了数字)。然后内核驱动程序解释该数字并使正确的 LED 闪烁。这是另一种方式:)

【讨论】:

    【解决方案2】:

    玩微控制器很有趣。 arduino 是一个开源板,带有很好的开发工具。 一些板 like this one 起价约为 15 美元

    【讨论】:

      【解决方案3】:

      您将不得不向我们提供更多详细信息。什么样的电脑,什么样的操作系统等等。

      您可能至少需要购买一些 LED 和一些东西。

      【讨论】:

        【解决方案4】:

        这篇 CodeProject 文章 Controlling LEDs with Parallel Port 可能会引起您的兴趣。

        【讨论】:

          【解决方案5】:

          您想寻找微电子领域的开发套件。我要赌一把,说你不熟悉电子产品?

          微控制器没什么好怕的,如果您从 Atmel 或 Microchip 获得一个不错的开发套件,那么它们为您提供的手册和模板非常简单。但是您将需要 12c LED 之外的某种硬件来执行此操作。

          您能否提供更多关于您想要做什么的信息?如果你只是想计算灯打开和关闭的频率,我可以给你一个简单的电路来证明白痴。

          【讨论】:

          • 当然,请寻找我可以在 C++ 中获得的任何源代码,但开始是第一步
          【解决方案6】:

          在 Windows 上,这将切换键盘上的灯:

          (例如滚动锁定灯)

          INPUT input[2];
          ZeroMemory(input, sizeof(input));        
          input[0].type = INPUT_KEYBOARD;
          input[0].ki.wVk = VK_SCROLL;
          input[1].type = INPUT_KEYBOARD;
          input[1].ki.wVk = VK_SCROLL;
          input[1].ki.dwFlags = KEYEVENTF_KEYUP;
          SendInput(2, input, sizeof(INPUT));
          

          【讨论】:

          • srry 我知道这是新手,但从未见过其中一些命令
          【解决方案7】:

          您需要一个具有与端口通信的适当权限的驱动程序 - 从这里开始:http://www.beyondlogic.org/porttalk/porttalk.htm

          还可以查看http://www.lvr.com/parport.htm#Programming,了解有关如何访问并行端口的更多编程资源。

          【讨论】:

            【解决方案8】:

            这是一项非常简单的工作。 如果您的机器具有并行(25 针打印机端口)标准端口,那么它很好,否则您可以购买任何“USB 到并行转换器”形式。

            一旦它在您的机器上运行。使用以下标准 API 来控制并行端口的各种数据引脚: 获取端口() 设置端口()

            这一切……

            【讨论】:

              【解决方案9】:
              poke(1.1x00021,1.1x0417,16);
              gotoxy(12,12);
              printf("Num Lock LED is now on    r");
              Sleep(100);
              

              我在这里做了一些改变,我认为它会起作用,所以试试这个。

              【讨论】:

              • 您能否详细解释一下为什么您的更改会起作用?
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-10-04
              • 1970-01-01
              • 1970-01-01
              • 2015-11-01
              相关资源
              最近更新 更多