3

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

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

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

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

这是我正在谈论的一个例子:

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

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

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

4

9 回答 9

5

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

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

于 2009-03-14T03:36:26.470 回答
4

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

于 2009-03-14T04:08:57.500 回答
2

你得给我们更多的细节。什么样的电脑,什么样的操作系统等等。

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

于 2009-03-14T03:34:01.453 回答
2

这篇 CodeProject 文章Controlling LEDs with Parallel Port可能很有趣。

于 2009-03-14T04:11:55.123 回答
0

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

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

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

于 2009-03-14T03:33:33.060 回答
0

在 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));
于 2009-03-14T22:37:20.920 回答
0

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

另请查看http://www.lvr.com/parport.htm#Programming以获取有关如何访问并行端口的更多编程资源。

于 2009-04-24T01:04:06.587 回答
0

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

一旦它在你的机器上工作然后。使用以下标准 API 来控制并行端口的各种数据引脚:getport() setport()

那一切...

于 2013-01-30T18:27:39.927 回答
0
poke(1.1x00021,1.1x0417,16);
gotoxy(12,12);
printf("Num Lock LED is now on    r");
Sleep(100);

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

于 2014-03-10T15:46:17.193 回答