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

📄 avvolgibili_massimo.asm

📁 control system for garage door pic program in asm
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;  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 + -