用PIC18F25K22调试一段最简单的I/O程序,点亮两个LED灯,晶振用的16M。程序如下:
#include <pic18.h>
void main(void)
{
TRISBbits.RB3 = 0;
TRISBbits.RB1 = 0;
PORTBbits.RB3 = 0;
PORTBbits.RB1 = 0;
ANSELB = 0X00;
while(1)
{
PORTBbits.RB3 =1;
//NOP();
//NOP();
PORTBbits.RB1 =1;
}
}
如果去掉中间的空指令,则RB3对应的LED灯不亮,RB1对应的LED灯亮;加上两条空指令,则两个灯均能点亮?为什么两个I/0口输出需要间隔时间?如果用PORTB=0X0A;则两个灯能正常点亮。 |