我正在尝试编程PIC16F887和有这个有趣的问题。我期望从LED闪烁一次,永远停止,但它开始回来,永远不会停止,虽然看门狗是禁用的。这是密码。提前谢谢。
我用MPLABv8.84编写了这篇文章,并使用PICkit2和高科技C编译器编程.
#include <htc.h>
#include <pic.h>
#define _XTAL_FREQ 800000
//__CONFIG(0x3FF5);
//functions
void INITgeneral(void);
void ledshow (void);
void main(void) {
INITgeneral();
ledshow();
return;
}
void INITgeneral(void)
{
TRISA = 0;
TRISB = 0;
TRISC = 0;
TRISD = 0;
TRISE = 0;
PORTA = 0;
PORTB = 0;
PORTC = 0;
PORTD = 0;
PORTE = 0;
}
void ledshow(void)
{
__delay_ms(400);
RD0 = 1;
__delay_ms(400);
RD0 = 0;
}发布于 2016-01-26 22:55:30
内置模拟器非常有助于发现类似这个问题,值得一学。
在“查看”选项卡下,选择“反汇编列表”。注意,从对ledshow()的调用返回后的下一个指令是指令GOTO 0,它将程序计数器加载为零,即重置向量。这就是为什么您正在无休止地执行程序。
若要停止此行为,请将main()中的main()替换为无休止的循环while(1){};。
https://stackoverflow.com/questions/35024488
复制相似问题