如可以看到其他中断入口的名称:
0 _INT0Interrupt
1 _IC1Interrupt
2 _OC1Interrupt
3 _T1Interrupt
4 _IC2Interrupt
5 _OC2Interrupt
6 _T2Interrupt
7 _T3Interrupt
8 _SPI1Interrupt
9 _U1RXInterrupt
10 _U1TXInterrupt
11 _ADCInterrupt
12 _NVMInterrupt
13 _SI2CInterrupt
14 _MI2CInterrupt
15 _CNInterrupt
16 _INT1Interrupt
17 _IC7Interrupt
18 _IC8Interrupt
19 _OC3Interrupt
20 _OC4Interrupt
。。。。。。
你要学C30,这个手册是必看的,这个手册目前最新版本号是K,文档编号为DS51284K,共有200多页英文版。可以在公司网站中下载:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010065
在这个页面你可以下载到更多的资料和软件。
是左移,>>表示右移动相当于 HC595_DATA_HIGH PORTC |0x01;
如果是HC595_DATA_HIGH PORTC |=(1<<2),1左移2位,那就是0000 0100
相当于 HC595_DATA_HIGH PORTC |0x04;
就是把 HC595_DATA_HIGH PORTC这个数的2位(0,1,2----第三位与1进行或运算)
注意:这里指的是位运算,上面的0x01,0x04在 或运算的时候可以这么写,因为其他位都是0,没有关系
以DIP-40的PIC16F877A来举例 灯闪动频率为1秒void Delay_Ms(unsigned char n)
void main(void)
{
while(1)
{
RA0 = 1//2脚输出
//11脚是供电
RD2 = 1//21脚输出
trisA = 0x04//4脚RA2作为输入
if(RA2 == 0) //如果4脚为低电平
{
//执行代码
}
else //如果4脚为高电平
{
//执行代码
}
Delay_Ms(1000)//延时1秒
RA0 = 0//2脚输出
//11脚是供电
RD2 = 0//21脚输出
Delay_Ms(1000)//延时1秒
}
}
void Delay_Ms(unsigned char n) //延时程序
{
unsigned int i
unsigned char j
for(j=0j<nj++)
{
for(i=0i<Fosc/44000i++)
{
}
}
}