📄 key.s
字号:
.module key.c
.area text(rom, con, rel)
.dbfile E:\abol\file\EMD\programme\key.c
.dbfunc e key_1 _key_1 fc
; ktime -> R20
.even
_key_1::
rcall push_gset1
.dbline -1
.dbline 17
; /********************************************************/
; /* ABOL */
; /* 868MHZ数码管显示接收器 */
; /* 作者:于朝晖 2008-5-24 9:30:00 */
; /* 目标MCU:MEGA16 晶振:INT RC 8MHZ */
; /* 文件名称:key.c 键盘(按键) */
; /* 编译:ICC-AVR application builder */
; /* 当前版本: 1.0 */
; /* 修改日期: 2008.5.24 */
; /********************************************************/
; #include <iom88v.h>
; #include <macros.h>
; #include "init.h"
; #include "delay.h"
;
; unsigned char key_1(void) //判键盘是否活动函数
; {
.dbline 18
; unsigned char ktime=0;
clr R20
.dbline 19
; if((PIND&0x80)==0)
sbic 0x9,7
rjmp L2
.dbline 20
; {//8
.dbline 21
; delay(50);
ldi R16,50
ldi R17,0
rcall _delay
.dbline 22
; if((PIND&0x80)==0)
sbic 0x9,7
rjmp L4
.dbline 23
; {
rjmp L7
L6:
.dbline 25
; while(!(PIND&0x80))
; {
.dbline 26
; WDR();
wdr
.dbline 27
; delay(100);
ldi R16,100
ldi R17,0
rcall _delay
.dbline 28
; ktime++;
inc R20
.dbline 29
; if(ktime>20)
ldi R24,20
cp R24,R20
brsh L9
.dbline 30
; {
.dbline 31
; return 2;
ldi R16,2
rjmp L1
L9:
.dbline 33
L7:
.dbline 24
sbis 0x9,7
rjmp L6
.dbline 34
; }
; }
; return 1;
ldi R16,1
rjmp L1
L4:
.dbline 36
; }
; }
L2:
.dbline 37
; return 0;
clr R16
.dbline -2
L1:
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r ktime 20 c
.dbend
.dbfunc e key_2 _key_2 fc
; ktime -> R20
.even
_key_2::
rcall push_gset1
.dbline -1
.dbline 42
;
; }
;
; unsigned char key_2(void) //判键盘是否活动函数
; {
.dbline 43
; unsigned char ktime=0;
clr R20
.dbline 44
; if((PIND&0x40)==0)
sbic 0x9,6
rjmp L12
.dbline 45
; {//8
.dbline 46
; delay(50);
ldi R16,50
ldi R17,0
rcall _delay
.dbline 47
; if((PIND&0x40)==0)
sbic 0x9,6
rjmp L14
.dbline 48
; {
rjmp L17
L16:
.dbline 50
; while(!(PIND&0x40))
; {
.dbline 51
; WDR();
wdr
.dbline 52
; delay(100);
ldi R16,100
ldi R17,0
rcall _delay
.dbline 53
; ktime++;
inc R20
.dbline 54
; if(ktime>20)
ldi R24,20
cp R24,R20
brsh L19
.dbline 55
; {
.dbline 56
; return 2;
ldi R16,2
rjmp L11
L19:
.dbline 58
L17:
.dbline 49
sbis 0x9,6
rjmp L16
.dbline 59
; }
; }
; return 1;
ldi R16,1
rjmp L11
L14:
.dbline 61
; }
; }
L12:
.dbline 62
; return 0;
clr R16
.dbline -2
L11:
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r ktime 20 c
.dbend
.dbfunc e key_3 _key_3 fc
; ktime -> R20
.even
_key_3::
rcall push_gset1
.dbline -1
.dbline 66
;
; }
; unsigned char key_3(void) //判键盘是否活动函数
; {
.dbline 67
; unsigned char ktime=0;
clr R20
.dbline 68
; if((PIND&0x20)==0)
sbic 0x9,5
rjmp L22
.dbline 69
; {//8
.dbline 70
; delay(50);
ldi R16,50
ldi R17,0
rcall _delay
.dbline 71
; if((PIND&0x20)==0)
sbic 0x9,5
rjmp L24
.dbline 72
; {
rjmp L27
L26:
.dbline 74
; while(!(PIND&0x20))
; {
.dbline 75
; WDR();
wdr
.dbline 76
; delay(100);
ldi R16,100
ldi R17,0
rcall _delay
.dbline 77
; ktime++;
inc R20
.dbline 78
; if(ktime>20)
ldi R24,20
cp R24,R20
brsh L29
.dbline 79
; {
.dbline 80
; return 2;
ldi R16,2
rjmp L21
L29:
.dbline 82
L27:
.dbline 73
sbis 0x9,5
rjmp L26
.dbline 83
; }
; }
; return 1;
ldi R16,1
rjmp L21
L24:
.dbline 85
; }
; }
L22:
.dbline 86
; return 0;
clr R16
.dbline -2
L21:
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r ktime 20 c
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -