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

📄 zong.lis

📁 ad7135的avr16的源程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0192                   .dbline 183
 0192 86E0              ldi R24,6
 0194 90E0              ldi R25,0
 0196 8A93              st -y,R24
 0198 8101              movw R16,R2
 019A 9201              movw R18,R4
 019C 0E940000          xcall lsr32
 01A0 10930300          sts _T1_NUM+1,R17
 01A4 00930200          sts _T1_NUM,R16
 01A8 30930500          sts _T1_NUM+2+1,R19
 01AC 20930400          sts _T1_NUM+2,R18
 01B0                   .dbline 184
 01B0 41E1              ldi R20,17
 01B2 57E2              ldi R21,39
 01B4 60E0              ldi R22,0
 01B6 70E0              ldi R23,0
 01B8 1801              movw R2,R16
 01BA 2901              movw R4,R18
 01BC 241A              sub R2,R20
 01BE 350A              sbc R3,R21
 01C0 460A              sbc R4,R22
 01C2 570A              sbc R5,R23
 01C4 30920300          sts _T1_NUM+1,R3
 01C8 20920200          sts _T1_NUM,R2
 01CC 50920500          sts _T1_NUM+2+1,R5
 01D0 40920400          sts _T1_NUM+2,R4
 01D4                   .dbline 185
 01D4 4AE0              ldi R20,10
 01D6 50E0              ldi R21,0
 01D8 60E0              ldi R22,0
 01DA 70E0              ldi R23,0
 01DC 7A93              st -y,R23
 01DE 6A93              st -y,R22
 01E0 5A93              st -y,R21
 01E2 4A93              st -y,R20
 01E4 8101              movw R16,R2
 01E6 9201              movw R18,R4
 01E8 0E940000          xcall div32u
 01EC 10930100          sts _VIN+1,R17
 01F0 00930000          sts _VIN,R16
 01F4                   .dbline 186
 01F4 13D0              xcall _data_display
 01F6                   .dbline 188
 01F6 2224              clr R2
 01F8 3324              clr R3
 01FA 30920200          sts _T1OVF_NUM+1,R3
 01FE 20920100          sts _T1OVF_NUM,R2
 0202                   .dbline 189
 0202 3DBC              out 0x2d,R3
 0204 2CBC              out 0x2c,R2
 0206                   .dbline 190
 0206 85B7              in R24,0x35
 0208 8360              ori R24,3
 020A 85BF              out 0x35,R24
 020C                   .dbline 191
 020C 20920000          sts _N,R2
 0210                   .dbline 192
 0210 C098              cbi 0x18,0
 0212                   .dbline 194
 0212           L27:
 0212                   .dbline -2
 0212           L25:
 0212 0E940000          xcall pop_gset2
 0216 0E940000          xcall pop_lset
 021A                   .dbline 0 ; func end
 021A 1895              reti
 021C                   .dbend
 021C                   .dbfunc e data_display _data_display fV
 021C           ;           temp -> y+0
 021C           ;              i -> R20
 021C           ;           data -> R20,R21
                        .even
 021C           _data_display::
 021C 0E940000          xcall push_gset1
 0220 A801              movw R20,R16
 0222 2497              sbiw R28,4
 0224                   .dbline -1
 0224                   .dbline 215
 0224           ;        else
 0224           ;        {    
 0224           ;                 TCCR1B=0X00;//定时器t1停止工作
 0224           ;                 CLI();//关中断,进行数据处理
 0224           ;                 //数据处理
 0224           ;                 T1_NUM=T1OVF_NUM;
 0224           ;                 T1_NUM=(T1_NUM*65536+TCNT1);
 0224           ;                 T1_NUM/=64;
 0224           ;                 T1_NUM-=10001;
 0224           ;                 VIN=T1_NUM/10;
 0224           ;                 data_display(VIN);
 0224           ;                 //数据处理结束
 0224           ;                 T1OVF_NUM=0;
 0224           ;                 TCNT1=0X0000;
 0224           ;                 MCUCR|=((1<<ISC01)|(1<<ISC00));//设置外部上升沿中断
 0224           ;                 N=0;//
 0224           ;                 PORTB&=~(1<<0);//上位机发0x01,测量一次,停止ad
 0224           ;                 //SEI();先进行1次采样
 0224           ;        }
 0224           ; 
 0224           ; 
 0224           ; 
 0224           ; 
 0224           ; 
 0224           ; 
 0224           ; 
 0224           ; 
 0224           ; 
 0224           ; 
 0224           ; 
 0224           ; 
 0224           ; 
 0224           ; 
 0224           ; 
 0224           ; 
 0224           ;  //external interupt on INT0
 0224           ; }
 0224           ; 
 0224           ; void data_display(unsigned int data)
 0224           ; {      
 0224                   .dbline 217
 0224           ;        unsigned char temp[4],i;
 0224           ;        temp[0]=data/1000;
 0224 28EE              ldi R18,1000
 0226 33E0              ldi R19,3
 0228 8A01              movw R16,R20
 022A 0E940000          xcall div16u
 022E 0883              std y+0,R16
 0230                   .dbline 218
 0230           ;        temp[1]=(data/100)%10;
 0230 24E6              ldi R18,100
 0232 30E0              ldi R19,0
 0234 8A01              movw R16,R20
 0236 0E940000          xcall div16u
 023A 2AE0              ldi R18,10
 023C 30E0              ldi R19,0
 023E 0E940000          xcall mod16u
 0242 0983              std y+1,R16
 0244                   .dbline 219
 0244           ;        temp[2]=(data/10)%10;
 0244 2AE0              ldi R18,10
 0246 30E0              ldi R19,0
 0248 8A01              movw R16,R20
 024A 0E940000          xcall div16u
 024E 2AE0              ldi R18,10
 0250 30E0              ldi R19,0
 0252 0E940000          xcall mod16u
 0256 0A83              std y+2,R16
 0258                   .dbline 220
 0258           ;        temp[3]=data%10;
 0258 2AE0              ldi R18,10
 025A 30E0              ldi R19,0
 025C 8A01              movw R16,R20
 025E 0E940000          xcall mod16u
 0262 0B83              std y+3,R16
 0264                   .dbline 221
 0264           ;        for(i=0;i<4;i++)
 0264 4427              clr R20
 0266 0BC0              xjmp L35
 0268           L32:
 0268                   .dbline 222
 0268                   .dbline 223
 0268 CE01              movw R24,R28
 026A E42F              mov R30,R20
 026C FF27              clr R31
 026E E80F              add R30,R24
 0270 F91F              adc R31,R25
 0272 0081              ldd R16,z+0
 0274 2BDF              xcall _usart_tx
 0276                   .dbline 224
 0276 01E0              ldi R16,1
 0278 10E0              ldi R17,0
 027A CBDE              xcall _delay_nms
 027C                   .dbline 225
 027C           L33:
 027C                   .dbline 221
 027C 4395              inc R20
 027E           L35:
 027E                   .dbline 221
 027E 4430              cpi R20,4
 0280 98F3              brlo L32
 0282                   .dbline -2
 0282           L28:
 0282 2496              adiw R28,4
 0284 0E940000          xcall pop_gset1
 0288                   .dbline 0 ; func end
 0288 0895              ret
 028A                   .dbsym l temp 0 A[4:4]c
 028A                   .dbsym r i 20 c
 028A                   .dbsym r data 20 i
 028A                   .dbend
 028A                   .dbfunc e init_devices _init_devices fV
                        .even
 028A           _init_devices::
 028A                   .dbline -1
 028A                   .dbline 230
 028A           ;        {
 028A           ;             usart_tx(temp[i]);
 028A           ;                 delay_nms(1);
 028A           ;        }
 028A           ; } 
 028A           ; 
 028A           ; //call this routine to initialize all peripherals
 028A           ; void init_devices(void)
 028A           ; {
 028A                   .dbline 232
 028A           ;  //stop errant interrupts until set up
 028A           ;  CLI(); //disable all interrupts
 028A F894              cli
 028C                   .dbline 233
 028C           ;  port_init();
 028C CFDE              xcall _port_init
 028E                   .dbline 235
 028E           ;  //uart0_init();
 028E           ;  timer0_125Kinit();
 028E DADE              xcall _timer0_125Kinit
 0290                   .dbline 236
 0290           ;  timer2_250init();
 0290 E4DE              xcall _timer2_250init
 0292                   .dbline 237
 0292           ;  uart0_init();
 0292 11DF              xcall _uart0_init
 0294                   .dbline 238
 0294           ;  timer1_init();
 0294 EDDE              xcall _timer1_init
 0296                   .dbline 239
 0296           ;  int0_init();
 0296 F6DE              xcall _int0_init
 0298                   .dbline 244
 0298           ; 
 0298           ;  //MCUCR = 0x03;
 0298           ;  //GICR  = 0x40;
 0298           ;  //TIMSK = 0x00; //timer interrupt sources
 0298           ;  SEI(); //re-enable interrupts
 0298 7894              sei
 029A                   .dbline -2
 029A           L36:
 029A                   .dbline 0 ; func end
 029A 0895              ret
 029C                   .dbend
 029C                   .dbfunc e main _main fV
                        .even
 029C           _main::
 029C                   .dbline -1
 029C                   .dbline 249
 029C           ;  //all peripherals are now initialized
 029C           ; }
 029C           ; 
 029C           ; void main(void)
 029C           ; {      
 029C                   .dbline 250
 029C           ;        CLI();
 029C F894              cli
 029E                   .dbline 251
 029E           ;        port_init();
 029E C6DE              xcall _port_init
 02A0                   .dbline 252
 02A0           ;        init_devices();
 02A0 F4DF              xcall _init_devices
 02A2                   .dbline 256
 02A2           ;        //T0_250K();
 02A2           ;        //INT0_INIT();
 02A2           ;        //T1_INIT();
 02A2           ;        SEI();
 02A2 7894              sei
 02A4           L38:
 02A4                   .dbline 259
 02A4           L39:
 02A4                   .dbline 258
 02A4 FFCF              xjmp L38
 02A6           X2:
 02A6                   .dbline -2
 02A6           L37:
 02A6                   .dbline 0 ; func end
 02A6 0895              ret
 02A8                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile zong.c
 0000           _VIN::
 0000                   .blkb 2
 0002                   .dbsym e VIN _VIN i
 0002           _T1_NUM::
 0002                   .blkb 4
 0006                   .dbsym e T1_NUM _T1_NUM l

⌨️ 快捷键说明

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