📄 main.c
字号:
/*
Test the keyboard
FC
*/
#include <s1sdk.h>
char Key_String1[] = "00";
char Key_String2[] = "00";
char Key_String3[] = "00";
char Key_String4[] = "00";
char Key_String5[] = "00";
char Key_String6[] = "00";
char Key_String7[] = "00";
char Key_String8[] = "00";
char Key_String9[] = "00";
char szHold[] = "HOLD";
char szVolPlus[] = "VOL +";
char szVolMinus[] = "VOL -";
char szPrev[] = "PREV";
char szNext[] = "NEXT";
char szRec[] = "REC";
char szPlay[] = "PLAY";
char szMode[] = "MODE";
unsigned char Key_State;
unsigned char key_byte1;
unsigned char key_byte2;
unsigned char key_byte3;
unsigned char key_byte4;
unsigned char key_byte5;
unsigned char key_byte6;
unsigned char key_byte7;
unsigned char key_byte8;
unsigned char key_byte9;
unsigned char getHex(unsigned char byte) {
byte &= 0x0F;
if(byte > 9) return(byte + 55);
return(byte + 48);
}
void sprintByte(unsigned char *string, unsigned char byte) {
string[0] = getHex(byte >> 4);
string[1] = getHex(byte);
}
int main() {
MCU_Initialise(MCU_CLK_DIV_NONE);
WATCHDOG_Enable(WD_5_6s);
LCD_Initialise(16);
ISR_Initialise();
KEYBOARD_Initialise();
ISR_Install(ISR_HANDLER_KEYBOARD, KEYBOARD_ISR);
while(1) {
WATCHDOG_Reset();
#asm
in a,(0xd8)
ld (_key_byte1), a
in a,(0xf2)
ld (_key_byte2), a
in a,(0xff)
ld (_key_byte3), a
in a,(0x50)
ld (_key_byte4), a
in a,(0xfe)
ld (_key_byte5), a
in a,(0xf0)
ld (_key_byte6), a
in a,(0xd1)
ld (_key_byte7), a
in a,(0xd0)
ld (_key_byte8), a
in a,(0xf1)
ld (_key_byte9), a
#endasm
// Display the control bytes
sprintByte(Key_String1, key_byte1);
sprintByte(Key_String2, key_byte2);
sprintByte(Key_String3, key_byte3);
sprintByte(Key_String4, key_byte4);
sprintByte(Key_String5, key_byte5);
sprintByte(Key_String6, key_byte6);
sprintByte(Key_String7, key_byte7);
sprintByte(Key_String8, key_byte8);
sprintByte(Key_String9, key_byte9);
LCD_ClearScreen();
LCD_WriteText(0, 0, FONT_FIVE_DOT, Key_String1);
LCD_WriteText(10, 0, FONT_FIVE_DOT, Key_String2);
LCD_WriteText(20, 0, FONT_FIVE_DOT, Key_String3);
LCD_WriteText(30, 0, FONT_FIVE_DOT, Key_String4);
LCD_WriteText(40, 0, FONT_FIVE_DOT, Key_String5);
LCD_WriteText(50, 0, FONT_FIVE_DOT, Key_String6);
LCD_WriteText(60, 0, FONT_FIVE_DOT, Key_String7);
LCD_WriteText(70, 0, FONT_FIVE_DOT, Key_String8);
LCD_WriteText(80, 0, FONT_FIVE_DOT, Key_String9);
Key_State = KEYBOARD_GetKeyState();
if(Key_State & KEY_HOLD) LCD_WriteText(0, 7, FONT_SIX_DOT, szHold);
if(Key_State & KEY_VOL_UP) LCD_WriteText(30, 7, FONT_SIX_DOT, szVolPlus);
if(Key_State & KEY_VOL_DOWN) LCD_WriteText(60, 7, FONT_SIX_DOT, szVolMinus);
if(Key_State & KEY_PREV) LCD_WriteText(0, 13, FONT_SIX_DOT, szPrev);
if(Key_State & KEY_NEXT) LCD_WriteText(30, 13, FONT_SIX_DOT, szNext);
if(Key_State & KEY_REC) LCD_WriteText(60, 13, FONT_SIX_DOT, szRec);
if(Key_State & KEY_PLAY) LCD_WriteText(0, 19, FONT_SIX_DOT, szPlay);
if(Key_State & KEY_MODE) LCD_WriteText(30, 19, FONT_SIX_DOT, szMode);
LCD_UpdateScreen();
}
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -