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

📄 pwm_ser.lst

📁 avr 单片机 iccavr 平台
💻 LST
字号:
__start:
__text_start:
    002E E5CF      LDI	R28,0x5F
    002F E0D4      LDI	R29,4
    0030 BFCD      OUT	0x3D,R28
    0031 BFDE      OUT	0x3E,R29
    0032 51C0      SUBI	R28,0x10
    0033 40D0      SBCI	R29,0
    0034 EA0A      LDI	R16,0xAA
    0035 8308      STD	Y+0,R16
    0036 2400      CLR	R0
    0037 E6E1      LDI	R30,0x61
    0038 E0F0      LDI	R31,0
    0039 E010      LDI	R17,0
    003A 36E2      CPI	R30,0x62
    003B 07F1      CPC	R31,R17
    003C F011      BEQ	0x003F
    003D 9201      ST	R0,Z+
    003E CFFB      RJMP	0x003A
    003F 8300      STD	Z+0,R16
    0040 E5EA      LDI	R30,0x5A
    0041 E0F0      LDI	R31,0
    0042 E6A0      LDI	R26,0x60
    0043 E0B0      LDI	R27,0
    0044 E010      LDI	R17,0
    0045 35EB      CPI	R30,0x5B
    0046 07F1      CPC	R31,R17
    0047 F021      BEQ	0x004C
    0048 95C8      LPM
    0049 9631      ADIW	R30,1
    004A 920D      ST	R0,X+
    004B CFF9      RJMP	0x0045
    004C 940E00E6  CALL	_main
_exit:
    004E CFFF      RJMP	_exit
FILE: E:\myavr\PWM_SER\pwm_ser.c
(0001) #include<iom16v.h>
(0002) #include<macros.h>
(0003) #define uchar unsigned char 
(0004) #define uint unsigned int
(0005) #define xtal  6                     
(0006) uchar counter=0;
(0007) uchar key;
(0008) const uchar array[6]={0xa0,0xf9,0xc4,0xd0,0x99,0x92};
(0009) void intial(void)
(0010) {
(0011) TCCR0=0X6c;
_intial:
    004F E68C      LDI	R24,0x6C
    0050 BF83      OUT	0x33,R24
(0012) TCNT0=0X0;
    0051 2422      CLR	R2
    0052 BE22      OUT	0x32,R2
(0013) TIMSK=0X1;
    0053 E081      LDI	R24,1
    0054 BF89      OUT	0x39,R24
(0014) TIFR=0X0;
    0055 BE28      OUT	0x38,R2
(0015) DDRB=0x8;          //PB3输出
    0056 E088      LDI	R24,0x8
    0057 BB87      OUT	0x17,R24
(0016) PORTB=0x8;
    0058 BB88      OUT	0x18,R24
(0017) DDRA=0xFC;		   //Pa0,Pa1输入
    0059 EF8C      LDI	R24,0xFC
    005A BB8A      OUT	0x1A,R24
(0018) PORTA=0Xff; 
    005B EF8F      LDI	R24,0xFF
    005C BB8B      OUT	0x1B,R24
(0019) DDRD=0XFF;
    005D BB81      OUT	0x11,R24
(0020) PORTD=0X0;                 
    005E BA22      OUT	0x12,R2
(0021) _SEI();
    005F 9478      BSET	7
(0022) }
    0060 9508      RET
(0023) 
(0024) void delay10ms(void) 
(0025) { 
(0026)     uint i; 
(0027) 	uchar j=10;
_delay10ms:
  j                    --> R16
  i                    --> R18
    0061 E00A      LDI	R16,0xA
    0062 C009      RJMP	0x006C
(0028)     while(j--)    
(0029)    { 
(0030)      for(i=1;i<(uint)(xtal*143-2);i++) 
    0063 E021      LDI	R18,1
    0064 E030      LDI	R19,0
    0065 C002      RJMP	0x0068
    0066 5F2F      SUBI	R18,0xFF
    0067 4F3F      SBCI	R19,0xFF
    0068 3528      CPI	R18,0x58
    0069 E0E3      LDI	R30,3
    006A 073E      CPC	R19,R30
    006B F3D0      BCS	0x0066
    006C 2E20      MOV	R2,R16
    006D 2433      CLR	R3
    006E 5001      SUBI	R16,1
    006F 2022      TST	R2
    0070 F791      BNE	0x0063
(0031)          ; 
(0032)    }   
(0033) } 
    0071 9508      RET
_key_decord:
  y                    --> R20
  t                    --> R20
    0072 940E00EC  CALL	push_gset1
(0034) 
(0035) uchar key_decord(void)
(0036) {
(0037)  uchar y;
(0038)  uchar t; 
(0039)  t=PINA&3;
    0074 B349      IN	R20,0x19
    0075 7043      ANDI	R20,3
(0040)  delay10ms();
    0076 DFEA      RCALL	_delay10ms
(0041)  t=PINA&3;
    0077 B349      IN	R20,0x19
    0078 7043      ANDI	R20,3
(0042)  switch (t)
    0079 2755      CLR	R21
    007A 3040      CPI	R20,0
    007B 0745      CPC	R20,R21
    007C F049      BEQ	0x0086
    007D 3041      CPI	R20,1
    007E E0E0      LDI	R30,0
    007F 075E      CPC	R21,R30
    0080 F039      BEQ	0x0088
    0081 3042      CPI	R20,2
    0082 E0E0      LDI	R30,0
    0083 075E      CPC	R21,R30
    0084 F029      BEQ	0x008A
    0085 C006      RJMP	0x008C
(0043)  {case 0: y=2;break;
    0086 E042      LDI	R20,2
    0087 C005      RJMP	0x008D
(0044)   case 1: y=3;break;
    0088 E043      LDI	R20,3
    0089 C003      RJMP	0x008D
(0045)   case 2: y=1;break;
    008A E041      LDI	R20,1
    008B C001      RJMP	0x008D
(0046)   default:  y=0;} 
    008C 2744      CLR	R20
(0047)  return(y);
    008D 2F04      MOV	R16,R20
    008E 940E00EF  CALL	pop_gset1
    0090 9508      RET
_T0_ov:
  t                    --> Y+1
    0091 922A      ST	R2,-Y
    0092 930A      ST	R16,-Y
    0093 931A      ST	R17,-Y
    0094 938A      ST	R24,-Y
    0095 93EA      ST	R30,-Y
    0096 93FA      ST	R31,-Y
    0097 B62F      IN	R2,0x3F
    0098 922A      ST	R2,-Y
(0048) }
(0049) 
(0050) #pragma interrupt_handler T0_ov:10 
(0051) void T0_ov(void)
(0052) {
(0053)  uchar t;
(0054)  TIFR^=0X1;
    0099 E081      LDI	R24,1
    009A B628      IN	R2,0x38
    009B 2628      EOR	R2,R24
    009C BE28      OUT	0x38,R2
(0055)  switch (key)
    009D 91000061  LDS	R16,_key
    009F 2711      CLR	R17
    00A0 3000      CPI	R16,0
    00A1 0701      CPC	R16,R17
    00A2 F089      BEQ	0x00B4
    00A3 3001      CPI	R16,1
    00A4 E0E0      LDI	R30,0
    00A5 071E      CPC	R17,R30
    00A6 F0A1      BEQ	0x00BB
    00A7 3002      CPI	R16,2
    00A8 E0E0      LDI	R30,0
    00A9 071E      CPC	R17,R30
    00AA F0B9      BEQ	0x00C2
    00AB 3003      CPI	R16,3
    00AC E0E0      LDI	R30,0
    00AD 071E      CPC	R17,R30
    00AE F0D1      BEQ	0x00C9
    00AF 3004      CPI	R16,4
    00B0 E0E0      LDI	R30,0
    00B1 071E      CPC	R17,R30
    00B2 F0E9      BEQ	0x00D0
    00B3 C023      RJMP	0x00D7
(0056)  {case 0: OCR0=12;  PORTD=array[0];break;      //-90度
    00B4 E08C      LDI	R24,0xC
    00B5 BF8C      OUT	0x3C,R24
    00B6 E5E4      LDI	R30,0x54
    00B7 E0F0      LDI	R31,0
    00B8 91E4      LPM	R30,0(Z)
    00B9 BBE2      OUT	0x12,R30
    00BA C022      RJMP	0x00DD
(0057)   case 1: OCR0= 25; PORTD=array[1];break;     //-45度
    00BB E189      LDI	R24,0x19
    00BC BF8C      OUT	0x3C,R24
    00BD E5E5      LDI	R30,0x55
    00BE E0F0      LDI	R31,0
    00BF 91E4      LPM	R30,0(Z)
    00C0 BBE2      OUT	0x12,R30
    00C1 C01B      RJMP	0x00DD
(0058)   case 2: OCR0=36;  PORTD=array[2];break;      //0度	 
    00C2 E284      LDI	R24,0x24
    00C3 BF8C      OUT	0x3C,R24
    00C4 E5E6      LDI	R30,0x56
    00C5 E0F0      LDI	R31,0
    00C6 91E4      LPM	R30,0(Z)
    00C7 BBE2      OUT	0x12,R30
    00C8 C014      RJMP	0x00DD
(0059)   case 3: OCR0=48;  PORTD=array[3];break;      //45度
    00C9 E380      LDI	R24,0x30
    00CA BF8C      OUT	0x3C,R24
    00CB E5E7      LDI	R30,0x57
    00CC E0F0      LDI	R31,0
    00CD 91E4      LPM	R30,0(Z)
    00CE BBE2      OUT	0x12,R30
    00CF C00D      RJMP	0x00DD
(0060)   case 4: OCR0=60;  PORTD=array[4];break;      //90度
    00D0 E38C      LDI	R24,0x3C
    00D1 BF8C      OUT	0x3C,R24
    00D2 E5E8      LDI	R30,0x58
    00D3 E0F0      LDI	R31,0
    00D4 91E4      LPM	R30,0(Z)
    00D5 BBE2      OUT	0x12,R30
    00D6 C006      RJMP	0x00DD
(0061)   default:OCR0=36;  PORTD=array[0] ;  }
    00D7 E284      LDI	R24,0x24
    00D8 BF8C      OUT	0x3C,R24
    00D9 E5E4      LDI	R30,0x54
    00DA E0F0      LDI	R31,0
    00DB 91E4      LPM	R30,0(Z)
    00DC BBE2      OUT	0x12,R30
(0062) }
    00DD 9029      LD	R2,Y+
    00DE BE2F      OUT	0x3F,R2
    00DF 91F9      LD	R31,Y+
    00E0 91E9      LD	R30,Y+
    00E1 9189      LD	R24,Y+
    00E2 9119      LD	R17,Y+
    00E3 9109      LD	R16,Y+
    00E4 9029      LD	R2,Y+
    00E5 9518      RETI
(0063) 
(0064) 
(0065) 
(0066) 
(0067) main()
(0068) {
(0069) intial();
_main:
    00E6 DF68      RCALL	_intial
(0070)  do 
(0071)  {/*_CLI();
(0072)   key=key_decord();
(0073)   _SEI();
(0074)   */
(0075)   key=0;
    00E7 2422      CLR	R2
    00E8 92200061  STS	_key,R2
(0076)  }while(1);
    00EA CFFC      RJMP	0x00E7
(0077)   
(0078)   
(0079) }
FILE: <library>
    00EB 9508      RET
push_gset1:
    00EC 935A      ST	R21,-Y
    00ED 934A      ST	R20,-Y
    00EE 9508      RET
pop_gset1:
    00EF E0E1      LDI	R30,1
pop:
    00F0 9149      LD	R20,Y+
    00F1 9159      LD	R21,Y+
    00F2 FDE0      SBRC	R30,0
    00F3 9508      RET
    00F4 9169      LD	R22,Y+
    00F5 9179      LD	R23,Y+
    00F6 FDE1      SBRC	R30,1
    00F7 9508      RET
    00F8 90A9      LD	R10,Y+
    00F9 90B9      LD	R11,Y+
    00FA FDE2      SBRC	R30,2
    00FB 9508      RET
    00FC 90C9      LD	R12,Y+
    00FD 90D9      LD	R13,Y+
    00FE FDE3      SBRC	R30,3
    00FF 9508      RET
    0100 90E9      LD	R14,Y+
    0101 90F9      LD	R15,Y+
    0102 9508      RET

⌨️ 快捷键说明

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