?? car.lst
字號:
MPASM 02.30 Released CAR.ASM 10-8-2001 23:05:26 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
Warning[205]: Found directive in column 1. (TITLE)
00001 TITLE "Burglarproof system for CAR"
Warning[205]: Found directive in column 1. (LIST)
Warning[217]: Hex file format specified on command line.
Warning[216]: Radix superceded by command line.
00002 LIST f=INHX8M,p=16C57,r=DEC
00003 ;************************************
00000005 00004 PORTA EQU 5
00000006 00005 PORTB EQU 6
00000007 00006 PORTC EQU 7
00000003 00007 STATUS EQU 3
00000004 00008 FSR EQU 4
00000000 00009 INDF EQU 0
00000000 00010 C EQU 0
00000002 00011 Z EQU 2
00000000 00012 W EQU 0
00000001 00013 F EQU 1
00000005 00014 PA0 EQU 5
00000008 00015 DELAYNUM0 EQU 0X08
00000009 00016 DELAYNUM1 EQU 0X09
0000000A 00017 DTIME0 EQU 0X0A
0000000B 00018 DTIME1 EQU 0X0B
0000000C 00019 DTIME EQU 0X0C
0000000D 00020 RELTIME EQU 0X0D
0000000E 00021 KEYVALUE EQU 0X0E
0000000F 00022 KEYSTATUS EQU 0X0F
00000010 00023 CARSTATUS EQU 0X10
00000011 00024 COMMAND EQU 0X11
00000012 00025 INPUT0 EQU 0X12
00000013 00026 INPUT1 EQU 0X13
00000014 00027 INPUT2 EQU 0X14
00000015 00028 INPUT3 EQU 0X15
00000016 00029 INBITNUM EQU 0X16
00000017 00030 IOTRIS EQU 0X17
00000018 00031 DTIME2 EQU 0X18
00000019 00032 PASSWORD EQU 0X19
00033 #DEFINE INBIT PORTA,2
00034 #DEFINE HAND PORTB,5
00035 #DEFINE FOOT PORTB,3
00036 #DEFINE KEYON PORTB,2
00037 #DEFINE FIRE PORTB,4
00038 #DEFINE UR_ALERT PORTB,1
00039 #DEFINE DOORTRI PORTB,0
00040 #DEFINE VIBRE PORTA,3
00041 #DEFINE CLK PORTB,6
00042 #DEFINE DATA PORTB,7
00043 #DEFINE CEN1 PORTC,7
00044 #DEFINE CEN2 PORTC,6
00045 #DEFINE SOUND PORTC,5
00046 #DEFINE LAMP PORTC,4
00047 #DEFINE KEYACC PORTC,3
00048 #DEFINE ON PORTC,2
00049 #DEFINE START PORTC,1
MPASM 02.30 Released CAR.ASM 10-8-2001 23:05:26 PAGE 2
Burglarproof system for CAR
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00050 #DEFINE MOTOR PORTC,0
00051 #DEFINE PUSHING KEYSTATUS,0
00052 #DEFINE PROCESSED KEYSTATUS,1
00053 ;****************************************
00054
07FF 00055 ORG 0X7FF
Message[306]: Crossing page boundary -- ensure page bits are set.
07FF 0A79 00056 GOTO MAIN
0000 00057 ORG 0
0000 046F 00058 BCF KEYSTATUS,3
0001 0C32 00059 DELAY MOVLW 50
0002 002A 00060 MOVWF DTIME0
0003 0C64 00061 DELAY1 MOVLW 100
0004 002B 00062 MOVWF DTIME1
0005 0000 00063 DELAY2 NOP
0006 076F 00064 BTFSS KEYSTATUS,3
0007 0A19 00065 GOTO DELAY3
0008 0000 00066 NOP
0009 0000 00067 NOP
000A 0000 00068 NOP
000B 0000 00069 NOP
000C 0000 00070 NOP
000D 02EB 00071 DELAY4 DECFSZ DTIME1,F ;延時1ms
000E 0A05 00072 GOTO DELAY2
000F 02AD 00073 DELAY6 INCF RELTIME,F ;鍵釋放間隔+1
0010 0C50 00074 MOVLW 80
0011 008D 00075 SUBWF RELTIME,W
0012 0703 00076 BTFSS STATUS,C
0013 0A16 00077 GOTO $+3
0014 040F 00078 BCF PUSHING ;鍵釋放間隔超過80,則清鍵壓著標志
0015 006D 00079 CLRF RELTIME
0016 02EA 00080 DECFSZ DTIME0,F
0017 0A03 00081 GOTO DELAY1 ;延時50ms,時間到返回
0018 0800 00082 RETLW 0
0019 0745 00083 DELAY3 BTFSS INBIT
001A 0A0D 00084 GOTO DELAY4
001B 0C0F 00085 MOVLW 15
001C 002C 00086 MOVWF DTIME
001D 02EC 00087 DECFSZ DTIME,F
001E 0A1D 00088 GOTO $-1 ;防誤觸發
001F 0745 00089 BTFSS INBIT
0020 0A0D 00090 GOTO DELAY4
0021 0645 00091 BTFSC INBIT
0022 0A21 00092 GOTO $-1 ;有鍵按,等待輸入為0
0023 070F 00093 BTFSS PUSHING
0024 0A32 00094 GOTO DELAY5
0025 0CFE 00095 MOVLW 254 ;若鍵正按著,判斷鍵是否還按著?
0026 002C 00096 MOVWF DTIME
0027 02EC 00097 DECFSZ DTIME,F
0028 0A27 00098 GOTO $-1
0029 0745 00099 BTFSS INBIT
002A 0A0F 00100 GOTO DELAY6
002B 0C21 00101 MOVLW 33
MPASM 02.30 Released CAR.ASM 10-8-2001 23:05:26 PAGE 3
Burglarproof system for CAR
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
002C 002C 00102 MOVWF DTIME
002D 02EC 00103 DECFSZ DTIME,F
002E 0A2D 00104 GOTO $-1
002F 0645 00105 BTFSC INBIT
0030 006D 00106 CLRF RELTIME
0031 0A0F 00107 GOTO DELAY6
0032 0C1C 00108 DELAY5 MOVLW 28 ;若是第一次按,則接受28BIT鍵值
0033 0036 00109 MOVWF INBITNUM
0034 0C8F 00110 DELAY8 MOVLW 143
0035 002C 00111 MOVWF DTIME
0036 02EC 00112 DECFSZ DTIME,F
0037 0A36 00113 GOTO $-1
0038 0403 00114 BCF STATUS,C
0039 0745 00115 BTFSS INBIT
003A 0503 00116 BSF STATUS,C
003B 0C6E 00117 MOVLW 110
003C 002C 00118 MOVWF DTIME
003D 02EC 00119 DECFSZ DTIME,F
003E 0A3D 00120 GOTO $-1
003F 0645 00121 BTFSC INBIT
0040 0A49 00122 GOTO DELAY7
0041 0C50 00123 MOVLW 80
0042 002C 00124 MOVWF DTIME
0043 02EC 00125 DECFSZ DTIME,F
0044 0A43 00126 GOTO $-1
0045 00EA 00127 DECF DTIME0,F
0046 0643 00128 BTFSC STATUS,Z
0047 0800 00129 RETLW 0
0048 0A0D 00130 GOTO DELAY4
0049 0375 00131 DELAY7 RLF INPUT3,F
004A 0374 00132 RLF INPUT2,F
004B 0373 00133 RLF INPUT1,F
004C 0372 00134 RLF INPUT0,F
004D 0645 00135 BTFSC INBIT
004E 0A4D 00136 GOTO $-1
004F 02F6 00137 DECFSZ INBITNUM,F
0050 0A34 00138 GOTO DELAY8
0051 0C0F 00139 MOVLW 0X0F
0052 0172 00140 ANDWF INPUT0,F
0053 0395 00141 SWAPF INPUT3,W
0054 0E0F 00142 ANDLW 0X0F
0055 002E 00143 MOVWF KEYVALUE
0056 0395 00144 SWAPF INPUT3,W
0057 0EF0 00145 ANDLW 0XF0
0058 0132 00146 IORWF INPUT0,F
0059 0214 00147 MOVF INPUT2,W
005A 0743 00148 BTFSS STATUS,Z
005B 0800 00149 RETLW 0
005C 0213 00150 MOVF INPUT1,W ;判斷信號是否有效?
005D 0FFB 00151 XORLW 0XFB
005E 0743 00152 BTFSS STATUS,Z
005F 0800 00153 RETLW 0
0060 0212 00154 MOVF INPUT0,W
MPASM 02.30 Released CAR.ASM 10-8-2001 23:05:26 PAGE 4
Burglarproof system for CAR
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0061 0F54 00155 XORLW 0X54
0062 0743 00156 BTFSS STATUS,Z
0063 0800 00157 RETLW 0
0064 050F 00158 BSF PUSHING ;有效,則置按鍵正壓著標志
0065 042F 00159 BCF PROCESSED ;清已處理標志
0066 0800 00160 RETLW 0
00161
0067 00162 DELAY55
0067 0C21 00163 MOVLW 33
0068 002C 00164 MOVWF DTIME
0069 02EC 00165 DECFSZ DTIME,F
006A 0A69 00166 GOTO $-1
006B 0800 00167 RETLW 0
00168
006C 00169 NOLOCK
006C 04E7 00170 BCF CEN1
006D 05C7 00171 BSF CEN2 ;開鎖
006E 0C08 00172 LOCK1 MOVLW 8
006F 0028 00173 MOVWF DELAYNUM0
0070 0901 00174 CALL DELAY
0071 02E8 00175 DECFSZ DELAYNUM0,F
0072 0A70 00176 GOTO $-2
0073 04C7 00177 BCF CEN2
0074 04E7 00178 BCF CEN1
0075 0800 00179 RETLW 0
00180
0076 00181 UPLOCK
0076 05E7 00182 BSF CEN1 ;上鎖
0077 04C7 00183 BCF CEN2
0078 0A6E 00184 GOTO LOCK1
00185
00186
0079 00187 MAIN
0079 0C0D 00188 MOVLW 0X0D
007A 0025 00189 MOVWF PORTA
007B 0C0E 00190 MOVLW 0X0E
007C 0005 00191 TRIS PORTA
007D 0C3F 00192 MOVLW B'00111111'
007E 0026 00193 MOVWF PORTB
007F 0CFF 00194 MOVLW 0XFF
0080 0006 00195 TRIS PORTB
0081 0067 00196 CLRF PORTC
0082 0040 00197 CLRW
0083 0007 00198 TRIS PORTC
0084 0070 00199 CLRF CARSTATUS
0085 006F 00200 CLRF KEYSTATUS
0086 006D 00201 CLRF RELTIME
0087 052F 00202 BSF PROCESSED ;初始化
0088 0AA7 00203 GOTO UNLOCK
00204
0089 00205 NORMAL
0089 0070 00206 CLRF CARSTATUS
008A 0CFF 00207 MOVLW 0XFF
MPASM 02.30 Released CAR.ASM 10-8-2001 23:05:26 PAGE 5
Burglarproof system for CAR
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
008B 0028 00208 MOVWF DELAYNUM0 ;延時25s,進入防盜狀態
008C 0726 00209 NORMAL1 BTFSS UR_ALERT
008D 0BA9 00210 GOTO URGENCY
008E 0901 00211 CALL DELAY
008F 0646 00212 BTFSC KEYON
0090 0A97 00213 GOTO TEMP0
0091 0901 00214 CALL DELAY
0092 072F 00215 BTFSS PROCESSED ;是否有鍵按?
0093 0A99 00216 GOTO NORMAL2
0094 02E8 00217 DECFSZ DELAYNUM0,F
0095 0A8C 00218 GOTO NORMAL1
0096 0AA3 00219 GOTO LOCK
0097 05A3 00220 TEMP0 BSF STATUS,PA0
Message[306]: Crossing page boundary -- ensure page bits are set.
0098 0A68 00221 GOTO DRIVE
0099 052F 00222 NORMAL2 BSF PROCESSED
009A 020E 00223 MOVF KEYVALUE,W
009B 0F01 00224 XORLW 0X01
009C 0643 00225 BTFSC STATUS,Z
009D 0AA3 00226 GOTO LOCK ;按設定鍵,進入防盜狀態
009E 020E 00227 MOVF KEYVALUE,W
009F 0F02 00228 XORLW 0X02
00A0 0643 00229 BTFSC STATUS,Z
00A1 0AA7 00230 GOTO UNLOCK ;按解除鍵,燈閃三下回正常狀態
00A2 0A8C 00231 GOTO NORMAL1
00232
00A3 00233 LOCK
00A3 0587 00234 BSF LAMP ;設定,則上鎖,燈閃一下
00A4 0976 00235 CALL UPLOCK
00A5 0487 00236 BCF LAMP
00A6 0AC3 00237 GOTO ALERTING
00A7 00238 UNLOCK
00A7 0587 00239 BSF LAMP
00A8 096C 00240 CALL NOLOCK ;解除,則開鎖,燈閃三下
00A9 0487 00241 BCF LAMP
00AA 0C08 00242 MOVLW 8
00AB 0028 00243 MOVWF DELAYNUM0
00AC 0901 00244 CALL DELAY
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -