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

📄 dac.lis

📁 ATMEL AVR MEGA8 MCU DAC 驱动控制源代码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00D2           ; // EICRA=0;
 00D2           ;  adc_rel=0;
 00D2 2224              clr R2
 00D4 3324              clr R3
 00D6 30920100          sts _adc_rel+1,R3
 00DA 20920000          sts _adc_rel,R2
 00DE                   .dbline 68
 00DE           ;  puts("广州天河双龙电子公司");
 00DE 00E0              ldi R16,<L17
 00E0 10E0              ldi R17,>L17
 00E2 00D0              rcall _puts
 00E4                   .dbline 69
 00E4           ;  puts("HTTP://WWW.SL.COM.CN");
 00E4 00E0              ldi R16,<L18
 00E6 10E0              ldi R17,>L18
 00E8 00D0              rcall _puts
 00EA                   .dbline 70
 00EA           ; puts("MEGA48开发板DAC测试程序");
 00EA 00E0              ldi R16,<L19
 00EC 10E0              ldi R17,>L19
 00EE 00D0              rcall _puts
 00F0 59C0              rjmp L21
 00F2           L20:
 00F2                   .dbline 73
 00F2           ; 
 00F2           ;  while(1)
 00F2           ;     {
 00F2                   .dbline 74
 00F2           ;        i=getchar();
 00F2 00D0              rcall _getchar
 00F4 A02E              mov R10,R16
 00F6                   .dbline 75
 00F6           ;        switch (i)
 00F6 4A2D              mov R20,R10
 00F8 5527              clr R21
 00FA 4D34              cpi R20,77
 00FC E0E0              ldi R30,0
 00FE 5E07              cpc R21,R30
 0100 09F4              brne X2
 0102 3CC0              rjmp L32
 0104           X2:
 0104 4F34              cpi R20,79
 0106 E0E0              ldi R30,0
 0108 5E07              cpc R21,R30
 010A 61F1              breq L31
 010C 4235              cpi R20,82
 010E E0E0              ldi R30,0
 0110 5E07              cpc R21,R30
 0112 09F4              brne X3
 0114 39C0              rjmp L33
 0116           X3:
 0116 4335              cpi R20,83
 0118 E0E0              ldi R30,0
 011A 5E07              cpc R21,R30
 011C 29F0              breq L26
 011E 4435              cpi R20,84
 0120 E0E0              ldi R30,0
 0122 5E07              cpc R21,R30
 0124 29F0              breq L28
 0126 3EC0              rjmp L23
 0128           X0:
 0128                   .dbline 76
 0128           ;         {
 0128           L26:
 0128                   .dbline 78
 0128           ;          case 'S'://MEGA8 DAC程序ID
 0128           ;                 {
 0128                   .dbline 79
 0128           ;                          puts("DAC TEST ver1.0");
 0128 00E0              ldi R16,<L27
 012A 10E0              ldi R17,>L27
 012C 00D0              rcall _puts
 012E                   .dbline 80
 012E           ;                          break;                          
 012E 3AC0              rjmp L24
 0130           L28:
 0130                   .dbline 83
 0130           ;                         }
 0130           ;          case 'T'://调节输出电压
 0130           ;                 {
 0130                   .dbline 84
 0130           ;                          temp=getchar();
 0130 00D0              rcall _getchar
 0132 602F              mov R22,R16
 0134 7727              clr R23
 0136                   .dbline 85
 0136           ;                          temp=temp<<8;
 0136 762F              mov R23,R22
 0138 6627              clr R22
 013A                   .dbline 86
 013A           ;                          temp|=getchar();
 013A 00D0              rcall _getchar
 013C 202E              mov R2,R16
 013E 3324              clr R3
 0140 6229              or R22,R2
 0142 7329              or R23,R3
 0144                   .dbline 87
 0144           ;                          if (temp<0x400)
 0144 6030              cpi R22,0
 0146 E4E0              ldi R30,4
 0148 7E07              cpc R23,R30
 014A 28F4              brsh L29
 014C                   .dbline 88
 014C           ;                                 OCR1A=temp;
 014C 70938900          sts 136+1,R23
 0150 60938800          sts 136,R22
 0154 27C0              rjmp L24
 0156           L29:
 0156                   .dbline 90
 0156           ;                          else
 0156           ;                             OCR1A=0x3ff;         
 0156 8FEF              ldi R24,1023
 0158 93E0              ldi R25,3
 015A 90938900          sts 136+1,R25
 015E 80938800          sts 136,R24
 0162                   .dbline 91
 0162           ;                          break;
 0162 20C0              rjmp L24
 0164           L31:
 0164                   .dbline 94
 0164           ;                         }
 0164           ;          case 'O'://读取OCR1A寄存器值
 0164           ;                  {
 0164                   .dbline 95
 0164           ;                           temp=OCR1A;
 0164 60918800          lds R22,136
 0168 70918900          lds R23,136+1
 016C                   .dbline 96
 016C           ;                               putchar(temp/256);
 016C 8B01              movw R16,R22
 016E 012F              mov R16,R17
 0170 1127              clr R17
 0172 00D0              rcall _putchar
 0174                   .dbline 97
 0174           ;                               putchar(temp%256);
 0174 062F              mov R16,R22
 0176 1070              andi R17,0
 0178 00D0              rcall _putchar
 017A                   .dbline 98
 017A           ;                           break;
 017A 14C0              rjmp L24
 017C           L32:
 017C                   .dbline 101
 017C           ;                  }              
 017C           ;          case 'M'://设置ADC工作通道
 017C           ;                  {
 017C                   .dbline 102
 017C           ;                           adc_mux=getchar()&0x03;
 017C 00D0              rcall _getchar
 017E 802F              mov R24,R16
 0180 8370              andi R24,3
 0182 80930000          sts _adc_mux,R24
 0186                   .dbline 103
 0186           ;                               break;
 0186 0EC0              rjmp L24
 0188           L33:
 0188                   .dbline 106
 0188           ;                          }              
 0188           ;          case 'R'://读取ADC通道及ADC转换结果
 0188           ;                  {                       
 0188                   .dbline 107
 0188           ;                           putchar(adc_mux);                           
 0188 00910000          lds R16,_adc_mux
 018C 00D0              rcall _putchar
 018E                   .dbline 108
 018E           ;                   putchar(adc_old/256);
 018E 00910000          lds R16,_adc_old
 0192 10910100          lds R17,_adc_old+1
 0196 012F              mov R16,R17
 0198 1127              clr R17
 019A 00D0              rcall _putchar
 019C                   .dbline 109
 019C           ;                               putchar(adc_old%256);
 019C 00910000          lds R16,_adc_old
 01A0 1070              andi R17,0
 01A2 00D0              rcall _putchar
 01A4                   .dbline 110
 01A4           ;                  }
 01A4                   .dbline 111
 01A4           ;         }  
 01A4           L23:
 01A4           L24:
 01A4                   .dbline 112
 01A4           L21:
 01A4                   .dbline 72
 01A4 A6CF              rjmp L20
 01A6           X1:
 01A6                   .dbline -2
 01A6           L16:
 01A6                   .dbline 0 ; func end
 01A6 0895              ret
 01A8                   .dbsym r temp 22 i
 01A8                   .dbsym r i 10 c
 01A8                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile C:\调试程序\mega48\DAC\dac.c
 0000           _adc_old::
 0000                   .blkb 2
 0002                   .dbsym e adc_old _adc_old i
                        .area data(ram, con, rel)
 0000                   .dbfile C:\调试程序\mega48\DAC\dac.c
 0000           L27:
 0000                   .blkb 16
                        .area idata
 0000 444143205445535420766572312E3000  .byte 'D,'A,'C,32,'T,'E,'S,'T,32,'v,'e,'r,49,46,48,0
                        .area data(ram, con, rel)
 0010                   .dbfile C:\调试程序\mega48\DAC\dac.c
 0010           L19:
 0010                   .blkb 24
                        .area idata
 0010 4D4547413438BFAAB7A2B0E5444143B2  .byte 'M,'E,'G,'A,52,56,191,170,183,162,176,229,'D,'A,'C,178
 0020 E2CAD4B3CCD0F200  .byte 226,202,212,179,204,208,242,0
                        .area data(ram, con, rel)
 0028                   .dbfile C:\调试程序\mega48\DAC\dac.c
 0028           L18:
 0028                   .blkb 21
                        .area idata
 0028 485454503A2F2F5757572E534C2E434F  .byte 'H,'T,'T,'P,58,47,47,'W,'W,'W,46,'S,'L,46,'C,'O
 0038 4D2E434E00        .byte 'M,46,'C,'N,0
                        .area data(ram, con, rel)
 003D                   .dbfile C:\调试程序\mega48\DAC\dac.c
 003D           L17:
 003D                   .blkb 21
                        .area idata
 003D B9E3D6DDCCECBAD3CBABC1FAB5E7D7D3  .byte 185,227,214,221,204,236,186,211,203,171,193,250,181,231,215,211
 004D B9ABCBBE00        .byte 185,171,203,190,0
                        .area data(ram, con, rel)
 0052                   .dbfile C:\调试程序\mega48\DAC\dac.c

⌨️ 快捷键说明

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