//範例9-4C:外部中斷應用範例-7段顯示器 //檔名:ch9_4.C #include #include #define RR(x) _cror_(x,1); #define RL(x) _crol_(x,1); void delay10ms(int count); unsigned char code seg7[]={0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90}; main() { int i; TCON=5; // INT0, INT1 為負緣觸發動作 IE=0x85; // INT0 INT1 中斷致能 IE=10000101 while(1){ for(i=0;i<10;i++){ P0=seg7[i]; // 取出7段顯示器編碼輸出P0埠 delay10ms(100); // 延遲 1秒鐘 } } } // INT 0 中斷副程式 void EXINT0(void ) interrupt 0 { int j; unsigned char num1[]={2,1,5,7,9}; for(j=0;j<5;j++){ P0=seg7[num1[j]]; // 取出7段顯示器編碼輸出P0埠 delay10ms(50); // 延遲 0.5秒鐘 } } // INT 1 中斷副程式 void EXINT1(void ) interrupt 2 { int j; unsigned char num2[]={1,5,1,9,8}; for(j=0;j<5;j++){ P0=seg7[num2[j]]; // 取出7段顯示器編碼輸出P0埠 delay10ms(200); // 延遲 2秒鐘 } } void delay10ms(int count) { int i,j; for(i=0;i