我在成功的图片编程工作上有问题。由于我是新的图片编程,我开始点亮8段显示LED一个一个。一切进展顺利,除了RB4输出的LED没有点亮(它没有坏,因为我用5v通过电阻检查了它)。我认为这是个问题,但没有那么重要,所以我继续说。下一个目标是在使用代码分层之后立即点亮显示的所有片段:
#include <htc.h>
void main()
{
TRISB=0X00;
PORTB=0X00;
TRISA = 1;
while(1)
{
PORTB=0XFF;
}
}
这并没有成功--在启动时只点亮了两个片段,然后立即消失了,之后没有一个LED点亮。
在这个问题之后,我更进一步--我想在按下开关(高输入)时打开输出,而另一次它没有成功。RB7数码管一直在上运行。按下开关什么都没做。代码:
#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
发布于 2014-07-30 23:08:39
我不知道第一个片段是怎么回事。第二次失败是因为
TRISA = 1
只设置RA0作为输入。其余的引脚(包括RA4)仍然是输出的。你需要这样的东西
TRISA = 0x10;
发布于 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。
至于您所看到的其他效果,我不知道:-(看看代码的小片段编译到什么地方会很有趣。)
https://stackoverflow.com/questions/25045900
复制相似问题