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

📄 ledbright.lst

📁 红外遥控模拟的汇编程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
(0129) // adc_l=(uchar)(vol_to/2);//high bit 
(0130) // vol_to=0;
(0131) // }
(0132)  return pot_vol;
    00B7 2D02      MOV	R16,R2
    00B8 9508      RET
(0133) }
(0134) 
(0135) void manu_mode(void)
(0136) {
(0137) //unsigned char i;
(0138)  //bitset(PORTD,1);
(0139)  //bitclr(PORTD,0);
(0140)  
(0141)  //if((PINC&0x02)) 
(0142) 
(0143)  pwmopen(pot_charge());
_manu_mode:
    00B9 DFD6      RCALL	_pot_charge
    00BA DFA7      RCALL	_pwmopen
    00BB 9508      RET
(0144) 
(0145)  }
(0146) void sw_check(void)
(0147) {
(0148)  if (!(PINC&0x02)){uchsw=1;auto_mode();}//自动模式
_sw_check:
    00BC 9999      SBIC	0x13,1
    00BD C005      RJMP	0x00C3
    00BE E081      LDI	R24,1
    00BF 93800063  STS	uchsw,R24
    00C1 DFAB      RCALL	_auto_mode
    00C2 C004      RJMP	0x00C7
(0149)  else {uchsw=0;manu_mode();}//手动模式
    00C3 2422      CLR	R2
    00C4 92200063  STS	uchsw,R2
    00C6 DFF2      RCALL	_manu_mode
    00C7 9508      RET
(0150) }
(0151) 
(0152) 
(0153) void vlr_v(void)
(0154) {
(0155) num=1;
_vlr_v:
    00C8 E081      LDI	R24,1
    00C9 E090      LDI	R25,0
    00CA 93900062  STS	num+1,R25
    00CC 93800061  STS	num,R24
(0156) 
(0157) pot_vol=0; 
    00CE 2422      CLR	R2
    00CF 2433      CLR	R3
    00D0 92300065  STS	pot_vol+1,R3
    00D2 92200064  STS	pot_vol,R2
(0158) uchsw=0;
    00D4 92200063  STS	uchsw,R2
(0159) pwm=0;
    00D6 92200060  STS	pwm,R2
    00D8 9508      RET
(0160) 
(0161) }
(0162) void main(void)
(0163) {
(0164) 
(0165) init_devices();
_main:
    00D9 DF73      RCALL	_init_devices
(0166) vlr_v();
    00DA DFED      RCALL	_vlr_v
(0167) TCCR1B=0x00;	//停止PWM						
    00DB 2422      CLR	R2
    00DC BC2E      OUT	0x2E,R2
(0168) TCCR1A=0x00;
    00DD BC2F      OUT	0x2F,R2
    00DE C05B      RJMP	0x013A
(0169) while(1)
(0170) {
(0171) if (!(PINC&0x04))
    00DF 999A      SBIC	0x13,2
    00E0 C009      RJMP	0x00EA
(0172)  {
(0173)  PORTD=0;
    00E1 2422      CLR	R2
    00E2 BA22      OUT	0x12,R2
(0174) DDRD=0;
    00E3 BA21      OUT	0x11,R2
(0175)  TCCR1A = 0x82; //打开PWM
    00E4 E882      LDI	R24,0x82
    00E5 BD8F      OUT	0x2F,R24
(0176)   TCCR1B = 0x19;
    00E6 E189      LDI	R24,0x19
    00E7 BD8E      OUT	0x2E,R24
(0177)   sw_check();
    00E8 DFD3      RCALL	_sw_check
(0178)   }
    00E9 C050      RJMP	0x013A
(0179) else 
(0180) {
(0181) clpwm();
    00EA DF7B      RCALL	_clpwm
(0182) bitclr(PORTB,1);
    00EB 98C1      CBI	0x18,1
(0183) for(num=1;0x80>num;num=num*2) //由亮变暗
    00EC E081      LDI	R24,1
    00ED E090      LDI	R25,0
    00EE 93900062  STS	num+1,R25
    00F0 93800061  STS	num,R24
    00F2 C017      RJMP	0x010A
(0184) {
(0185) if (!(PINC&0x04)) break;
    00F3 999A      SBIC	0x13,2
    00F4 C001      RJMP	0x00F6
    00F5 C01D      RJMP	0x0113
(0186) PORTD=num;
    00F6 90200061  LDS	R2,num
    00F8 90300062  LDS	R3,num+1
    00FA BA22      OUT	0x12,R2
(0187) DDRD=num;
    00FB BA21      OUT	0x11,R2
(0188) delay();
    00FC DF59      RCALL	_delay
(0189) delay();
    00FD DF58      RCALL	_delay
(0190) delay();
    00FE DF57      RCALL	_delay
    00FF 91200061  LDS	R18,num
    0101 91300062  LDS	R19,num+1
    0103 E002      LDI	R16,2
    0104 E010      LDI	R17,0
    0105 D06F      RCALL	empy16s
    0106 93100062  STS	num+1,R17
    0108 93000061  STS	num,R16
    010A 90200061  LDS	R2,num
    010C 90300062  LDS	R3,num+1
    010E E880      LDI	R24,0x80
    010F E090      LDI	R25,0
    0110 1628      CP	R2,R24
    0111 0639      CPC	R3,R25
    0112 F304      BLT	0x00F3
(0191) }
(0192) for(num=0x80;1<num;num=num/2)//由暗变亮
    0113 E880      LDI	R24,0x80
    0114 E090      LDI	R25,0
    0115 93900062  STS	num+1,R25
    0117 93800061  STS	num,R24
    0119 C017      RJMP	0x0131
(0193) {
(0194) if (PINC&0x04) break;
    011A 9B9A      SBIS	0x13,2
    011B C001      RJMP	0x011D
    011C C01D      RJMP	0x013A
(0195) PORTD=num;
    011D 90200061  LDS	R2,num
    011F 90300062  LDS	R3,num+1
    0121 BA22      OUT	0x12,R2
(0196) DDRD=num;
    0122 BA21      OUT	0x11,R2
(0197) delay();
    0123 DF32      RCALL	_delay
(0198) delay();
    0124 DF31      RCALL	_delay
(0199) delay();
FILE: <library>
    0125 DF30      RCALL	_delay
    0126 E022      LDI	R18,2
    0127 E030      LDI	R19,0
    0128 91000061  LDS	R16,num
    012A 91100062  LDS	R17,num+1
    012C D013      RCALL	div16s
    012D 93100062  STS	num+1,R17
    012F 93000061  STS	num,R16
    0131 90200061  LDS	R2,num
    0133 90300062  LDS	R3,num+1
    0135 E081      LDI	R24,1
    0136 E090      LDI	R25,0
    0137 1582      CP	R24,R2
    0138 0593      CPC	R25,R3
    0139 F304      BLT	0x011A
    013A CFA4      RJMP	0x00DF
    013B 9508      RET
mod16s:
    013C 9468      BSET	6
    013D 92DA      ST	R13,-Y
    013E 2ED1      MOV	R13,R17
    013F C004      RJMP	0x0144
div16s:
    0140 94E8      BCLR	6
    0141 92DA      ST	R13,-Y
    0142 2ED1      MOV	R13,R17
    0143 26D3      EOR	R13,R19
    0144 FF17      SBRS	R17,7
    0145 C004      RJMP	0x014A
    0146 9510      COM	R17
    0147 9500      COM	R16
    0148 5F0F      SUBI	R16,0xFF
    0149 4F1F      SBCI	R17,0xFF
    014A FF37      SBRS	R19,7
    014B C004      RJMP	0x0150
    014C 9530      COM	R19
    014D 9520      COM	R18
    014E 5F2F      SUBI	R18,0xFF
    014F 4F3F      SBCI	R19,0xFF
    0150 D00B      RCALL	xdiv16u
    0151 FED7      SBRS	R13,7
    0152 C004      RJMP	0x0157
    0153 9510      COM	R17
    0154 9500      COM	R16
    0155 5F0F      SUBI	R16,0xFF
    0156 4F1F      SBCI	R17,0xFF
    0157 90D9      LD	R13,Y+
    0158 9508      RET
mod16u:
    0159 9468      BSET	6
    015A C001      RJMP	xdiv16u
div16u:
    015B 94E8      BCLR	6
xdiv16u:
    015C 92EA      ST	R14,-Y
    015D 92FA      ST	R15,-Y
    015E 938A      ST	R24,-Y
    015F 24EE      CLR	R14
    0160 24FF      CLR	R15
    0161 E180      LDI	R24,0x10
    0162 0F00      LSL	R16
    0163 1F11      ROL	R17
    0164 1CEE      ROL	R14
    0165 1CFF      ROL	R15
    0166 16E2      CP	R14,R18
    0167 06F3      CPC	R15,R19
    0168 F018      BCS	0x016C
    0169 1AE2      SUB	R14,R18
    016A 0AF3      SBC	R15,R19
    016B 9503      INC	R16
    016C 958A      DEC	R24
    016D F7A1      BNE	0x0162
    016E F416      BRTC	0x0171
    016F 2D0E      MOV	R16,R14
    0170 2D1F      MOV	R17,R15
    0171 9189      LD	R24,Y+
    0172 90F9      LD	R15,Y+
    0173 90E9      LD	R14,Y+
    0174 9508      RET
empy16s:
    0175 920A      ST	R0,-Y
    0176 921A      ST	R1,-Y
    0177 938A      ST	R24,-Y
    0178 939A      ST	R25,-Y
    0179 9F02      MUL	R16,R18
    017A 01C0      MOVW	R24,R0
    017B 9F12      MUL	R17,R18
    017C 0D90      ADD	R25,R0
    017D 9F03      MUL	R16,R19
    017E 0D90      ADD	R25,R0
    017F 018C      MOVW	R16,R24
    0180 9199      LD	R25,Y+
    0181 9189      LD	R24,Y+
    0182 9019      LD	R1,Y+
    0183 9009      LD	R0,Y+
    0184 9508      RET
push_gset5:
    0185 92FA      ST	R15,-Y
    0186 92EA      ST	R14,-Y
push_gset4:
    0187 92DA      ST	R13,-Y
    0188 92CA      ST	R12,-Y
push_gset3:
    0189 92BA      ST	R11,-Y
    018A 92AA      ST	R10,-Y
push_gset2:
    018B 937A      ST	R23,-Y
    018C 936A      ST	R22,-Y
push_gset1:
    018D 935A      ST	R21,-Y
    018E 934A      ST	R20,-Y
    018F 9508      RET
pop_gset1:
    0190 E0E1      LDI	R30,1
pop:
    0191 9149      LD	R20,Y+
    0192 9159      LD	R21,Y+
    0193 FDE0      SBRC	R30,0
    0194 9508      RET
    0195 9169      LD	R22,Y+
    0196 9179      LD	R23,Y+
    0197 FDE1      SBRC	R30,1
    0198 9508      RET
    0199 90A9      LD	R10,Y+
    019A 90B9      LD	R11,Y+
    019B FDE2      SBRC	R30,2
    019C 9508      RET
    019D 90C9      LD	R12,Y+
    019E 90D9      LD	R13,Y+
    019F FDE3      SBRC	R30,3
    01A0 9508      RET
    01A1 90E9      LD	R14,Y+
    01A2 90F9      LD	R15,Y+
    01A3 9508      RET

⌨️ 快捷键说明

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