📄 4x4key_main.lis
字号:
01FE .dbline 18
01FE 402F mov R20,R16
0200 5527 clr R21
0202 4132 cpi R20,33
0204 E0E0 ldi R30,0
0206 5E07 cpc R21,R30
0208 09F4 brne X33
020A 52C0 xjmp L39
020C X33:
020C X15:
020C 4232 cpi R20,34
020E E0E0 ldi R30,0
0210 5E07 cpc R21,R30
0212 09F4 brne X34
0214 55C0 xjmp L43
0216 X34:
0216 X16:
0216 4432 cpi R20,36
0218 E0E0 ldi R30,0
021A 5E07 cpc R21,R30
021C 09F4 brne X35
021E 58C0 xjmp L47
0220 X35:
0220 X17:
0220 4832 cpi R20,40
0222 E0E0 ldi R30,0
0224 5E07 cpc R21,R30
0226 09F4 brne X36
0228 5BC0 xjmp L51
022A X36:
022A X18:
022A 88E2 ldi R24,40
022C 90E0 ldi R25,0
022E 8417 cp R24,R20
0230 9507 cpc R25,R21
0232 ACF0 brlt L55
0234 X19:
0234 L54:
0234 4131 cpi R20,17
0236 E0E0 ldi R30,0
0238 5E07 cpc R21,R30
023A 09F4 brne X37
023C 37C0 xjmp L38
023E X37:
023E X20:
023E 4231 cpi R20,18
0240 E0E0 ldi R30,0
0242 5E07 cpc R21,R30
0244 09F4 brne X38
0246 3AC0 xjmp L42
0248 X38:
0248 X21:
0248 4431 cpi R20,20
024A E0E0 ldi R30,0
024C 5E07 cpc R21,R30
024E 09F4 brne X39
0250 3DC0 xjmp L46
0252 X39:
0252 X22:
0252 4831 cpi R20,24
0254 E0E0 ldi R30,0
0256 5E07 cpc R21,R30
0258 09F4 brne X40
025A 40C0 xjmp L50
025C X40:
025C X23:
025C 46C0 xjmp L35
025E L55:
025E 4134 cpi R20,65
0260 E0E0 ldi R30,0
0262 5E07 cpc R21,R30
0264 39F1 breq L40
0266 X24:
0266 4234 cpi R20,66
0268 E0E0 ldi R30,0
026A 5E07 cpc R21,R30
026C 59F1 breq L44
026E X25:
026E 4434 cpi R20,68
0270 E0E0 ldi R30,0
0272 5E07 cpc R21,R30
0274 79F1 breq L48
0276 X26:
0276 4834 cpi R20,72
0278 E0E0 ldi R30,0
027A 5E07 cpc R21,R30
027C 09F4 brne X41
027E 32C0 xjmp L52
0280 X41:
0280 X27:
0280 4134 cpi R20,65
0282 E0E0 ldi R30,0
0284 5E07 cpc R21,R30
0286 0CF4 brge X42
0288 30C0 xjmp L35
028A X42:
028A X28:
028A L56:
028A 4138 cpi R20,129
028C E0E0 ldi R30,0
028E 5E07 cpc R21,R30
0290 99F0 breq L41
0292 X29:
0292 4238 cpi R20,130
0294 E0E0 ldi R30,0
0296 5E07 cpc R21,R30
0298 B9F0 breq L45
029A X30:
029A 4438 cpi R20,132
029C E0E0 ldi R30,0
029E 5E07 cpc R21,R30
02A0 D9F0 breq L49
02A2 X31:
02A2 4838 cpi R20,136
02A4 E0E0 ldi R30,0
02A6 5E07 cpc R21,R30
02A8 F9F0 breq L53
02AA X32:
02AA 1FC0 xjmp L35
02AC L38:
02AC .dbline 21
02AC 01E0 ldi R16,1
02AE .dbline 21
02AE 1DC0 xjmp L36
02B0 L39:
02B0 .dbline 23
02B0 02E0 ldi R16,2
02B2 .dbline 23
02B2 1BC0 xjmp L36
02B4 L40:
02B4 .dbline 25
02B4 03E0 ldi R16,3
02B6 .dbline 25
02B6 19C0 xjmp L36
02B8 L41:
02B8 .dbline 27
02B8 04E0 ldi R16,4
02BA .dbline 27
02BA 17C0 xjmp L36
02BC L42:
02BC .dbline 29
02BC 05E0 ldi R16,5
02BE .dbline 29
02BE 15C0 xjmp L36
02C0 L43:
02C0 .dbline 31
02C0 06E0 ldi R16,6
02C2 .dbline 31
02C2 13C0 xjmp L36
02C4 L44:
02C4 .dbline 33
02C4 07E0 ldi R16,7
02C6 .dbline 33
02C6 11C0 xjmp L36
02C8 L45:
02C8 .dbline 35
02C8 08E0 ldi R16,8
02CA .dbline 35
02CA 0FC0 xjmp L36
02CC L46:
02CC .dbline 37
02CC ; case 0x14:
02CC ; key=0x09;break;
02CC 09E0 ldi R16,9
02CE .dbline 37
02CE 0DC0 xjmp L36
02D0 L47:
02D0 .dbline 39
02D0 ; case 0x24:
02D0 ; key=0x0a;break;
02D0 0AE0 ldi R16,10
02D2 .dbline 39
02D2 0BC0 xjmp L36
02D4 L48:
02D4 .dbline 41
02D4 ; case 0x44:
02D4 ; key=0x0b;break;
02D4 0BE0 ldi R16,11
02D6 .dbline 41
02D6 09C0 xjmp L36
02D8 L49:
02D8 .dbline 43
02D8 ; case 0x84:
02D8 ; key=0x0c;break;
02D8 0CE0 ldi R16,12
02DA .dbline 43
02DA 07C0 xjmp L36
02DC L50:
02DC .dbline 45
02DC ; case 0x18:
02DC ; key=0x0d;break;
02DC 0DE0 ldi R16,13
02DE .dbline 45
02DE 05C0 xjmp L36
02E0 L51:
02E0 .dbline 47
02E0 ; case 0x28:
02E0 ; key=0x0e;break;
02E0 0EE0 ldi R16,14
02E2 .dbline 47
02E2 03C0 xjmp L36
02E4 L52:
02E4 .dbline 49
02E4 ; case 0x48:
02E4 ; key=0xa0f;break;
02E4 0FE0 ldi R16,15
02E6 .dbline 49
02E6 01C0 xjmp L36
02E8 L53:
02E8 .dbline 51
02E8 ; case 0x88:
02E8 ; key=0x10;break;
02E8 00E1 ldi R16,16
02EA .dbline 51
02EA L35:
02EA L36:
02EA .dbline 53
02EA ; }
02EA ; return(key);
02EA 1127 clr R17
02EC .dbline -2
02EC L34:
02EC .dbline 0 ; func end
02EC 5991 ld R21,y+
02EE 4991 ld R20,y+
02F0 0895 ret
02F2 .dbsym r key 16 c
02F2 .dbend
02F2 .dbfunc e main _main fI
02F2 ; tem -> R10
02F2 ; key -> R12
.even
02F2 _main::
02F2 .dbline -1
02F2 .dbline 58
02F2 ; }
02F2 ;
02F2 ; //主函数
02F2 ; main()
02F2 ; {
02F2 .dbline 61
02F2 ; uchar key,tem;
02F2 ; //端口初始化
02F2 ; DDRA=0xff;
02F2 8FEF ldi R24,255
02F4 8ABB out 0x1a,R24
02F6 .dbline 62
02F6 ; PORTA=0xff;
02F6 8BBB out 0x1b,R24
02F8 .dbline 63
02F8 ; DDRC=0xff;
02F8 84BB out 0x14,R24
02FA .dbline 64
02FA ; PORTC=0xff;
02FA 85BB out 0x15,R24
02FC .dbline 65
02FC ; DDRE=0x00;
02FC 2224 clr R2
02FE 22B8 out 0x2,R2
0300 .dbline 66
0300 ; PORTE=0xff;
0300 83B9 out 0x3,R24
0302 .dbline 67
0302 ; DDRF=0xfc;
0302 8CEF ldi R24,252
0304 80936100 sts 97,R24
0308 08C0 xjmp L59
030A L58:
030A .dbline 69
030A ; while(1)
030A ; {
030A .dbline 70
030A ; key=key_value(); //读取键值
030A E3DE xcall _key_value
030C C02E mov R12,R16
030E .dbline 71
030E ; if(key!=0)
030E 0023 tst R16
0310 11F0 breq L61
0312 X43:
0312 .dbline 72
0312 ; {
0312 .dbline 73
0312 ; tem=turn(key); //转换译码
0312 73DF xcall _turn
0314 A02E mov R10,R16
0316 .dbline 74
0316 ; }
0316 L61:
0316 .dbline 75
0316 ; disp(tem); //显示键值
0316 0A2D mov R16,R10
0318 21DF xcall _disp
031A .dbline 76
031A ; }
031A L59:
031A .dbline 68
031A F7CF xjmp L58
031C X44:
031C .dbline -2
031C L57:
031C .dbline 0 ; func end
031C 0895 ret
031E .dbsym r tem 10 c
031E .dbsym r key 12 c
031E .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\产品\开发板\光盘\16实验程序\4x4键盘\4x4key_main.c
0000 _a3::
0000 .blkb 1
0001 .dbsym e a3 _a3 c
0001 _a2::
0001 .blkb 1
0002 .dbsym e a2 _a2 c
0002 _a1::
0002 .blkb 1
0003 .dbsym e a1 _a1 c
0003 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -