【问题标题】:PIC16F648A programming - some functions don't workPIC16F648A 编程 - 某些功能不起作用
【发布时间】:2014-07-30 20:03:28
【问题描述】:

我在成功的 pic 编程工作中遇到问题。由于我是 pic 编程的新手,我开始一个接一个地点亮 8 段显示 LED。一切顺利,除了 RB4 输出 LED 没有亮起(它没有坏,因为我通过电阻用 5v 检查了它)。我认为这是一个问题,但不是那么重要,所以我继续。下一个目标是在使用代码进行分层后立即点亮所有显示部分:

#include <htc.h>
void main()
{
  TRISB=0X00;
  PORTB=0X00;
  TRISA = 1;
  while(1)
  {
  PORTB=0XFF;
  }
}


这不成功 - 只有 2 个段在启动时亮起,然后立即消失,然后 LED 没有亮起。

在那个问题之后我走得更远 - 我想在按下开关(高输入)时打开输出,而另一次却不成功。 RB7 LED 一直亮着。开关按下没有做任何事情。代码:

#include <htc.h>
void main()
{
  TRISB=0X00;
  PORTB=0X00;
  TRISA = 1;
  while(1)
  {
      if (RA4 == 1)  //Even tried TRISA4 ==1  //RB0 Dont light up, RB7 do light up all the time
      {
          RB0 = 1;
      }
      else
      {
          RB7 = 1;
      }
  }
}


谁能告诉我为什么我有这些问题?有什么解决办法吗?


顺便说一句 - 保险丝是:WDT OFF, BODEN ON, MCLRE OFF, Code protect OFF, PWRTE OFF, LVP ON, CPD OFF
我正在使用 K150 PIC 编程器



1 : PIC pins
2:Circuit

【问题讨论】:

  • 您的代码还有更多吗?所有引脚初始化和定义在哪里?您是否有为您的特定芯片定义所有这些的头文件?你用的是哪个编译器?
  • 查看sample post,您应该在该网站上提出此类问题。
  • @MagisterLudi 这就是代码。所有管脚都会自动签名,因为一开始 MPLAB 会询问芯片型号。我使用 MPLAB X IDE 和 XC8 编译器。
  • @HansPassant 感谢您的建议!

标签: c pic microprocessors


【解决方案1】:

我不知道第一个 sn-p 发生了什么。第二个失败是因为

TRISA = 1

仅将 RA0 设置为输入。其余的 A 引脚(包括 RA4)仍然输出。你需要类似的东西

TRISA = 0x10;

【讨论】:

  • TRISA = 1 将 A 端口引脚定义为输入。 I/O Ports
【解决方案2】:

RB4 受 LVP 影响。在“CONFIG - CONFIGURATION WORD REGISTER”中:

LVP:低压编程使能位

1 = RB4/PGM 引脚具有 PGM 功能,启用低压编程
0 = RB4/PGM 为数字 I/O,必须使用 MCLR 上的 HV 进行编程

我猜这就是 RB4 不亮的原因。

阅读RA4,显然需要设置TRISA4。虽然我认为它在加电时处于那种状态。 RA4的全称是RA4/T0CKI/CMP2。上电时 OPTION 寄存器的 T0CS 位为“1”,即:

T0CS:TMR0 时钟源选择位

1 = RA4/T0CKI/CMP2 引脚上的转换
0 = 内部指令周期时钟 (CLKOUT)

这样清理可能会有所帮助。

比较器似乎在 CMCON 寄存器全为零时唤醒,这使 CM2=CM1=CM0=0,即“复位”。我不清楚这对 RA4 有何影响。但可能值得将比较器设置为“关闭”,即 CM2=CM1=CM0=1。

就您看到的其他效果而言,我不知道 :-( 看看代码的小片段编译成什么会很有趣。

【讨论】:

  • 感谢重播,但这仍然没有解决任何问题。 CM2=CM1=CM0=0 时,RB0 和 RB7 开启,但 CM2=CM1=CM0=1 时,只有 RB0 开启。 LVP没有改变任何东西。我正在切换到 arduino :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-17
  • 2017-03-09
  • 1970-01-01
  • 1970-01-01
  • 2022-12-11
  • 1970-01-01
相关资源
最近更新 更多