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

📄 cradle.asm

📁 Firmware of the Cradle I have made
💻 ASM
📖 第 1 页 / 共 2 页
字号:
$00EA	$	L_Start_motor_13:
$00EA	$	L_Start_motor_11:
;Cradle.c,77 :: 		}
$00EA	$0008			RETURN
$00EB	$	_Stop_motor:
;Cradle.c,35 :: 		void Stop_motor()
;Cradle.c,37 :: 		while (speed != 120)
$00EB	$	L_Stop_motor_4:
$00EB	$3000			MOVLW	0
$00EC	$1303			BCF	STATUS, RP1
$00ED	$1283			BCF	STATUS, RP0
$00EE	$0621			XORWF	_speed+1, 0
$00EF	$1D03			BTFSS	STATUS, Z
$00F0	$28F3			GOTO	L_Stop_motor_34
$00F1	$3078			MOVLW	120
$00F2	$0620			XORWF	_speed, 0
$00F3	$	L_Stop_motor_34:
$00F3	$1903			BTFSC	STATUS, Z
$00F4	$290C			GOTO	L_Stop_motor_5
;Cradle.c,39 :: 		delay_ms(30);
$00F5	$3027			MOVLW	39
$00F6	$00FB			MOVWF	STACK_11
$00F7	$30FF			MOVLW	255
$00F8	$00FA			MOVWF	STACK_10
$00F9	$0BFB			DECFSZ	STACK_11, F
$00FA	$28FC			GOTO	$+2
$00FB	$28FF			GOTO	$+4
$00FC	$0BFA			DECFSZ	STACK_10, F
$00FD	$28FC			GOTO	$-1
$00FE	$28F9			GOTO	$-5
$00FF	$30DB			MOVLW	219
$0100	$00FA			MOVWF	STACK_10
$0101	$0BFA			DECFSZ	STACK_10, F
$0102	$2901			GOTO	$-1
$0103	$0000			NOP
;Cradle.c,40 :: 		PWM_Duty (speed);
$0104	$0820			MOVF	_speed, 0
$0105	$00A4			MOVWF	FARG_PWM_Duty+0
$0106	$2004			CALL	_PWM_Duty
;Cradle.c,41 :: 		speed--;
$0107	$3001			MOVLW	1
$0108	$02A0			SUBWF	_speed, 1
$0109	$1C03			BTFSS	STATUS, C
$010A	$03A1			DECF	_speed+1, 1
;Cradle.c,42 :: 		}
$010B	$28EB			GOTO	L_Stop_motor_4
$010C	$	L_Stop_motor_5:
;Cradle.c,47 :: 		Stop_PWM();
$010C	$202B			CALL	_Stop_PWM
;Cradle.c,48 :: 		Delay_ms (5000);
$010D	$301A			MOVLW	26
$010E	$00FC			MOVWF	STACK_12
$010F	$30FF			MOVLW	255
$0110	$00FB			MOVWF	STACK_11
$0111	$30FF			MOVLW	255
$0112	$00FA			MOVWF	STACK_10
$0113	$0BFC			DECFSZ	STACK_12, F
$0114	$2916			GOTO	$+2
$0115	$291D			GOTO	$+8
$0116	$0BFB			DECFSZ	STACK_11, F
$0117	$2919			GOTO	$+2
$0118	$291C			GOTO	$+4
$0119	$0BFA			DECFSZ	STACK_10, F
$011A	$2919			GOTO	$-1
$011B	$2916			GOTO	$-5
$011C	$2913			GOTO	$-9
$011D	$307F			MOVLW	127
$011E	$00FB			MOVWF	STACK_11
$011F	$30FF			MOVLW	255
$0120	$00FA			MOVWF	STACK_10
$0121	$0BFB			DECFSZ	STACK_11, F
$0122	$2924			GOTO	$+2
$0123	$2927			GOTO	$+4
$0124	$0BFA			DECFSZ	STACK_10, F
$0125	$2924			GOTO	$-1
$0126	$2921			GOTO	$-5
$0127	$3058			MOVLW	88
$0128	$00FA			MOVWF	STACK_10
$0129	$0BFA			DECFSZ	STACK_10, F
$012A	$2929			GOTO	$-1
$012B	$0000			NOP
$012C	$0000			NOP
;Cradle.c,49 :: 		}
$012D	$0008			RETURN
$012E	$	_main:
;Cradle.c,79 :: 		void main()
;Cradle.c,81 :: 		PORTA = 0;
$012E	$1303			BCF	STATUS, RP1
$012F	$1283			BCF	STATUS, RP0
$0130	$0185			CLRF	PORTA, 1
;Cradle.c,82 :: 		PORTB = 0;
$0131	$0186			CLRF	PORTB, 1
;Cradle.c,83 :: 		TRISA = 0x1f;
$0132	$301F			MOVLW	31
$0133	$1683			BSF	STATUS, RP0
$0134	$0085			MOVWF	TRISA
;Cradle.c,84 :: 		TRISB = 0;
$0135	$0186			CLRF	TRISB, 1
;Cradle.c,85 :: 		CMCON = 3;
$0136	$3003			MOVLW	3
$0137	$1283			BCF	STATUS, RP0
$0138	$009F			MOVWF	CMCON
;Cradle.c,86 :: 		PWM_Period(250);
$0139	$30FA			MOVLW	250
$013A	$00A3			MOVWF	FARG_PWM_Period+0
$013B	$2088			CALL	_PWM_Period
;Cradle.c,87 :: 		while (1)
$013C	$	L_main_14:
;Cradle.c,89 :: 		if (PORTA.F3 == 1)
$013C	$3000			MOVLW	0
$013D	$1985			BTFSC	PORTA, 3
$013E	$3001			MOVLW	1
$013F	$00F2			MOVWF	STACK_2
$0140	$0872			MOVF	STACK_2, 0
$0141	$3A01			XORLW	1
$0142	$1D03			BTFSS	STATUS, Z
$0143	$29DB			GOTO	L_main_16
;Cradle.c,91 :: 		PORTB.F0 = 0;
$0144	$1006			BCF	PORTB, 0
;Cradle.c,92 :: 		PORTB.F1 = 1;
$0145	$1486			BSF	PORTB, 1
;Cradle.c,93 :: 		Delay_ms (1000);
$0146	$3006			MOVLW	6
$0147	$00FC			MOVWF	STACK_12
$0148	$30FF			MOVLW	255
$0149	$00FB			MOVWF	STACK_11
$014A	$30FF			MOVLW	255
$014B	$00FA			MOVWF	STACK_10
$014C	$0BFC			DECFSZ	STACK_12, F
$014D	$294F			GOTO	$+2
$014E	$2956			GOTO	$+8
$014F	$0BFB			DECFSZ	STACK_11, F
$0150	$2952			GOTO	$+2
$0151	$2955			GOTO	$+4
$0152	$0BFA			DECFSZ	STACK_10, F
$0153	$2952			GOTO	$-1
$0154	$294F			GOTO	$-5
$0155	$294C			GOTO	$-9
$0156	$301A			MOVLW	26
$0157	$00FB			MOVWF	STACK_11
$0158	$30FF			MOVLW	255
$0159	$00FA			MOVWF	STACK_10
$015A	$0BFB			DECFSZ	STACK_11, F
$015B	$295D			GOTO	$+2
$015C	$2960			GOTO	$+4
$015D	$0BFA			DECFSZ	STACK_10, F
$015E	$295D			GOTO	$-1
$015F	$295A			GOTO	$-5
$0160	$3042			MOVLW	66
$0161	$00FA			MOVWF	STACK_10
$0162	$0BFA			DECFSZ	STACK_10, F
$0163	$2962			GOTO	$-1
;Cradle.c,94 :: 		while (PORTB.F1 !=0)
$0164	$	L_main_17:
$0164	$3000			MOVLW	0
$0165	$1886			BTFSC	PORTB, 1
$0166	$3001			MOVLW	1
$0167	$00F2			MOVWF	STACK_2
$0168	$0872			MOVF	STACK_2, 0
$0169	$3A00			XORLW	0
$016A	$1903			BTFSC	STATUS, Z
$016B	$29DA			GOTO	L_main_18
;Cradle.c,96 :: 		if (CMCON.C2OUT == 0) // Motion sensor triggered
$016C	$3000			MOVLW	0
$016D	$1B9F			BTFSC	CMCON, 7
$016E	$3001			MOVLW	1
$016F	$00F2			MOVWF	STACK_2
$0170	$0872			MOVF	STACK_2, 0
$0171	$3A00			XORLW	0
$0172	$1D03			BTFSS	STATUS, Z
$0173	$29A1			GOTO	L_main_19
;Cradle.c,98 :: 		Start_motor();
$0174	$2096			CALL	_Start_motor
;Cradle.c,99 :: 		if (flag == 1)
$0175	$0822			MOVF	_flag, 0
$0176	$3A01			XORLW	1
$0177	$1D03			BTFSS	STATUS, Z
$0178	$297A			GOTO	L_main_20
;Cradle.c,101 :: 		goto sub1
$0179	$29B8			GOTO	___main_sub1
;Cradle.c,102 :: 		}
$017A	$	L_main_20:
;Cradle.c,103 :: 		while (CMCON.C2OUT == 0)
$017A	$	L_main_21:
$017A	$3000			MOVLW	0
$017B	$1B9F			BTFSC	CMCON, 7
$017C	$3001			MOVLW	1
$017D	$00F2			MOVWF	STACK_2
$017E	$0872			MOVF	STACK_2, 0
$017F	$3A00			XORLW	0
$0180	$1D03			BTFSS	STATUS, Z
$0181	$299F			GOTO	L_main_22
;Cradle.c,105 :: 		if (CMCON.C1OUT == 0)
$0182	$3000			MOVLW	0
$0183	$1B1F			BTFSC	CMCON, 6
$0184	$3001			MOVLW	1
$0185	$00F2			MOVWF	STACK_2
$0186	$0872			MOVF	STACK_2, 0
$0187	$3A00			XORLW	0
$0188	$1D03			BTFSS	STATUS, Z
$0189	$298D			GOTO	L_main_23
;Cradle.c,107 :: 		Stop_motor();
$018A	$20EB			CALL	_Stop_motor
;Cradle.c,108 :: 		alarm();
$018B	$2037			CALL	_alarm
;Cradle.c,109 :: 		goto sub1
$018C	$29B8			GOTO	___main_sub1
;Cradle.c,110 :: 		}
$018D	$	L_main_23:
;Cradle.c,111 :: 		else if ((PORTA.F3 == 1) || (flag == 1))
$018D	$3000			MOVLW	0
$018E	$1985			BTFSC	PORTA, 3
$018F	$3001			MOVLW	1
$0190	$00F2			MOVWF	STACK_2
$0191	$0872			MOVF	STACK_2, 0
$0192	$3A01			XORLW	1
$0193	$1903			BTFSC	STATUS, Z
$0194	$299A			GOTO	L341_ex_L_main_27
$0195	$0822			MOVF	_flag, 0
$0196	$3A01			XORLW	1
$0197	$1903			BTFSC	STATUS, Z
$0198	$299A			GOTO	L341_ex_L_main_27
$0199	$299E			GOTO	L_main_27
$019A	$	L341_ex_L_main_27:
;Cradle.c,113 :: 		flag = 1;
$019A	$3001			MOVLW	1
$019B	$00A2			MOVWF	_flag
;Cradle.c,114 :: 		Stop_motor();
$019C	$20EB			CALL	_Stop_motor
;Cradle.c,115 :: 		goto sub1
$019D	$29B8			GOTO	___main_sub1
;Cradle.c,116 :: 		}
$019E	$	L_main_27:
$019E	$	L_main_24:
;Cradle.c,117 :: 		}
$019E	$297A			GOTO	L_main_21
$019F	$	L_main_22:
;Cradle.c,118 :: 		Stop_motor();
$019F	$20EB			CALL	_Stop_motor
;Cradle.c,119 :: 		}
$01A0	$29D9			GOTO	L_main_28
$01A1	$	L_main_19:
;Cradle.c,120 :: 		else if (CMCON.C1OUT == 0)// Wetness sensor triggered
$01A1	$3000			MOVLW	0
$01A2	$1B1F			BTFSC	CMCON, 6
$01A3	$3001			MOVLW	1
$01A4	$00F2			MOVWF	STACK_2
$01A5	$0872			MOVF	STACK_2, 0
$01A6	$3A00			XORLW	0
$01A7	$1D03			BTFSS	STATUS, Z
$01A8	$29AB			GOTO	L_main_29
;Cradle.c,122 :: 		alarm();
$01A9	$2037			CALL	_alarm
;Cradle.c,123 :: 		break;
$01AA	$29DA			GOTO	L_main_18
;Cradle.c,124 :: 		}
$01AB	$	L_main_29:
;Cradle.c,125 :: 		else if ((PORTA.F3 == 1) || (flag == 1))
$01AB	$3000			MOVLW	0
$01AC	$1985			BTFSC	PORTA, 3
$01AD	$3001			MOVLW	1
$01AE	$00F2			MOVWF	STACK_2
$01AF	$0872			MOVF	STACK_2, 0
$01B0	$3A01			XORLW	1
$01B1	$1903			BTFSC	STATUS, Z
$01B2	$29B8			GOTO	L375_ex_L_main_33
$01B3	$0822			MOVF	_flag, 0
$01B4	$3A01			XORLW	1
$01B5	$1903			BTFSC	STATUS, Z
$01B6	$29B8			GOTO	L375_ex_L_main_33
$01B7	$29D9			GOTO	L_main_33
$01B8	$	L375_ex_L_main_33:
;Cradle.c,127 :: 		sub1: PORTB.F0 = 1;
$01B8	$	___main_sub1:
$01B8	$1406			BSF	PORTB, 0
;Cradle.c,128 :: 		PORTB.F1 = 0;
$01B9	$1086			BCF	PORTB, 1
;Cradle.c,129 :: 		Delay_ms (1000);
$01BA	$3006			MOVLW	6
$01BB	$00FC			MOVWF	STACK_12
$01BC	$30FF			MOVLW	255
$01BD	$00FB			MOVWF	STACK_11
$01BE	$30FF			MOVLW	255
$01BF	$00FA			MOVWF	STACK_10
$01C0	$0BFC			DECFSZ	STACK_12, F
$01C1	$29C3			GOTO	$+2
$01C2	$29CA			GOTO	$+8
$01C3	$0BFB			DECFSZ	STACK_11, F
$01C4	$29C6			GOTO	$+2
$01C5	$29C9			GOTO	$+4
$01C6	$0BFA			DECFSZ	STACK_10, F
$01C7	$29C6			GOTO	$-1
$01C8	$29C3			GOTO	$-5
$01C9	$29C0			GOTO	$-9
$01CA	$301A			MOVLW	26
$01CB	$00FB			MOVWF	STACK_11
$01CC	$30FF			MOVLW	255
$01CD	$00FA			MOVWF	STACK_10
$01CE	$0BFB			DECFSZ	STACK_11, F
$01CF	$29D1			GOTO	$+2
$01D0	$29D4			GOTO	$+4
$01D1	$0BFA			DECFSZ	STACK_10, F
$01D2	$29D1			GOTO	$-1
$01D3	$29CE			GOTO	$-5
$01D4	$3042			MOVLW	66
$01D5	$00FA			MOVWF	STACK_10
$01D6	$0BFA			DECFSZ	STACK_10, F
$01D7	$29D6			GOTO	$-1
;Cradle.c,130 :: 		break;
$01D8	$29DA			GOTO	L_main_18
;Cradle.c,131 :: 		}
$01D9	$	L_main_33:
$01D9	$	L_main_30:
$01D9	$	L_main_28:
;Cradle.c,132 :: 		}
$01D9	$2964			GOTO	L_main_17
$01DA	$	L_main_18:
;Cradle.c,133 :: 		flag = 0;
$01DA	$01A2			CLRF	_flag, 1
;Cradle.c,134 :: 		}
$01DB	$	L_main_16:
;Cradle.c,135 :: 		PORTB.F0 = 1;
$01DB	$1406			BSF	PORTB, 0
;Cradle.c,136 :: 		PORTB.F1 = 0;
$01DC	$1086			BCF	PORTB, 1
;Cradle.c,137 :: 		}
$01DD	$293C			GOTO	L_main_14
;Cradle.c,138 :: 		}
$01DE	$29DE			GOTO	$

⌨️ 快捷键说明

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