c语言 PIC单片机

Python020

c语言 PIC单片机,第1张

你这是PIC16位机的中断编程规定的格式,包括_T1Interrupt都是规定的,连大小写都得一模一样。这个是定时器1的中断函数申明。你可以在C30手册中看到它们,

如可以看到其他中断入口的名称:

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++)

{

}

}

}