📄 dac_tlc5615.lis
字号:
005C 4F70 andi R20,15
005E .dbline 76
005E ; if(i!=0x0f) //判断是否有键按下
005E 4F30 cpi R20,15
0060 B1F0 breq L14
0062 X3:
0062 .dbline 77
0062 ; {
0062 .dbline 78
0062 ; PORTC=0x00;
0062 2224 clr R2
0064 25BA out 0x15,R2
0066 .dbline 79
0066 ; DDRC =0x0f; //设置端口低4位输出,高四位输入
0066 8FE0 ldi R24,15
0068 84BB out 0x14,R24
006A .dbline 80
006A ; PORTC=0xf0; //高四位内部上拉
006A 80EF ldi R24,240
006C 85BB out 0x15,R24
006E .dbline 81
006E ; delay_nus(10); //短暂延时,去抖
006E 0AE0 ldi R16,10
0070 10E0 ldi R17,0
0072 C6DF xcall _delay_nus
0074 .dbline 82
0074 ; if((PINC&0xf0)!=0xf0) //再次判断是否有键按下
0074 83B3 in R24,0x13
0076 807F andi R24,240
0078 803F cpi R24,240
007A 49F0 breq L16
007C X4:
007C .dbline 83
007C ; {
007C .dbline 84
007C ; i+=(PINC&0xf0); //读取端口电平
007C 83B3 in R24,0x13
007E 807F andi R24,240
0080 480F add R20,R24
0082 L18:
0082 .dbline 85
0082 ; while((PINC&0xf0)!=0xf0); //等待按键释放
0082 L19:
0082 .dbline 85
0082 83B3 in R24,0x13
0084 807F andi R24,240
0086 803F cpi R24,240
0088 E1F7 brne L18
008A X5:
008A .dbline 86
008A ; return i; //返回键值
008A 042F mov R16,R20
008C 01C0 xjmp L13
008E L16:
008E .dbline 88
008E ; }
008E ; }
008E L14:
008E .dbline 89
008E ; return null; //无按键按下返回null
008E 0027 clr R16
0090 .dbline -2
0090 L13:
0090 .dbline 0 ; func end
0090 5991 ld R21,y+
0092 4991 ld R20,y+
0094 0895 ret
0096 .dbsym r i 20 c
0096 .dbend
0096 .dbfunc e Key_Num _Key_Num fc
0096 ; key -> R16
.even
0096 _Key_Num::
0096 4A93 st -y,R20
0098 5A93 st -y,R21
009A .dbline -1
009A .dbline 99
009A ; }
009A ;
009A ; /*******************************************************/
009A ; /****** 函数名称: Key_Num() ******/
009A ; /****** 功 能: 转换键值为0-f十六进制数 ******/
009A ; /****** 参 数: key--键值 ******/
009A ; /****** 返回值 : 0-f ******/
009A ; /*******************************************************/
009A ; unsigned char Key_Num(unsigned char key)
009A ; {
009A .dbline 100
009A ; switch(key)
009A 402F mov R20,R16
009C 5527 clr R21
009E 473B cpi R20,183
00A0 E0E0 ldi R30,0
00A2 5E07 cpc R21,R30
00A4 09F4 brne X24
00A6 54C0 xjmp L27
00A8 X24:
00A8 X6:
00A8 4B3B cpi R20,187
00AA E0E0 ldi R30,0
00AC 5E07 cpc R21,R30
00AE 09F4 brne X25
00B0 57C0 xjmp L31
00B2 X25:
00B2 X7:
00B2 4D3B cpi R20,189
00B4 E0E0 ldi R30,0
00B6 5E07 cpc R21,R30
00B8 09F4 brne X26
00BA 5AC0 xjmp L35
00BC X26:
00BC X8:
00BC 4E3B cpi R20,190
00BE E0E0 ldi R30,0
00C0 5E07 cpc R21,R30
00C2 09F4 brne X27
00C4 5DC0 xjmp L39
00C6 X27:
00C6 X9:
00C6 8EEB ldi R24,190
00C8 90E0 ldi R25,0
00CA 8417 cp R24,R20
00CC 9507 cpc R25,R21
00CE ACF0 brlt L42
00D0 X10:
00D0 L41:
00D0 4737 cpi R20,119
00D2 E0E0 ldi R30,0
00D4 5E07 cpc R21,R30
00D6 09F4 brne X28
00D8 3DC0 xjmp L28
00DA X28:
00DA X11:
00DA 4B37 cpi R20,123
00DC E0E0 ldi R30,0
00DE 5E07 cpc R21,R30
00E0 09F4 brne X29
00E2 40C0 xjmp L32
00E4 X29:
00E4 X12:
00E4 4D37 cpi R20,125
00E6 E0E0 ldi R30,0
00E8 5E07 cpc R21,R30
00EA 09F4 brne X30
00EC 43C0 xjmp L36
00EE X30:
00EE X13:
00EE 4E37 cpi R20,126
00F0 E0E0 ldi R30,0
00F2 5E07 cpc R21,R30
00F4 09F4 brne X31
00F6 46C0 xjmp L40
00F8 X31:
00F8 X14:
00F8 47C0 xjmp L22
00FA L42:
00FA 473D cpi R20,215
00FC E0E0 ldi R30,0
00FE 5E07 cpc R21,R30
0100 29F1 breq L26
0102 X15:
0102 4B3D cpi R20,219
0104 E0E0 ldi R30,0
0106 5E07 cpc R21,R30
0108 49F1 breq L30
010A X16:
010A 4D3D cpi R20,221
010C E0E0 ldi R30,0
010E 5E07 cpc R21,R30
0110 69F1 breq L34
0112 X17:
0112 4E3D cpi R20,222
0114 E0E0 ldi R30,0
0116 5E07 cpc R21,R30
0118 09F4 brne X32
011A 30C0 xjmp L38
011C X32:
011C X18:
011C 473D cpi R20,215
011E E0E0 ldi R30,0
0120 5E07 cpc R21,R30
0122 0CF4 brge X33
0124 31C0 xjmp L22
0126 X33:
0126 X19:
0126 L43:
0126 473E cpi R20,231
0128 E0E0 ldi R30,0
012A 5E07 cpc R21,R30
012C 69F0 breq L25
012E X20:
012E 4B3E cpi R20,235
0130 E0E0 ldi R30,0
0132 5E07 cpc R21,R30
0134 89F0 breq L29
0136 X21:
0136 4D3E cpi R20,237
0138 E0E0 ldi R30,0
013A 5E07 cpc R21,R30
013C A9F0 breq L33
013E X22:
013E 4E3E cpi R20,238
0140 E0E0 ldi R30,0
0142 5E07 cpc R21,R30
0144 C9F0 breq L37
0146 X23:
0146 20C0 xjmp L22
0148 L25:
0148 .dbline 102
0148 ; {
0148 ; case 0xe7:return 0; //按键0
0148 0027 clr R16
014A 1FC0 xjmp L21
014C L26:
014C .dbline 103
014C ; case 0xd7:return 1; //按键1
014C 01E0 ldi R16,1
014E 1DC0 xjmp L21
0150 L27:
0150 .dbline 104
0150 ; case 0xb7:return 2; //按键2
0150 02E0 ldi R16,2
0152 1BC0 xjmp L21
0154 L28:
0154 .dbline 105
0154 ; case 0x77:return 3; //按键3
0154 03E0 ldi R16,3
0156 19C0 xjmp L21
0158 L29:
0158 .dbline 106
0158 ; case 0xeb:return 4; //按键4
0158 04E0 ldi R16,4
015A 17C0 xjmp L21
015C L30:
015C .dbline 107
015C ; case 0xdb:return 5; //按键5
015C 05E0 ldi R16,5
015E 15C0 xjmp L21
0160 L31:
0160 .dbline 108
0160 ; case 0xbb:return 6; //按键6
0160 06E0 ldi R16,6
0162 13C0 xjmp L21
0164 L32:
0164 .dbline 109
0164 ; case 0x7b:return 7; //按键7
0164 07E0 ldi R16,7
0166 11C0 xjmp L21
0168 L33:
0168 .dbline 110
0168 ; case 0xed:return 8; //按键8
0168 08E0 ldi R16,8
016A 0FC0 xjmp L21
016C L34:
016C .dbline 111
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -