📄 keyboard.asm
字号:
rcall send_key_to_pc
ldi temp1,1
rcall delay_mS
ret
turn_off_gbk:
ldi ZH,high(key_table_gbk)
ldi ZL,low(key_table_gbk)
adiw ZL,3
lpm
mov key_value,R0
rcall send_key_to_pc
ldi temp1,1
rcall delay_mS
ld temp,Z+
lpm
mov key_value,R0
rcall send_key_to_pc
ldi temp1,1
rcall delay_mS
ld temp,Z+
lpm
mov key_value,R0
rcall send_key_to_pc
ldi temp1,1
rcall delay_mS
ldi temp1,0xf0
mov key_value,temp1
rcall send_key_to_pc
ldi temp1,1
rcall delay_mS
ld temp,Z
lpm
mov key_value,R0
rcall send_key_to_pc
ldi temp1,1
rcall delay_mS
ldi temp1,0xf0
mov key_value,temp1
rcall send_key_to_pc
ldi temp1,1
rcall delay_mS
ld temp,-Z
lpm
mov key_value,R0
rcall send_key_to_pc
ldi temp1,1
rcall delay_mS
ldi temp1,0xf0
mov key_value,temp1
rcall send_key_to_pc
ldi temp1,1
rcall delay_mS
ld temp,-Z
lpm
mov key_value,R0
rcall send_key_to_pc
ldi temp1,1
rcall delay_mS
ret
test_eeprom:
clr eeprom_addrh
clr eeprom_addrl
ldi counter1,30
test_eeprom_01:
rcall read_eeprom
out UDR,eeprom_data
sbis UCSRA,UDRE
rjmp $-2
inc eeprom_addrl
dec counter1
brne test_eeprom_01
clr counter1
clr eeprom_addrl
clr eeprom_data
ret
/* ****************** eeprom ************************ */
turn_on_gbk:
push eeprom_addrl
push eeprom_addrh
ldi eeprom_addrl,EEP_GBK_ON ;item9.0
clr eeprom_addrh
rcall read_eeprom
cp eeprom_data,zero_register
breq turn_on_gbk01
mov temp1, key_delay
rcall delay_mS
wdr
mov key_value,eeprom_data
rcall send_key_to_pc
turn_on_gbk01:
inc eeprom_addrl
rcall read_eeprom
cp eeprom_data,zero_register
breq turn_on_gbk02
mov temp1, key_delay
rcall delay_mS
wdr
mov key_value,eeprom_data
rcall send_key_to_pc
turn_on_gbk02:
inc eeprom_addrl
rcall read_eeprom
push eeprom_data
mov temp1, key_delay
rcall delay_mS
wdr
mov key_value,eeprom_data
rcall send_key_to_pc
mov temp1, key_delay
rcall delay_mS
wdr
ldi temp1,0xf0
mov key_value,temp1
rcall send_key_to_pc
mov temp1, key_delay
rcall delay_mS
wdr
pop key_value
; mov key_value,eeprom_data
rcall send_key_to_pc
dec eeprom_addrl
rcall read_eeprom
cp eeprom_data,zero_register
breq turn_on_gbk03
push eeprom_data
mov temp1, key_delay
rcall delay_mS
wdr
ldi temp1,0xf0
mov key_value,temp1
rcall send_key_to_pc
mov temp1, key_delay
rcall delay_mS
wdr
pop key_value
; mov key_value,eeprom_data
rcall send_key_to_pc
dec eeprom_addrl
rcall read_eeprom
cp eeprom_data,zero_register
breq turn_on_gbk03
push eeprom_data
mov temp1, key_delay
rcall delay_mS
wdr
ldi temp1,0xf0
mov key_value,temp1
rcall send_key_to_pc
mov temp1, key_delay
rcall delay_mS
wdr
pop key_value
; mov key_value,eeprom_data
rcall send_key_to_pc
mov temp1, key_delay
rcall delay_mS
wdr
turn_on_gbk03:
pop eeprom_addrh
pop eeprom_addrl
ret
turn_off_gbk:
push eeprom_addrl
push eeprom_addrh
ldi eeprom_addrl,EEP_GBK_OFF
clr eeprom_addrh
rcall read_eeprom
cp eeprom_data,zero_register
breq turn_off_gbk01
mov temp1, key_delay
rcall delay_mS
wdr
mov key_value,eeprom_data
rcall send_key_to_pc
turn_off_gbk01:
inc eeprom_addrl
rcall read_eeprom
cp eeprom_data,zero_register
breq turn_off_gbk02
mov temp1, key_delay
rcall delay_mS
wdr
mov key_value,eeprom_data
rcall send_key_to_pc
turn_off_gbk02:
inc eeprom_addrl
rcall read_eeprom
push eeprom_data
mov temp1, key_delay
rcall delay_mS
wdr
mov key_value,eeprom_data
rcall send_key_to_pc
mov temp1, key_delay
rcall delay_mS
wdr
ldi temp1,0xf0
mov key_value,temp1
rcall send_key_to_pc
mov temp1, key_delay
rcall delay_mS
wdr
pop key_value
; mov key_value,eeprom_data
rcall send_key_to_pc
dec eeprom_addrl
rcall read_eeprom
cp eeprom_data,zero_register
breq turn_off_gbk03
push eeprom_data
mov temp1, key_delay
rcall delay_mS
wdr
ldi temp1,0xf0
mov key_value,temp1
rcall send_key_to_pc
mov temp1, key_delay
rcall delay_mS
wdr
pop key_value
; mov key_value,eeprom_data
rcall send_key_to_pc
dec eeprom_addrl
rcall read_eeprom
cp eeprom_data,zero_register
breq turn_off_gbk03
push eeprom_data
mov temp1, key_delay
rcall delay_mS
wdr
ldi temp1,0xf0
mov key_value,temp1
rcall send_key_to_pc
mov temp1, key_delay
rcall delay_mS
wdr
pop key_value
; mov key_value,eeprom_data
rcall send_key_to_pc
mov temp1, key_delay
rcall delay_mS
wdr
turn_off_gbk03:
pop eeprom_addrh
pop eeprom_addrl
ret
reader_version:
db 0x01,0x30,0x20,0x06,0x07,0x17
/* ********************* vect defined by cmd ********************* */
/* ************************************************* */
;receive_start_delay=(1.5*ETU-24)/4+1
delay_table:
db 13,21 ;106K encode 0-------13,12
db 6,19 ;212K encode 1
db 5,7 ;424K encode 2
db 1,1 ;847K encode 3
key_table_hex:
db 0x45,0x16,0x1e,0x26,0x25,0x2e,0x36,0x3d,0x3e,0x46 ;0~9
db 0x1c,0x32,0x21,0x23,0x24,0x2b ;a,b,c,d,e,f
db 0x29,0x5a ;space(0x10) &enter(0x11)
key_table_func:
db 0x00,0x14,0x2d ;read card
db 0x00,0x00,0x05 ;name
db 0x00,0x00,0x06 ;sex
db 0x00,0x00,0x04 ;nation
db 0x00,0x00,0x0c ;id
db 0x00,0x00,0x03 ;address
db 0x00,0x00,0x00
db 0x00,0x00,0x00
key_table_gbk:
db 0x14,0x12,0x46 ;ctrl+SHIFT+9
db 0x14,0x12,0x45 ;ctrl+SHIFT+0
key_table_ascii:
db 'a',0x1c
db 'b',0x32
db 'c',0x21
db 'd',0x23
db 'e',0x24
db 'f',0x2b
db 'g',0x34
db 'h',0x33
db 'i',0x43
db 'j',0x3b
db 'k',0x42
db 'l',0x4b
db 'm',0x3a
db 'n',0x31
db 'o',0x44
db 'p',0x4d
db 'q',0x15
db 'r',0x2d
db 's',0x1b
db 't',0x2c
db 'u',0x3c
db 'v',0x2a
db 'w',0x1d
db 'x',0x22
db 'y',0x35
db 'z',0x1a
db 'A',0x1c
db 'B',0x32
db 'C',0x21
db 'D',0x23
db 'E',0x24
db 'F',0x2b
db 'G',0x34
db 'H',0x33
db 'I',0x43
db 'J',0x3b
db 'K',0x42
db 'L',0x4b
db 'M',0x3a
db 'N',0x31
db 'O',0x44
db 'P',0x4d
db 'Q',0x15
db 'R',0x2d
db 'S',0x1b
db 'T',0x2c
db 'U',0x3c
db 'V',0x2a
db 'W',0x1d
db 'X',0x22
db 'Y',0x35
db 'Z',0x1a
db '0',0x45
db '1',0x16
db '2',0x1e
db '3',0x26
db '4',0x25
db '5',0x2e
db '6',0x36
db '7',0x3d
db '8',0x3e
db '9',0x46
db '.',0x49
db '-',0x4e
db ' ',0x29
unicode_table:
db 0x20,0x00,0x20,0x00,0x49,0x6c,0x20,0x00
db 0x20,0x00,0x99,0x84,0xe4,0x53,0x20,0x00
db 0x20,0x00,0x20,0x00,0xde,0x56,0x20,0x00
db 0x20,0x00,0x20,0x00,0xcf,0x85,0x20,0x00
db 0x20,0x00,0xf4,0x7e,0x3e,0x54,0x14,0x5c
db 0x20,0x00,0x20,0x00,0xd7,0x82,0x20,0x00
db 0x20,0x00,0x20,0x00,0x5d,0x5f,0x20,0x00
db 0x20,0x00,0xee,0x58,0x20,0x00,0x20,0x00
db 0x20,0x00,0x03,0x5e,0x9d,0x4f,0x20,0x00
db 0x20,0x00,0x1d,0x67,0x9c,0x9c,0x20,0x00
db 0x20,0x00,0x20,0x00,0xe1,0x6e,0x20,0x00
db 0x20,0x00,0x20,0x00,0x97,0x4f,0x20,0x00
db 0x20,0x00,0x20,0x00,0x76,0x74,0x20,0x00
db 0x20,0x00,0x20,0x00,0x7d,0x76,0x20,0x00
db 0x20,0x00,0x1f,0x57,0xb6,0x5b,0x20,0x00
db 0x20,0x00,0xc8,0x54,0x3c,0x5c,0x20,0x00
db 0x20,0x00,0xc8,0x54,0x28,0x84,0x4b,0x51
db 0x20,0x00,0x20,0x00,0xa3,0x50,0x20,0x00
db 0x20,0x00,0x20,0x00,0xce,0x9e,0x20,0x00
db 0x20,0x00,0x88,0x50,0xf3,0x50,0x20,0x00
db 0x20,0x00,0x20,0x00,0x64,0x4f,0x20,0x00
db 0x20,0x00,0x20,0x00,0x72,0x75,0x20,0x00
db 0x20,0x00,0xd8,0x9a,0x71,0x5c,0x20,0x00
db 0x20,0x00,0xc9,0x62,0x5c,0x79,0x20,0x00
db 0x20,0x00,0x20,0x00,0x34,0x6c,0x20,0x00
db 0x20,0x00,0x1c,0x4e,0x61,0x4e,0x20,0x00
db 0x20,0x00,0xb3,0x7e,0x7f,0x89,0x20,0x00
db 0x20,0x00,0x6f,0x66,0x87,0x98,0x20,0x00
db 0xef,0x67,0x14,0x5c,0x4b,0x51,0x5c,0x5b
db 0x20,0x00,0x20,0x00,0x1f,0x57,0x20,0x00
db 0x20,0x00,0xbe,0x8f,0xa1,0x65,0x14,0x5c
db 0x20,0x00,0xeb,0x4e,0x6c,0x4f,0x20,0x00
db 0x20,0x00,0x20,0x00,0x8c,0x7f,0x20,0x00
db 0x20,0x00,0x03,0x5e,0x17,0x67,0x20,0x00
db 0x20,0x00,0x92,0x64,0xc9,0x62,0x20,0x00
db 0x20,0x00,0xdb,0x6b,0x57,0x53,0x20,0x00
db 0x20,0x00,0xe1,0x4e,0x6c,0x4f,0x20,0x00
db 0x20,0x00,0x21,0x95,0x2f,0x4f,0x20,0x00
db 0x20,0x00,0x3f,0x96,0x0c,0x66,0x20,0x00
db 0x20,0x00,0x6e,0x66,0x73,0x7c,0x20,0x00
db 0x20,0x00,0x54,0x58,0x09,0x54,0x4b,0x51
db 0x20,0x00,0x20,0x00,0x12,0x60,0x20,0x00
db 0x4c,0x4e,0x5c,0x5b,0x2b,0x52,0x4b,0x51
db 0x20,0x00,0xc4,0x4f,0x57,0x7f,0xaf,0x65
db 0x20,0x00,0x02,0x91,0x29,0x6e,0x4b,0x51
db 0x20,0x00,0xb7,0x5f,0x34,0x66,0x20,0x00
db 0x20,0x00,0xdd,0x4f,0x89,0x5b,0x20,0x00
db 0x20,0x00,0xd5,0x88,0xfa,0x56,0x20,0x00
db 0x20,0x00,0x20,0x00,0xac,0x4e,0x20,0x00
db 0x20,0x00,0x54,0x58,0x54,0x58,0x14,0x5c
db 0x20,0x00,0xec,0x72,0x99,0x9f,0x20,0x00
db 0x20,0x00,0x02,0x91,0x26,0x4f,0x25,0x66
db 0x20,0x00,0x6b,0x8d,0xf2,0x54,0x20,0x00
db 0x20,0x00,0xe8,0x95,0xf4,0x5d,0x20,0x00
db 0x20,0x00,0xde,0x73,0xf4,0x5d,0x20,0x00
db 0x20,0x00,0xfa,0x57,0xfa,0x8b,0x20,0x00
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -