📄 ad5161.lis
字号:
00FE 39F0 breq L26
0100 6E30 cpi R22,14
0102 E0E0 ldi R30,0
0104 7E07 cpc R23,R30
0106 09F0 breq L25
0108 08C0 xjmp L22
010A X0:
010A .dbline 48
010A L25:
010A .dbline 50
010A 4427 clr R20
010C .dbline 51
010C 07C0 xjmp L23
010E L26:
010E .dbline 53
010E 41E0 ldi R20,1
0110 .dbline 54
0110 05C0 xjmp L23
0112 L27:
0112 .dbline 56
0112 42E0 ldi R20,2
0114 .dbline 57
0114 03C0 xjmp L23
0116 L28:
0116 .dbline 59
0116 43E0 ldi R20,3
0118 .dbline 60
0118 01C0 xjmp L23
011A L22:
011A .dbline 62
011A 4427 clr R20
011C .dbline 63
011C L23:
011C L29:
011C .dbline 65
011C .dbline 66
011C L30:
011C .dbline 66
011C C5DF xcall _Skey_press
011E 0130 cpi R16,1
0120 E9F3 breq L29
0122 .dbline 67
0122 L20:
0122 .dbline 68
0122 042F mov R16,R20
0124 .dbline -2
0124 L19:
0124 0E940000 xcall pop_gset2
0128 .dbline 0 ; func end
0128 0895 ret
012A .dbsym r keycode 20 c
012A .dbend
012A .dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\12_TWI(IIC)\AD5161.c
012A .dbfunc e Twi_init _Twi_init fV
.even
012A _Twi_init::
012A .dbline -1
012A .dbline 22
012A .dbline 23
012A 80E2 ldi R24,32
012C 80B9 out 0x0,R24
012E .dbline 24
012E 2224 clr R2
0130 21B8 out 0x1,R2
0132 .dbline 25
0132 84E4 ldi R24,68
0134 86BF out 0x36,R24
0136 .dbline -2
0136 .dbline 26
0136 L32:
0136 .dbline 0 ; func end
0136 0895 ret
0138 .dbend
0138 .dbfunc e AD5161_writeB _AD5161_writeB fc
0138 ; success -> R20
0138 ; rdata -> y+6
0138 ; cmd -> R22
0138 ; devadd -> R10
.even
0138 _AD5161_writeB::
0138 0E940000 xcall push_gset3
013C 622F mov R22,R18
013E A02E mov R10,R16
0140 .dbline -1
0140 .dbline 36
0140 .dbline 37
0140 4427 clr R20
0142 .dbline 38
0142 84EA ldi R24,164
0144 86BF out 0x36,R24
0146 L34:
0146 .dbline 39
0146 L35:
0146 .dbline 39
0146 26B6 in R2,0x36
0148 27FE sbrs R2,7
014A FDCF rjmp L34
014C .dbline 40
014C 81B1 in R24,0x1
014E 887F andi R24,248
0150 8830 cpi R24,8
0152 19F0 breq L37
0154 .dbline 41
0154 .dbline 42
0154 4427 clr R20
0156 .dbline 43
0156 042F mov R16,R20
0158 2FC0 xjmp L33
015A L37:
015A .dbline 45
015A .dbline 45
015A A3B8 out 0x3,R10
015C .dbline 45
015C 84E8 ldi R24,132
015E 86BF out 0x36,R24
0160 .dbline 45
0160 .dbline 45
0160 L39:
0160 .dbline 46
0160 L40:
0160 .dbline 46
0160 26B6 in R2,0x36
0162 27FE sbrs R2,7
0164 FDCF rjmp L39
0166 .dbline 47
0166 81B1 in R24,0x1
0168 887F andi R24,248
016A 8831 cpi R24,24
016C 19F0 breq L42
016E .dbline 48
016E .dbline 49
016E 4427 clr R20
0170 .dbline 50
0170 042F mov R16,R20
0172 22C0 xjmp L33
0174 L42:
0174 .dbline 52
0174 .dbline 52
0174 63B9 out 0x3,R22
0176 .dbline 52
0176 84E8 ldi R24,132
0178 86BF out 0x36,R24
017A .dbline 52
017A .dbline 52
017A L44:
017A .dbline 53
017A L45:
017A .dbline 53
017A 26B6 in R2,0x36
017C 27FE sbrs R2,7
017E FDCF rjmp L44
0180 .dbline 54
0180 81B1 in R24,0x1
0182 887F andi R24,248
0184 8832 cpi R24,40
0186 19F0 breq L47
0188 .dbline 55
0188 .dbline 56
0188 4427 clr R20
018A .dbline 57
018A 042F mov R16,R20
018C 15C0 xjmp L33
018E L47:
018E .dbline 59
018E .dbline 59
018E 0E80 ldd R0,y+6
0190 03B8 out 0x3,R0
0192 .dbline 59
0192 84E8 ldi R24,132
0194 86BF out 0x36,R24
0196 .dbline 59
0196 .dbline 59
0196 L49:
0196 .dbline 60
0196 L50:
0196 .dbline 60
0196 26B6 in R2,0x36
0198 27FE sbrs R2,7
019A FDCF rjmp L49
019C .dbline 61
019C 81B1 in R24,0x1
019E 887F andi R24,248
01A0 8832 cpi R24,40
01A2 19F0 breq L52
01A4 .dbline 62
01A4 .dbline 63
01A4 4427 clr R20
01A6 .dbline 64
01A6 042F mov R16,R20
01A8 07C0 xjmp L33
01AA L52:
01AA .dbline 66
01AA 84E9 ldi R24,148
01AC 86BF out 0x36,R24
01AE .dbline 67
01AE 0AE0 ldi R16,10
01B0 10E0 ldi R17,0
01B2 3EDF xcall _Delayms
01B4 .dbline 68
01B4 41E0 ldi R20,1
01B6 .dbline 69
01B6 042F mov R16,R20
01B8 .dbline -2
01B8 L33:
01B8 0E940000 xcall pop_gset3
01BC .dbline 0 ; func end
01BC 0895 ret
01BE .dbsym r success 20 c
01BE .dbsym l rdata 6 c
01BE .dbsym r cmd 22 c
01BE .dbsym r devadd 10 c
01BE .dbend
01BE .dbfunc e main _main fV
01BE ; data -> R20
01BE ; i -> R10
.even
01BE _main::
01BE 2197 sbiw R28,1
01C0 .dbline -1
01C0 .dbline 78
01C0 .dbline 79
01C0 4427 clr R20
01C2 .dbline 80
01C2 4CDF xcall _Board_init
01C4 .dbline 81
01C4 B2DF xcall _Twi_init
01C6 .dbline 82
01C6 4883 std y+0,R20
01C8 2227 clr R18
01CA 08E5 ldi R16,88
01CC B5DF xcall _AD5161_writeB
01CE 22C0 xjmp L56
01D0 L55:
01D0 .dbline 84
01D0 .dbline 85
01D0 ; if(Skey_press()) //是否有按键按下
01D0 6BDF xcall _Skey_press
01D2 0023 tst R16
01D4 F9F0 breq L58
01D6 .dbline 86
01D6 ; {
01D6 .dbline 87
01D6 ; i=Skey_scan(); //扫描并反回翻译后的键码
01D6 79DF xcall _Skey_scan
01D8 A02E mov R10,R16
01DA .dbline 88
01DA ; switch(i)
01DA 6A2D mov R22,R10
01DC 7727 clr R23
01DE 6030 cpi R22,0
01E0 6707 cpc R22,R23
01E2 69F0 breq L63
01E4 X1:
01E4 6130 cpi R22,1
01E6 E0E0 ldi R30,0
01E8 7E07 cpc R23,R30
01EA 59F0 breq L64
01EC 6230 cpi R22,2
01EE E0E0 ldi R30,0
01F0 7E07 cpc R23,R30
01F2 49F0 breq L65
01F4 6330 cpi R22,3
01F6 E0E0 ldi R30,0
01F8 7E07 cpc R23,R30
01FA 39F0 breq L66
01FC 07C0 xjmp L60
01FE X2:
01FE .dbline 89
01FE ; {
01FE L63:
01FE .dbline 91
01FE ; case 0: //S1键按下,减少电阻的数字量(AD5161的特性是减少电阻的数字量,阻值增加)
01FE ; data-=16;
01FE 4051 subi R20,16
0200 .dbline 92
0200 ; break;
0200 05C0 xjmp L61
0202 L64:
0202 .dbline 94
0202 ; case 1: //S2键按下,增加电阻的数字量
0202 ; data+=16;
0202 405F subi R20,240 ; addi 16
0204 .dbline 95
0204 ; break;
0204 03C0 xjmp L61
0206 L65:
0206 .dbline 97
0206 ; case 2: //S3键按下,使电阻的数字量为零(阻值满量程)
0206 ; data=0;
0206 4427 clr R20
0208 .dbline 98
0208 ; break;
0208 01C0 xjmp L61
020A L66:
020A .dbline 100
020A ; case 3: //S3键按下,使电阻的数字量为满(阻值清零,只剩下接触电阻)
020A ; data=255;
020A 4FEF ldi R20,255
020C .dbline 101
020C ; break;
020C L60:
020C L61:
020C .dbline 103
020C ; }
020C ; AD5161_writeB(0x58,0x00,data); //更新电阻
020C 4883 std y+0,R20
020E 2227 clr R18
0210 08E5 ldi R16,88
0212 92DF xcall _AD5161_writeB
0214 .dbline 104
0214 ; }
0214 L58:
0214 .dbline 105
0214 L56:
0214 .dbline 83
0214 DDCF xjmp L55
0216 X3:
0216 .dbline -2
0216 .dbline 106
0216 ; }
0216 ; }
0216 L54:
0216 2196 adiw R28,1
0218 .dbline 0 ; func end
0218 0895 ret
021A .dbsym r data 20 c
021A .dbsym r i 10 c
021A .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -