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

📄 zong.lis

📁 ad7135的avr16的源程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0084           ; }
 0084           ; 
 0084           ; 
 0084           ; void int0_init(void)
 0084           ; {      
 0084                   .dbline 108
 0084           ;        MCUCR|=((1<<ISC01)|(1<<ISC00));
 0084 85B7              in R24,0x35
 0086 8360              ori R24,3
 0088 85BF              out 0x35,R24
 008A                   .dbline 109
 008A           ;        GICR|=(1<<INT0);
 008A 8BB7              in R24,0x3b
 008C 8064              ori R24,64
 008E 8BBF              out 0x3b,R24
 0090                   .dbline -2
 0090           L15:
 0090                   .dbline 0 ; func end
 0090 0895              ret
 0092                   .dbend
                        .area vector(rom, abs)
                        .org 32
 0020 0C944900          jmp _timer1_ovf_isr
                        .area text(rom, con, rel)
 0092                   .dbfile zong.c
 0092                   .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
                        .even
 0092           _timer1_ovf_isr::
 0092 8A93              st -y,R24
 0094 9A93              st -y,R25
 0096 8FB7              in R24,0x3f
 0098 8A93              st -y,R24
 009A                   .dbline -1
 009A                   .dbline 118
 009A           ; }
 009A           ; 
 009A           ; 
 009A           ; 
 009A           ; 
 009A           ; 
 009A           ; #pragma interrupt_handler timer1_ovf_isr:9
 009A           ; void timer1_ovf_isr(void)
 009A           ; {
 009A                   .dbline 119
 009A           ;  T1OVF_NUM++;
 009A 80910100          lds R24,_T1OVF_NUM
 009E 90910200          lds R25,_T1OVF_NUM+1
 00A2 0196              adiw R24,1
 00A4 90930200          sts _T1OVF_NUM+1,R25
 00A8 80930100          sts _T1OVF_NUM,R24
 00AC                   .dbline -2
 00AC           L16:
 00AC 8991              ld R24,y+
 00AE 8FBF              out 0x3f,R24
 00B0 9991              ld R25,y+
 00B2 8991              ld R24,y+
 00B4                   .dbline 0 ; func end
 00B4 1895              reti
 00B6                   .dbend
 00B6                   .dbfunc e uart0_init _uart0_init fV
                        .even
 00B6           _uart0_init::
 00B6                   .dbline -1
 00B6                   .dbline 132
 00B6           ;  
 00B6           ;  //TIMER1 has overflowed
 00B6           ;  //TCNT1H = 0x00 /*INVALID SETTING*/; //reload counter high value
 00B6           ;  //TCNT1L = 0x00 /*INVALID SETTING*/; //reload counter low value
 00B6           ; }
 00B6           ; 
 00B6           ; //UART0 initialize
 00B6           ; // desired baud rate: 9600
 00B6           ; // actual: baud rate:9615 (0.2%)
 00B6           ; // char size: 8 bit
 00B6           ; // parity: Disabled
 00B6           ; void uart0_init(void)
 00B6           ; {
 00B6                   .dbline 133
 00B6           ;  UCSRB = 0x98; //disable while setting baud rate
 00B6 88E9              ldi R24,152
 00B8 8AB9              out 0xa,R24
 00BA                   .dbline 134
 00BA           ;  UCSRA = 0x20;
 00BA 80E2              ldi R24,32
 00BC 8BB9              out 0xb,R24
 00BE                   .dbline 135
 00BE           ;  UCSRC = 0x86;
 00BE 86E8              ldi R24,134
 00C0 80BD              out 0x20,R24
 00C2                   .dbline 136
 00C2           ;  UBRRL = 0x33; //set baud rate lo
 00C2 83E3              ldi R24,51
 00C4 89B9              out 0x9,R24
 00C6                   .dbline 137
 00C6           ;  UBRRH = 0x00; //set baud rate hi
 00C6 2224              clr R2
 00C8 20BC              out 0x20,R2
 00CA                   .dbline -2
 00CA           L17:
 00CA                   .dbline 0 ; func end
 00CA 0895              ret
 00CC                   .dbend
 00CC                   .dbfunc e usart_tx _usart_tx fV
 00CC           ;           data -> R20
                        .even
 00CC           _usart_tx::
 00CC 0E940000          xcall push_gset1
 00D0 402F              mov R20,R16
 00D2                   .dbline -1
 00D2                   .dbline 143
 00D2           ;  //UCSRB = 0x00;
 00D2           ; }
 00D2           ; 
 00D2           ; 
 00D2           ; void usart_tx(unsigned char data)
 00D2           ; {      
 00D2                   .dbline 144
 00D2           ;        UDR=data;
 00D2 4CB9              out 0xc,R20
 00D4           L19:
 00D4                   .dbline 146
 00D4           L20:
 00D4                   .dbline 145
 00D4           ;        while(!(UCSRA&(1<<TXC)))
 00D4 5E9B              sbis 0xb,6
 00D6 FECF              rjmp L19
 00D8                   .dbline 147
 00D8           ;        ;
 00D8           ;        delay_nms(1);
 00D8 01E0              ldi R16,1
 00DA 10E0              ldi R17,0
 00DC 9ADF              xcall _delay_nms
 00DE                   .dbline -2
 00DE           L18:
 00DE 0E940000          xcall pop_gset1
 00E2                   .dbline 0 ; func end
 00E2 0895              ret
 00E4                   .dbsym r data 20 c
 00E4                   .dbend
                        .area vector(rom, abs)
                        .org 44
 002C 0C947200          jmp _usart_receive
                        .area text(rom, con, rel)
 00E4                   .dbfile zong.c
 00E4                   .dbfunc e usart_receive _usart_receive fV
 00E4           ;              d -> R16
                        .even
 00E4           _usart_receive::
 00E4 0A93              st -y,R16
 00E6 0FB7              in R16,0x3f
 00E8 0A93              st -y,R16
 00EA                   .dbline -1
 00EA                   .dbline 152
 00EA           ; }
 00EA           ; 
 00EA           ; #pragma interrupt_handler usart_receive:12
 00EA           ; void usart_receive(void)
 00EA           ; {      
 00EA                   .dbline 154
 00EA           ;        unsigned char d;
 00EA           ;        d=UDR;
 00EA 0CB1              in R16,0xc
 00EC                   .dbline 155
 00EC           ;        if(d==0x01)
 00EC 0130              cpi R16,1
 00EE 19F4              brne L23
 00F0                   .dbline 156
 00F0           ;        {    
 00F0                   .dbline 157
 00F0           ;                 PORTB|=(1<<0);
 00F0 C09A              sbi 0x18,0
 00F2                   .dbline 158
 00F2           ;                 SEI();
 00F2 7894              sei
 00F4                   .dbline 159
 00F4           ;        }
 00F4 02C0              xjmp L24
 00F6           L23:
 00F6                   .dbline 161
 00F6                   .dbline 162
 00F6 C098              cbi 0x18,0
 00F8                   .dbline 163
 00F8 F894              cli
 00FA                   .dbline 164
 00FA           L24:
 00FA                   .dbline -2
 00FA           L22:
 00FA 0991              ld R16,y+
 00FC 0FBF              out 0x3f,R16
 00FE 0991              ld R16,y+
 0100                   .dbline 0 ; func end
 0100 1895              reti
 0102                   .dbsym r d 16 c
 0102                   .dbend
                        .area vector(rom, abs)
                        .org 4
 0004 0C948100          jmp _int0_isr
                        .area text(rom, con, rel)
 0102                   .dbfile zong.c
 0102                   .dbfunc e int0_isr _int0_isr fV
                        .even
 0102           _int0_isr::
 0102 0E940000          xcall push_lset
 0106 0E940000          xcall push_gset2
 010A                   .dbline -1
 010A                   .dbline 169
 010A           ;        else
 010A           ;        {    
 010A           ;                 PORTB&=~(1<<0);
 010A           ;                 CLI();
 010A           ;        }
 010A           ; }
 010A           ; 
 010A           ; #pragma interrupt_handler int0_isr:2
 010A           ; void int0_isr(void)
 010A           ; {
 010A                   .dbline 170
 010A           ;    if(!N)
 010A 20900000          lds R2,_N
 010E 2220              tst R2
 0110 49F4              brne L26
 0112                   .dbline 171
 0112           ;        {    
 0112                   .dbline 172
 0112           ;                 TCCR1B=0X01;//开始内部计数
 0112 81E0              ldi R24,1
 0114 8EBD              out 0x2e,R24
 0116                   .dbline 173
 0116           ;                 MCUCR=0X02;//设置外部中断0下降沿产生中断
 0116 82E0              ldi R24,2
 0118 85BF              out 0x35,R24
 011A                   .dbline 174
 011A           ;                 N++;
 011A 822D              mov R24,R2
 011C 8F5F              subi R24,255    ; addi 1
 011E 80930000          sts _N,R24
 0122                   .dbline 175
 0122           ;        }
 0122 77C0              xjmp L27
 0124           L26:
 0124                   .dbline 177
 0124                   .dbline 178
 0124 2224              clr R2
 0126 2EBC              out 0x2e,R2
 0128                   .dbline 179
 0128 F894              cli
 012A                   .dbline 181
 012A 20900100          lds R2,_T1OVF_NUM
 012E 30900200          lds R3,_T1OVF_NUM+1
 0132 4424              clr R4
 0134 5524              clr R5
 0136 30920300          sts _T1_NUM+1,R3
 013A 20920200          sts _T1_NUM,R2
 013E 50920500          sts _T1_NUM+2+1,R5
 0142 40920400          sts _T1_NUM+2,R4
 0146                   .dbline 182
 0146 40900400          lds R4,_T1_NUM+2
 014A 50900500          lds R5,_T1_NUM+2+1
 014E 20900200          lds R2,_T1_NUM
 0152 30900300          lds R3,_T1_NUM+1
 0156 40E0              ldi R20,0
 0158 50E0              ldi R21,0
 015A 61E0              ldi R22,1
 015C 70E0              ldi R23,0
 015E 5A92              st -y,R5
 0160 4A92              st -y,R4
 0162 3A92              st -y,R3
 0164 2A92              st -y,R2
 0166 8A01              movw R16,R20
 0168 9B01              movw R18,R22
 016A 0E940000          xcall empy32u
 016E 1801              movw R2,R16
 0170 2901              movw R4,R18
 0172 6CB4              in R6,0x2c
 0174 7DB4              in R7,0x2d
 0176 8824              clr R8
 0178 9924              clr R9
 017A 260C              add R2,R6
 017C 371C              adc R3,R7
 017E 481C              adc R4,R8
 0180 591C              adc R5,R9
 0182 30920300          sts _T1_NUM+1,R3
 0186 20920200          sts _T1_NUM,R2
 018A 50920500          sts _T1_NUM+2+1,R5
 018E 40920400          sts _T1_NUM+2,R4

⌨️ 快捷键说明

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