⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 s1mp3 sdk, action mp3 develop tool kit!
💻 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 + -