2013-05-12 37 views
2

我最近开始使用PIC微控制器,而PIC16F877A系列没有那么多麻烦。但是我发现PIC16F88真的很麻烦。我不知道它是否已经是一个错误的IC(我刚买了它),但是在我写下下面的程序并希望能够引导闪烁之后,IC的所有引脚都产生了很高的输出。我使用mikroC编写程序,并选择3编程设备。PIC16F88所有引脚高

void main() { 

    ANSEL = 0; 
    TRISA = 0;   

    do { 
    PORTA = 0x00;  
    Delay_ms(1000);  
    PORTA = 0xFF;  
    Delay_ms(1000);  
    } while(1);   
} 

从代码中可以看出,连接到端口A的LED应该闪烁,端口B不应产生和熄灭。是否有特定的情况或错误导致微控制器的所有引脚都变高?

回答

0

当你写

PORTA = 0xFF; 

你基本上打开所有的引脚PORTA的。芯片上一个端口通常是一组8个(或更少)单独的引脚。如果您只想打开端口中的其中一个引脚,那么您需要指定哪一个。有很多不同的方法可以做到这一点。比方说,你想打开门销3.这里有几个方式来实现这一目标:

PORTA.B3 = 1; 
PORTA = 0x4; //Hex 
PORTA = 0b00000100; //Binary 
PORTA = 4; //Decimal 

上述每个语句会变成PORTA引脚3,剩下的了。我个人更喜欢PORTA.B3方法,因为它允许端口上的其他引脚保持不变。

说了这么多,你说的是所有你芯片上的引脚在执行PORTA = 0xFF时都会变高?根据datasheet,您应该只能看到引脚17,18,1,2,3,4,15和16打开。其余的应该保持不变。如果你看到它们都变得很高,那么我会尝试一种不同的芯片来确保第一个没有问题。我总是大量购买这些芯片,因为它们很便宜。