📄 avvolgibili_massimo.asm
字号:
; ASM code generated by mikroVirtualMachine for PIC - V. 5.0.0.2
; Date/Time: 11/09/2008 18.06.11
; Info: http://www.mikroelektronika.co.yu
; ADDRESS OPCODE ASM
; ----------------------------------------------
$0000 $2804 GOTO AVVOLGIBILI_MASSIMO_main
$0004 $ AVVOLGIBILI_MASSIMO_main:
^AVVOLGIBILI_MASSIMO.pbas, 1 :: program AVVOLGIBILI_MASSIMO
$0004 $ AVVOLGIBILI_MASSIMO_main_main:
$0004 $1303 BCF STATUS, RP1
$0005 $1683 BSF STATUS, RP0
^AVVOLGIBILI_MASSIMO.pbas, 10 :: trisa=%11111
$0006 $301F MOVLW 31
$0007 $1303 BCF STATUS, RP1
$0008 $1683 BSF STATUS, RP0
$0009 $0085 MOVWF TRISA
^AVVOLGIBILI_MASSIMO.pbas, 11 :: trisb=%00000000
$000A $0186 CLRF TRISB, 1
^AVVOLGIBILI_MASSIMO.pbas, 12 :: portb.1=0
$000B $1283 BCF STATUS, RP0
$000C $1086 BCF PORTB, 1
$000D $ AVVOLGIBILI_MASSIMO_L_2:
^AVVOLGIBILI_MASSIMO.pbas, 13 :: portb.3=0
$000D $1186 BCF PORTB, 3
$000E $ AVVOLGIBILI_MASSIMO_L_4:
^AVVOLGIBILI_MASSIMO.pbas, 14 :: porta.0=1
$000E $ AVVOLGIBILI_MASSIMO_L_5:
$000E $1405 BSF PORTA, 0
$000F $ AVVOLGIBILI_MASSIMO_L_6:
^AVVOLGIBILI_MASSIMO.pbas, 15 :: porta.1=1
$000F $ AVVOLGIBILI_MASSIMO_L_7:
$000F $1485 BSF PORTA, 1
$0010 $ AVVOLGIBILI_MASSIMO_L_8:
^AVVOLGIBILI_MASSIMO.pbas, 17 :: main:
$0010 $ AVVOLGIBILI_MASSIMO_main_main:
^AVVOLGIBILI_MASSIMO.pbas, 18 :: porta=0 'AZZERA PORTE A
$0010 $0185 CLRF PORTA, 1
^AVVOLGIBILI_MASSIMO.pbas, 19 :: portb=0 'AZZERA PORTE B
$0011 $0186 CLRF PORTB, 1
^AVVOLGIBILI_MASSIMO.pbas, 20 :: delay_ms(100) ' ASPETTA 1ms
$0012 $3082 MOVLW 130
$0013 $00CB MOVWF STACK_11
$0014 $30FF MOVLW 255
$0015 $00CA MOVWF STACK_10
$0016 $0BCB DECFSZ STACK_11, F
$0017 $2819 GOTO $+2
$0018 $281C GOTO $+4
$0019 $0BCA DECFSZ STACK_10, F
$001A $2819 GOTO $-1
$001B $2816 GOTO $-5
$001C $3087 MOVLW 135
$001D $00CA MOVWF STACK_10
$001E $0BCA DECFSZ STACK_10, F
$001F $281E GOTO $-1
$0020 $0000 NOP
^AVVOLGIBILI_MASSIMO.pbas, 22 :: while true ' vero o falso
$0021 $ AVVOLGIBILI_MASSIMO_L_10:
^AVVOLGIBILI_MASSIMO.pbas, 23 :: if porta.1=1 then ' SE PULSANTE SALITA PREMUTO
$0021 $1C85 BTFSS PORTA, 1
$0022 $2826 GOTO AVVOLGIBILI_MASSIMO_L_17
$0023 $3001 MOVLW 1
$0024 $00C1 MOVWF STACK_1
$0025 $2827 GOTO AVVOLGIBILI_MASSIMO_L_18
$0026 $ AVVOLGIBILI_MASSIMO_L_17:
$0026 $01C1 CLRF STACK_1, 1
$0027 $ AVVOLGIBILI_MASSIMO_L_18:
$0027 $0841 MOVF STACK_1, 0
$0028 $3A01 XORLW 1
$0029 $1D03 BTFSS STATUS, Z
$002A $282C GOTO AVVOLGIBILI_MASSIMO_L_15
$002B $ AVVOLGIBILI_MASSIMO_L_14:
^AVVOLGIBILI_MASSIMO.pbas, 24 :: goto salita ' SALTA AL SOTTOPROGRAMMA "SALITA"
$002B $28AE GOTO AVVOLGIBILI_MASSIMO_main_salita
$002C $ AVVOLGIBILI_MASSIMO_L_15:
^AVVOLGIBILI_MASSIMO.pbas, 25 :: end if ' FINE CONDIZIONE
$002C $ AVVOLGIBILI_MASSIMO_L_16:
^AVVOLGIBILI_MASSIMO.pbas, 27 :: if porta.0=1 then ' SE PULSANTE DISCESA PREMUTO
$002C $1C05 BTFSS PORTA, 0
$002D $2831 GOTO AVVOLGIBILI_MASSIMO_L_22
$002E $3001 MOVLW 1
$002F $00C1 MOVWF STACK_1
$0030 $2832 GOTO AVVOLGIBILI_MASSIMO_L_23
$0031 $ AVVOLGIBILI_MASSIMO_L_22:
$0031 $01C1 CLRF STACK_1, 1
$0032 $ AVVOLGIBILI_MASSIMO_L_23:
$0032 $0841 MOVF STACK_1, 0
$0033 $3A01 XORLW 1
$0034 $1D03 BTFSS STATUS, Z
$0035 $2837 GOTO AVVOLGIBILI_MASSIMO_L_20
$0036 $ AVVOLGIBILI_MASSIMO_L_19:
^AVVOLGIBILI_MASSIMO.pbas, 28 :: goto discesa ' SALTA AL SOTTOPROGRAMMA DISCESA
$0036 $2838 GOTO AVVOLGIBILI_MASSIMO_main_discesa
$0037 $ AVVOLGIBILI_MASSIMO_L_20:
^AVVOLGIBILI_MASSIMO.pbas, 29 :: end if ' FINE CONDIZIONE
$0037 $ AVVOLGIBILI_MASSIMO_L_21:
$0037 $2821 GOTO AVVOLGIBILI_MASSIMO_L_10
^AVVOLGIBILI_MASSIMO.pbas, 33 :: discesa:
$0038 $ AVVOLGIBILI_MASSIMO_main_discesa:
^AVVOLGIBILI_MASSIMO.pbas, 37 :: delay_ms(300) ' ASPETTA 3 ms PER CAPIRE SE P. PREMUTO O NO
$0038 $3002 MOVLW 2
$0039 $00CC MOVWF STACK_12
$003A $30FF MOVLW 255
$003B $00CB MOVWF STACK_11
$003C $30FF MOVLW 255
$003D $00CA MOVWF STACK_10
$003E $0BCC DECFSZ STACK_12, F
$003F $2841 GOTO $+2
$0040 $2848 GOTO $+8
$0041 $0BCB DECFSZ STACK_11, F
$0042 $2844 GOTO $+2
$0043 $2847 GOTO $+4
$0044 $0BCA DECFSZ STACK_10, F
$0045 $2844 GOTO $-1
$0046 $2841 GOTO $-5
$0047 $283E GOTO $-9
$0048 $3087 MOVLW 135
$0049 $00CB MOVWF STACK_11
$004A $30FF MOVLW 255
$004B $00CA MOVWF STACK_10
$004C $0BCB DECFSZ STACK_11, F
$004D $284F GOTO $+2
$004E $2852 GOTO $+4
$004F $0BCA DECFSZ STACK_10, F
$0050 $284F GOTO $-1
$0051 $284C GOTO $-5
$0052 $3093 MOVLW 147
$0053 $00CA MOVWF STACK_10
$0054 $0BCA DECFSZ STACK_10, F
$0055 $2854 GOTO $-1
$0056 $0000 NOP
^AVVOLGIBILI_MASSIMO.pbas, 38 :: if porta.0=0 then ' SE P. DISCESA E' APERTO ( NON PREMUTO)
$0057 $1C05 BTFSS PORTA, 0
$0058 $285C GOTO AVVOLGIBILI_MASSIMO_L_27
$0059 $3001 MOVLW 1
$005A $00C1 MOVWF STACK_1
$005B $285D GOTO AVVOLGIBILI_MASSIMO_L_28
$005C $ AVVOLGIBILI_MASSIMO_L_27:
$005C $01C1 CLRF STACK_1, 1
$005D $ AVVOLGIBILI_MASSIMO_L_28:
$005D $0841 MOVF STACK_1, 0
$005E $3A00 XORLW 0
$005F $1D03 BTFSS STATUS, Z
$0060 $2882 GOTO AVVOLGIBILI_MASSIMO_L_25
$0061 $ AVVOLGIBILI_MASSIMO_L_24:
^AVVOLGIBILI_MASSIMO.pbas, 39 :: portb.3=1 ' ABILITA USCITA 3 ( COLLEGATO AL MOTORE DISCESA)
$0061 $ AVVOLGIBILI_MASSIMO_L_29:
$0061 $1586 BSF PORTB, 3
$0062 $ AVVOLGIBILI_MASSIMO_L_30:
^AVVOLGIBILI_MASSIMO.pbas, 40 :: delay_ms(20000) ' TIENI L'USCITA ABILITATA PER 20 sec.
$0062 $3066 MOVLW 102
$0063 $00CC MOVWF STACK_12
$0064 $30FF MOVLW 255
$0065 $00CB MOVWF STACK_11
$0066 $30FF MOVLW 255
$0067 $00CA MOVWF STACK_10
$0068 $0BCC DECFSZ STACK_12, F
$0069 $286B GOTO $+2
$006A $2872 GOTO $+8
$006B $0BCB DECFSZ STACK_11, F
$006C $286E GOTO $+2
$006D $2871 GOTO $+4
$006E $0BCA DECFSZ STACK_10, F
$006F $286E GOTO $-1
$0070 $286B GOTO $-5
$0071 $2868 GOTO $-9
$0072 $30FC MOVLW 252
$0073 $00CB MOVWF STACK_11
$0074 $30FF MOVLW 255
$0075 $00CA MOVWF STACK_10
$0076 $0BCB DECFSZ STACK_11, F
$0077 $2879 GOTO $+2
$0078 $287C GOTO $+4
$0079 $0BCA DECFSZ STACK_10, F
$007A $2879 GOTO $-1
$007B $2876 GOTO $-5
$007C $306A MOVLW 106
$007D $00CA MOVWF STACK_10
$007E $0BCA DECFSZ STACK_10, F
$007F $287E GOTO $-1
^AVVOLGIBILI_MASSIMO.pbas, 41 :: portb.3=0 ' DISABILITA USCITA 3 ( FERMA IL MOTORE)
$0080 $1186 BCF PORTB, 3
$0081 $ AVVOLGIBILI_MASSIMO_L_32:
^AVVOLGIBILI_MASSIMO.pbas, 42 :: goto main ' RITORNA ALL'INIZIO
$0081 $2804 GOTO AVVOLGIBILI_MASSIMO_main_main
$0082 $ AVVOLGIBILI_MASSIMO_L_25:
^AVVOLGIBILI_MASSIMO.pbas, 43 :: end if
$0082 $ AVVOLGIBILI_MASSIMO_L_26:
^AVVOLGIBILI_MASSIMO.pbas, 47 :: if porta.0=1 then ' SE P.DISCESA CHIUSO ( PREMUTO)
$0082 $1C05 BTFSS PORTA, 0
$0083 $2887 GOTO AVVOLGIBILI_MASSIMO_L_36
$0084 $3001 MOVLW 1
$0085 $00C1 MOVWF STACK_1
$0086 $2888 GOTO AVVOLGIBILI_MASSIMO_L_37
$0087 $ AVVOLGIBILI_MASSIMO_L_36:
$0087 $01C1 CLRF STACK_1, 1
$0088 $ AVVOLGIBILI_MASSIMO_L_37:
$0088 $0841 MOVF STACK_1, 0
$0089 $3A01 XORLW 1
$008A $1D03 BTFSS STATUS, Z
$008B $2898 GOTO AVVOLGIBILI_MASSIMO_L_34
$008C $ AVVOLGIBILI_MASSIMO_L_33:
^AVVOLGIBILI_MASSIMO.pbas, 48 :: portb.3=1 ' ABILITA IL MOTORE
$008C $ AVVOLGIBILI_MASSIMO_L_38:
$008C $1586 BSF PORTB, 3
$008D $ AVVOLGIBILI_MASSIMO_L_39:
^AVVOLGIBILI_MASSIMO.pbas, 49 :: while porta.0=1 ' ANTI RIMBALZO
$008D $ AVVOLGIBILI_MASSIMO_L_41:
$008D $1C05 BTFSS PORTA, 0
$008E $2892 GOTO AVVOLGIBILI_MASSIMO_L_45
$008F $3001 MOVLW 1
$0090 $00C1 MOVWF STACK_1
$0091 $2893 GOTO AVVOLGIBILI_MASSIMO_L_46
$0092 $ AVVOLGIBILI_MASSIMO_L_45:
$0092 $01C1 CLRF STACK_1, 1
$0093 $ AVVOLGIBILI_MASSIMO_L_46:
$0093 $0841 MOVF STACK_1, 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -