关于void exint0(void) interrupt

[复制链接]
查看11 | 回复1 | 2011-8-24 20:26:36 | 显示全部楼层 |阅读模式
#include "common.h"我如果设置ie=0x85,同时打开中断int0和int1,如果int0中断发生,就自动执行void exint0(void) interrupt 0,如果int1中断发生就自动执行void exint1(void) interrupt 1,对吗?#define INT0_PORTXBYTE[0x0000] /*外部中断74LS348地址*/uchar int0_status;/*中断状态*/bit int0_flag;/*中断标记*//******** main 函数 *********/void main (void) {initUart(); /* 初始化串口 */ int0_flag=0;/*设置中断0标记*/ TCON=0x55;/* 电平触发外部中断 */ IE=0x85;
/*打开外中断int0,int1*/ do {
if (int0_flag) { /*如果有中断*/
switch (int0_status){ /*根据中断源分支*/
case 0:
P1=0x1;
IE=0x84;
break;
case 1:
P1=0x2;
IE=0x84;
break;
case 2:
P1=0x4;
IE=0x84;
break;
case 3:
P1=0x8;
IE=0x84;
break;
case 4:
P1=0x10;
IE=0x84;
break;
case 5:
P1=0x20;
IE=0x84;
break;
case 6:
P1=0x40;
IE=0x84;
break;
case 7:
P1=0x80;
IE=0x84;
break;
default:break; } int0_flag=0; /*清中断0标记*/
}
}while(TRUE);}/***********中断0服务程序***************/void exint0(void) interrupt 0{ IE=0x84;
/*关中断0
int0_flag=1; /*设置中断0标记*/ /*读取外部中断源输入,并屏蔽高5位*/
int0_status=~INT0_PORT & 0x07; IE=0x84;
/*} void exint1(void) interrupt 1{}

回复

使用道具 举报

千问 | 2011-8-24 20:26:36 | 显示全部楼层
这个写法有问题吧。。void timer(void) interrupt 1 using 1{}timer:函数名称interrupt 1: 定时器中断0;using 1:R0~R7为第二组寄存器;希望能帮到你...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行