我最近开始使用pic微控制器,我对PIC16F877A系列没有那么多麻烦。但我发现PIC16F88真的很麻烦。我不知道它是否已经是一个有故障的IC(我刚买了它),但在我编写了下面的程序后希望LED闪烁,IC的所有引脚都会产生很高的输出。我正在使用mikroC编写程序并选择3来编程设备。
void main() {
ANSEL = 0;
TRISA = 0;
do {
PORTA = 0x00;
Delay_ms(1000);
PORTA = 0xFF;
Delay_ms(1000);
} while(1);
}
从代码中可以理解,连接到PORT A的LED应该闪烁,PORT B不应该产生和输出。是否存在使微控制器的所有引脚变高的特定情况或错误?
答案 0 :(得分:0)
写作时
PORTA = 0xFF;
你基本上打开了PortA的所有引脚。端口通常是芯片上的一组8个(或更少)个别引脚。如果您只想打开端口中的一个引脚,则需要指定哪个引脚。有许多不同的方法可以做到这一点。假设你想打开PortA引脚3.这里有几种方法可以实现:
PORTA.B3 = 1;
PORTA = 0x4; //Hex
PORTA = 0b00000100; //Binary
PORTA = 4; //Decimal
上述每个陈述都将打开PortA引脚3并关闭其余部分。我个人更喜欢PORTA.B3
方法,因为它允许端口上的其他引脚保持不变。
说完所有这些,你说当你执行PORTA = 0xFF
时,芯片上的所有引脚都会变高?根据{{3}},您应该只看到引脚17,18,1,2,3,4,15和16打开。其余的应保持不变。如果你看到它们全都变高那么我会尝试不同的芯片以确保第一个没有故障。我总是批量购买这些芯片,因为它们很便宜。