keyb.h

来自「共享几个AVR单片机的常用代码」· C头文件 代码 · 共 43 行

H
43
字号
#include <avr/io.h>
#include "Timer.h"

/*			PORT	DDR		PIN
	A		0x1B	0x1A	0x19	
	B		0x18	0x17	0x16	
	C		0x15	0x14	0x13
	D		0x12	0x11	0x10

KeyBoard
		Row		0..3		PA4..7
		Col		0..3		PC4..7

*/

//#define KEYB_ROW_OUTPUT		asm("sbi 0x14,0"::);asm("sbi 0x14,1"::);asm("sbi 0x14,2"::);asm("sbi 0x14,3"::)
//#define KEYB_ROW_INPUT		asm("cbi 0x14,0"::);asm("cbi 0x14,1"::);asm("cbi 0x14,2"::);asm("cbi 0x14,3"::)
//#define KEYB_ROW_SETH		asm("sbi 0x15,0"::);asm("sbi 0x15,1"::);asm("sbi 0x15,2"::);asm("sbi 0x15,3"::)
//#define	KEYB_ROW_SETL		asm("cbi 0x15,0"::);asm("cbi 0x15,1"::);asm("cbi 0x15,2"::);asm("cbi 0x15,3"::)
//#define KEYB_COL_OUTPUT		asm("sbi 0x14,4"::);asm("sbi 0x14,5"::);asm("sbi 0x14,6"::);asm("sbi 0x14,7"::)
//#define KEYB_COL_INPUT		asm("cbi 0x14,4"::);asm("cbi 0x14,5"::);asm("cbi 0x14,6"::);asm("cbi 0x14,7"::)
//#define KEYB_COL_SETH		asm("sbi 0x15,4"::);asm("sbi 0x15,5"::);asm("sbi 0x15,6"::);asm("sbi 0x15,7"::)
//#define	KEYB_COL_SETL		asm("cbi 0x15,4"::);asm("cbi 0x15,5"::);asm("cbi 0x15,6"::);asm("cbi 0x15,7"::)

#define KEYB_ROW_PORT	PORTB
#define KEYB_ROW_DDR	DDRB
#define KEYB_ROW_PIN	PINB
#define KEYB_ROW_SHIFT	0

#define KEYB_COL_PORT	PORTB
#define KEYB_COL_DDR	DDRB
#define KEYB_COL_PIN	PINB
#define KEYB_COL_SHIFT	4


/*
	low 4 bit:		row
	high 4 bit:	col

*/
uint8_t KB_GetChar(uint8_t Sync,uint8_t WaitRelease);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?