📄 key.lis
字号:
.module key.c
.area text(rom, con, rel)
0000 .dbfile D:\TDDownload\MP3BOA~1.8\key.c
0000 .dbfunc e key_init _key_init fV
.even
0000 _key_init::
0000 .dbline -1
0000 .dbline 16
0000 ; //ICC-AVR application builder : 2005-11-12 17:11:59
0000 ; // Target : M16
0000 ; // Crystal: 8.0000Mhz
0000 ; // copyright:鲁军波(endylu)
0000 ; // www.shop34612283.taobao.com
0000 ; // www.adembed.com
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ; #include "main.h"
0000 ;
0000 ; uint8 key_state;
0000 ; extern uint8 key_value;
0000 ;
0000 ; //=======================================================================
0000 ; void key_init(void)
0000 ; {
0000 .dbline 17
0000 ; key_ddr&=~all_key;
0000 81B3 in R24,0x11
0002 8770 andi R24,7
0004 81BB out 0x11,R24
0006 .dbline 18
0006 ; key_port|=all_key;
0006 82B3 in R24,0x12
0008 886F ori R24,248
000A 82BB out 0x12,R24
000C .dbline 21
000C ;
000C ; //t/c0初始化
000C ; TCCR0=0X0D;
000C 8DE0 ldi R24,13
000E 83BF out 0x33,R24
0010 .dbline 22
0010 ; TCNT0=0X00;
0010 2224 clr R2
0012 22BE out 0x32,R2
0014 .dbline 23
0014 ; OCR0=0XF0; //定时30ms
0014 80EF ldi R24,240
0016 8CBF out 0x3c,R24
0018 .dbline 24
0018 ; TIMSK|=0X02;
0018 89B7 in R24,0x39
001A 8260 ori R24,2
001C 89BF out 0x39,R24
001E .dbline -2
001E L1:
001E .dbline 0 ; func end
001E 0895 ret
0020 .dbend
0020 .dbfunc e read_keyboard _read_keyboard fV
.even
0020 _read_keyboard::
0020 .dbline -1
0020 .dbline 30
0020 ;
0020 ; }
0020 ;
0020 ; //=======================================================================
0020 ; void read_keyboard(void)
0020 ; {
0020 .dbline 31
0020 ; switch(key_state)
0020 00910000 lds R16,_key_state
0024 1127 clr R17
0026 0030 cpi R16,0
0028 0107 cpc R16,R17
002A 49F0 breq L6
002C X0:
002C 0130 cpi R16,1
002E E0E0 ldi R30,0
0030 1E07 cpc R17,R30
0032 79F0 breq L9
0034 0230 cpi R16,2
0036 E0E0 ldi R30,0
0038 1E07 cpc R17,R30
003A F9F0 breq L12
003C 25C0 xjmp L3
003E X1:
003E .dbline 32
003E ; {
003E L6:
003E .dbline 34
003E ; case 0:
003E ; if((key_pin&all_key)!=all_key)
003E 80B3 in R24,0x10
0040 887F andi R24,248
0042 883F cpi R24,248
0044 09F1 breq L4
0046 .dbline 35
0046 ; key_state++;
0046 80910000 lds R24,_key_state
004A 8F5F subi R24,255 ; addi 1
004C 80930000 sts _key_state,R24
0050 .dbline 36
0050 ; break;
0050 1BC0 xjmp L4
0052 L9:
0052 .dbline 38
0052 ; case 1:
0052 ; if((key_pin&all_key)!=all_key)
0052 80B3 in R24,0x10
0054 887F andi R24,248
0056 883F cpi R24,248
0058 51F0 breq L10
005A .dbline 39
005A ; {
005A .dbline 40
005A ; key_state++;
005A 80910000 lds R24,_key_state
005E 8F5F subi R24,255 ; addi 1
0060 80930000 sts _key_state,R24
0064 .dbline 41
0064 ; key_value=key_pin&all_key;
0064 80B3 in R24,0x10
0066 887F andi R24,248
0068 80930000 sts _key_value,R24
006C .dbline 42
006C ; }
006C 0DC0 xjmp L4
006E L10:
006E .dbline 43
006E ; else key_state--;
006E 80910000 lds R24,_key_state
0072 8150 subi R24,1
0074 80930000 sts _key_state,R24
0078 .dbline 44
0078 ; break;
0078 07C0 xjmp L4
007A L12:
007A .dbline 46
007A ; case 2:
007A ; if((key_pin&all_key)==all_key)
007A 80B3 in R24,0x10
007C 887F andi R24,248
007E 883F cpi R24,248
0080 19F4 brne L4
0082 .dbline 47
0082 ; {key_state=0;
0082 .dbline 47
0082 2224 clr R2
0084 20920000 sts _key_state,R2
0088 .dbline 48
0088 ; }
0088 .dbline 49
0088 ; break;
0088 L3:
0088 L4:
0088 .dbline -2
0088 L2:
0088 .dbline 0 ; func end
0088 0895 ret
008A .dbend
.area bss(ram, con, rel)
0000 .dbfile D:\TDDownload\MP3BOA~1.8\key.c
0000 _key_state::
0000 .blkb 1
0001 .dbsym e key_state _key_state c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -