⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad5161.lis

📁 在AVR单片机开发板上驱动开发板上的数字电位器
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 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 + -