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

📄 oput.lis

📁 avr单片机
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0124                   .dbline -2
 0124           L9:
 0124 8991              ld R24,y+
 0126 8FBF              out 0x3f,R24
 0128 9991              ld R25,y+
 012A 8991              ld R24,y+
 012C                   .dbline 0 ; func end
 012C 1895              reti
 012E                   .dbend
 012E                   .dbfunc e init_devices _init_devices fV
                        .even
 012E           _init_devices::
 012E                   .dbline -1
 012E                   .dbline 109
 012E           ;  //compare occured TCNT0=OCR0
 012E           ; }
 012E           ; //======================================================速度中断处理函数
 012E           ; 
 012E           ; //======================================================CPU初始化
 012E           ; //call this routine to initialise all peripherals
 012E           ; void init_devices(void)
 012E           ; {
 012E                   .dbline 111
 012E           ;  //stop errant interrupts until set up
 012E           ;  CLI(); //disable all interrupts
 012E F894              cli
 0130                   .dbline 112
 0130           ;  XDIV  = 0x00; //xtal divider//系统时钟分频控制寄存器
 0130 2224              clr R2
 0132 2CBE              out 0x3c,R2
 0134                   .dbline 113
 0134           ;  XMCRA = 0x0E; //external memory//外部存储器控制寄存器
 0134 8EE0              ldi R24,14
 0136 80936D00          sts 109,R24
 013A                   .dbline 114
 013A           ;  XMCRB = 0x80;
 013A 80E8              ldi R24,128
 013C 80936C00          sts 108,R24
 0140                   .dbline 115
 0140           ;  mapping_init();
 0140 5FDF              xcall _mapping_init
 0142                   .dbline 116
 0142           ;  port_init();
 0142 5FDF              xcall _port_init
 0144                   .dbline 119
 0144           ;  //watchdog_init();
 0144           ; // timer1_init();
 0144           ;  timer0_init();
 0144 B2DF              xcall _timer0_init
 0146                   .dbline 123
 0146           ; 
 0146           ;  //adc_init();
 0146           ;  
 0146           ;  MCUCR = 0xC0;//MCU控制寄存器
 0146 80EC              ldi R24,192
 0148 85BF              out 0x35,R24
 014A                   .dbline 124
 014A           ;  EICRA = 0x0A; //extended ext ints//外部中断控制寄存器
 014A 8AE0              ldi R24,10
 014C 80936A00          sts 106,R24
 0150                   .dbline 125
 0150           ;  EICRB = 0x0F; //extended ext ints
 0150 8FE0              ldi R24,15
 0152 8ABF              out 0x3a,R24
 0154                   .dbline 126
 0154           ;  EIMSK = 0x33; //0x03 extended ext enable
 0154 83E3              ldi R24,51
 0156 89BF              out 0x39,R24
 0158                   .dbline 127
 0158           ;  TIMSK = 0x12; //timer interrupt sources  01:time0
 0158 82E1              ldi R24,18
 015A 87BF              out 0x37,R24
 015C                   .dbline 128
 015C           ;  ETIMSK = 0x00; //extended timer interrupt sources
 015C 2224              clr R2
 015E 20927D00          sts 125,R2
 0162                   .dbline 129
 0162           ;  uart0_init();
 0162 6EDF              xcall _uart0_init
 0164                   .dbline 130
 0164           ;  SEI(); //re-enable interrupts
 0164 7894              sei
 0166                   .dbline -2
 0166           L10:
 0166                   .dbline 0 ; func end
 0166 0895              ret
 0168                   .dbend
 0168                   .dbfunc e WatchDog _WatchDog fV
                        .even
 0168           _WatchDog::
 0168                   .dbline -1
 0168                   .dbline 135
 0168           ;         // MyselfCan0Addr=1;
 0168           ;         // MyselfCan1Addr=2;
 0168           ; }
 0168           ; //======================================================看门狗处理函数
 0168           ; void WatchDog(void){
 0168                   .dbline 136
 0168           ;         DDRE|= 0x08;
 0168 139A              sbi 0x2,3
 016A                   .dbline 137
 016A           ;               PORTE&= 0xF7;
 016A 83B1              in R24,0x3
 016C 877F              andi R24,247
 016E 83B9              out 0x3,R24
 0170                   .dbline 138
 0170           ;               PORTE|= 0x08;
 0170 1B9A              sbi 0x3,3
 0172                   .dbline 139
 0172           ;               PORTE&= 0xF7;
 0172 83B1              in R24,0x3
 0174 877F              andi R24,247
 0176 83B9              out 0x3,R24
 0178                   .dbline 140
 0178           ;               PORTE|= 0x08;
 0178 1B9A              sbi 0x3,3
 017A                   .dbline 141
 017A           ;               PORTE&= 0xF7;
 017A 83B1              in R24,0x3
 017C 877F              andi R24,247
 017E 83B9              out 0x3,R24
 0180                   .dbline 142
 0180           ;               PORTE|= 0x08;
 0180 1B9A              sbi 0x3,3
 0182                   .dbline 143
 0182           ;               WDR();
 0182 A895              wdr
 0184                   .dbline -2
 0184           L11:
 0184                   .dbline 0 ; func end
 0184 0895              ret
 0186                   .dbend
 0186                   .dbfunc e set_value _set_value fV
                        .even
 0186           _set_value::
 0186                   .dbline -1
 0186                   .dbline 149
 0186           ;      }
 0186           ; 
 0186           ; 
 0186           ; 
 0186           ; //===============================================初始设置
 0186           ; void set_value(void){
 0186                   .dbline 153
 0186           ;    
 0186           ; //   V_average_incept.Word=0;
 0186           ;   // Cr_average_incept.Word=0;
 0186           ;    OutputByte0Reg = 255;
 0186 8FEF              ldi R24,255
 0188 8093C901          sts _OutputByte0Reg,R24
 018C                   .dbline 154
 018C           ;    OutputByte1Reg = 255;
 018C 8093C801          sts _OutputByte1Reg,R24
 0190                   .dbline 155
 0190           ;    OutputByte2Reg = 255;
 0190 8093C701          sts _OutputByte2Reg,R24
 0194                   .dbline -2
 0194           L12:
 0194                   .dbline 0 ; func end
 0194 0895              ret
 0196                   .dbend
 0196                   .dbfunc e tx0_int_to_bcd _tx0_int_to_bcd fV
 0196           ;           head -> R22
 0196           ;              j -> R10
 0196           ;              i -> R20,R21
                        .even
 0196           _tx0_int_to_bcd::
 0196 0E940000          xcall push_gset3
 019A A801              movw R20,R16
 019C                   .dbline -1
 019C                   .dbline 162
 019C           ; }
 019C           ; 
 019C           ; 
 019C           ; //将int型变量转换为bcd码,并填充到TxBuffer0[]中
 019C           ; /********************************************************************************/
 019C           ; void tx0_int_to_bcd(int i)
 019C           ; {
 019C                   .dbline 163
 019C           ;    UC j,head=0;
 019C 6627              clr R22
 019E                   .dbline 164
 019E           ;    if(i<0){
 019E 4030              cpi R20,0
 01A0 E0E0              ldi R30,0
 01A2 5E07              cpc R21,R30
 01A4 9CF4              brge L14
 01A6                   .dbline 164
 01A6                   .dbline 165
 01A6           ;       i=-i;
 01A6 4095              com R20
 01A8 5095              com R21
 01AA 4F5F              subi R20,0xFF
 01AC 5F4F              sbci R21,0xFF
 01AE                   .dbline 166
 01AE           ;       TxBuffer0[TxOperateSp0++]='-';
 01AE 20900100          lds R2,_TxOperateSp0
 01B2 3324              clr R3
 01B4 822D              mov R24,R2
 01B6 8F5F              subi R24,255    ; addi 1
 01B8 80930100          sts _TxOperateSp0,R24
 01BC 80E0              ldi R24,<_TxBuffer0
 01BE 90E0              ldi R25,>_TxBuffer0
 01C0 E22D              mov R30,R2
 01C2 FF27              clr R31
 01C4 E80F              add R30,R24
 01C6 F91F              adc R31,R25
 01C8 8DE2              ldi R24,45
 01CA 8083              std z+0,R24
 01CC                   .dbline 167
 01CC           ;    }    
 01CC           L14:
 01CC                   .dbline 168
 01CC           ;    j=i/10000;i%=10000;if(j){TxBuffer0[TxOperateSp0++]=j+0x30;head=1;}
 01CC 20E1              ldi R18,10000
 01CE 37E2              ldi R19,39
 01D0 8A01              movw R16,R20
 01D2 0E940000          xcall div16s
 01D6 A02E              mov R10,R16
 01D8                   .dbline 168
 01D8 20E1              ldi R18,10000
 01DA 37E2              ldi R19,39
 01DC 8A01              movw R16,R20
 01DE 0E940000          xcall mod16s
 01E2 A801              movw R20,R16
 01E4                   .dbline 168
 01E4 AA20              tst R10
 01E6 89F0              breq L16
 01E8                   .dbline 168
 01E8                   .dbline 168
 01E8 20900100          lds R2,_TxOperateSp0
 01EC 3324              clr R3
 01EE 822D              mov R24,R2
 01F0 8F5F              subi R24,255    ; addi 1
 01F2 80930100          sts _TxOperateSp0,R24
 01F6 80E0              ldi R24,<_TxBuffer0
 01F8 90E0              ldi R25,>_TxBuffer0
 01FA E22D              mov R30,R2
 01FC FF27              clr R31
 01FE E80F              add R30,R24
 0200 F91F              adc R31,R25
 0202 8A2D              mov R24,R10
 0204 805D              subi R24,208    ; addi 48
 0206 8083              std z+0,R24
 0208                   .dbline 168
 0208 61E0              ldi R22,1
 020A                   .dbline 168
 020A           L16:
 020A                   .dbline 169
 020A 28EE              ldi R18,1000
 020C 33E0              ldi R19,3
 020E 8A01              movw R16,R20
 0210 0E940000          xcall div16s
 0214 A02E              mov R10,R16
 0216                   .dbline 169
 0216 28EE              ldi R18,1000
 0218 33E0              ldi R19,3
 021A 8A01              movw R16,R20
 021C 0E940000          xcall mod16s
 0220 A801              movw R20,R16
 0222                   .dbline 169
 0222 AA20              tst R10
 0224 11F4              brne L20
 0226 6623              tst R22
 0228 89F0              breq L18
 022A           L20:
 022A                   .dbline 169
 022A           ;    j=i/1000;i%=1000;if(j||head){TxBuffer0[TxOperateSp0++]=j+0x30;head=1;}
 022A                   .dbline 169
 022A 20900100          lds R2,_TxOperateSp0
 022E 3324              clr R3
 0230 822D              mov R24,R2
 0232 8F5F              subi R24,255    ; addi 1
 0234 80930100          sts _TxOperateSp0,R24
 0238 80E0              ldi R24,<_TxBuffer0
 023A 90E0              ldi R25,>_TxBuffer0
 023C E22D              mov R30,R2
 023E FF27              clr R31
 0240 E80F              add R30,R24
 0242 F91F              adc R31,R25
 0244 8A2D              mov R24,R10
 0246 805D              subi R24,208    ; addi 48
 0248 8083              std z+0,R24
 024A                   .dbline 169
 024A 61E0              ldi R22,1
 024C                   .dbline 169
 024C           L18:
 024C                   .dbline 170
 024C 24E6              ldi R18,100
 024E 30E0              ldi R19,0
 0250 8A01              movw R16,R20
 0252 0E940000          xcall div16s
 0256 A02E              mov R10,R16
 0258                   .dbline 170
 0258 24E6              ldi R18,100
 025A 30E0              ldi R19,0
 025C 8A01              movw R16,R20
 025E 0E940000          xcall mod16s
 0262 A801              movw R20,R16
 0264                   .dbline 170
 0264 AA20              tst R10
 0266 11F4              brne L23
 0268 6623              tst R22
 026A 89F0              breq L21
 026C           L23:
 026C                   .dbline 170
 026C           ;    j=i/100;i%=100;if(j||head){TxBuffer0[TxOperateSp0++]=j+0x30;head=1;}
 026C                   .dbline 170
 026C 20900100          lds R2,_TxOperateSp0
 0270 3324              clr R3
 0272 822D              mov R24,R2
 0274 8F5F              subi R24,255    ; addi 1
 0276 80930100          sts _TxOperateSp0,R24
 027A 80E0              ldi R24,<_TxBuffer0
 027C 90E0              ldi R25,>_TxBuffer0
 027E E22D              mov R30,R2
 0280 FF27              clr R31
 0282 E80F              add R30,R24
 0284 F91F              adc R31,R25
 0286 8A2D              mov R24,R10
 0288 805D              subi R24,208    ; addi 48
 028A 8083              std z+0,R24
 028C                   .dbline 170

⌨️ 快捷键说明

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