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

📄 mycontrol.lst

📁 Atmega8
💻 LST
📖 第 1 页 / 共 2 页
字号:
    00D0 938A      ST	R24,-Y
    00D1 93EA      ST	R30,-Y
    00D2 B60F      IN	R0,0x3F
    00D3 920A      ST	R0,-Y
    00D4 D0E4      RCALL	push_gset2
(0078) 
(0079) #pragma interrupt_handler int1_isr:3
(0080) void int1_isr(void) //external interupt on INT1   记录光电开关的触发脉冲
(0081) {
(0082)      Counter_IRPulse++;
    00D5 E041      LDI	R20,1
    00D6 E050      LDI	R21,0
    00D7 E060      LDI	R22,0
    00D8 E070      LDI	R23,0
    00D9 90400067  LDS	R4,_Counter_IRPulse+2
    00DB 90500068  LDS	R5,_Counter_IRPulse+3
    00DD 90200065  LDS	R2,_Counter_IRPulse
    00DF 90300066  LDS	R3,_Counter_IRPulse+1
    00E1 0E24      ADD	R2,R20
    00E2 1E35      ADC	R3,R21
    00E3 1E46      ADC	R4,R22
    00E4 1E57      ADC	R5,R23
    00E5 92300066  STS	_Counter_IRPulse+1,R3
    00E7 92200065  STS	_Counter_IRPulse,R2
    00E9 92500068  STS	_Counter_IRPulse+3,R5
    00EB 92400067  STS	_Counter_IRPulse+2,R4
(0083) 	 if(Counter_IRPulse >= 1000){  //计算并触发打印按钮
    00ED EE48      LDI	R20,0xE8
    00EE E053      LDI	R21,3
    00EF E060      LDI	R22,0
    00F0 E070      LDI	R23,0
    00F1 1624      CP	R2,R20
    00F2 0635      CPC	R3,R21
    00F3 0646      CPC	R4,R22
    00F4 0657      CPC	R5,R23
    00F5 F06C      BLT	0x0103
(0084) 	    Counter_IRPulse=0;
    00F6 E040      LDI	R20,0
    00F7 E050      LDI	R21,0
    00F8 E060      LDI	R22,0
    00F9 E070      LDI	R23,0
    00FA 93500066  STS	_Counter_IRPulse+1,R21
    00FC 93400065  STS	_Counter_IRPulse,R20
    00FE 93700068  STS	_Counter_IRPulse+3,R23
    0100 93600067  STS	_Counter_IRPulse+2,R22
(0085) 	    PORTB |=64; //PB6脚置高电平
    0102 9AC6      SBI	0x18,6
(0086) 	 }
(0087)      if(Counter_IRPulse == 500) PORTB &=191; //PB6脚置低电平
    0103 EF44      LDI	R20,0xF4
    0104 E051      LDI	R21,1
    0105 E060      LDI	R22,0
    0106 E070      LDI	R23,0
    0107 90400067  LDS	R4,_Counter_IRPulse+2
    0109 90500068  LDS	R5,_Counter_IRPulse+3
    010B 90200065  LDS	R2,_Counter_IRPulse
    010D 90300066  LDS	R3,_Counter_IRPulse+1
    010F 1624      CP	R2,R20
    0110 0635      CPC	R3,R21
    0111 0646      CPC	R4,R22
    0112 0657      CPC	R5,R23
    0113 F419      BNE	0x0117
    0114 B388      IN	R24,0x18
    0115 7B8F      ANDI	R24,0xBF
    0116 BB88      OUT	0x18,R24
(0088) }
    0117 D088      RCALL	pop_gset2
    0118 9009      LD	R0,Y+
    0119 BE0F      OUT	0x3F,R0
    011A 91E9      LD	R30,Y+
    011B 9189      LD	R24,Y+
    011C 9059      LD	R5,Y+
    011D 9049      LD	R4,Y+
    011E 9039      LD	R3,Y+
    011F 9029      LD	R2,Y+
    0120 9019      LD	R1,Y+
    0121 9009      LD	R0,Y+
    0122 9518      RETI
(0089) 
(0090) //call this routine to initialise all peripherals
(0091) void init_devices(void)
(0092) {
(0093)  //stop errant interrupts until set up
(0094)  CLI(); //disable all interrupts
_init_devices:
    0123 94F8      BCLR	7
(0095)  port_init();
    0124 DF0F      RCALL	_port_init
(0096)  timer2_init();
    0125 DF3C      RCALL	_timer2_init
(0097)  timer1_init();
    0126 DF18      RCALL	_timer1_init
(0098) 
(0099)  MCUCR = 0x0F;
    0127 E08F      LDI	R24,0xF
    0128 BF85      OUT	0x35,R24
(0100)  GICR  = 0xC0;
    0129 EC80      LDI	R24,0xC0
    012A BF8B      OUT	0x3B,R24
(0101)  TIMSK = 0x18; //timer interrupt sources
    012B E188      LDI	R24,0x18
    012C BF89      OUT	0x39,R24
(0102)  SEI(); //re-enable interrupts
    012D 9478      BSET	7
(0103)  //all peripherals are now initialised
(0104) }
    012E 9508      RET
(0105) 
(0106) void main()
(0107) {
(0108)    Settings_IRTopValue = 1000;        //光电开关触发Settings_IRTopValue次后就开始打印一条信息 
_main:
    012F EE48      LDI	R20,0xE8
    0130 E053      LDI	R21,3
    0131 E060      LDI	R22,0
    0132 E070      LDI	R23,0
    0133 93500062  STS	_Settings_IRTopValue+1,R21
    0135 93400061  STS	_Settings_IRTopValue,R20
    0137 93700064  STS	_Settings_IRTopValue+3,R23
    0139 93600063  STS	_Settings_IRTopValue+2,R22
(0109)    Settings_PrintQuality = 10;     //10个墨滴选一个充电
    013B E08A      LDI	R24,0xA
    013C 93800060  STS	_Settings_PrintQuality,R24
(0110)    Counter_MotorSpeedPulse =0;
    013E E040      LDI	R20,0
    013F E050      LDI	R21,0
    0140 E060      LDI	R22,0
    0141 E070      LDI	R23,0
    0142 9350006A  STS	_Counter_MotorSpeedPulse+1,R21
    0144 93400069  STS	_Counter_MotorSpeedPulse,R20
    0146 9370006C  STS	_Counter_MotorSpeedPulse+3,R23
    0148 9360006B  STS	_Counter_MotorSpeedPulse+2,R22
(0111)    Counter_IRPulse =0;
    014A E040      LDI	R20,0
    014B E050      LDI	R21,0
    014C E060      LDI	R22,0
    014D E070      LDI	R23,0
    014E 93500066  STS	_Counter_IRPulse+1,R21
    0150 93400065  STS	_Counter_IRPulse,R20
    0152 93700068  STS	_Counter_IRPulse+3,R23
    0154 93600067  STS	_Counter_IRPulse+2,R22
(0112)    
(0113)    init_devices();
(0114) }
FILE: <library>
    0156 CFCC      RJMP	_init_devices
mod16s:
    0157 9468      BSET	6
    0158 92DA      ST	R13,-Y
    0159 2ED1      MOV	R13,R17
    015A C004      RJMP	0x015F
div16s:
    015B 94E8      BCLR	6
    015C 92DA      ST	R13,-Y
    015D 2ED1      MOV	R13,R17
    015E 26D3      EOR	R13,R19
    015F FF17      SBRS	R17,7
    0160 C004      RJMP	0x0165
    0161 9510      COM	R17
    0162 9500      COM	R16
    0163 5F0F      SUBI	R16,0xFF
    0164 4F1F      SBCI	R17,0xFF
    0165 FF37      SBRS	R19,7
    0166 C004      RJMP	0x016B
    0167 9530      COM	R19
    0168 9520      COM	R18
    0169 5F2F      SUBI	R18,0xFF
    016A 4F3F      SBCI	R19,0xFF
    016B D00B      RCALL	xdiv16u
    016C FED7      SBRS	R13,7
    016D C004      RJMP	0x0172
    016E 9510      COM	R17
    016F 9500      COM	R16
    0170 5F0F      SUBI	R16,0xFF
    0171 4F1F      SBCI	R17,0xFF
    0172 90D9      LD	R13,Y+
    0173 9508      RET
mod16u:
    0174 9468      BSET	6
    0175 C001      RJMP	xdiv16u
div16u:
    0176 94E8      BCLR	6
xdiv16u:
    0177 92EA      ST	R14,-Y
    0178 92FA      ST	R15,-Y
    0179 938A      ST	R24,-Y
    017A 24EE      CLR	R14
    017B 24FF      CLR	R15
    017C E180      LDI	R24,0x10
    017D 0F00      LSL	R16
    017E 1F11      ROL	R17
    017F 1CEE      ROL	R14
    0180 1CFF      ROL	R15
    0181 16E2      CP	R14,R18
    0182 06F3      CPC	R15,R19
    0183 F018      BCS	0x0187
    0184 1AE2      SUB	R14,R18
    0185 0AF3      SBC	R15,R19
    0186 9503      INC	R16
    0187 958A      DEC	R24
    0188 F7A1      BNE	0x017D
    0189 F416      BRTC	0x018C
    018A 2D0E      MOV	R16,R14
    018B 2D1F      MOV	R17,R15
    018C 9189      LD	R24,Y+
    018D 90F9      LD	R15,Y+
    018E 90E9      LD	R14,Y+
    018F 9508      RET
empy16s:
    0190 920A      ST	R0,-Y
    0191 921A      ST	R1,-Y
    0192 938A      ST	R24,-Y
    0193 939A      ST	R25,-Y
    0194 9F02      MUL	R16,R18
    0195 01C0      MOVW	R24,R0
    0196 9F12      MUL	R17,R18
    0197 0D90      ADD	R25,R0
    0198 9F03      MUL	R16,R19
    0199 0D90      ADD	R25,R0
    019A 018C      MOVW	R16,R24
    019B 9199      LD	R25,Y+
    019C 9189      LD	R24,Y+
    019D 9019      LD	R1,Y+
    019E 9009      LD	R0,Y+
    019F 9508      RET
pop_gset2:
    01A0 E0E2      LDI	R30,2
    01A1 C004      RJMP	pop
push_gset1:
    01A2 935A      ST	R21,-Y
    01A3 934A      ST	R20,-Y
    01A4 9508      RET
pop_gset1:
    01A5 E0E1      LDI	R30,1
pop:
    01A6 9149      LD	R20,Y+
    01A7 9159      LD	R21,Y+
    01A8 FDE0      SBRC	R30,0
    01A9 9508      RET
    01AA 9169      LD	R22,Y+
    01AB 9179      LD	R23,Y+
    01AC FDE1      SBRC	R30,1
    01AD 9508      RET
    01AE 90A9      LD	R10,Y+
    01AF 90B9      LD	R11,Y+
    01B0 FDE2      SBRC	R30,2
    01B1 9508      RET
    01B2 90C9      LD	R12,Y+
    01B3 90D9      LD	R13,Y+
    01B4 FDE3      SBRC	R30,3
    01B5 9508      RET
    01B6 90E9      LD	R14,Y+
    01B7 90F9      LD	R15,Y+
    01B8 9508      RET
push_gset2:
    01B9 937A      ST	R23,-Y
    01BA 936A      ST	R22,-Y
    01BB CFE6      RJMP	push_gset1

⌨️ 快捷键说明

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