您的位置:首页 > 其它

PIC单片机(PIC16F877A)外部中断程序

2012-07-18 18:15 190 查看
正常运行为流水灯,发生中断则灯全亮。

#include<pic.h>
__CONFIG(0x3B31);	//4M
#define uchar unsigned char
#define uint unsigned int
#define DELAY 500
uint j=50000;
void delay(uint x)	//1ms
{
uint y,z;
for(y=x;y>0;y--)
for(z=25;z>0;z--);
}
void init(void)
{
TRISB0=0;
RB0=1;		//为下降沿创造高电平的初始条件
TRISB0=1;	//输入模式
INTEDG=0;	//0下降沿触发,1为上升沿触发
INTF=0;		//清零标志位
INTE=1;		//开中断允许
GIE=1;		//开全局中断
}
void interrupt INT()	//查询式中断
{
if(INTE&&INTF)
{
INTF=0;
PORTD=0xff;
while(j--);
j=50000;
TRISB0=0;	//RB0设为输出
RB0=1;		//输出高电平,以便检测中断条件(下降沿)
TRISB0=1;	//设为输入,等待中断
}
}
void main(void)
{
uchar i,temp;
TRISD=0x00;
PORTD=0xff;
init();
while(1)
{
temp=0x01;
for(i=0;i<8;i++)
{
PORTD=temp;
delay(DELAY);
temp<<=1;
}
}
}






 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  delay