从C / C ++程序中使LED闪烁的步骤?

使用C / C ++程序制作LED闪光灯的小电路有哪些最简单的步骤?

我更喜欢所需的最少数量的依赖项和包。

  • 我将什么端口连接到哪个端口?
  • 我会使用哪种编译器?
  • 如何将数据发送到该端口?
  • 我需要一台微处理器吗? 如果不是,我不想在这个简单的项目中使用一个。

编辑:对任何特定于操作系统的解决方案感兴趣。

这是一个使用并行端口进行操作的教程。

虽然我会推荐Arduino ,它可以非常便宜地购买,并且只涉及以下代码:

/* Blinking LED * ------------ * * turns on and off a light emitting diode(LED) connected to a digital * pin, in intervals of 2 seconds. Ideally we use pin 13 on the Arduino * board because it has a resistor attached to it, needing only an LED * * Created 1 June 2005 * copyleft 2005 DojoDave  * http://arduino.berlios.de * * based on an orginal by H. Barragan for the Wiring i/o board */ int ledPin = 13; // LED connected to digital pin 13 void setup() { pinMode(ledPin, OUTPUT); // sets the digital pin as output } void loop() { digitalWrite(ledPin, HIGH); // sets the LED on delay(1000); // waits for a second digitalWrite(ledPin, LOW); // sets the LED off delay(1000); // waits for a second } 

替代文字

http://www.arduino.cc/en/Tutorial/BlinkingLED

哪个港口? 并行端口是我最喜欢的选择,因为它输出+ 5V(TTL逻辑电平)并且编程非常简单。 大多数并行端口具有足够的功率来驱动LED。 重要的是要记住,计算机端口通常设计为仅输出信号电压,而不是产生足够的电流来实际为大多数设备供电。

哪个编译器? 无所谓。 然而,这种硬件黑客在Linux下更有趣和容易,因此GCC是一个不错的选择。

我如何发送数据? 取决于端口和操作系统。 USB对于一个简单的项目来说非常复杂,所以算了吧。 串行和并行端口可以通过各种不同的接口进行控制。 我的偏好是在Linux下使用ioctl()系统调用来直接控制并行端口引脚。 以下是有关如何执行此操作的信息: http : //www.linuxfocus.org/common/src/article205/ppdev.html

我需要微处理器吗? 不,您不需要外部设备中的微处理器(显然您的计算机有一个微处理器:-P)。 如果使用并行或串行端口,则可以使用LED和一个或两个电阻以及必要的部件直接连接LED。

(另外: Linux设备驱动程序一书 ,可在线免费获取,有关于将简单电子设备连接到并行端口以及为它们编写内核驱动程序的信息。)

编辑:关于OP意味着什么,“我需要一个微处理器吗?”这个线程似乎存在很大的混乱。 重点是,仅并行端口可以基于计算机中的软件驱动LED。 设备中不需要微处理器。 但是,如果您希望设备能够在不连接计算机的情况下自行控制, 需要微处理器或其他数字逻辑。

如果你想在没有微处理器的情况下使LED闪烁(这意味着没有C / C ++),那么使用555定时器IC的简单电路就可以实现。 这些是初学者爱好者电子书或套件中的常见项目,因为它们非常简单,您可以在任何Radio Shack类型的地方获得零件:

如果您想在软件中进行操作,正如Vlion所提到的那样 ,一切都取决于所使用的硬件以及连接LED的电路设计。

如果你想试试PC上的东西,这里有一篇关于如何使连接到PC并行端口上的引脚的LED闪烁的文章:

您可以尝试在串行端口上将LED和300欧姆电阻器(引脚3)接地(引脚5)。 然后发送数据将其打开。

串口可能只能提供10mA电流。

祝好运。

对于快速和脏操作,您有2个简单的选项:串行或并行端口。 串行端口更容易,但LED的数量有限。

要连接LED,您需要一个性能正确的shell连接器(DB25 / DB9),LED和电阻器。 您必须自己查找电阻的值。

串口具有受编程控制的控制流信号。 向MCR寄存器输出正确的位(打开串口后)非常简单。

并行端口有点难,因为有更多的握手要做,但通常与写入寄存器的原理相同。

您可能必须与您的操作系统作斗争才能获得对端口的控制权。

使用Tx线有点复杂,因为输出的信号是写入发送寄存器的数据的串行比特流。 我会坚持使用CTS和DSR信号。

对于快速和脏调试,我刚刚写入寄存器并观看调制解调器指示灯。

它还取决于操作系统。 在Linux上,您可以将LED直接连接到并行端口(当然,使用适当的限流电阻),只需使用C函数“outb()”将其打开和关闭。

在Windows上,它要复杂得多,因为操作系统不允许用户应用程序直接与端口通信。

执行此操作的最简单端口是串行或并行。 务必记得在LED上串联一个电阻器,否则会将其烧坏。