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

📄 pwm_ser.lis

📁 avr 单片机 iccavr 平台
💻 LIS
字号:
                        .module pwm_ser.c
                        .area data(ram, con, rel)
 0000           _counter::
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile E:\myavr\PWM_SER\pwm_ser.c
 0001                   .dbsym e counter _counter c
                        .area lit(rom, con, rel)
 0000           _array::
 0000 A0F9              .byte 160,249
 0002 C4D0              .byte 196,208
 0004 9992              .byte 153,146
 0006                   .dbsym e array _array A[6:6]kc
                        .area text(rom, con, rel)
 0000                   .dbfile E:\myavr\PWM_SER\pwm_ser.c
 0000                   .dbfunc e intial _intial fV
                        .even
 0000           _intial::
 0000                   .dbline -1
 0000                   .dbline 10
 0000           ; #include<iom16v.h>
 0000           ; #include<macros.h>
 0000           ; #define uchar unsigned char 
 0000           ; #define uint unsigned int
 0000           ; #define xtal  6                     
 0000           ; uchar counter=0;
 0000           ; uchar key;
 0000           ; const uchar array[6]={0xa0,0xf9,0xc4,0xd0,0x99,0x92};
 0000           ; void intial(void)
 0000           ; {
 0000                   .dbline 11
 0000           ; TCCR0=0X6c;
 0000 8CE6              ldi R24,108
 0002 83BF              out 0x33,R24
 0004                   .dbline 12
 0004           ; TCNT0=0X0;
 0004 2224              clr R2
 0006 22BE              out 0x32,R2
 0008                   .dbline 13
 0008           ; TIMSK=0X1;
 0008 81E0              ldi R24,1
 000A 89BF              out 0x39,R24
 000C                   .dbline 14
 000C           ; TIFR=0X0;
 000C 28BE              out 0x38,R2
 000E                   .dbline 15
 000E           ; DDRB=0x8;          //PB3输出
 000E 88E0              ldi R24,8
 0010 87BB              out 0x17,R24
 0012                   .dbline 16
 0012           ; PORTB=0x8;
 0012 88BB              out 0x18,R24
 0014                   .dbline 17
 0014           ; DDRA=0xFC;               //Pa0,Pa1输入
 0014 8CEF              ldi R24,252
 0016 8ABB              out 0x1a,R24
 0018                   .dbline 18
 0018           ; PORTA=0Xff; 
 0018 8FEF              ldi R24,255
 001A 8BBB              out 0x1b,R24
 001C                   .dbline 19
 001C           ; DDRD=0XFF;
 001C 81BB              out 0x11,R24
 001E                   .dbline 20
 001E           ; PORTD=0X0;                 
 001E 22BA              out 0x12,R2
 0020                   .dbline 21
 0020           ; _SEI();
 0020 7894              sei
 0022                   .dbline -2
 0022                   .dbline 22
 0022           ; }
 0022           L1:
 0022                   .dbline 0 ; func end
 0022 0895              ret
 0024                   .dbend
 0024                   .dbfunc e delay10ms _delay10ms fV
 0024           ;              j -> R16
 0024           ;              i -> R18,R19
                        .even
 0024           _delay10ms::
 0024                   .dbline -1
 0024                   .dbline 25
 0024           ; 
 0024           ; void delay10ms(void) 
 0024           ; { 
 0024                   .dbline 27
 0024           ;     uint i; 
 0024           ;       uchar j=10;
 0024 0AE0              ldi R16,10
 0026 09C0              xjmp L4
 0028           L3:
 0028                   .dbline 29
 0028           ;     while(j--)    
 0028           ;    { 
 0028                   .dbline 30
 0028           ;      for(i=1;i<(uint)(xtal*143-2);i++) 
 0028 21E0              ldi R18,1
 002A 30E0              ldi R19,0
 002C 02C0              xjmp L9
 002E           L6:
 002E                   .dbline 31
 002E           L7:
 002E                   .dbline 30
 002E 2F5F              subi R18,255  ; offset = 1
 0030 3F4F              sbci R19,255
 0032           L9:
 0032                   .dbline 30
 0032 2835              cpi R18,88
 0034 E3E0              ldi R30,3
 0036 3E07              cpc R19,R30
 0038 D0F3              brlo L6
 003A                   .dbline 32
 003A           L4:
 003A                   .dbline 28
 003A 202E              mov R2,R16
 003C 3324              clr R3
 003E 0150              subi R16,1
 0040 2220              tst R2
 0042 91F7              brne L3
 0044                   .dbline -2
 0044                   .dbline 33
 0044           ;          ; 
 0044           ;    }   
 0044           ; } 
 0044           L2:
 0044                   .dbline 0 ; func end
 0044 0895              ret
 0046                   .dbsym r j 16 c
 0046                   .dbsym r i 18 i
 0046                   .dbend
 0046                   .dbfunc e key_decord _key_decord fc
 0046           ;              y -> R20
 0046           ;              t -> R20
                        .even
 0046           _key_decord::
 0046 0E940000          xcall push_gset1
 004A                   .dbline -1
 004A                   .dbline 36
 004A           ; 
 004A           ; uchar key_decord(void)
 004A           ; {
 004A                   .dbline 39
 004A           ;  uchar y;
 004A           ;  uchar t; 
 004A           ;  t=PINA&3;
 004A 49B3              in R20,0x19
 004C 4370              andi R20,3
 004E                   .dbline 40
 004E           ;  delay10ms();
 004E EADF              xcall _delay10ms
 0050                   .dbline 41
 0050           ;  t=PINA&3;
 0050 49B3              in R20,0x19
 0052 4370              andi R20,3
 0054                   .dbline 42
 0054           ;  switch (t)
 0054 5527              clr R21
 0056 4030              cpi R20,0
 0058 4507              cpc R20,R21
 005A 49F0              breq L14
 005C           X0:
 005C 4130              cpi R20,1
 005E E0E0              ldi R30,0
 0060 5E07              cpc R21,R30
 0062 39F0              breq L15
 0064 4230              cpi R20,2
 0066 E0E0              ldi R30,0
 0068 5E07              cpc R21,R30
 006A 29F0              breq L16
 006C 06C0              xjmp L11
 006E           X1:
 006E                   .dbline 43
 006E           L14:
 006E                   .dbline 43
 006E           ;  {case 0: y=2;break;
 006E 42E0              ldi R20,2
 0070                   .dbline 43
 0070 05C0              xjmp L12
 0072           L15:
 0072                   .dbline 44
 0072           ;   case 1: y=3;break;
 0072 43E0              ldi R20,3
 0074                   .dbline 44
 0074 03C0              xjmp L12
 0076           L16:
 0076                   .dbline 45
 0076           ;   case 2: y=1;break;
 0076 41E0              ldi R20,1
 0078                   .dbline 45
 0078 01C0              xjmp L12
 007A           L11:
 007A                   .dbline 46
 007A           ;   default:  y=0;} 
 007A 4427              clr R20
 007C                   .dbline 46
 007C           L12:
 007C                   .dbline 47
 007C           ;  return(y);
 007C 042F              mov R16,R20
 007E                   .dbline -2
 007E           L10:
 007E 0E940000          xcall pop_gset1
 0082                   .dbline 0 ; func end
 0082 0895              ret
 0084                   .dbsym r y 20 c
 0084                   .dbsym r t 20 c
 0084                   .dbend
                        .area vector(rom, abs)
                        .org 36
 0024 0C944200          jmp _T0_ov
                        .area text(rom, con, rel)
 0084                   .dbfile E:\myavr\PWM_SER\pwm_ser.c
 0084                   .dbfunc e T0_ov _T0_ov fV
 0084           ;              t -> <dead>
                        .even
 0084           _T0_ov::
 0084 2A92              st -y,R2
 0086 0A93              st -y,R16
 0088 1A93              st -y,R17
 008A 8A93              st -y,R24
 008C EA93              st -y,R30
 008E FA93              st -y,R31
 0090 2FB6              in R2,0x3f
 0092 2A92              st -y,R2
 0094                   .dbline -1
 0094                   .dbline 52
 0094           ; }
 0094           ; 
 0094           ; #pragma interrupt_handler T0_ov:10 
 0094           ; void T0_ov(void)
 0094           ; {
 0094                   .dbline 54
 0094           ;  uchar t;
 0094           ;  TIFR^=0X1;
 0094 81E0              ldi R24,1
 0096 28B6              in R2,0x38
 0098 2826              eor R2,R24
 009A 28BE              out 0x38,R2
 009C                   .dbline 55
 009C           ;  switch (key)
 009C 00910000          lds R16,_key
 00A0 1127              clr R17
 00A2 0030              cpi R16,0
 00A4 0107              cpc R16,R17
 00A6 89F0              breq L21
 00A8           X2:
 00A8 0130              cpi R16,1
 00AA E0E0              ldi R30,0
 00AC 1E07              cpc R17,R30
 00AE A1F0              breq L22
 00B0 0230              cpi R16,2
 00B2 E0E0              ldi R30,0
 00B4 1E07              cpc R17,R30
 00B6 B9F0              breq L24
 00B8 0330              cpi R16,3
 00BA E0E0              ldi R30,0
 00BC 1E07              cpc R17,R30
 00BE D1F0              breq L26
 00C0 0430              cpi R16,4
 00C2 E0E0              ldi R30,0
 00C4 1E07              cpc R17,R30
 00C6 E9F0              breq L28
 00C8 23C0              xjmp L18
 00CA           X3:
 00CA                   .dbline 56
 00CA           L21:
 00CA                   .dbline 56
 00CA           ;  {case 0: OCR0=12;  PORTD=array[0];break;      //-90度
 00CA 8CE0              ldi R24,12
 00CC 8CBF              out 0x3c,R24
 00CE                   .dbline 56
 00CE E0E0              ldi R30,<_array
 00D0 F0E0              ldi R31,>_array
 00D2 E491              lpm R30,Z
 00D4 E2BB              out 0x12,R30
 00D6                   .dbline 56
 00D6 22C0              xjmp L19
 00D8           L22:
 00D8                   .dbline 57
 00D8           ;   case 1: OCR0= 25; PORTD=array[1];break;     //-45度
 00D8 89E1              ldi R24,25
 00DA 8CBF              out 0x3c,R24
 00DC                   .dbline 57
 00DC E0E0              ldi R30,<_array+1
 00DE F0E0              ldi R31,>_array+1
 00E0 E491              lpm R30,Z
 00E2 E2BB              out 0x12,R30
 00E4                   .dbline 57
 00E4 1BC0              xjmp L19
 00E6           L24:
 00E6                   .dbline 58
 00E6           ;   case 2: OCR0=36;  PORTD=array[2];break;      //0度   
 00E6 84E2              ldi R24,36
 00E8 8CBF              out 0x3c,R24
 00EA                   .dbline 58
 00EA E0E0              ldi R30,<_array+2
 00EC F0E0              ldi R31,>_array+2
 00EE E491              lpm R30,Z
 00F0 E2BB              out 0x12,R30
 00F2                   .dbline 58
 00F2 14C0              xjmp L19
 00F4           L26:
 00F4                   .dbline 59
 00F4           ;   case 3: OCR0=48;  PORTD=array[3];break;      //45度
 00F4 80E3              ldi R24,48
 00F6 8CBF              out 0x3c,R24
 00F8                   .dbline 59
 00F8 E0E0              ldi R30,<_array+3
 00FA F0E0              ldi R31,>_array+3
 00FC E491              lpm R30,Z
 00FE E2BB              out 0x12,R30
 0100                   .dbline 59
 0100 0DC0              xjmp L19
 0102           L28:
 0102                   .dbline 60
 0102           ;   case 4: OCR0=60;  PORTD=array[4];break;      //90度
 0102 8CE3              ldi R24,60
 0104 8CBF              out 0x3c,R24
 0106                   .dbline 60
 0106 E0E0              ldi R30,<_array+4
 0108 F0E0              ldi R31,>_array+4
 010A E491              lpm R30,Z
 010C E2BB              out 0x12,R30
 010E                   .dbline 60
 010E 06C0              xjmp L19
 0110           L18:
 0110                   .dbline 61
 0110 84E2              ldi R24,36
 0112 8CBF              out 0x3c,R24
 0114                   .dbline 61
 0114 E0E0              ldi R30,<_array
 0116 F0E0              ldi R31,>_array
 0118 E491              lpm R30,Z
 011A E2BB              out 0x12,R30
 011C                   .dbline 61
 011C           L19:
 011C                   .dbline -2
 011C                   .dbline 62
 011C           ;   default:OCR0=36;  PORTD=array[0] ;  }
 011C           ; }
 011C           L17:
 011C 2990              ld R2,y+
 011E 2FBE              out 0x3f,R2
 0120 F991              ld R31,y+
 0122 E991              ld R30,y+
 0124 8991              ld R24,y+
 0126 1991              ld R17,y+
 0128 0991              ld R16,y+
 012A 2990              ld R2,y+
 012C                   .dbline 0 ; func end
 012C 1895              reti
 012E                   .dbsym l t 1 c
 012E                   .dbend
 012E                   .dbfunc e main _main fI
                        .even
 012E           _main::
 012E                   .dbline -1
 012E                   .dbline 68
 012E           ; 
 012E           ; 
 012E           ; 
 012E           ; 
 012E           ; main()
 012E           ; {
 012E                   .dbline 69
 012E           ; intial();
 012E 68DF              xcall _intial
 0130           L31:
 0130                   .dbline 71
 0130           ;  do 
 0130           ;  {/*_CLI();
 0130                   .dbline 75
 0130           ;   key=key_decord();
 0130           ;   _SEI();
 0130           ;   */
 0130           ;   key=0;
 0130 2224              clr R2
 0132 20920000          sts _key,R2
 0136                   .dbline 76
 0136           L32:
 0136                   .dbline 76
 0136 FCCF              xjmp L31
 0138           X4:
 0138                   .dbline -2
 0138                   .dbline 79
 0138           ;  }while(1);
 0138           ;   
 0138           ;   
 0138           ; }
 0138           L30:
 0138                   .dbline 0 ; func end
 0138 0895              ret
 013A                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\myavr\PWM_SER\pwm_ser.c
 0000           _key::
 0000                   .blkb 1
 0001                   .dbsym e key _key c

⌨️ 快捷键说明

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