?? key.s
字號:
.module key.c
.area text(rom, con, rel)
.dbfile D:\TDDownload\MP3BOA~1.8\key.c
.dbfunc e key_init _key_init fV
.even
_key_init::
.dbline -1
.dbline 16
; //ICC-AVR application builder : 2005-11-12 17:11:59
; // Target : M16
; // Crystal: 8.0000Mhz
; // copyright:魯軍波(endylu)
; // www.shop34612283.taobao.com
; // www.adembed.com
; #include <iom16v.h>
; #include <macros.h>
; #include "main.h"
;
; uint8 key_state;
; extern uint8 key_value;
;
; //=======================================================================
; void key_init(void)
; {
.dbline 17
; key_ddr&=~all_key;
in R24,0x11
andi R24,7
out 0x11,R24
.dbline 18
; key_port|=all_key;
in R24,0x12
ori R24,248
out 0x12,R24
.dbline 21
;
; //t/c0初始化
; TCCR0=0X0D;
ldi R24,13
out 0x33,R24
.dbline 22
; TCNT0=0X00;
clr R2
out 0x32,R2
.dbline 23
; OCR0=0XF0; //定時30ms
ldi R24,240
out 0x3c,R24
.dbline 24
; TIMSK|=0X02;
in R24,0x39
ori R24,2
out 0x39,R24
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbend
.dbfunc e read_keyboard _read_keyboard fV
.even
_read_keyboard::
.dbline -1
.dbline 30
;
; }
;
; //=======================================================================
; void read_keyboard(void)
; {
.dbline 31
; switch(key_state)
lds R16,_key_state
clr R17
cpi R16,0
cpc R16,R17
breq L6
X0:
cpi R16,1
ldi R30,0
cpc R17,R30
breq L9
cpi R16,2
ldi R30,0
cpc R17,R30
breq L12
xjmp L3
X1:
.dbline 32
; {
L6:
.dbline 34
; case 0:
; if((key_pin&all_key)!=all_key)
in R24,0x10
andi R24,248
cpi R24,248
breq L4
.dbline 35
; key_state++;
lds R24,_key_state
subi R24,255 ; addi 1
sts _key_state,R24
.dbline 36
; break;
xjmp L4
L9:
.dbline 38
; case 1:
; if((key_pin&all_key)!=all_key)
in R24,0x10
andi R24,248
cpi R24,248
breq L10
.dbline 39
; {
.dbline 40
; key_state++;
lds R24,_key_state
subi R24,255 ; addi 1
sts _key_state,R24
.dbline 41
; key_value=key_pin&all_key;
in R24,0x10
andi R24,248
sts _key_value,R24
.dbline 42
; }
xjmp L4
L10:
.dbline 43
; else key_state--;
lds R24,_key_state
subi R24,1
sts _key_state,R24
.dbline 44
; break;
xjmp L4
L12:
.dbline 46
; case 2:
; if((key_pin&all_key)==all_key)
in R24,0x10
andi R24,248
cpi R24,248
brne L4
.dbline 47
; {key_state=0;
.dbline 47
clr R2
sts _key_state,R2
.dbline 48
; }
.dbline 49
; break;
L3:
L4:
.dbline -2
L2:
.dbline 0 ; func end
ret
.dbend
.area bss(ram, con, rel)
.dbfile D:\TDDownload\MP3BOA~1.8\key.c
_key_state::
.blkb 1
.dbsym e key_state _key_state c
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -