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

📄 test_pc10_main.lis

📁 AVR单片机开发中
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00A2           ; 
 00A2           ; void serial_send(unsigned char command){
 00A2                   .dbline 121
 00A2           ; unsigned char i=0;
 00A2 4427              clr R20
 00A4 1AC0              xjmp L25
 00A6           X0:
 00A6                   .dbline 122
 00A6           ;    while( i < char_len){
 00A6           L27:
 00A6                   .dbline 123
 00A6           L28:
 00A6                   .dbline 123
 00A6           ;                 while ( !( UCSR1A & (1<<UDRE1)) );
 00A6 20909B00          lds R2,155
 00AA 25FE              sbrs R2,5
 00AC FCCF              rjmp L27
 00AE                   .dbline 124
 00AE           ;                 UCSR1B &= ~(1<<TXB81);  
 00AE 80919A00          lds R24,154
 00B2 8E7F              andi R24,254
 00B4 80939A00          sts 154,R24
 00B8                   .dbline 125
 00B8           ;                 if ( command & 0x01 )
 00B8 00FF              sbrs R16,0
 00BA 05C0              rjmp L30
 00BC                   .dbline 126
 00BC           ;               UCSR1B |= (1<<TXB81);
 00BC 80919A00          lds R24,154
 00C0 8160              ori R24,1
 00C2 80939A00          sts 154,R24
 00C6           L30:
 00C6                   .dbline 127
 00C6 80E0              ldi R24,<_send_buffer
 00C8 90E0              ldi R25,>_send_buffer
 00CA E42F              mov R30,R20
 00CC FF27              clr R31
 00CE E80F              add R30,R24
 00D0 F91F              adc R31,R25
 00D2 2080              ldd R2,z+0
 00D4 20929C00          sts 156,R2
 00D8                   .dbline 128
 00D8 4395              inc R20
 00DA                   .dbline 129
 00DA           L25:
 00DA                   .dbline 122
 00DA 20900000          lds R2,_char_len
 00DE 4215              cp R20,R2
 00E0 10F3              brlo L28
 00E2                   .dbline 131
 00E2           ;                 UDR1 = send_buffer[i];
 00E2           ;                 i++;
 00E2           ;    }
 00E2           ; 
 00E2           ;    char_len = 0 ;  
 00E2 2224              clr R2
 00E4 20920000          sts _char_len,R2
 00E8                   .dbline 132
 00E8           ;    return;  
 00E8                   .dbline -2
 00E8           L23:
 00E8 0E940000          xcall pop_gset1
 00EC                   .dbline 0 ; func end
 00EC 0895              ret
 00EE                   .dbsym r i 20 c
 00EE                   .dbsym r command 16 c
 00EE                   .dbend
 00EE                   .dbfunc e scanf_int _scanf_int fI
 00EE           ;              i -> R16
                        .even
 00EE           _scanf_int::
 00EE                   .dbline -1
 00EE                   .dbline 137
 00EE           ; }
 00EE           ; 
 00EE           ; 
 00EE           ; int scanf_int(void)
 00EE           ; {
 00EE                   .dbline 138
 00EE           ;    unsigned char i=0;
 00EE 0027              clr R16
 00F0 1AC0              xjmp L34
 00F2           X1:
 00F2                   .dbline 140
 00F2           ;    
 00F2           ;    while( i < 2){
 00F2           L36:
 00F2                   .dbline 141
 00F2           L37:
 00F2                   .dbline 141
 00F2 20909B00          lds R2,155
 00F6 27FE              sbrs R2,7
 00F8 FCCF              rjmp L36
 00FA                   .dbline 142
 00FA 20909A00          lds R2,154
 00FE 20920800          sts _rec0,R2
 0102                   .dbline 143
 0102 20909C00          lds R2,156
 0106 20920800          sts _rec0,R2
 010A                   .dbline 144
 010A 202E              mov R2,R16
 010C 3324              clr R3
 010E E1E0              ldi R30,1
 0110 F0E0              ldi R31,0
 0112 E219              sub R30,R2
 0114 F309              sbc R31,R3
 0116 80E0              ldi R24,<_kk
 0118 90E0              ldi R25,>_kk
 011A E80F              add R30,R24
 011C F91F              adc R31,R25
 011E 20900800          lds R2,_rec0
 0122 2082              std z+0,R2
 0124                   .dbline 145
 0124 0395              inc R16
 0126                   .dbline 146
 0126           L34:
 0126                   .dbline 140
 0126 0230              cpi R16,2
 0128 20F3              brlo L37
 012A                   .dbline 147
 012A           ;                 while ( !(UCSR1A& (1<<RXC1)));
 012A           ;                 rec0 = UCSR1B;
 012A           ;             rec0 = UDR1;
 012A           ;                 kk.half[1 - i] = rec0;
 012A           ;                 i++;
 012A           ;    }  
 012A           ;    return kk.i1;  
 012A 00911D00          lds R16,_kk
 012E 10911E00          lds R17,_kk+1
 0132                   .dbline -2
 0132           L32:
 0132                   .dbline 0 ; func end
 0132 0895              ret
 0134                   .dbsym r i 16 c
 0134                   .dbend
 0134                   .dbfunc e xy_set _xy_set fV
 0134           ;        address -> R20
 0134           ;              x -> R22
 0134           ;              y -> R10
 0134           ;             xy -> R20
                        .even
 0134           _xy_set::
 0134 0E940000          xcall push_gset3
 0138 402F              mov R20,R16
 013A                   .dbline -1
 013A                   .dbline 167
 013A           ; }
 013A           ; /*----------------------------------------------------------------------------
 013A           ; 0x01    //清屏,AC自动加1,光标归位,但并不改变设置
 013A           ; 0x02    //归位
 013A           ; 0x06    //自动加一
 013A           ; 0x04    //自动减一
 013A           ; 0x0f    //开显示,开光标,光标闪烁
 013A           ; 0x0e    //光标开
 013A           ; 0x0d    //光标所在字符闪烁  
 013A           ; 0x0c    //光标关  
 013A           ; 0x18    //光标,字符一起左移
 013A           ; 0x1c    //光标,字符一起右移
 013A           ; 0x38    //8位数据宽度
 013A           ; LCD第一行显示寄存器地址:0X80-0X8f
 013A           ; LCD第二行显示寄存器地址:0XC0-0Xcf
 013A           ; LCD第三行显示寄存器地址:0x90-0x9f
 013A           ; LCD第四行显示寄存器地址:0xd0-0xdf
 013A           ; -----------------------------------------------------------------------------*/
 013A           ; void xy_set(unsigned char xy)
 013A           ; {
 013A                   .dbline 169
 013A           ; unsigned char x,y,address;
 013A           ;               x = xy;
 013A 642F              mov R22,R20
 013C                   .dbline 170
 013C           ;           x = x & 0x0f;
 013C 6F70              andi R22,15
 013E                   .dbline 171
 013E           ;           y = xy;
 013E A42E              mov R10,R20
 0140                   .dbline 172
 0140           ;               y = y >> 4; 
 0140 8A2D              mov R24,R10
 0142 8295              swap R24
 0144 8F70              andi R24,#0x0F
 0146 A82E              mov R10,R24
 0148                   .dbline 174
 0148           ;               
 0148           ;     if (y == 0) 
 0148 8823              tst R24
 014A 19F4              brne L40
 014C                   .dbline 175
 014C           ;          address = 0x80 + x;
 014C 462F              mov R20,R22
 014E 4058              subi R20,128    ; addi 128
 0150 11C0              xjmp L41
 0152           L40:
 0152                   .dbline 176
 0152           ;     else if(y == 1) 
 0152 8A2D              mov R24,R10
 0154 8130              cpi R24,1
 0156 19F4              brne L42
 0158                   .dbline 177
 0158           ;        address = 0xc0 + x;
 0158 462F              mov R20,R22
 015A 4054              subi R20,64    ; addi 192
 015C 0BC0              xjmp L43
 015E           L42:
 015E                   .dbline 178
 015E           ;       else if(y == 2) 
 015E 8A2D              mov R24,R10
 0160 8230              cpi R24,2
 0162 19F4              brne L44
 0164                   .dbline 179
 0164           ;        address = 0x90 + x;
 0164 462F              mov R20,R22
 0166 4057              subi R20,112    ; addi 144
 0168 05C0              xjmp L45
 016A           L44:
 016A                   .dbline 180
 016A           ;       else if(y == 3) 
 016A 8A2D              mov R24,R10
 016C 8330              cpi R24,3
 016E 11F4              brne L46
 0170                   .dbline 181
 0170           ;        address = 0xd0 + x; 
 0170 462F              mov R20,R22
 0172 4053              subi R20,48    ; addi 208
 0174           L46:
 0174           L45:
 0174           L43:
 0174           L41:
 0174                   .dbline 183
 0174           ;       
 0174           ;     send_buffer[0] = address;
 0174 40930900          sts _send_buffer,R20
 0178                   .dbline 185
 0178           ;       
 0178           ;       char_len = 1;
 0178 81E0              ldi R24,1
 017A 80930000          sts _char_len,R24
 017E                   .dbline 186
 017E           ;       serial_send(1);  
 017E 01E0              ldi R16,1
 0180 8EDF              xcall _serial_send
 0182                   .dbline 187
 0182           ;       return ;
 0182                   .dbline -2
 0182           L39:
 0182 0E940000          xcall pop_gset3
 0186                   .dbline 0 ; func end
 0186 0895              ret
 0188                   .dbsym r address 20 c
 0188                   .dbsym r x 22 c
 0188                   .dbsym r y 10 c
 0188                   .dbsym r xy 20 c
 0188                   .dbend
 0188                   .dbfunc e init_lcd _init_lcd fV
                        .even
 0188           _init_lcd::
 0188                   .dbline -1
 0188                   .dbline 191
 0188           ; }
 0188           ; 
 0188           ; void init_lcd ()
 0188           ; {
 0188                   .dbline 192
 0188           ;     send_buffer[0] = 0x01;
 0188 81E0              ldi R24,1
 018A 80930900          sts _send_buffer,R24
 018E                   .dbline 193
 018E           ;       char_len = 1;
 018E 80930000          sts _char_len,R24
 0192                   .dbline 194
 0192           ;       serial_send(1);  
 0192 01E0              ldi R16,1
 0194                   .dbline 195
 0194           ;       return ;
 0194                   .dbline -2
 0194           L48:
 0194                   .dbline 0 ; func end
 0194 84CF              xjmp _serial_send
 0196                   .dbend
 0196                   .dbfunc e shift_r _shift_r fV
                        .even
 0196           _shift_r::
 0196                   .dbline -1
 0196                   .dbline 199
 0196           ; }
 0196           ; 
 0196           ; void shift_r()
 0196           ; {
 0196                   .dbline 200
 0196           ;     send_buffer[0] = 0x1c ;
 0196 8CE1              ldi R24,28
 0198 80930900          sts _send_buffer,R24
 019C                   .dbline 201
 019C           ;       char_len = 1;
 019C 81E0              ldi R24,1
 019E 80930000          sts _char_len,R24
 01A2                   .dbline 202
 01A2           ;       serial_send(1);  
 01A2 01E0              ldi R16,1
 01A4                   .dbline 203
 01A4           ;       return ;
 01A4                   .dbline -2
 01A4           L49:
 01A4                   .dbline 0 ; func end
 01A4 7CCF              xjmp _serial_send
 01A6                   .dbend
 01A6                   .dbfunc e shift_l _shift_l fV
                        .even
 01A6           _shift_l::
 01A6                   .dbline -1
 01A6                   .dbline 207
 01A6           ; }
 01A6           ; 
 01A6           ; void shift_l()
 01A6           ; {
 01A6                   .dbline 208
 01A6           ;     send_buffer[0] =  0x18;
 01A6 88E1              ldi R24,24
 01A8 80930900          sts _send_buffer,R24
 01AC                   .dbline 209
 01AC           ;       char_len = 1;
 01AC 81E0              ldi R24,1
 01AE 80930000          sts _char_len,R24
 01B2                   .dbline 210
 01B2           ;       serial_send(1); 
 01B2 01E0              ldi R16,1
 01B4                   .dbline 211
 01B4           ;       return ;
 01B4                   .dbline -2
 01B4           L50:
 01B4                   .dbline 0 ; func end
 01B4 74CF              xjmp _serial_send
 01B6                   .dbend
 01B6                   .dbfunc e printf_char _printf_char fV
 01B6           ;              s -> R20
                        .even
 01B6           _printf_char::
 01B6 0E940000          xcall push_gset1
 01BA 402F              mov R20,R16
 01BC                   .dbline -1
 01BC                   .dbline 213
 01BC           ; }
 01BC           ; void printf_char(char s){
 01BC                   .dbline 215

⌨️ 快捷键说明

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