7135_finish.lis

来自「ad7135的avr16的源程序」· LIS 代码 · 共 786 行 · 第 1/3 页

LIS
786
字号
 01B4                   .dbline 184
 01B4           ;        UCSRC=0X86;
 01B4 86E8              ldi R24,134
 01B6 80BD              out 0x20,R24
 01B8                   .dbline 185
 01B8           ;        UCSRB=0X98;
 01B8 88E9              ldi R24,152
 01BA 8AB9              out 0xa,R24
 01BC                   .dbline -2
 01BC           L19:
 01BC                   .dbline 0 ; func end
 01BC 0895              ret
 01BE                   .dbend
 01BE                   .dbfunc e USART_TX _USART_TX fV
 01BE           ;           data -> R20
                        .even
 01BE           _USART_TX::
 01BE 0E940000          xcall push_gset1
 01C2 402F              mov R20,R16
 01C4                   .dbline -1
 01C4                   .dbline 193
 01C4           ; }
 01C4           ; //***************************************************** 
 01C4           ; //函数名称:void USART_INIT(void) 
 01C4           ; //函数功能:8M,波特率9600
 01C4           ; //注意事项:
 01C4           ; //*****************************************************
 01C4           ; void USART_TX(unsigned char data)
 01C4           ; {      
 01C4                   .dbline 194
 01C4           ;        UDR=data;
 01C4 4CB9              out 0xc,R20
 01C6           L21:
 01C6                   .dbline 196
 01C6           L22:
 01C6                   .dbline 195
 01C6           ;        while(!(UCSRA&(1<<TXC)))
 01C6 5E9B              sbis 0xb,6
 01C8 FECF              rjmp L21
 01CA                   .dbline 197
 01CA           ;        ;
 01CA           ;        DELAY_NMS(1);
 01CA 01E0              ldi R16,1
 01CC 10E0              ldi R17,0
 01CE 21DF              xcall _DELAY_NMS
 01D0                   .dbline -2
 01D0           L20:
 01D0 0E940000          xcall pop_gset1
 01D4                   .dbline 0 ; func end
 01D4 0895              ret
 01D6                   .dbsym r data 20 c
 01D6                   .dbend
                        .area vector(rom, abs)
                        .org 44
 002C 0C94EB00          jmp _usart_receive
                        .area text(rom, con, rel)
 01D6                   .dbfile 7135_finish.c
 01D6                   .dbfunc e usart_receive _usart_receive fV
 01D6           ;              d -> R16
                        .even
 01D6           _usart_receive::
 01D6 0A93              st -y,R16
 01D8 0FB7              in R16,0x3f
 01DA 0A93              st -y,R16
 01DC                   .dbline -1
 01DC                   .dbline 206
 01DC           ; }
 01DC           ; //***************************************************** 
 01DC           ; //函数名称:void USART_INIT(void) 
 01DC           ; //函数功能:下位机收到0x01,则进行1次ad转换
 01DC           ; //注意事项:
 01DC           ; //*****************************************************
 01DC           ; #pragma interrupt_handler usart_receive:12
 01DC           ; void usart_receive(void)
 01DC           ; {      
 01DC                   .dbline 208
 01DC           ;        unsigned char d;
 01DC           ;        d=UDR;
 01DC 0CB1              in R16,0xc
 01DE                   .dbline 209
 01DE           ;        if(d==0x01)
 01DE 0130              cpi R16,1
 01E0 19F4              brne L25
 01E2                   .dbline 210
 01E2           ;        {    
 01E2                   .dbline 211
 01E2           ;                 PORTB|=(1<<0);
 01E2 C09A              sbi 0x18,0
 01E4                   .dbline 212
 01E4           ;                 SEI();
 01E4 7894              sei
 01E6                   .dbline 213
 01E6           ;        }
 01E6 02C0              xjmp L26
 01E8           L25:
 01E8                   .dbline 215
 01E8                   .dbline 216
 01E8 C098              cbi 0x18,0
 01EA                   .dbline 217
 01EA F894              cli
 01EC                   .dbline 218
 01EC           L26:
 01EC                   .dbline -2
 01EC           L24:
 01EC 0991              ld R16,y+
 01EE 0FBF              out 0x3f,R16
 01F0 0991              ld R16,y+
 01F2                   .dbline 0 ; func end
 01F2 1895              reti
 01F4                   .dbsym r d 16 c
 01F4                   .dbend
 01F4                   .dbfunc e DATA_DISPLAY _DATA_DISPLAY fV
 01F4           ;           temp -> y+0
 01F4           ;              i -> R20
 01F4           ;           data -> R20,R21
                        .even
 01F4           _DATA_DISPLAY::
 01F4 0E940000          xcall push_gset1
 01F8 A801              movw R20,R16
 01FA 2497              sbiw R28,4
 01FC                   .dbline -1
 01FC                   .dbline 226
 01FC           ;        else
 01FC           ;        {    
 01FC           ;                 PORTB&=~(1<<0);
 01FC           ;                 CLI();
 01FC           ;        }
 01FC           ; }
 01FC           ; //***************************************************** 
 01FC           ; //函数名称:void USART_INIT(void) 
 01FC           ; //函数功能:8M,波特率9600
 01FC           ; //注意事项:
 01FC           ; //*****************************************************
 01FC           ; void DATA_DISPLAY(unsigned int data)
 01FC           ; {      
 01FC                   .dbline 228
 01FC           ;        unsigned char temp[4],i;
 01FC           ;        temp[0]=data/1000;
 01FC 28EE              ldi R18,1000
 01FE 33E0              ldi R19,3
 0200 8A01              movw R16,R20
 0202 0E940000          xcall div16u
 0206 0883              std y+0,R16
 0208                   .dbline 229
 0208           ;        temp[1]=(data/100)%10;
 0208 24E6              ldi R18,100
 020A 30E0              ldi R19,0
 020C 8A01              movw R16,R20
 020E 0E940000          xcall div16u
 0212 2AE0              ldi R18,10
 0214 30E0              ldi R19,0
 0216 0E940000          xcall mod16u
 021A 0983              std y+1,R16
 021C                   .dbline 230
 021C           ;        temp[2]=(data/10)%10;
 021C 2AE0              ldi R18,10
 021E 30E0              ldi R19,0
 0220 8A01              movw R16,R20
 0222 0E940000          xcall div16u
 0226 2AE0              ldi R18,10
 0228 30E0              ldi R19,0
 022A 0E940000          xcall mod16u
 022E 0A83              std y+2,R16
 0230                   .dbline 231
 0230           ;        temp[3]=data%10;
 0230 2AE0              ldi R18,10
 0232 30E0              ldi R19,0
 0234 8A01              movw R16,R20
 0236 0E940000          xcall mod16u
 023A 0B83              std y+3,R16
 023C                   .dbline 232
 023C           ;        for(i=0;i<4;i++)
 023C 4427              clr R20
 023E 0BC0              xjmp L34
 0240           L31:
 0240                   .dbline 233
 0240                   .dbline 234
 0240 CE01              movw R24,R28
 0242 E42F              mov R30,R20
 0244 FF27              clr R31
 0246 E80F              add R30,R24
 0248 F91F              adc R31,R25
 024A 0081              ldd R16,z+0
 024C B8DF              xcall _USART_TX
 024E                   .dbline 235
 024E 01E0              ldi R16,1
 0250 10E0              ldi R17,0
 0252 DFDE              xcall _DELAY_NMS
 0254                   .dbline 236
 0254           L32:
 0254                   .dbline 232
 0254 4395              inc R20
 0256           L34:
 0256                   .dbline 232
 0256 4430              cpi R20,4
 0258 98F3              brlo L31
 025A                   .dbline -2
 025A           L27:
 025A 2496              adiw R28,4
 025C 0E940000          xcall pop_gset1
 0260                   .dbline 0 ; func end
 0260 0895              ret
 0262                   .dbsym l temp 0 A[4:4]c
 0262                   .dbsym r i 20 c
 0262                   .dbsym r data 20 i
 0262                   .dbend
 0262                   .dbfunc e main _main fV
                        .even
 0262           _main::
 0262                   .dbline -1
 0262                   .dbline 242
 0262           ;        {
 0262           ;             USART_TX(temp[i]);
 0262           ;                 DELAY_NMS(1);
 0262           ;        }
 0262           ; } 
 0262           ; //********************************************************** 
 0262           ; //主函数
 0262           ; //**********************************************************
 0262           ; void main(void)
 0262           ; {      
 0262                   .dbline 243
 0262           ;        CLI();
 0262 F894              cli
 0264                   .dbline 244
 0264           ;        PORT_INIT();
 0264 E3DE              xcall _PORT_INIT
 0266                   .dbline 245
 0266           ;        T0_125K();
 0266 EADE              xcall _T0_125K
 0268                   .dbline 246
 0268           ;        INT0_INIT();
 0268 F4DE              xcall _INT0_INIT
 026A                   .dbline 247
 026A           ;        T2_INIT();
 026A 86DF              xcall _T2_INIT
 026C                   .dbline 248
 026C           ;        USART_INIT();
 026C 9FDF              xcall _USART_INIT
 026E                   .dbline 249
 026E           ;        SEI();
 026E 7894              sei
 0270           L36:
 0270                   .dbline 252
 0270           L37:
 0270                   .dbline 251
 0270 FFCF              xjmp L36
 0272           X2:
 0272                   .dbline -2
 0272           L35:
 0272                   .dbline 0 ; func end
 0272 0895              ret
 0274                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile 7135_finish.c
 0000           _VIN::
 0000                   .blkb 2
 0002                   .dbsym e VIN _VIN i
 0002           _T2_NUM::
 0002                   .blkb 4
 0006                   .dbsym e T2_NUM _T2_NUM l

⌨️ 快捷键说明

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