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

📄 cradle.asm

📁 Firmware of the Cradle I have made
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;  ASM code generated by mikroVirtualMachine for PIC - V. 5.0.0.3
;  Date/Time: 10/8/2007 4:19:05 AM
;  Info: http://www.mikroelektronika.co.yu


; ADDRESS	OPCODE	ASM
; ----------------------------------------------
$0000	$292E			GOTO	_main
$0004	$	_PWM_Duty:
;utilities.c,11 :: 		PWM_Duty(unsigned short x)
;utilities.c,13 :: 		asm CLRF	CCPR1L, 1
$0004	$0195			CLRF	CCPR1L, 1
;utilities.c,14 :: 		asm BCF	CCP1CON, 4
$0005	$1217			BCF	CCP1CON, 4
;utilities.c,15 :: 		asm BCF	CCP1CON, 5
$0006	$1297			BCF	CCP1CON, 5
;utilities.c,17 :: 		if (x.F0 == 1)
$0007	$3001			MOVLW	1
$0008	$1303			BCF	STATUS, RP1
$0009	$1283			BCF	STATUS, RP0
$000A	$0524			ANDWF	FARG_PWM_Duty+0, 0
$000B	$00F1			MOVWF	STACK_1
$000C	$0871			MOVF	STACK_1, 0
$000D	$3A01			XORLW	1
$000E	$1D03			BTFSS	STATUS, Z
$000F	$2811			GOTO	L_PWM_Duty_0
;utilities.c,19 :: 		asm BSF CCP1CON, 4
$0010	$1617			BSF	CCP1CON, 4
;utilities.c,20 :: 		}
$0011	$	L_PWM_Duty_0:
;utilities.c,21 :: 		if (x.F1 == 1)
$0011	$3000			MOVLW	0
$0012	$18A4			BTFSC	FARG_PWM_Duty+0, 1
$0013	$3001			MOVLW	1
$0014	$00F1			MOVWF	STACK_1
$0015	$0871			MOVF	STACK_1, 0
$0016	$3A01			XORLW	1
$0017	$1D03			BTFSS	STATUS, Z
$0018	$281A			GOTO	L_PWM_Duty_1
;utilities.c,23 :: 		asm BSF CCP1CON, 5
$0019	$1697			BSF	CCP1CON, 5
;utilities.c,24 :: 		}
$001A	$	L_PWM_Duty_1:
;utilities.c,25 :: 		CCPR1L = x >> 2;
$001A	$0824			MOVF	FARG_PWM_Duty+0, 0
$001B	$00F0			MOVWF	STACK_0
$001C	$0CF0			RRF	STACK_0, 1
$001D	$13F0			BCF	STACK_0, 7
$001E	$0CF0			RRF	STACK_0, 1
$001F	$13F0			BCF	STACK_0, 7
$0020	$0870			MOVF	STACK_0, 0
$0021	$0095			MOVWF	CCPR1L
;utilities.c,26 :: 		}
$0022	$0008			RETURN
$0023	$	_Start_PWM:
;utilities.c,28 :: 		Start_PWM()
;utilities.c,30 :: 		asm BCF	STATUS, RP1
$0023	$1303			BCF	STATUS, RP1
;utilities.c,31 :: 		asm BSF	STATUS, RP0
$0024	$1683			BSF	STATUS, RP0
;utilities.c,32 :: 		asm BCF	TRISB, 3
$0025	$1186			BCF	TRISB, 3
;utilities.c,33 :: 		asm BCF	STATUS, RP0
$0026	$1283			BCF	STATUS, RP0
;utilities.c,34 :: 		asm BSF	T2CON, 2
$0027	$1512			BSF	T2CON, 2
;utilities.c,35 :: 		asm MOVLW	12
$0028	$300C			MOVLW	12
;utilities.c,36 :: 		asm IORWF	CCP1CON, 1
$0029	$0497			IORWF	CCP1CON, 1
;utilities.c,37 :: 		}
$002A	$0008			RETURN
$002B	$	_Stop_PWM:
;utilities.c,39 :: 		Stop_PWM()
;utilities.c,41 :: 		asm BCF	STATUS, RP1
$002B	$1303			BCF	STATUS, RP1
;utilities.c,42 :: 		asm BSF	STATUS, RP0
$002C	$1683			BSF	STATUS, RP0
;utilities.c,43 :: 		asm BSF	TRISB, 3
$002D	$1586			BSF	TRISB, 3
;utilities.c,44 :: 		asm BCF	STATUS, RP0
$002E	$1283			BCF	STATUS, RP0
;utilities.c,45 :: 		asm CLRF	T2CON, 1
$002F	$0192			CLRF	T2CON, 1
;utilities.c,46 :: 		asm MOVLW	240
$0030	$30F0			MOVLW	240
;utilities.c,47 :: 		asm ANDWF	CCP1CON, 1
$0031	$0597			ANDWF	CCP1CON, 1
;utilities.c,48 :: 		asm BSF STATUS,RP0
$0032	$1683			BSF	STATUS, RP0
;utilities.c,49 :: 		asm BCF TRISB, 3
$0033	$1186			BCF	TRISB, 3
;utilities.c,50 :: 		asm BCF STATUS,RP0
$0034	$1283			BCF	STATUS, RP0
;utilities.c,51 :: 		asm BCF PORTB,3
$0035	$1186			BCF	PORTB, 3
;utilities.c,52 :: 		}
$0036	$0008			RETURN
$0037	$	_alarm:
;Cradle.c,19 :: 		alarm ()
;Cradle.c,21 :: 		INTCON.GIE = 0;                   // Disable interrupts
$0037	$138B			BCF	INTCON, 7
;Cradle.c,22 :: 		while (PORTA.F3 != 1)
$0038	$	L_alarm_2:
$0038	$3000			MOVLW	0
$0039	$1303			BCF	STATUS, RP1
$003A	$1283			BCF	STATUS, RP0
$003B	$1985			BTFSC	PORTA, 3
$003C	$3001			MOVLW	1
$003D	$00F1			MOVWF	STACK_1
$003E	$0871			MOVF	STACK_1, 0
$003F	$3A01			XORLW	1
$0040	$1903			BTFSC	STATUS, Z
$0041	$2885			GOTO	L_alarm_3
;Cradle.c,24 :: 		PORTB.F4 = 1;
$0042	$1606			BSF	PORTB, 4
;Cradle.c,25 :: 		PORTB.F1 = 1;
$0043	$1486			BSF	PORTB, 1
;Cradle.c,26 :: 		Delay_ms(500);
$0044	$3003			MOVLW	3
$0045	$00FC			MOVWF	STACK_12
$0046	$30FF			MOVLW	255
$0047	$00FB			MOVWF	STACK_11
$0048	$30FF			MOVLW	255
$0049	$00FA			MOVWF	STACK_10
$004A	$0BFC			DECFSZ	STACK_12, F
$004B	$284D			GOTO	$+2
$004C	$2854			GOTO	$+8
$004D	$0BFB			DECFSZ	STACK_11, F
$004E	$2850			GOTO	$+2
$004F	$2853			GOTO	$+4
$0050	$0BFA			DECFSZ	STACK_10, F
$0051	$2850			GOTO	$-1
$0052	$284D			GOTO	$-5
$0053	$284A			GOTO	$-9
$0054	$308C			MOVLW	140
$0055	$00FB			MOVWF	STACK_11
$0056	$30FF			MOVLW	255
$0057	$00FA			MOVWF	STACK_10
$0058	$0BFB			DECFSZ	STACK_11, F
$0059	$285B			GOTO	$+2
$005A	$285E			GOTO	$+4
$005B	$0BFA			DECFSZ	STACK_10, F
$005C	$285B			GOTO	$-1
$005D	$2858			GOTO	$-5
$005E	$30A1			MOVLW	161
$005F	$00FA			MOVWF	STACK_10
$0060	$0BFA			DECFSZ	STACK_10, F
$0061	$2860			GOTO	$-1
$0062	$0000			NOP
;Cradle.c,27 :: 		PORTB.F4 = 0;
$0063	$1206			BCF	PORTB, 4
;Cradle.c,28 :: 		PORTB.F1 = 0;
$0064	$1086			BCF	PORTB, 1
;Cradle.c,29 :: 		Delay_ms(500);
$0065	$3003			MOVLW	3
$0066	$00FC			MOVWF	STACK_12
$0067	$30FF			MOVLW	255
$0068	$00FB			MOVWF	STACK_11
$0069	$30FF			MOVLW	255
$006A	$00FA			MOVWF	STACK_10
$006B	$0BFC			DECFSZ	STACK_12, F
$006C	$286E			GOTO	$+2
$006D	$2875			GOTO	$+8
$006E	$0BFB			DECFSZ	STACK_11, F
$006F	$2871			GOTO	$+2
$0070	$2874			GOTO	$+4
$0071	$0BFA			DECFSZ	STACK_10, F
$0072	$2871			GOTO	$-1
$0073	$286E			GOTO	$-5
$0074	$286B			GOTO	$-9
$0075	$308C			MOVLW	140
$0076	$00FB			MOVWF	STACK_11
$0077	$30FF			MOVLW	255
$0078	$00FA			MOVWF	STACK_10
$0079	$0BFB			DECFSZ	STACK_11, F
$007A	$287C			GOTO	$+2
$007B	$287F			GOTO	$+4
$007C	$0BFA			DECFSZ	STACK_10, F
$007D	$287C			GOTO	$-1
$007E	$2879			GOTO	$-5
$007F	$30A1			MOVLW	161
$0080	$00FA			MOVWF	STACK_10
$0081	$0BFA			DECFSZ	STACK_10, F
$0082	$2881			GOTO	$-1
$0083	$0000			NOP
;Cradle.c,30 :: 		}                        // Wait for a while
$0084	$2838			GOTO	L_alarm_2
$0085	$	L_alarm_3:
;Cradle.c,31 :: 		PORTB.F4 = 0;
$0085	$1206			BCF	PORTB, 4
;Cradle.c,32 :: 		PORTB.F1 = 1;
$0086	$1486			BSF	PORTB, 1
;Cradle.c,33 :: 		}
$0087	$0008			RETURN
$0088	$	_PWM_Period:
;utilities.c,1 :: 		PWM_Period(unsigned short x)
;utilities.c,3 :: 		PR2 = x;
$0088	$1303			BCF	STATUS, RP1
$0089	$1283			BCF	STATUS, RP0
$008A	$0823			MOVF	FARG_PWM_Period+0, 0
$008B	$1683			BSF	STATUS, RP0
$008C	$0092			MOVWF	PR2
;utilities.c,4 :: 		T2CON = 0x14;
$008D	$3014			MOVLW	20
$008E	$1283			BCF	STATUS, RP0
$008F	$0092			MOVWF	T2CON
;utilities.c,5 :: 		asm BCF	STATUS, RP1
$0090	$1303			BCF	STATUS, RP1
;utilities.c,6 :: 		asm BCF	STATUS, RP0
$0091	$1283			BCF	STATUS, RP0
;utilities.c,7 :: 		asm CLRF	CCPR1L, 1
$0092	$0195			CLRF	CCPR1L, 1
;utilities.c,8 :: 		asm BCF	CCP1CON, 4
$0093	$1217			BCF	CCP1CON, 4
;utilities.c,9 :: 		asm BCF	CCP1CON, 5
$0094	$1297			BCF	CCP1CON, 5
;utilities.c,10 :: 		}
$0095	$0008			RETURN
$0096	$	_Start_motor:
;Cradle.c,51 :: 		void Start_motor()
;Cradle.c,53 :: 		speed = 120;
$0096	$3078			MOVLW	120
$0097	$1303			BCF	STATUS, RP1
$0098	$1283			BCF	STATUS, RP0
$0099	$00A0			MOVWF	_speed
$009A	$3000			MOVLW	0
$009B	$00A1			MOVWF	_speed+1
;Cradle.c,54 :: 		PWM_Duty (speed);
$009C	$3078			MOVLW	120
$009D	$00A4			MOVWF	FARG_PWM_Duty+0
$009E	$2004			CALL	_PWM_Duty
;Cradle.c,55 :: 		Start_PWM();
$009F	$2023			CALL	_Start_PWM
;Cradle.c,56 :: 		while ((speed != 240) && (PORTA.F3 != 1) && (CMCON.C1OUT == 1))
$00A0	$	L_Start_motor_6:
$00A0	$3000			MOVLW	0
$00A1	$0621			XORWF	_speed+1, 0
$00A2	$1D03			BTFSS	STATUS, Z
$00A3	$28A6			GOTO	L_Start_motor_35
$00A4	$30F0			MOVLW	240
$00A5	$0620			XORWF	_speed, 0
$00A6	$	L_Start_motor_35:
$00A6	$1903			BTFSC	STATUS, Z
$00A7	$28CF			GOTO	L_Start_motor_7
$00A8	$3000			MOVLW	0
$00A9	$1985			BTFSC	PORTA, 3
$00AA	$3001			MOVLW	1
$00AB	$00F2			MOVWF	STACK_2
$00AC	$0872			MOVF	STACK_2, 0
$00AD	$3A01			XORLW	1
$00AE	$1903			BTFSC	STATUS, Z
$00AF	$28CF			GOTO	L_Start_motor_7
$00B0	$3000			MOVLW	0
$00B1	$1B1F			BTFSC	CMCON, 6
$00B2	$3001			MOVLW	1
$00B3	$00F2			MOVWF	STACK_2
$00B4	$0872			MOVF	STACK_2, 0
$00B5	$3A01			XORLW	1
$00B6	$1D03			BTFSS	STATUS, Z
$00B7	$28CF			GOTO	L_Start_motor_7
$00B8	$28B9			GOTO	L210_ex_L_Start_motor_7
$00B9	$	L210_ex_L_Start_motor_7:
;Cradle.c,58 :: 		delay_ms (30);
$00B9	$3027			MOVLW	39
$00BA	$00FB			MOVWF	STACK_11
$00BB	$30FF			MOVLW	255
$00BC	$00FA			MOVWF	STACK_10
$00BD	$0BFB			DECFSZ	STACK_11, F
$00BE	$28C0			GOTO	$+2
$00BF	$28C3			GOTO	$+4
$00C0	$0BFA			DECFSZ	STACK_10, F
$00C1	$28C0			GOTO	$-1
$00C2	$28BD			GOTO	$-5
$00C3	$30DB			MOVLW	219
$00C4	$00FA			MOVWF	STACK_10
$00C5	$0BFA			DECFSZ	STACK_10, F
$00C6	$28C5			GOTO	$-1
$00C7	$0000			NOP
;Cradle.c,59 :: 		PWM_Duty (speed);
$00C8	$0820			MOVF	_speed, 0
$00C9	$00A4			MOVWF	FARG_PWM_Duty+0
$00CA	$2004			CALL	_PWM_Duty
;Cradle.c,60 :: 		speed++;
$00CB	$0AA0			INCF	_speed, 1
$00CC	$1903			BTFSC	STATUS, Z
$00CD	$0AA1			INCF	_speed+1, 1
;Cradle.c,61 :: 		}
$00CE	$28A0			GOTO	L_Start_motor_6
$00CF	$	L_Start_motor_7:
;Cradle.c,62 :: 		if (PORTA.F3 == 1)
$00CF	$3000			MOVLW	0
$00D0	$1985			BTFSC	PORTA, 3
$00D1	$3001			MOVLW	1
$00D2	$00F2			MOVWF	STACK_2
$00D3	$0872			MOVF	STACK_2, 0
$00D4	$3A01			XORLW	1
$00D5	$1D03			BTFSS	STATUS, Z
$00D6	$28DB			GOTO	L_Start_motor_10
;Cradle.c,64 :: 		Stop_PWM();
$00D7	$202B			CALL	_Stop_PWM
;Cradle.c,65 :: 		flag = 1;
$00D8	$3001			MOVLW	1
$00D9	$00A2			MOVWF	_flag
;Cradle.c,66 :: 		}
$00DA	$28EA			GOTO	L_Start_motor_11
$00DB	$	L_Start_motor_10:
;Cradle.c,67 :: 		else if (CMCON.C1OUT == 0)
$00DB	$3000			MOVLW	0
$00DC	$1B1F			BTFSC	CMCON, 6
$00DD	$3001			MOVLW	1
$00DE	$00F2			MOVWF	STACK_2
$00DF	$0872			MOVF	STACK_2, 0
$00E0	$3A00			XORLW	0
$00E1	$1D03			BTFSS	STATUS, Z
$00E2	$28E9			GOTO	L_Start_motor_12
;Cradle.c,69 :: 		PORTB.F3 = 0;Stop_PWM();
$00E3	$1186			BCF	PORTB, 3
$00E4	$202B			CALL	_Stop_PWM
;Cradle.c,70 :: 		alarm();
$00E5	$2037			CALL	_alarm
;Cradle.c,71 :: 		flag = 1;
$00E6	$3001			MOVLW	1
$00E7	$00A2			MOVWF	_flag
;Cradle.c,72 :: 		}
$00E8	$28EA			GOTO	L_Start_motor_13
$00E9	$	L_Start_motor_12:
;Cradle.c,75 :: 		flag = 0;
$00E9	$01A2			CLRF	_flag, 1
;Cradle.c,76 :: 		}

⌨️ 快捷键说明

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