PIC单片机(PIC16F877A)外部中断程序
2019-04-15 11:46发布
生成海报
正常运行为流水灯,发生中断则灯全亮。
#include
__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;
}
}
}
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮