1

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

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

4

2 回答 2

4

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


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

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

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

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

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

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

祝你好运!

于 2012-05-05T23:43:48.127 回答
3

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

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

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