📄 cradle.asm
字号:
; 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 + -