📄 main.c
字号:
#include <hidef.h> /* for EnableInterrupts macro */
#include <MC9S08GB60.h> /* include peripheral declarations */
void main(void) {
DisableInterrupts; /* Disable Interrupts */
PTBD = 0x00;
PTBDD = 0xFF; /* Set Port B as output */
PTADD = 0x0F; /* Set Port A bits 7-4 as input and 3-0 as output */
PTAPE = 0xF0; /* Internal Pullup Enable bits 7-4 */
PTAD = 0x00;
KBI1PE = 0xF0; /* Enable Port A bits 7-4 as keyboard */
KBI1SC = 0x06; /* Keyboard Interrupt Enable and event on falling edges sensitive */
EnableInterrupts; /* enable interrupts */
for(;;) {
__RESET_WATCHDOG(); /* feeds the dog */
} /* loop forever */
}
interrupt Keyboard(void) {
char result;
unsigned int i;
/* Cross scan to acquire Key in code */
result = PTAD;
KBI1PE = 0x00;
PTADD = 0xF0;
PTAPE = 0x0F;
PTAD = 0x00;
result |= PTAD;
/* Change LED state judge by key in code */
switch(result) {
case 0xEE:
PTBD = 0xEF;
break;
case 0xED:
PTBD = 0xDF;
break;
case 0xEB:
PTBD = 0xBF;
break;
case 0xE7:
PTBD = 0x7F;
break;
case 0xDE:
PTBD = 0xFE;
break;
case 0xDD:
PTBD = 0xFD;
break;
case 0xDB:
PTBD = 0xFB;
break;
case 0xD7:
PTBD = 0xF7;
break;
case 0xBE:
PTBD = 0xEF;
break;
case 0xBD:
PTBD = 0xDF;
break;
case 0xBB:
PTBD = 0xBF;
break;
case 0xB7:
PTBD = 0x7F;
break;
case 0x7E:
PTBD = 0xFE;
break;
case 0x7D:
PTBD = 0xFD;
break;
case 0x7B:
PTBD = 0xFB;
break;
case 0x77:
PTBD = 0xF7;
break;
}
for(i=0;i<=20000;i++) __RESET_WATCHDOG();
/* Resume to initial state */
KBI1PE = 0xF0;
PTADD = 0x0F;
PTAPE = 0xF0;
PTAD = 0x00;
KBI1SC_KBACK = 1; /* Keyboard interrupt acknowledge */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -