【问题标题】:PIC 18f and PORT-BPIC 18f 和 PORT-B
【发布时间】:2012-05-24 07:21:11
【问题描述】:

尝试让 4x4 键盘与 PIC 18f4685 配合使用。

我开启了弱引体向上。将适当的引脚设置为输入/输出,但是当我发送信号时,我没有在第 6 位和第 7 位上恢复它。它只是得到零......

我尝试使用 PicKit3 进行调试,但似乎它使用 RB7 并在按下该行的按钮时崩溃。当然,这告诉我信号必须通过,达到一定程度。

还有什么特别需要我在端口 B 的配置中设置的吗?

一如既往...非常感谢您的帮助。

【问题讨论】:

  • 哪些引脚是输入,哪些是输出?假设 RB4-7 是输入...
  • 感谢大家对可能的配置问题提出额外的意见。我设法让它运行起来。是的,在调试测试期间不能使用 PicKit3,而且我的一个焊点坏了。你是最好的论坛!总是得到快速友好的回应!

标签: configuration pic


【解决方案1】:

既然 EE 网站在你得到答案之前就这么粗鲁地关闭了你,我想我会来这里回答你的问题。

查看第 135 页的表 10-3,它列出了端口 B 引脚的所有功能。注意 RB6 和 RB7 也是调试引脚,所以我不会使用这些。

另外,您是在写入 LATx 并从 PORTx 读取吗?在读取和写入同一个端口时,这样做很重要。如果您对 PORTx 进行读写,您可能会意外地从尚未有足够时间更改的输出中读取过时的值,并且您的下一次写入将抹去您的预期值。这对没有 LATx 寄存器的 PIC 尤其有害。任何操作,即使是像 BSF/BCF 这样的逐位操作,都会对整个端口寄存器进行读-修改-写操作,影响的不仅仅是您打算修改的位。请参阅此 EE 问题的答案:https://electronics.stackexchange.com/questions/28744/interfacing-a-keypad-with-a-microcontroller

【讨论】:

    【解决方案2】:

    不确定您的原理图(草图可能会有所帮助),但 PIC GPIO 中的一个常见错误是未将 ADC 寄存器设置为数字输入。它们作为模拟输入退出复位。

    查看PIC18F4685 Datasheet中的寄存器描述19-2。

    ADCON1 重置为 0x00。要将所有模拟引脚设置为数字 I/O,PCFG3:0 需要设置为 1。

    ADCON1bits.PCFG = 0x0F;
    

    【讨论】:

    • 我会向@Adam 发誓,因为这是一个常见的错误 :) +1 为你。
    • 谢谢...我会仔细检查。但是我认为这实际上可能是硬件问题……焊点不良。将重新流动并检查 ADCON1 reg 是否正确设置。
    • 您还可以设置配置位 PBADEN 以避免设置 ADCON1。
    【解决方案3】:

    您能否展示使用您的代码设置三态寄存器 (TRISB) 以及您的阅读方式。在按下按钮之前和按下按钮期间,您是否使用数字万用表 (DMM) 检查了输入引脚的电压?它们是 10 美元,物有所值。

    最后,您是否禁用了模拟引脚?在 PIC24 芯片上您必须这样做:

    AD1PCFG = 0xFFFF

    在数字输入读取工作之前。你的芯片上可能是一样的。

    您能告诉我们您的芯片的确切型号吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-26
      • 1970-01-01
      • 2013-04-13
      • 1970-01-01
      • 2014-05-19
      • 1970-01-01
      相关资源
      最近更新 更多