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

📄 main.lis

📁 方波发生器程序。AVR单片机程序。MEGA16
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 00CA                   .dbend
 00CA                   .dbfunc e LCD_write_data _LCD_write_data fV
 00CA           ;           data -> R20
                        .even
 00CA           _LCD_write_data::
 00CA 0E940000          xcall push_gset1
 00CE 402F              mov R20,R16
 00D0                   .dbline -1
 00D0                   .dbline 95
 00D0           ;                   break; 
 00D0           ;                  }// 256分频,F=112HZ
 00D0           ;                  case 3:
 00D0           ;                  {
 00D0           ;                   TCCR0=0x6b;
 00D0           ;                       LCD_write_string(6,0,"  450HZ");
 00D0           ;                       break;
 00D0           ;                  } //  64分频,F=450HZ
 00D0           ;                  case 4:
 00D0           ;                  {
 00D0           ;                   TCCR0=0x6a;
 00D0           ;                       LCD_write_string(6,0," 7200HZ");
 00D0           ;                       break;
 00D0           ;                  } //   8分频,F=7200HZ
 00D0           ;                  case 5:
 00D0           ;                  {
 00D0           ;                   TCCR0=0x69;
 00D0                   .dbline 97
 00D0           ;                       LCD_write_string(6,0,"28800HZ");
 00D0           ;                       break;
 00D0 00E1              ldi R16,16
 00D2 10E0              ldi R17,0
 00D4 97DF              xcall _delay_nus
 00D6                   .dbline 98
 00D6           ;                  } //  无分频,F=28800HZ                   
 00D6 AE9A              sbi 0x15,6
 00D8                   .dbline 99
 00D8           ;                  default:break;
 00D8 8BB3              in R24,0x1b
 00DA 8F70              andi R24,15
 00DC 8BBB              out 0x1b,R24
 00DE                   .dbline 100
 00DE           ;                 }
 00DE 842F              mov R24,R20
 00E0 807F              andi R24,240
 00E2 2BB2              in R2,0x1b
 00E4 282A              or R2,R24
 00E6 2BBA              out 0x1b,R2
 00E8                   .dbline 101
 00E8           ;  
 00E8 CADF              xcall _LCD_en_write
 00EA                   .dbline 102
 00EA           ;  
 00EA 842F              mov R24,R20
 00EC 8F70              andi R24,#0x0F
 00EE 8295              swap R24
 00F0 482F              mov R20,R24
 00F2                   .dbline 103
 00F2           ;  
 00F2 8BB3              in R24,0x1b
 00F4 8F70              andi R24,15
 00F6 8BBB              out 0x1b,R24
 00F8                   .dbline 104
 00F8           ; }
 00F8 842F              mov R24,R20
 00FA 807F              andi R24,240
 00FC 2BB2              in R2,0x1b
 00FE 282A              or R2,R24
 0100 2BBA              out 0x1b,R2
 0102                   .dbline 105
 0102           ; 
 0102 BDDF              xcall _LCD_en_write
 0104                   .dbline -2
 0104           L20:
 0104 0E940000          xcall pop_gset1
 0108                   .dbline 0 ; func end
 0108 0895              ret
 010A                   .dbsym r data 20 c
 010A                   .dbend
 010A                   .dbfunc e LCD_set_xy _LCD_set_xy fV
 010A           ;        address -> R20
 010A           ;              y -> R20
 010A           ;              x -> R22
                        .even
 010A           _LCD_set_xy::
 010A 0E940000          xcall push_gset2
 010E 422F              mov R20,R18
 0110 602F              mov R22,R16
 0112                   .dbline -1
 0112                   .dbline 124
 0112           ; void R_set(void)
 0112           ; {
 0112           ;  static unsigned char i;
 0112           ;  if(i!=9)i++;
 0112           ;  else i=1;
 0112           ;  switch(i)//频率选择
 0112           ;                 {
 0112           ;                  case 1:
 0112           ;                  {
 0112           ;                   OCR0=0x0a;//占空比10%
 0112           ;                   LCD_write_string(13,0,"10%");
 0112           ;                   break;
 0112           ;                  } 
 0112           ;                  case 2:
 0112           ;                  {
 0112           ;                   OCR0=0x14;//占空比20%
 0112           ;                   LCD_write_string(13,0,"20%");
 0112           ;                   break; 
 0112           ;                  }
 0112                   .dbline 126
 0112           ;                  case 3:
 0112           ;                  {
 0112 4423              tst R20
 0114 19F4              brne L22
 0116                   .dbline 126
 0116 462F              mov R20,R22
 0118 4058              subi R20,128    ; addi 128
 011A 02C0              xjmp L23
 011C           L22:
 011C                   .dbline 127
 011C           ;                   OCR0=0x1e;//占空比30%
 011C 462F              mov R20,R22
 011E 4054              subi R20,64    ; addi 192
 0120           L23:
 0120                   .dbline 128
 0120           ;                       LCD_write_string(13,0,"30%");
 0120 042F              mov R16,R20
 0122 B3DF              xcall _LCD_write_command
 0124                   .dbline -2
 0124           L21:
 0124 0E940000          xcall pop_gset2
 0128                   .dbline 0 ; func end
 0128 0895              ret
 012A                   .dbsym r address 20 c
 012A                   .dbsym r y 20 c
 012A                   .dbsym r x 22 c
 012A                   .dbend
 012A                   .dbfunc e LCD_write_string _LCD_write_string fV
 012A           ;              s -> R20,R21
 012A           ;              Y -> R10
 012A           ;              X -> R22
                        .even
 012A           _LCD_write_string::
 012A 0E940000          xcall push_gset3
 012E A22E              mov R10,R18
 0130 602F              mov R22,R16
 0132 4E81              ldd R20,y+6
 0134 5F81              ldd R21,y+7
 0136                   .dbline -1
 0136                   .dbline 132
 0136           ;                       break;
 0136           ;                  } 
 0136           ;                  case 4:
 0136           ;                  {
 0136                   .dbline 133
 0136           ;                   OCR0=0x28;//占空比40%
 0136 2A2D              mov R18,R10
 0138 062F              mov R16,R22
 013A E7DF              xcall _LCD_set_xy
 013C 05C0              xjmp L26
 013E           L25:
 013E                   .dbline 135
 013E                   .dbline 136
 013E FA01              movw R30,R20
 0140 0081              ldd R16,z+0
 0142 C3DF              xcall _LCD_write_data
 0144                   .dbline 137
 0144 4F5F              subi R20,255  ; offset = 1
 0146 5F4F              sbci R21,255
 0148                   .dbline 138
 0148           L26:
 0148                   .dbline 134
 0148           ;                       LCD_write_string(13,0,"40%");
 0148 FA01              movw R30,R20
 014A 2080              ldd R2,z+0
 014C 2220              tst R2
 014E B9F7              brne L25
 0150                   .dbline -2
 0150           L24:
 0150 0E940000          xcall pop_gset3
 0154                   .dbline 0 ; func end
 0154 0895              ret
 0156                   .dbsym r s 20 pc
 0156                   .dbsym r Y 10 c
 0156                   .dbsym r X 22 c
 0156                   .dbend
 0156                   .dbfunc e LCD_write_char _LCD_write_char fV
 0156           ;           data -> y+4
 0156           ;              Y -> R22
 0156           ;              X -> R20
                        .even
 0156           _LCD_write_char::
 0156 0E940000          xcall push_gset2
 015A 622F              mov R22,R18
 015C 402F              mov R20,R16
 015E                   .dbline -1
 015E                   .dbline 143
 015E           ;                       break;
 015E           ;                  } 
 015E           ;                  case 5:
 015E           ;                  {
 015E           ;                   OCR0=0x80;//占空比50%
 015E           ;                       LCD_write_string(13,0,"50%");
 015E           ;                       break;
 015E           ;                  }
 015E           ;                  case 6:
 015E                   .dbline 144
 015E           ;                  {
 015E 262F              mov R18,R22
 0160 042F              mov R16,R20
 0162 D3DF              xcall _LCD_set_xy
 0164                   .dbline 145
 0164           ;                   OCR0=0x3c;//占空比60%
 0164 0C81              ldd R16,y+4
 0166 B1DF              xcall _LCD_write_data
 0168                   .dbline -2
 0168           L28:
 0168 0E940000          xcall pop_gset2
 016C                   .dbline 0 ; func end
 016C 0895              ret
 016E                   .dbsym l data 4 c
 016E                   .dbsym r Y 22 c
 016E                   .dbsym r X 20 c
 016E                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\avr\+++精华+++\+M16范例+\方波生成器2(PWM)/1602.h
 0000           L30:
 0000                   .blkb 1
                        .area text(rom, con, rel)
 016E                   .dbfile D:\avr\+++精华+++\+M16范例+\方波生成器2(PWM)/1602.h
 016E                   .dbfile D:\avr\+++精华+++\+M16范例+\方波生成器2(PWM)\main.c
 016E                   .dbfunc e get_key _get_key fc
 016E                   .dbsym s j L30 c
 016E           ;              i -> R20
                        .even
 016E           _get_key::
 016E 0E940000          xcall push_gset1
 0172                   .dbline -1
 0172                   .dbline 23
 0172                   .dbline 26
 0172 82B3              in R24,0x12
 0174 8C60              ori R24,12
 0176 82BB              out 0x12,R24
 0178                   .dbline 27
 0178 81B3              in R24,0x11
 017A 837F              andi R24,243
 017C 81BB              out 0x11,R24
 017E                   .dbline 30
 017E 8299              sbic 0x10,2
 0180 02C0              rjmp L31
 0182                   .dbline 30
 0182 41E4              ldi R20,65
 0184 05C0              xjmp L32
 0186           L31:
 0186                   .dbline 31
 0186 8399              sbic 0x10,3
 0188 02C0              rjmp L33
 018A                   .dbline 31
 018A 42E4              ldi R20,66
 018C 01C0              xjmp L34
 018E           L33:
 018E                   .dbline 32
 018E 4427              clr R20
 0190           L34:
 0190           L32:
 0190                   .dbline 34
 0190 4423              tst R20
 0192 29F4              brne L35
 0194                   .dbline 35
 0194                   .dbline 36
 0194 2224              clr R2
 0196 20920000          sts L30,R2
 019A                   .dbline 37
 019A 0027              clr R16
 019C 19C0              xjmp L29
 019E           L35:
 019E                   .dbline 39
 019E 20900000          lds R2,L30
 01A2 2220              tst R2
 01A4 A1F4              brne L37
 01A6                   .dbline 40
 01A6                   .dbline 40
 01A6 40930000          sts L30,R20
 01AA                   .dbline 41
 01AA 0AE0              ldi R16,10
 01AC 10E0              ldi R17,0
 01AE 43DF              xcall _delay_nms
 01B0                   .dbline 42
 01B0 8299              sbic 0x10,2
 01B2 02C0              rjmp L39
 01B4                   .dbline 42
 01B4 41E4              ldi R20,65
 01B6 05C0              xjmp L40
 01B8           L39:
 01B8                   .dbline 43
 01B8 8399              sbic 0x10,3
 01BA 02C0              rjmp L41
 01BC                   .dbline 43

⌨️ 快捷键说明

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