“$MCLR$ 很低。处理器处于重置状态。” Pic18 错误
"$MCLR$ is low. Processor is in reset." Error on Pic18
在这个电路和代码上,我试着做了一个计数器,当没有人通过时(例如它是地铁站的通道),处理器的RC7引线会读取1个值。如果有人通过信号变为0。程序会计算那边有多少人通过,并在7段LCD上显示人数,直到10。当10人通过通道时,LED(D1 ) 将闪烁 1 秒。
我尝试编写有关此算法的代码,当我将其加载到 Pic18F45K22 时,它不起作用。 Proteus 显示错误消息,如
[PIC18] PC=0x0000. $MCLR$ is low. Processor is in reset. [U1]
我设计的电路如下图1所示:
我尝试过的解决方案:
- 我用了上拉电阻。没用。
- 我们用Micro C代码描述频率值。没用。
算法如下:
#include <xc.h>
#define _XTAL_FREQ 4000000
unsigned char x=0;
void MSDelay(unsigned int);
void main()
{
TRISC=0xff;
TRISA=0x00;
while(1)
{
if (PORTC==0)
{
x++;
MSDelay(200);
}
if (x==1)
{
PORTA==0x3f;
}
if (x==2)
{
PORTA==0x06;
}
if (x==3)
{
PORTA==0x5b;
}
if (x==4)
{
PORTA==0x4f;
}
if (x==5)
{
PORTA==0x66;
}
if (x==6)
{
PORTA==0x6d;
}
}
}
void MSDelay(unsigned int itime){ //for delay
unsigned int i;
unsigned int j;
for(i=0;i<itime;i++){
for(j=0;j<165;j++){
}
}
}
所以我为你解答:
错误在这里:
if (x==1)
{
PORTA==0x3f;
}
如果您想分配一个值,您需要 =
而不是 ==
if (x==1)
{
PORTA=0x3f;
}
在这个电路和代码上,我试着做了一个计数器,当没有人通过时(例如它是地铁站的通道),处理器的RC7引线会读取1个值。如果有人通过信号变为0。程序会计算那边有多少人通过,并在7段LCD上显示人数,直到10。当10人通过通道时,LED(D1 ) 将闪烁 1 秒。
我尝试编写有关此算法的代码,当我将其加载到 Pic18F45K22 时,它不起作用。 Proteus 显示错误消息,如
[PIC18] PC=0x0000. $MCLR$ is low. Processor is in reset. [U1]
我设计的电路如下图1所示:
我尝试过的解决方案:
- 我用了上拉电阻。没用。
- 我们用Micro C代码描述频率值。没用。
算法如下:
#include <xc.h>
#define _XTAL_FREQ 4000000
unsigned char x=0;
void MSDelay(unsigned int);
void main()
{
TRISC=0xff;
TRISA=0x00;
while(1)
{
if (PORTC==0)
{
x++;
MSDelay(200);
}
if (x==1)
{
PORTA==0x3f;
}
if (x==2)
{
PORTA==0x06;
}
if (x==3)
{
PORTA==0x5b;
}
if (x==4)
{
PORTA==0x4f;
}
if (x==5)
{
PORTA==0x66;
}
if (x==6)
{
PORTA==0x6d;
}
}
}
void MSDelay(unsigned int itime){ //for delay
unsigned int i;
unsigned int j;
for(i=0;i<itime;i++){
for(j=0;j<165;j++){
}
}
}
所以我为你解答:
错误在这里:
if (x==1)
{
PORTA==0x3f;
}
如果您想分配一个值,您需要 =
而不是 ==
if (x==1)
{
PORTA=0x3f;
}