检查引脚上的电压并打开LED

时间:2012-05-05 22:58:55

标签: c microcontroller pic

我开始进入PICs微控制器,我想从简单的事情开始。我已经尝试过阅读一本书,但它更像是一本C书,而不是一本微控制器书。我了解了ADC,定时器,存储库等,但我没有得到一些实际的例子。

检查引脚上的某些电压或打开LED的基本步骤是什么?我的意思是,我不是要求所有代码,而是要求如何执行这些基本任务。另外,我知道代码取决于微控制器,所以我有一个16F628A。

2 个答案:

答案 0 :(得分:4)

像这样控制LED是向微控制器和电子设备介绍自己的好方法。您将学习如何阅读数据表,如何执行低级系统配置以及如何构建一些电子电路。但正如您可能已经看到的那样,即使是最简单的任务也需要一点点麻烦和反复试验。好消息是,一旦您了解了基础知识,就可以将相同的技术应用于整个微控制器类,并且您将开发自己的函数库,这将使构建新项目变得越来越容易。


16F628A具有memory-mapped I/O,这意味着其内部寄存器控制其特殊功能引脚的行为。

根据data sheet(PDF),28A有两个模拟comparators。每个比较器连接到28A上的三个引脚。两个引脚用于输入:它们连接到您想要比较的电压。第三个引脚用于输出:比较器通过将输出引脚上的电压设置为高电平或低电平来指示哪个输入电压较高。

28A还有一个连接到另一个引脚的参考电压。这可以产生已知电压,您可以将其连接到其中一个比较器输入。将测试电压连接到另一个比较器输入,并使用输出引脚驱动LED。然后,当测试电压高于参考值时,LED将打开或关闭。 (28A实际上是可配置的:您可以选择点亮LED的条件。)

数据手册包含一些汇编代码,向您展示如何通过设置控制寄存器中的相应位来配置比较器。

您还需要了解28A是否可以直接驱动LED。一些器件内部包含适当的限流电路;其他人则要求您自己提供。

您可能会对网络搜索“16F628A应用说明”(制造商的建议)或“16F628A应用”(对于用户创建的应用)感到满意。 This看起来很有趣,作者提议将他的软件通过电子邮件发送给您。也许他会提供一些提示。

祝你好运!

答案 1 :(得分:3)

实际代码将略微取决于您正在使用的编译器,以及是否要使用某个包装器库(我不推荐它,因为调用包装器的代码通常比设置正确的代码更长)寄存器)。

通常,您想要做的是GPIO(通用输入和输出),您需要执行以下操作:

  1. 确保已启用GPIO外设时钟。对于PIC,GPIO没有单独的时钟,因此无需执行任何操作。
  2. 配置引脚以实现其GPIO功能(大多数引脚有多种用途,可以连接到SPI控制器,模数转换器等)。
  3. 写出输出引脚的初始值。
  4. 配置引脚方向。 (输入或输出)
  5. 配置上拉和下拉寄存器,或者没有。
  6. 配置更改中断。 (如果你想使用它)
  7. 安装中断处理程序。 (如果您正在使用它)PIC将中断处理程序放在内存中的特定位置,因此这里不需要任何内容​​。
  8. 根据您的应用需要读取和写入GPIO引脚。