📄 key4x4.lis
字号:
.module key4x4.c
.area text(rom, con, rel)
0000 .dbfile E:\产品\开发板\mega128-board\待完成\扩展4x4键盘输入\key4x4.c
0000 .dbfile E:\产品\开发板\mega128-board\待完成\扩展4x4键盘输入\key4x4.h
0000 .dbfunc e s_ms _s_ms fV
0000 ; t -> R16,R17
.even
0000 _s_ms::
0000 .dbline -1
0000 .dbline 3
0000 ; #include<iom128v.h>
0000 ; #include"key4x4.h"
0000 ; #define uchar unsigned char
0000 .dbline 4
0000 ; #define uint unsigned int
0000 02C0 xjmp L5
0002 L2:
0002 .dbline 5
0002 ;
0002 .dbline 6
0002 ; //主函数
0002 L3:
0002 .dbline 4
0002 0150 subi R16,1
0004 1040 sbci R17,0
0006 L5:
0006 .dbline 4
0006 81E0 ldi R24,1
0008 90E0 ldi R25,0
000A 8017 cp R24,R16
000C 9107 cpc R25,R17
000E C8F3 brlo L2
0010 X0:
0010 .dbline -2
0010 L1:
0010 .dbline 0 ; func end
0010 0895 ret
0012 .dbsym r t 16 i
0012 .dbend
0012 .dbfunc e key_value _key_value fc
0012 ; i -> <dead>
0012 ; tem2 -> R10
0012 ; rem -> R20
0012 ; tem1 -> R22
.even
0012 _key_value::
0012 0E940000 xcall push_xgsetF00C
0016 .dbline -1
0016 .dbline 12
0016 ; main()
0016 ; {
0016 ; uchar key;
0016 ; DDRA=0xff;
0016 ; DDRC=0xff;
0016 ; PORTA=0xff;
0016 .dbline 14
0016 ; while(1)
0016 ; {
0016 4427 clr R20
0018 .dbline 16
0018 ; key=key_value(); //读取4x4键盘
0018 ; if(key!=0) //有按键被按下
0018 80EF ldi R24,240
001A 84BB out 0x14,R24
001C .dbline 18
001C ; {
001C ; PORTA=~key; //显示键值
001C 8FE0 ldi R24,15
001E 85BB out 0x15,R24
0020 .dbline 20
0020 ; }
0020 ; }
0020 0EE1 ldi R16,30
0022 10E0 ldi R17,0
0024 EDDF xcall _s_ms
0026 .dbline 21
0026 ;
0026 63B3 in R22,0x13
0028 .dbline 23
0028 ; }
0028 6F70 andi R22,15
002A .dbline 25
002A 6F30 cpi R22,15
002C E1F0 breq L7
002E X1:
002E .dbline 26
002E .dbline 27
002E 00E2 ldi R16,800
0030 13E0 ldi R17,3
0032 E6DF xcall _s_ms
0034 .dbline 29
0034 A3B2 in R10,0x13
0036 .dbline 31
0036 8A2D mov R24,R10
0038 8F70 andi R24,15
003A A82E mov R10,R24
003C .dbline 33
003C 6817 cp R22,R24
003E 99F4 brne L9
0040 X2:
0040 .dbline 34
0040 .dbline 35
0040 8FE0 ldi R24,15
0042 84BB out 0x14,R24
0044 .dbline 37
0044 80EF ldi R24,240
0046 85BB out 0x15,R24
0048 .dbline 39
0048 01E0 ldi R16,1
004A 10E0 ldi R17,0
004C D9DF xcall _s_ms
004E .dbline 41
004E 43B3 in R20,0x13
0050 .dbline 43
0050 407F andi R20,240
0052 .dbline 45
0052 460F add R20,R22
0054 .dbline 47
0054 4095 com R20
0056 L11:
0056 .dbline 51
0056 .dbline 52
0056 80EF ldi R24,240
0058 85BB out 0x15,R24
005A .dbline 53
005A 08EB ldi R16,3000
005C 1BE0 ldi R17,11
005E D0DF xcall _s_ms
0060 .dbline 54
0060 L12:
0060 .dbline 55
0060 83B3 in R24,0x13
0062 803F cpi R24,240
0064 C1F7 brne L11
0066 X3:
0066 .dbline 56
0066 L9:
0066 .dbline 57
0066 L7:
0066 .dbline 58
0066 00E7 ldi R16,6000
0068 17E1 ldi R17,23
006A CADF xcall _s_ms
006C .dbline 59
006C 00E7 ldi R16,6000
006E 17E1 ldi R17,23
0070 C7DF xcall _s_ms
0072 .dbline 60
0072 042F mov R16,R20
0074 .dbline -2
0074 L6:
0074 .dbline 0 ; func end
0074 0C940000 xjmp pop_xgsetF00C
0078 .dbsym l i 1 c
0078 .dbsym r tem2 10 c
0078 .dbsym r rem 20 c
0078 .dbsym r tem1 22 c
0078 .dbend
0078 .dbfile E:\产品\开发板\mega128-board\待完成\扩展4x4键盘输入\key4x4.c
0078 .dbfunc e main _main fI
0078 ; key -> R10
.even
0078 _main::
0078 .dbline -1
0078 .dbline 8
0078 .dbline 10
0078 8FEF ldi R24,255
007A 8ABB out 0x1a,R24
007C .dbline 11
007C 84BB out 0x14,R24
007E .dbline 12
007E 8BBB out 0x1b,R24
0080 07C0 xjmp L16
0082 L15:
0082 .dbline 14
0082 .dbline 15
0082 C7DF xcall _key_value
0084 A02E mov R10,R16
0086 .dbline 16
0086 0023 tst R16
0088 19F0 breq L18
008A X4:
008A .dbline 17
008A .dbline 18
008A 2A2C mov R2,R10
008C 2094 com R2
008E 2BBA out 0x1b,R2
0090 .dbline 19
0090 L18:
0090 .dbline 20
0090 L16:
0090 .dbline 13
0090 F8CF xjmp L15
0092 X5:
0092 .dbline -2
0092 L14:
0092 .dbline 0 ; func end
0092 0895 ret
0094 .dbsym r key 10 c
0094 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -