【问题标题】:Check voltage on pin and turn on an LED检查引脚上的电压并打开 LED
【发布时间】:2012-05-05 22:58:54
【问题描述】:

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

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

【问题讨论】:

    标签: c microcontroller pic


    【解决方案1】:

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


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

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

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

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

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

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

    祝你好运!

    【讨论】:

      【解决方案2】:

      实际代码将稍微取决于您使用的编译器,很大程度上取决于您是否要使用一些包装库(我不推荐它,因为调用包装器的代码通常比设置正确寄存器)。

      一般来说,你要做的就是所谓的GPIO(通用输入输出),你需要做到以下几点:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-17
        • 2014-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多