📄 key.lis
字号:
.module key.c
.area text(rom, con, rel)
0000 .dbfile E:\abol\file\EMD\programme\key.c
0000 .dbfunc e key_1 _key_1 fc
0000 ; ktime -> R20
.even
0000 _key_1::
0000 00D0 rcall push_gset1
0002 .dbline -1
0002 .dbline 17
0002 ; /********************************************************/
0002 ; /* ABOL */
0002 ; /* 868MHZ数码管显示接收器 */
0002 ; /* 作者:于朝晖 2008-5-24 9:30:00 */
0002 ; /* 目标MCU:MEGA16 晶振:INT RC 8MHZ */
0002 ; /* 文件名称:key.c 键盘(按键) */
0002 ; /* 编译:ICC-AVR application builder */
0002 ; /* 当前版本: 1.0 */
0002 ; /* 修改日期: 2008.5.24 */
0002 ; /********************************************************/
0002 ; #include <iom88v.h>
0002 ; #include <macros.h>
0002 ; #include "init.h"
0002 ; #include "delay.h"
0002 ;
0002 ; unsigned char key_1(void) //判键盘是否活动函数
0002 ; {
0002 .dbline 18
0002 ; unsigned char ktime=0;
0002 4427 clr R20
0004 .dbline 19
0004 ; if((PIND&0x80)==0)
0004 4F99 sbic 0x9,7
0006 14C0 rjmp L2
0008 .dbline 20
0008 ; {//8
0008 .dbline 21
0008 ; delay(50);
0008 02E3 ldi R16,50
000A 10E0 ldi R17,0
000C 00D0 rcall _delay
000E .dbline 22
000E ; if((PIND&0x80)==0)
000E 4F99 sbic 0x9,7
0010 0FC0 rjmp L4
0012 .dbline 23
0012 ; {
0012 0AC0 rjmp L7
0014 L6:
0014 .dbline 25
0014 ; while(!(PIND&0x80))
0014 ; {
0014 .dbline 26
0014 ; WDR();
0014 A895 wdr
0016 .dbline 27
0016 ; delay(100);
0016 04E6 ldi R16,100
0018 10E0 ldi R17,0
001A 00D0 rcall _delay
001C .dbline 28
001C ; ktime++;
001C 4395 inc R20
001E .dbline 29
001E ; if(ktime>20)
001E 84E1 ldi R24,20
0020 8417 cp R24,R20
0022 10F4 brsh L9
0024 .dbline 30
0024 ; {
0024 .dbline 31
0024 ; return 2;
0024 02E0 ldi R16,2
0026 05C0 rjmp L1
0028 L9:
0028 .dbline 33
0028 L7:
0028 .dbline 24
0028 4F9B sbis 0x9,7
002A F4CF rjmp L6
002C .dbline 34
002C ; }
002C ; }
002C ; return 1;
002C 01E0 ldi R16,1
002E 01C0 rjmp L1
0030 L4:
0030 .dbline 36
0030 ; }
0030 ; }
0030 L2:
0030 .dbline 37
0030 ; return 0;
0030 0027 clr R16
0032 .dbline -2
0032 L1:
0032 00D0 rcall pop_gset1
0034 .dbline 0 ; func end
0034 0895 ret
0036 .dbsym r ktime 20 c
0036 .dbend
0036 .dbfunc e key_2 _key_2 fc
0036 ; ktime -> R20
.even
0036 _key_2::
0036 00D0 rcall push_gset1
0038 .dbline -1
0038 .dbline 42
0038 ;
0038 ; }
0038 ;
0038 ; unsigned char key_2(void) //判键盘是否活动函数
0038 ; {
0038 .dbline 43
0038 ; unsigned char ktime=0;
0038 4427 clr R20
003A .dbline 44
003A ; if((PIND&0x40)==0)
003A 4E99 sbic 0x9,6
003C 14C0 rjmp L12
003E .dbline 45
003E ; {//8
003E .dbline 46
003E ; delay(50);
003E 02E3 ldi R16,50
0040 10E0 ldi R17,0
0042 00D0 rcall _delay
0044 .dbline 47
0044 ; if((PIND&0x40)==0)
0044 4E99 sbic 0x9,6
0046 0FC0 rjmp L14
0048 .dbline 48
0048 ; {
0048 0AC0 rjmp L17
004A L16:
004A .dbline 50
004A ; while(!(PIND&0x40))
004A ; {
004A .dbline 51
004A ; WDR();
004A A895 wdr
004C .dbline 52
004C ; delay(100);
004C 04E6 ldi R16,100
004E 10E0 ldi R17,0
0050 00D0 rcall _delay
0052 .dbline 53
0052 ; ktime++;
0052 4395 inc R20
0054 .dbline 54
0054 ; if(ktime>20)
0054 84E1 ldi R24,20
0056 8417 cp R24,R20
0058 10F4 brsh L19
005A .dbline 55
005A ; {
005A .dbline 56
005A ; return 2;
005A 02E0 ldi R16,2
005C 05C0 rjmp L11
005E L19:
005E .dbline 58
005E L17:
005E .dbline 49
005E 4E9B sbis 0x9,6
0060 F4CF rjmp L16
0062 .dbline 59
0062 ; }
0062 ; }
0062 ; return 1;
0062 01E0 ldi R16,1
0064 01C0 rjmp L11
0066 L14:
0066 .dbline 61
0066 ; }
0066 ; }
0066 L12:
0066 .dbline 62
0066 ; return 0;
0066 0027 clr R16
0068 .dbline -2
0068 L11:
0068 00D0 rcall pop_gset1
006A .dbline 0 ; func end
006A 0895 ret
006C .dbsym r ktime 20 c
006C .dbend
006C .dbfunc e key_3 _key_3 fc
006C ; ktime -> R20
.even
006C _key_3::
006C 00D0 rcall push_gset1
006E .dbline -1
006E .dbline 66
006E ;
006E ; }
006E ; unsigned char key_3(void) //判键盘是否活动函数
006E ; {
006E .dbline 67
006E ; unsigned char ktime=0;
006E 4427 clr R20
0070 .dbline 68
0070 ; if((PIND&0x20)==0)
0070 4D99 sbic 0x9,5
0072 14C0 rjmp L22
0074 .dbline 69
0074 ; {//8
0074 .dbline 70
0074 ; delay(50);
0074 02E3 ldi R16,50
0076 10E0 ldi R17,0
0078 00D0 rcall _delay
007A .dbline 71
007A ; if((PIND&0x20)==0)
007A 4D99 sbic 0x9,5
007C 0FC0 rjmp L24
007E .dbline 72
007E ; {
007E 0AC0 rjmp L27
0080 L26:
0080 .dbline 74
0080 ; while(!(PIND&0x20))
0080 ; {
0080 .dbline 75
0080 ; WDR();
0080 A895 wdr
0082 .dbline 76
0082 ; delay(100);
0082 04E6 ldi R16,100
0084 10E0 ldi R17,0
0086 00D0 rcall _delay
0088 .dbline 77
0088 ; ktime++;
0088 4395 inc R20
008A .dbline 78
008A ; if(ktime>20)
008A 84E1 ldi R24,20
008C 8417 cp R24,R20
008E 10F4 brsh L29
0090 .dbline 79
0090 ; {
0090 .dbline 80
0090 ; return 2;
0090 02E0 ldi R16,2
0092 05C0 rjmp L21
0094 L29:
0094 .dbline 82
0094 L27:
0094 .dbline 73
0094 4D9B sbis 0x9,5
0096 F4CF rjmp L26
0098 .dbline 83
0098 ; }
0098 ; }
0098 ; return 1;
0098 01E0 ldi R16,1
009A 01C0 rjmp L21
009C L24:
009C .dbline 85
009C ; }
009C ; }
009C L22:
009C .dbline 86
009C ; return 0;
009C 0027 clr R16
009E .dbline -2
009E L21:
009E 00D0 rcall pop_gset1
00A0 .dbline 0 ; func end
00A0 0895 ret
00A2 .dbsym r ktime 20 c
00A2 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -