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

📄 1602test.lis

📁 三星公司的一款1602vfd显示屏
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 00A2           ;   sin=13;
 00A2 8DE0              ldi R24,13
 00A4 90E0              ldi R25,0
 00A6 90931F00          sts _sin+1,R25
 00AA 80931E00          sts _sin,R24
 00AE                   .dbline 112
 00AE           ;   for(i=2;i<=3;i++)
 00AE 82E0              ldi R24,2
 00B0 80932400          sts _i,R24
 00B4 1FC0              xjmp L14
 00B6           L11:
 00B6                   .dbline 113
 00B6                   .dbline 114
 00B6 80E0              ldi R24,<_dypass+15+8
 00B8 90E0              ldi R25,>_dypass+15+8
 00BA E0912400          lds R30,_i
 00BE FF27              clr R31
 00C0 E80F              add R30,R24
 00C2 F91F              adc R31,R25
 00C4 2080              ldd R2,z+0
 00C6 80E0              ldi R24,<_str1
 00C8 90E0              ldi R25,>_str1
 00CA E0911E00          lds R30,_sin
 00CE F0911F00          lds R31,_sin+1
 00D2 E80F              add R30,R24
 00D4 F91F              adc R31,R25
 00D6 2082              std z+0,R2
 00D8                   .dbline 115
 00D8 80911E00          lds R24,_sin
 00DC 90911F00          lds R25,_sin+1
 00E0 0196              adiw R24,1
 00E2 90931F00          sts _sin+1,R25
 00E6 80931E00          sts _sin,R24
 00EA                   .dbline 116
 00EA           L12:
 00EA                   .dbline 112
 00EA 80912400          lds R24,_i
 00EE 8F5F              subi R24,255    ; addi 1
 00F0 80932400          sts _i,R24
 00F4           L14:
 00F4                   .dbline 112
 00F4 83E0              ldi R24,3
 00F6 20902400          lds R2,_i
 00FA 8215              cp R24,R2
 00FC E0F6              brsh L11
 00FE                   .dbline 117
 00FE           ;   {
 00FE           ;     str1[sin]=dypass[1].class_data[i];
 00FE           ;     sin++;
 00FE           ;   }
 00FE           ;     str1[15]=0x1a;
 00FE 8AE1              ldi R24,26
 0100 80930F00          sts _str1+15,R24
 0104                   .dbline 118
 0104           ;   sin=4;
 0104 84E0              ldi R24,4
 0106 90E0              ldi R25,0
 0108 90931F00          sts _sin+1,R25
 010C 80931E00          sts _sin,R24
 0110                   .dbline 119
 0110           ;   for(i=2;i<=3;i++)
 0110 82E0              ldi R24,2
 0112 80932400          sts _i,R24
 0116 1FC0              xjmp L21
 0118           L18:
 0118                   .dbline 120
 0118                   .dbline 121
 0118 80E0              ldi R24,<_dypass+30+8
 011A 90E0              ldi R25,>_dypass+30+8
 011C E0912400          lds R30,_i
 0120 FF27              clr R31
 0122 E80F              add R30,R24
 0124 F91F              adc R31,R25
 0126 2080              ldd R2,z+0
 0128 80E0              ldi R24,<_str2
 012A 90E0              ldi R25,>_str2
 012C E0911E00          lds R30,_sin
 0130 F0911F00          lds R31,_sin+1
 0134 E80F              add R30,R24
 0136 F91F              adc R31,R25
 0138 2082              std z+0,R2
 013A                   .dbline 122
 013A 80911E00          lds R24,_sin
 013E 90911F00          lds R25,_sin+1
 0142 0196              adiw R24,1
 0144 90931F00          sts _sin+1,R25
 0148 80931E00          sts _sin,R24
 014C                   .dbline 123
 014C           L19:
 014C                   .dbline 119
 014C 80912400          lds R24,_i
 0150 8F5F              subi R24,255    ; addi 1
 0152 80932400          sts _i,R24
 0156           L21:
 0156                   .dbline 119
 0156 83E0              ldi R24,3
 0158 20902400          lds R2,_i
 015C 8215              cp R24,R2
 015E E0F6              brsh L18
 0160                   .dbline 124
 0160           ;   {
 0160           ;   str2[sin]=dypass[2].class_data[i];
 0160           ;   sin++;
 0160           ;   }
 0160           ;   str2[6]=0x1a;
 0160 8AE1              ldi R24,26
 0162 80931700          sts _str2+6,R24
 0166                   .dbline 125
 0166           ;   sin=13;
 0166 8DE0              ldi R24,13
 0168 90E0              ldi R25,0
 016A 90931F00          sts _sin+1,R25
 016E 80931E00          sts _sin,R24
 0172                   .dbline 126
 0172           ;   for(i=2;i<=3;i++)
 0172 82E0              ldi R24,2
 0174 80932400          sts _i,R24
 0178 1FC0              xjmp L28
 017A           L25:
 017A                   .dbline 127
 017A                   .dbline 128
 017A 80E0              ldi R24,<_dypass+45+8
 017C 90E0              ldi R25,>_dypass+45+8
 017E E0912400          lds R30,_i
 0182 FF27              clr R31
 0184 E80F              add R30,R24
 0186 F91F              adc R31,R25
 0188 2080              ldd R2,z+0
 018A 80E0              ldi R24,<_str2
 018C 90E0              ldi R25,>_str2
 018E E0911E00          lds R30,_sin
 0192 F0911F00          lds R31,_sin+1
 0196 E80F              add R30,R24
 0198 F91F              adc R31,R25
 019A 2082              std z+0,R2
 019C                   .dbline 129
 019C 80911E00          lds R24,_sin
 01A0 90911F00          lds R25,_sin+1
 01A4 0196              adiw R24,1
 01A6 90931F00          sts _sin+1,R25
 01AA 80931E00          sts _sin,R24
 01AE                   .dbline 130
 01AE           L26:
 01AE                   .dbline 126
 01AE 80912400          lds R24,_i
 01B2 8F5F              subi R24,255    ; addi 1
 01B4 80932400          sts _i,R24
 01B8           L28:
 01B8                   .dbline 126
 01B8 83E0              ldi R24,3
 01BA 20902400          lds R2,_i
 01BE 8215              cp R24,R2
 01C0 E0F6              brsh L25
 01C2                   .dbline 131
 01C2 8AE1              ldi R24,26
 01C4 80932000          sts _str2+15,R24
 01C8                   .dbline 132
 01C8 20E0              ldi R18,<_str1
 01CA 30E0              ldi R19,>_str1
 01CC 0027              clr R16
 01CE 4AD1              xcall _d_a_s
 01D0                   .dbline 133
 01D0 20E0              ldi R18,<_str2
 01D2 30E0              ldi R19,>_str2
 01D4 01E0              ldi R16,1
 01D6 46D1              xcall _d_a_s
 01D8                   .dbline 135
 01D8 08EE              ldi R16,1000
 01DA 13E0              ldi R17,3
 01DC 7DD1              xcall _delay_nms
 01DE                   .dbline 136
 01DE 2224              clr R2
 01E0 25BA              out 0x15,R2
 01E2                   .dbline 137
 01E2 08EE              ldi R16,1000
 01E4 13E0              ldi R17,3
 01E6 78D1              xcall _delay_nms
 01E8                   .dbline 138
 01E8 20E0              ldi R18,<_str2
 01EA 30E0              ldi R19,>_str2
 01EC 01E0              ldi R16,1
 01EE 3AD1              xcall _d_a_s
 01F0                   .dbline 139
 01F0           L3:
 01F0                   .dbline 92
 01F0 13CF              xjmp L2
 01F2           X0:
 01F2                   .dbline -2
 01F2                   .dbline 140
 01F2           ;   {
 01F2           ;     str2[sin]=dypass[3].class_data[i];
 01F2           ;     sin++;
 01F2           ;   }
 01F2           ;     str2[15]=0x1a;
 01F2           ;   d_a_s(0,str1);
 01F2           ;   d_a_s(1,str2);
 01F2           ;    
 01F2           ;   delay_nms(1000);
 01F2           ;  PORTC=0X00;
 01F2           ;  delay_nms(1000);
 01F2           ;  d_a_s(1,str2);
 01F2           ;  }
 01F2           ; } 
 01F2           L1:
 01F2                   .dbline 0 ; func end
 01F2 0895              ret
 01F4                   .dbend
 01F4                   .dbfunc e adc_init _adc_init fV
                        .even
 01F4           _adc_init::
 01F4                   .dbline -1
 01F4                   .dbline 142
 01F4           ; void adc_init(void)
 01F4           ; {
 01F4                   .dbline 143
 01F4           ;  DDRA=0x00;
 01F4 2224              clr R2
 01F6 2ABA              out 0x1a,R2
 01F8                   .dbline 144
 01F8           ;  PORTA=0x00; 
 01F8 2BBA              out 0x1b,R2
 01FA                   .dbline 145
 01FA           ;  ADCSRA = 0x00; 
 01FA 26B8              out 0x6,R2
 01FC                   .dbline 146
 01FC           ;  ADMUX =(1<<REFS0)|(adc_mux&0x0f);//选择内部AVCC为基准
 01FC 80912500          lds R24,_adc_mux
 0200 8F70              andi R24,15
 0202 8064              ori R24,64
 0204 87B9              out 0x7,R24
 0206                   .dbline 147
 0206           ;  ACSR  =(1<<ACD);//关闭模拟比较器
 0206 80E8              ldi R24,128
 0208 88B9              out 0x8,R24
 020A                   .dbline 148
 020A           ;  ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADPS2)|(1<<ADPS1) ;//64分频
 020A 86EC              ldi R24,198
 020C 86B9              out 0x6,R24
 020E                   .dbline -2
 020E                   .dbline 149
 020E           ; }
 020E           L32:
 020E                   .dbline 0 ; func end
 020E 0895              ret
 0210                   .dbend
 0210                   .dbfunc e hex_asc _hex_asc fV
 0210           ;              g -> R20,R21
 0210           ;        dt_meas -> R22,R23
                        .even
 0210           _hex_asc::
 0210 0E940000          xcall push_gset2
 0214 A901              movw R20,R18
 0216 B801              movw R22,R16
 0218                   .dbline -1
 0218                   .dbline 153
 0218           ; 
 0218           ; //将无符号的整形数转换为asc码,保存于指针g开始的连续四个空间
 0218           ; void hex_asc(unsigned int dt_meas,unsigned char *g)
 0218           ; {
 0218                   .dbline 154
 0218           ;  *g=(unsigned char)(dt_meas/0x1000);
 0218 2CE0              ldi R18,12
 021A 30E0              ldi R19,0
 021C 8B01              movw R16,R22
 021E 0E940000          xcall lsr16
 0222 FA01              movw R30,R20
 0224 0083              std z+0,R16
 0226                   .dbline 155
 0226           ;  if(*g<10)
 0226 8081              ldd R24,z+0
 0228 8A30              cpi R24,10
 022A 18F4              brsh L34
 022C                   .dbline 156
 022C           ;       *g+=0x30;
 022C 805D              subi R24,208    ; addi 48
 022E 8083              std z+0,R24
 0230 04C0              xjmp L35
 0232           L34:
 0232                   .dbline 157
 0232           ;       else *g+=0x37;
 0232 FA01              movw R30,R20
 0234 8081              ldd R24,z+0
 0236 895C              subi R24,201    ; addi 55
 0238 8083              std z+0,R24
 023A           L35:
 023A                   .dbline 158
 023A           ;  g++;
 023A 4F5F              subi R20,255  ; offset = 1
 023C 5F4F              sbci R21,255
 023E                   .dbline 159
 023E           ;  *g=(unsigned char)((dt_meas/0x100)%0x10);
 023E CB01              movw R24,R22
 0240 892F              mov R24,R25
 0242 9927              clr R25
 0244 8F70              andi R24,15
 0246 9070              andi R25,0
 0248 FA01              movw R30,R20
 024A 8083              std z+0,R24
 024C                   .dbline 160
 024C           ;  if(*g<10)
 024C 8A30              cpi R24,10
 024E 18F4              brsh L36
 0250                   .dbline 161
 0250           ;       *g+=0x30;
 0250 805D              subi R24,208    ; addi 48
 0252 8083              std z+0,R24
 0254 04C0              xjmp L37
 0256           L36:
 0256                   .dbline 162
 0256           ;       else *g+=0x37;
 0256 FA01              movw R30,R20
 0258 8081              ldd R24,z+0
 025A 895C              subi R24,201    ; addi 55
 025C 8083              std z+0,R24
 025E           L37:
 025E                   .dbline 163
 025E           ;  g++;
 025E 4F5F              subi R20,255  ; offset = 1
 0260 5F4F              sbci R21,255
 0262                   .dbline 164
 0262           ;  *g=(dt_meas%0x100)/0x10;
 0262 CB01              movw R24,R22
 0264 9070              andi R25,0
 0266 9695              lsr R25
 0268 8795              ror R24
 026A 9695              lsr R25
 026C 8795              ror R24
 026E 9695              lsr R25
 0270 8795              ror R24
 0272 9695              lsr R25
 0274 8795              ror R24
 0276 FA01              movw R30,R20
 0278 8083              std z+0,R24
 027A                   .dbline 165
 027A           ;  if(*g<10)
 027A 8A30              cpi R24,10
 027C 18F4              brsh L38
 027E                   .dbline 166
 027E           ;       *g+=0x30;
 027E 805D              subi R24,208    ; addi 48
 0280 8083              std z+0,R24
 0282 04C0              xjmp L39
 0284           L38:
 0284                   .dbline 167
 0284           ;       else *g+=0x37;
 0284 FA01              movw R30,R20
 0286 8081              ldd R24,z+0
 0288 895C              subi R24,201    ; addi 55
 028A 8083              std z+0,R24
 028C           L39:
 028C                   .dbline 168
 028C           ;  g++;
 028C 4F5F              subi R20,255  ; offset = 1
 028E 5F4F              sbci R21,255
 0290                   .dbline 169
 0290           ;  *g=(dt_meas%0x100)%0x10;
 0290 CB01              movw R24,R22
 0292 8F70              andi R24,15
 0294 9070              andi R25,0
 0296 FA01              movw R30,R20
 0298 8083              std z+0,R24
 029A                   .dbline 170
 029A           ;  if(*g<10)
 029A 8A30              cpi R24,10

⌨️ 快捷键说明

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