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

📄 dac.lis

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

⌨️ 快捷键说明

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