intrrupt.c
来自「AT89S52单片机程序50例(00-50)」· C语言 代码 · 共 37 行
C
37 行
//响应中断后查询P1口作为转向依据
#include<reg52.h>
unsigned char status; //定义变量status
bit flag; //定义变量flag
//INT1中断服务子程序
void service_int1()interrupt 2 using 2
{
flag=1; //使用第二组寄存器
status=P1;
}
//主程序
void main(void)
{
IP=0x04; //INT1置为高级中断
IE=0x84; //INT1,CPU开中断
for(;;)
{
if(flag) //flag=1时
{
switch(status)
{
case 0:P1=0x0f;break;
case 1:P1=0xf0;break;
case 2:P1=0x55;break;
case 3:P1=0xaa;break;
default:P1=0x44;break; //即LED灯对应的P1=0BBH,即6个灯亮。
}
flag=0;
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?