首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PIC16F648A编程-有些函数不起作用

PIC16F648A编程-有些函数不起作用
EN

Stack Overflow用户
提问于 2014-07-30 20:03:28
回答 2查看 597关注 0票数 0

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

代码语言:javascript
运行
复制
#include <htc.h>
void main()
{
  TRISB=0X00;
  PORTB=0X00;
  TRISA = 1;
  while(1)
  {
  PORTB=0XFF;
  }
}

这并没有成功--在启动时只点亮了两个片段,然后立即消失了,之后没有一个LED点亮。

在这个问题之后,我更进一步--我想在按下开关(高输入)时打开输出,而另一次它没有成功。RB7数码管一直在上运行。按下开关什么都没做。代码:

代码语言:javascript
运行
复制
#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

Im使用K150 PIC程序员

1:PIC pins

2:Circuit

EN

回答 2

Stack Overflow用户

发布于 2014-07-30 23:08:39

我不知道第一个片段是怎么回事。第二次失败是因为

代码语言:javascript
运行
复制
TRISA = 1

只设置RA0作为输入。其余的引脚(包括RA4)仍然是输出的。你需要这样的东西

代码语言:javascript
运行
复制
TRISA = 0x10;
票数 0
EN

Stack Overflow用户

发布于 2014-07-31 18:21:47

RB4受左室压的影响。在“配置配置字寄存器”中:

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

我猜这就是为什么RB4没有点亮。

阅读RA4,显然您需要设置TRISA4。虽然我认为这是在权力的状态。Ra4的全名是RA4/T0CKI/CMP2 2。在打开电源时,选项寄存器的T0CS位是'1',即:

T0CS: TMR0时钟源选择位 1= RA4/T0CKI/CMP2 2引脚上的过渡 0=内部指令周期时钟(CLKOUT)

所以清理可能会有帮助。

比较器似乎唤醒了CMCON寄存器所有的零,它放置CM2=CM1=CM0=0,这是“重置”。我不清楚这是如何影响RA4的。但这可能是值得的,设置比较器“关闭”,即CM2=CM1=CM0=1。

至于您所看到的其他效果,我不知道:-(看看代码的小片段编译到什么地方会很有趣。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25045900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档