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

📄 main.lis

📁 数控电压源程序数控电压源程序数控电压源程序数控电压源程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 005A           ;       {
 005A                   .dbline 77
 005A           ;        temp1 |=(1<<i);
 005A 01E0              ldi R16,1
 005C 10E0              ldi R17,0
 005E 9B01              movw R18,R22
 0060 0E940000          xcall lsl16
 0064 242E              mov R2,R20
 0066 3324              clr R3
 0068 202A              or R2,R16
 006A 312A              or R3,R17
 006C 422D              mov R20,R2
 006E                   .dbline 79
 006E           ;       
 006E           ;        }
 006E           L7:
 006E                   .dbline 80
 006E           ;    if((temp%2)==0) 
 006E A0FC              sbrc R10,0
 0070 0DC0              rjmp L9
 0072                   .dbline 81
 0072           ;       {
 0072                   .dbline 82
 0072           ;        temp1 &=~(1<<i);
 0072 01E0              ldi R16,1
 0074 10E0              ldi R17,0
 0076 9B01              movw R18,R22
 0078 0E940000          xcall lsl16
 007C 1801              movw R2,R16
 007E 2094              com R2
 0080 3094              com R3
 0082 442E              mov R4,R20
 0084 5524              clr R5
 0086 4220              and R4,R2
 0088 5320              and R5,R3
 008A 442D              mov R20,R4
 008C                   .dbline 83
 008C           ;        }
 008C           L9:
 008C                   .dbline 84
 008C B694              lsr R11
 008E A794              ror R10
 0090                   .dbline 85
 0090           L4:
 0090                   .dbline 73
 0090 6F5F              subi R22,255  ; offset = 1
 0092 7F4F              sbci R23,255
 0094           L6:
 0094                   .dbline 73
 0094 6830              cpi R22,8
 0096 E0E0              ldi R30,0
 0098 7E07              cpc R23,R30
 009A C0F2              brlo L3
 009C                   .dbline 87
 009C           ;        temp =temp/2;
 009C           ;    }
 009C           ;  
 009C           ;        return (temp1);
 009C 042F              mov R16,R20
 009E                   .dbline -2
 009E           L2:
 009E 0E940000          xcall pop_gset4
 00A2                   .dbline 0 ; func end
 00A2 0895              ret
 00A4                   .dbsym r temp1 20 c
 00A4                   .dbsym r i 22 i
 00A4                   .dbsym r temp 10 i
 00A4                   .dbsym r data 12 i
 00A4                   .dbend
 00A4                   .dbfunc e Display_VOL _Display_VOL fV
                        .even
 00A4           _Display_VOL::
 00A4 0E940000          xcall push_gset2
 00A8                   .dbline -1
 00A8                   .dbline 91
 00A8           ; }
 00A8           ; 
 00A8           ; void Display_VOL(void)
 00A8           ; {
 00A8                   .dbline 93
 00A8           ;  // Set_Value=10*SET_VALUE[1]+SET_VALUE[3];
 00A8           ;   Set_Value_H=Set_Value/10+0x30;
 00A8 2AE0              ldi R18,10
 00AA 30E0              ldi R19,0
 00AC 00911600          lds R16,_Set_Value
 00B0 10911700          lds R17,_Set_Value+1
 00B4 0E940000          xcall div16u
 00B8 C801              movw R24,R16
 00BA C096              adiw R24,48
 00BC 80931100          sts _Set_Value_H,R24
 00C0                   .dbline 94
 00C0           ;   Set_Value_L=Set_Value%10+0x30;
 00C0 2AE0              ldi R18,10
 00C2 30E0              ldi R19,0
 00C4 00911600          lds R16,_Set_Value
 00C8 10911700          lds R17,_Set_Value+1
 00CC 0E940000          xcall mod16u
 00D0 C801              movw R24,R16
 00D2 C096              adiw R24,48
 00D4 80931000          sts _Set_Value_L,R24
 00D8                   .dbline 95
 00D8           ;   Write_Position(1,1);
 00D8 21E0              ldi R18,1
 00DA 30E0              ldi R19,0
 00DC 01E0              ldi R16,1
 00DE 10E0              ldi R17,0
 00E0 0E940000          xcall _Write_Position
 00E4                   .dbline 96
 00E4           ;   Write_String(setting);
 00E4 00E0              ldi R16,<_setting
 00E6 10E0              ldi R17,>_setting
 00E8 0E940000          xcall _Write_String
 00EC                   .dbline 98
 00EC           ;   
 00EC           ;   Write_Position(1,5);
 00EC 25E0              ldi R18,5
 00EE 30E0              ldi R19,0
 00F0 01E0              ldi R16,1
 00F2 10E0              ldi R17,0
 00F4 0E940000          xcall _Write_Position
 00F8                   .dbline 99
 00F8           ;   Write_Data(Set_Value_H);
 00F8 00911100          lds R16,_Set_Value_H
 00FC 1127              clr R17
 00FE 0E940000          xcall _Write_Data
 0102                   .dbline 100
 0102           ;   Write_String(".");
 0102 00E0              ldi R16,<L12
 0104 10E0              ldi R17,>L12
 0106 0E940000          xcall _Write_String
 010A                   .dbline 101
 010A           ;   Write_Data(Set_Value_L);
 010A 00911000          lds R16,_Set_Value_L
 010E 1127              clr R17
 0110 0E940000          xcall _Write_Data
 0114                   .dbline 102
 0114           ;   Write_String("v");
 0114 00E0              ldi R16,<L13
 0116 10E0              ldi R17,>L13
 0118 0E940000          xcall _Write_String
 011C                   .dbline 104
 011C           ;  
 011C           ;   adc_vol=Adverage_vol*2+40;//作为补偿电压值
 011C 20911200          lds R18,_Adverage_vol
 0120 30911300          lds R19,_Adverage_vol+1
 0124 02E0              ldi R16,2
 0126 10E0              ldi R17,0
 0128 0E940000          xcall empy16s
 012C C801              movw R24,R16
 012E 8896              adiw R24,40
 0130 1C01              movw R2,R24
 0132 4424              clr R4
 0134 5524              clr R5
 0136 30920100          sts _adc_vol+1,R3
 013A 20920000          sts _adc_vol,R2
 013E 50920300          sts _adc_vol+2+1,R5
 0142 40920200          sts _adc_vol+2,R4
 0146                   .dbline 105
 0146           ;   VOL_H0=adc_vol/1000+0x30;
 0146 48EE              ldi R20,232
 0148 53E0              ldi R21,3
 014A 60E0              ldi R22,0
 014C 70E0              ldi R23,0
 014E 7A93              st -y,R23
 0150 6A93              st -y,R22
 0152 5A93              st -y,R21
 0154 4A93              st -y,R20
 0156 8101              movw R16,R2
 0158 9201              movw R18,R4
 015A 0E940000          xcall div32s
 015E 1801              movw R2,R16
 0160 2901              movw R4,R18
 0162 40E3              ldi R20,48
 0164 50E0              ldi R21,0
 0166 60E0              ldi R22,0
 0168 70E0              ldi R23,0
 016A 240E              add R2,R20
 016C 351E              adc R3,R21
 016E 461E              adc R4,R22
 0170 571E              adc R5,R23
 0172 30921D00          sts _VOL_H0+1,R3
 0176 20921C00          sts _VOL_H0,R2
 017A                   .dbline 106
 017A           ;   VOL_H=adc_vol/100%10+0x30;
 017A 44E6              ldi R20,100
 017C 50E0              ldi R21,0
 017E 60E0              ldi R22,0
 0180 70E0              ldi R23,0
 0182 40900200          lds R4,_adc_vol+2
 0186 50900300          lds R5,_adc_vol+2+1
 018A 20900000          lds R2,_adc_vol
 018E 30900100          lds R3,_adc_vol+1
 0192 7A93              st -y,R23
 0194 6A93              st -y,R22
 0196 5A93              st -y,R21
 0198 4A93              st -y,R20
 019A 8101              movw R16,R2
 019C 9201              movw R18,R4
 019E 0E940000          xcall div32s
 01A2 4AE0              ldi R20,10
 01A4 50E0              ldi R21,0
 01A6 60E0              ldi R22,0
 01A8 70E0              ldi R23,0
 01AA 7A93              st -y,R23
 01AC 6A93              st -y,R22
 01AE 5A93              st -y,R21
 01B0 4A93              st -y,R20
 01B2 0E940000          xcall mod32s
 01B6 1801              movw R2,R16
 01B8 2901              movw R4,R18
 01BA 40E3              ldi R20,48
 01BC 50E0              ldi R21,0
 01BE 60E0              ldi R22,0
 01C0 70E0              ldi R23,0
 01C2 240E              add R2,R20
 01C4 351E              adc R3,R21
 01C6 461E              adc R4,R22
 01C8 571E              adc R5,R23
 01CA 30921B00          sts _VOL_H+1,R3
 01CE 20921A00          sts _VOL_H,R2
 01D2                   .dbline 109
 01D2           ; //  VOL_L0=adc_vol/10%10+0x30;
 01D2           ; 
 01D2           ;   Write_Position(2,1);
 01D2 21E0              ldi R18,1
 01D4 30E0              ldi R19,0
 01D6 02E0              ldi R16,2
 01D8 10E0              ldi R17,0
 01DA 0E940000          xcall _Write_Position
 01DE                   .dbline 110
 01DE           ;   Write_String("real_vol:");
 01DE 00E0              ldi R16,<L14
 01E0 10E0              ldi R17,>L14
 01E2 0E940000          xcall _Write_String
 01E6                   .dbline 111
 01E6           ;   Write_Position(2,10);
 01E6 2AE0              ldi R18,10
 01E8 30E0              ldi R19,0
 01EA 02E0              ldi R16,2
 01EC 10E0              ldi R17,0
 01EE 0E940000          xcall _Write_Position
 01F2                   .dbline 112
 01F2           ;   Write_Data(VOL_H0);
 01F2 00911C00          lds R16,_VOL_H0
 01F6 10911D00          lds R17,_VOL_H0+1
 01FA 0E940000          xcall _Write_Data
 01FE                   .dbline 113
 01FE           ;   Write_Data(0x2e);
 01FE 0EE2              ldi R16,46
 0200 10E0              ldi R17,0
 0202 0E940000          xcall _Write_Data
 0206                   .dbline 114
 0206           ;   Write_Data(VOL_H);
 0206 00911A00          lds R16,_VOL_H
 020A 10911B00          lds R17,_VOL_H+1
 020E 0E940000          xcall _Write_Data
 0212                   .dbline 116
 0212           ;  // Write_Data(VOL_L0);
 0212           ;   Write_Position(2,13);
 0212 2DE0              ldi R18,13
 0214 30E0              ldi R19,0
 0216 02E0              ldi R16,2
 0218 10E0              ldi R17,0
 021A 0E940000          xcall _Write_Position
 021E                   .dbline 117
 021E           ;   Write_String("v");
 021E 00E0              ldi R16,<L13
 0220 10E0              ldi R17,>L13
 0222 0E940000          xcall _Write_String
 0226                   .dbline -2
 0226           L11:
 0226 0E940000          xcall pop_gset2
 022A                   .dbline 0 ; func end
 022A 0895              ret
 022C                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\张秋伟\我的实验\数控电压源\main.c
 0000           L16:
 0000                   .blkb 2
 0002           L17:
 0002                   .blkb 2
                        .area text(rom, con, rel)
 022C                   .dbfile E:\张秋伟\我的实验\数控电压源\main.c
 022C                   .dbfunc e KeyScan _KeyScan fi
 022C                   .dbsym s key_line L17 i
 022C                   .dbsym s key_value L16 i
 022C           ;     key_return -> R20,R21
 022C           ;              i -> R22
                        .even
 022C           _KeyScan::
 022C 0E940000          xcall push_gset2
 0230                   .dbline -1
 0230                   .dbline 122
 0230           ;  
 0230           ; }
 0230           ; #define key_mask  0b00001111
 0230           ; uint KeyScan(void)
 0230           ; {
 0230                   .dbline 124
 0230           ;  static uint key_value,key_line;
 0230           ;  uint key_return=16;
 0230 40E1              ldi R20,16
 0232 50E0              ldi R21,0
 0234                   .dbline 126
 0234           ;  uchar i;
 0234           ;  DDRD=0xf0;
 0234 80EF              ldi R24,240
 0236 81BB              out 0x11,R24
 0238                   .dbline 127
 0238           ;    key_line=0b00010000;
 0238 80E1              ldi R24,16
 023A 90E0              ldi R25,0
 023C 90930300          sts L17+1,R25
 0240 80930200          sts L17,R24
 0244                   .dbline 128
 0244           ;    for(i=1;i<=4;i++)
 0244 61E0              ldi R22,1
 0246 25C0              xjmp L21
 0248           L18:
 0248                   .dbline 129
 0248           ;    {
 0248                   .dbline 130
 0248           ;    PORTD=~key_line;
 0248 20900200          lds R2,L17
 024C 30900300          lds R3,L17+1
 0250 2094              com R2
 0252 3094              com R3
 0254 22BA              out 0x12,R2
 0256                   .dbline 131
 0256           ;    PORTD=~key_line;
 0256 20900200          lds R2,L17
 025A 30900300          lds R3,L17+1
 025E 2094              com R2
 0260 3094              com R3
 0262 22BA              out 0x12,R2
 0264                   .dbline 132
 0264           ;    key_value=key_mask&PIND;
 0264 80B3              in R24,0x10
 0266 9927              clr R25
 0268 8F70              andi R24,15
 026A 9070              andi R25,0
 026C 90930100          sts L16+1,R25
 0270 80930000          sts L16,R24
 0274                   .dbline 133
 0274           ;    if(key_value==key_mask)
 0274 8F30              cpi R24,15

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -