}

按鍵模塊:
頭文件:
#ifndef SD_KEY_H#define SD_KEY_Hvoid KeysIntCfg();#endif實現文件:
#include<iocc2530.h>void delay(){ int i,j; for(i=0;i<1000;i++) for(j=0;j<30;j++);}void KeysIntCfg(){//Key3 Key4 Key5 P1SEL &=~0X02; P1DIR &=~0X02; IEN2|=0x10;//開P1IE組中斷 P1IEN|=0x02;//開Key3組內中斷 PICTL|=0x02;//設置P1_1為下降沿 P2SEL &=~0X01; P2DIR &=~0X01; IEN2|=0x02; P2IEN|=0x01; PICTL|=0x08;//設置P2_0為下降沿 P0SEL &=~0X20; P0DIR &=~0X20; P0IE=1;//或者寫成 IEN1|=0x20 P0IEN|=0x20; PICTL|=0x01;//設置P0_5為下降沿 EA=1; //開總中斷}#pragma vector=P1INT_VECTOR__interrupt void Key3_ISR() //P1_1{ delay(); if(P1IFG & 0X02) { P1DIR |=0X01; P1_0 ^=1; } P1IFG =0; P1IF=0;}#pragma vector=P2INT_VECTOR__interrupt void Key4_ISR()//P2_0{ delay(); if(P2IFG & 0X01) { P0DIR |=0x02; P0_1 ^=1; } P2IFG =0; P2IF=0;}#pragma vector=P0INT_VECTOR__interrupt void Key5_ISR()//P0_5{ delay(); if(P0IFG & 0X20) { P0SEL &=~0x10; P0DIR |=0X10; P0_4 ^=1; } P0IFG =0; P0IF=0;}
新聞熱點
疑難解答