- UID
- 848425
|
本帖最后由 freewind20 于 2011-7-25 17:40 编辑
做了一个9s12xep100按键中断,程序如下:
#define kb_ps PPSH
#define kb_ie PIEH
#define kb_if PIFH
void delay(void){
unsigned int i,j;
for(i=0;i<1000;i++)
for(j=0;j<1335;j++);
}
void main(void) {
DisableInterrupts;
key_up_d=0; //输入
key_down_d=0;
kb_ps=0;
kb_if=0xff;
kb_ie=0x14;
ledd=1;
EnableInterrupts;
for(;;){
//led=~led;
//delay();
//_FEED_COP(); /* feeds the dog */
} /* loop forever */
/* please make sure that you never leave main */
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 25 key_interrupts(void){
DisableInterrupts;
kb_if=0xff;
if(key_up==0){
led=0;
delay();
}
if(key_down==0){
led=1;
delay();
}
EnableInterrupts;
}
#pragma CODE_SEG DEFAULT
key_up按下灯亮,但是key_down按下灯没有灭。
用示波器看了一下,key_down连接的端口原来是高电平,按下按键变成低电平。 |
|