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

📄 dac.lis

📁 Atmega8实例程序之-DAC的应用(SL-MEGA8开发板)
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00A8 01BF              out 0x31,R16
 00AA                   .dbline 68
 00AA           ;  adc_mux=0;
 00AA 2224              clr R2
 00AC 20920000          sts _adc_mux,R2
 00B0                   .dbline 69
 00B0           ;  uart_init();
 00B0 00D0              rcall _uart_init
 00B2                   .dbline 70
 00B2           ;  timer1_init();
 00B2 A6DF              rcall _timer1_init
 00B4                   .dbline 71
 00B4           ;  adc_init();
 00B4 00D0              rcall _adc_init
 00B6                   .dbline 72
 00B6           ;  GICR  = 0xC0;//int0,int1中断使能
 00B6 80EC              ldi R24,192
 00B8 8BBF              out 0x3b,R24
 00BA                   .dbline 73
 00BA           ;  SEI();
 00BA 7894              sei
 00BC                   .dbline 74
 00BC           ;  adc_rel=0;
 00BC 2224              clr R2
 00BE 3324              clr R3
 00C0 30920100          sts _adc_rel+1,R3
 00C4 20920000          sts _adc_rel,R2
 00C8 57C0              rjmp L18
 00CA           L17:
 00CA                   .dbline 79
 00CA           ;  //puts("广州天河双龙电子公司");
 00CA           ;  //puts("HTTP://WWW.SL.COM.CN");
 00CA           ;  //puts("MEGA8开发板DAC测试程序");
 00CA           ;  while(1)
 00CA           ;     {
 00CA                   .dbline 80
 00CA           ;        i=getchar();
 00CA 00D0              rcall _getchar
 00CC A02E              mov R10,R16
 00CE                   .dbline 81
 00CE           ;        switch (i)
 00CE 4A2D              mov R20,R10
 00D0 5527              clr R21
 00D2 4D34              cpi R20,77
 00D4 E0E0              ldi R30,0
 00D6 5E07              cpc R21,R30
 00D8 09F4              brne X2
 00DA 3AC0              rjmp L29
 00DC           X2:
 00DC 4F34              cpi R20,79
 00DE E0E0              ldi R30,0
 00E0 5E07              cpc R21,R30
 00E2 61F1              breq L28
 00E4 4235              cpi R20,82
 00E6 E0E0              ldi R30,0
 00E8 5E07              cpc R21,R30
 00EA 09F4              brne X3
 00EC 37C0              rjmp L30
 00EE           X3:
 00EE 4335              cpi R20,83
 00F0 E0E0              ldi R30,0
 00F2 5E07              cpc R21,R30
 00F4 29F0              breq L23
 00F6 4435              cpi R20,84
 00F8 E0E0              ldi R30,0
 00FA 5E07              cpc R21,R30
 00FC 29F0              breq L25
 00FE 3CC0              rjmp L20
 0100           X0:
 0100                   .dbline 82
 0100           ;         {
 0100           L23:
 0100                   .dbline 84
 0100           ;          case 'S'://MEGA8 DAC程序ID
 0100           ;                 {
 0100                   .dbline 85
 0100           ;                          puts("DAC TEST ver1.0");
 0100 00E0              ldi R16,<L24
 0102 10E0              ldi R17,>L24
 0104 00D0              rcall _puts
 0106                   .dbline 86
 0106           ;                          break;                          
 0106 38C0              rjmp L21
 0108           L25:
 0108                   .dbline 89
 0108           ;                         }
 0108           ;          case 'T'://调节输出电压
 0108           ;                 {
 0108                   .dbline 90
 0108           ;                          temp=getchar();
 0108 00D0              rcall _getchar
 010A 602F              mov R22,R16
 010C 7727              clr R23
 010E                   .dbline 91
 010E           ;                          temp=temp<<8;
 010E 762F              mov R23,R22
 0110 6627              clr R22
 0112                   .dbline 92
 0112           ;                          temp|=getchar();
 0112 00D0              rcall _getchar
 0114 202E              mov R2,R16
 0116 3324              clr R3
 0118 6229              or R22,R2
 011A 7329              or R23,R3
 011C                   .dbline 93
 011C           ;                          if (temp<0x400)
 011C 6030              cpi R22,0
 011E E4E0              ldi R30,4
 0120 7E07              cpc R23,R30
 0122 28F4              brsh L26
 0124                   .dbline 94
 0124           ;                                 OCR1A=temp;
 0124 70934B00          sts 74+1,R23
 0128 60934A00          sts 74,R22
 012C 25C0              rjmp L21
 012E           L26:
 012E                   .dbline 96
 012E           ;                          else
 012E           ;                             OCR1A=0x3ff;         
 012E 8FEF              ldi R24,1023
 0130 93E0              ldi R25,3
 0132 90934B00          sts 74+1,R25
 0136 80934A00          sts 74,R24
 013A                   .dbline 97
 013A           ;                          break;
 013A 1EC0              rjmp L21
 013C           L28:
 013C                   .dbline 100
 013C           ;                         }
 013C           ;          case 'O'://读取OCR1A寄存器值
 013C           ;                  {
 013C                   .dbline 101
 013C           ;                           temp=OCR1A;
 013C 6AB5              in R22,0x2a
 013E 7BB5              in R23,0x2b
 0140                   .dbline 102
 0140           ;                               putchar(temp/256);
 0140 8B01              movw R16,R22
 0142 012F              mov R16,R17
 0144 1127              clr R17
 0146 00D0              rcall _putchar
 0148                   .dbline 103
 0148           ;                               putchar(temp%256);
 0148 062F              mov R16,R22
 014A 1070              andi R17,0
 014C 00D0              rcall _putchar
 014E                   .dbline 104
 014E           ;                           break;
 014E 14C0              rjmp L21
 0150           L29:
 0150                   .dbline 107
 0150           ;                  }              
 0150           ;          case 'M'://设置ADC工作通道
 0150           ;                  {
 0150                   .dbline 108
 0150           ;                           adc_mux=getchar()&0x03;
 0150 00D0              rcall _getchar
 0152 802F              mov R24,R16
 0154 8370              andi R24,3
 0156 80930000          sts _adc_mux,R24
 015A                   .dbline 109
 015A           ;                               break;
 015A 0EC0              rjmp L21
 015C           L30:
 015C                   .dbline 112
 015C           ;                          }              
 015C           ;          case 'R'://读取ADC通道及ADC转换结果
 015C           ;                  {                       
 015C                   .dbline 113
 015C           ;                           putchar(adc_mux);                           
 015C 00910000          lds R16,_adc_mux
 0160 00D0              rcall _putchar
 0162                   .dbline 114
 0162           ;                   putchar(adc_old/256);
 0162 00910000          lds R16,_adc_old
 0166 10910100          lds R17,_adc_old+1
 016A 012F              mov R16,R17
 016C 1127              clr R17
 016E 00D0              rcall _putchar
 0170                   .dbline 115
 0170           ;                               putchar(adc_old%256);
 0170 00910000          lds R16,_adc_old
 0174 1070              andi R17,0
 0176 00D0              rcall _putchar
 0178                   .dbline 116
 0178           ;                  }
 0178                   .dbline 117
 0178           ;         }  
 0178           L20:
 0178           L21:
 0178                   .dbline 118
 0178           L18:
 0178                   .dbline 78
 0178 A8CF              rjmp L17
 017A           X1:
 017A                   .dbline -2
 017A                   .dbline 119
 017A           ;       } 
 017A           ;  }
 017A           L16:
 017A                   .dbline 0 ; func end
 017A 0895              ret
 017C                   .dbsym r temp 22 i
 017C                   .dbsym r i 10 c
 017C                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile C:\mega8\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:\mega8\DAC\DAC.c
 0000           L24:
 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:\mega8\DAC\DAC.c

⌨️ 快捷键说明

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