📄 mypjt.lst
字号:
MPASM 02.30.11 Intermediate MYPJT.ASM 1-14-2005 0:41:58 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 LIST P=16C54
00002 #include <p16C5x.inc>
00001 LIST
00002 ; P16C5X.INC Standard Header File, Version 4.00 Microchip Technology, Inc.
00313 LIST
00003 ;---------------------------------------------
00004 ;WORK_MODE define
00005 ;---------------------------------------------
00006 #define AUTO_MODE 0x01
00007 #define KEY_MODE 0x02
00008 #define DUMMY_MODE 0x00
00009
00010 ;--------------------------------------------
00011 ; motor_mode define
00012 ;--------------------------------------------
00013 #define MM_DUMMY 0x00
00014 #define MM_OPEN 0x01
00015 #define MM_CLOSE 0x02
00016
00017 ;-----------------------------------------------
00018 ;控制motor define
00019 ;-----------------------------------------------
00020 #define MM_OPEN_ROLL 0x20 ;;RB6=0,RB5=1
00021 #define MM_CLOSE_ROLL 0x40 ;;RB6=1,RB5=0
00022 #define MM_STOP 0x9F ;;RB6=0,RB5=0
00023 ;-----------------------------------------------
00024 ;;按键键值定义
00025 ;-----------------------------------------------
00026 #define OPEN_KEY 0x01
00027 #define CLOSE_KEY 0x02
00028 #define DUMMY_KEY 0x00
00029 ;-----------------------------------------------
00030 ; door_stu define
00031 ;-----------------------------------------------
00032 #define DOOR_CLOSE_STU 0x00
00033 #define DOOR_KEY_OPEN_STU 0x01
00034 #define DOOR_AUTO_OPEN_STU 0x02
00035 #define DOOR_CLOSING_STU 0x03
00036 #define DOOR_OPENING_STU 0x04
00037 ;LED PORT DEFINE
00038
Warning[207]: Found label after column 1. (MAIN_OP_POWER)
00000030 00039 MAIN_OP_POWER EQU PORTB*8+0 ;RB0
Warning[207]: Found label after column 1. (INFRARED_LED)
00000031 00040 INFRARED_LED EQU PORTB*8+1 ;RB1
Warning[207]: Found label after column 1. (LED_RED)
00000032 00041 LED_RED EQU PORTB*8+2 ; RB2
Warning[207]: Found label after column 1. (LED_GREEN)
00000033 00042 LED_GREEN EQU PORTB*8+3 ;RB3
Warning[207]: Found label after column 1. (SUB_OP_POWER)
00000037 00043 SUB_OP_POWER EQU PORTB*8+7 ;RB7
00044
00045
MPASM 02.30.11 Intermediate MYPJT.ASM 1-14-2005 0:41:58 PAGE 2
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00046
00047
00048
00049
00050
00051
00052 #define TM2S 0x0e ;200
00053 #define TM8S_L 0x9b
00054 #define TM8S_H 0x02
00055
00056 #define TM500MS 0x01
00057 #define TM4S 0x1c
00058 ; bit define
00059
Warning[207]: Found label after column 1. (flag)
00000008 00060 flag equ 0x08
Warning[207]: Found label after column 1. (INFRARED_F)
00000040 00061 INFRARED_F equ flag*8+0 ;flag.0
Warning[207]: Found label after column 1. (KEYREQ_F)
00000041 00062 KEYREQ_F equ flag*8+1 ;flag.1
Warning[207]: Found label after column 1. (LOW_V_F)
00000042 00063 LOW_V_F equ flag*8+2 ;flag.2
Warning[207]: Found label after column 1. (RED_FRESH_F)
00000043 00064 RED_FRESH_F equ flag*8+3 ;红灯闪烁标志
00065 ;---------------------------------------------
00066 ;1 byte variable define
00067 ;---------------------------------------------
Warning[207]: Found label after column 1. (motor_mode)
00000009 00068 motor_mode equ 0x09
Warning[207]: Found label after column 1. (motor_mode_old)
0000000A 00069 motor_mode_old equ 0x0A
Warning[207]: Found label after column 1. (motor_step)
0000000B 00070 motor_step equ 0x0b
Warning[207]: Found label after column 1. (door_stu)
0000000C 00071 door_stu equ 0x0c
Warning[207]: Found label after column 1. (delay_time_L)
0000000D 00072 delay_time_L equ 0x0d
Warning[207]: Found label after column 1. (delay_time_H)
0000000E 00073 delay_time_H equ 0x0e
Warning[207]: Found label after column 1. (keyvld)
0000000F 00074 keyvld equ 0x0f
Warning[207]: Found label after column 1. (keyvld_old)
00000010 00075 keyvld_old equ 0x10
00076 ;------------------------------------
00077 ; INFRARED CHECK
00078 ;------------------------------------
Warning[207]: Found label after column 1. (HIGH_LEVEL_COUNT)
00000011 00079 HIGH_LEVEL_COUNT EQU 0x11
Warning[207]: Found label after column 1. (LOW_LEVEL_COUNT)
00000012 00080 LOW_LEVEL_COUNT EQU 0x12
00081 ;------------------------------------
Warning[207]: Found label after column 1. (work_mode)
00000013 00082 work_mode equ 0x13
MPASM 02.30.11 Intermediate MYPJT.ASM 1-14-2005 0:41:58 PAGE 3
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
Warning[207]: Found label after column 1. (fresh_red_time)
00000014 00083 fresh_red_time equ 0x14
00084 ;------------------------------------
00085 ;;ram area: 0x1a-0x1f is temp varible
00086 ;------------------------------------
Warning[207]: Found label after column 1. (temp_va1)
0000001A 00087 temp_va1 equ 0x1a
Warning[207]: Found label after column 1. (temp_va2)
0000001B 00088 temp_va2 equ 0x1b
Warning[207]: Found label after column 1. (temp_va3)
0000001C 00089 temp_va3 equ 0x1c
Warning[207]: Found label after column 1. (temp_va4)
0000001D 00090 temp_va4 equ 0x1d
Warning[207]: Found label after column 1. (temp_va5)
0000001E 00091 temp_va5 equ 0x1e
Warning[207]: Found label after column 1. (temp_va6)
0000001F 00092 temp_va6 equ 0x1f
00093
00094 ;--------------------------------------------------------------
00095 ;--------------------------------------------------------------
0000 00096 CPU_INIT:
00097
0000 0C0F 00098 MOVLW 0FH
0001 0005 00099 TRIS 5 ;; RA0,RA1,RA2,RA3 INPUT
0002 0040 00100 CLRW
0003 0006 00101 TRIS 6 ;; 全部输出
0004 0C09 00102 MOVLW 0x09 ;;设置WDT 时间77ms
0005 0002 00103 OPTION
0006 0763 00104 BTFSS STATUS,3
0007 0800 00105 RETLW 00H ;;从睡眠模式唤醒
00106 ;上电复位,先初始化
0008 0C82 00107 MOVLW 0x82
0009 0026 00108 MOVWF PORTB
00109 ;RAM 清0
000A 0C08 00110 MOVLW 0x08
000B 0024 00111 MOVWF FSR
000C 00112 RAM_CLEAR:
000C 0060 00113 CLRF INDF
Message[305]: Using default destination of 1 (file).
000D 02A4 00114 INCF FSR
00115
000E 0C1F 00116 MOVLW 0x1f
000F 0144 00117 ANDWF FSR,w
0010 0F1F 00118 XORLW 0x1f
0011 0743 00119 BTFSS STATUS,Z
0012 0A0C 00120 GOTO RAM_CLEAR
0013 0C01 00121 MOVLW 0x01
0014 0034 00122 MOVWF fresh_red_time
00123
0015 0800 00124 RETLW 00H
00125 ;------------------------------------------------------------
00126 ;------------------------------------------------------------
01FF 00127 ORG 1FFH
MPASM 02.30.11 Intermediate MYPJT.ASM 1-14-2005 0:41:58 PAGE 4
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
01FF 0A20 00128 GOTO START
0020 00129 ORG 20H
Warning[207]: Found label after column 1. (START)
0020 00130 START:
0020 0900 00131 CALL CPU_INIT
00132 ;------------------------------------------------------------
00133 ;------------------------------------------------------------
0021 00134 MAIN_LOOP:
0021 00135 KEY_HD:
0021 0004 00136 CLRWDT
0022 00137 TEST_DOOR_CLOSE:
0022 020C 00138 MOVF door_stu,w
0023 0F00 00139 XORLW DOOR_CLOSE_STU
0024 0743 00140 BTFSS STATUS,Z
0025 0A27 00141 GOTO TEST_DOOR_OPEN
0026 0A2A 00142 GOTO NEXT_STEP1 ;在关门状态下可以去扫描按键
0027 00143 TEST_DOOR_OPEN:
0027 020C 00144 MOVF door_stu,w
0028 0F01 00145 XORLW DOOR_KEY_OPEN_STU ;是否为按键开门状态?
0029 0643 00146 BTFSC STATUS,Z ;不是,进入红外处理
002A 00147 NEXT_STEP1:
002A 09B1 00148 CALL KEY_SCAN ;只有在按键开门状态下可以扫描按键
00149 ;------------------------------------------------------------
00150 ;------------------------------------------------------------
002B 00151 INFRA_HD:
00152
Warning[202]: Argument out of range. Least significant bits used.
002B 0628 00153 BTFSC flag,KEYREQ_F
002C 0A33 00154 GOTO NEXT_STEP2 ;有按键,不处理红外扫描
00155 ;没有按键时
002D 020C 00156 MOVF door_stu,w ;判别门的状态
002E 0F00 00157 XORLW DOOR_CLOSE_STU ;关着状态?
002F 0643 00158 BTFSC STATUS,Z
0030 0A32 00159 GOTO INFRA_LABEL1 ;是关着
00160 ;原则上在关门的状态下处理红外才有效
00161 ; MOVF door_stu,w ; 不在关状态,再判是否是红外打开状态
00162 ; XORLW DOOR_AUTO_OPEN_STU
00163 ; BTFSS STATUS,Z
0031 0A33 00164 GOTO NEXT_STEP2 ;不是,返回
0032 00165 INFRA_LABEL1:
0032 094F 00166 CALL INFRARED_SCAN
00167 ;---------------------------------------------------------
00168 ;---------------------------------------------------------
0033 00169 NEXT_STEP2:
0033 00170 KEY_PRC:
Warning[202]: Argument out of range. Least significant bits used.
0033 0728 00171 BTFSS flag,KEYREQ_F
0034 0A45 00172 GOTO NEXT_STEP3 ;没按键,执行红外处理
Warning[202]: Argument out of range. Least significant bits used.
0035 0428 00173 BCF flag,KEYREQ_F ;
0036 0C02 00174 MOVLW KEY_MODE ;保存工作模式
0037 0033 00175 MOVWF work_mode
0038 020F 00176 MOVF keyvld,w
MPASM 02.30.11 Intermediate MYPJT.ASM 1-14-2005 0:41:58 PAGE 5
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0039 0F02 00177 XORLW CLOSE_KEY
003A 0643 00178 BTFSC STATUS,Z
003B 0A3E 00179 GOTO CLOSE_KEY_HD ;关门键
003C 0C01 00180 MOVLW MM_OPEN ;开门键
003D 0A44 00181 GOTO LABEL6
003E 00182 CLOSE_KEY_HD:
003E 020C 00183 MOVF door_stu,w
003F 0F01 00184 XORLW DOOR_KEY_OPEN_STU
0040 0743 00185 BTFSS STATUS,Z
0041 0A45 00186 GOTO NEXT_STEP3
0042 0C02 00187 MOVLW MM_CLOSE
0043 0A44 00188 GOTO LABEL6
00189
0044 00190 LABEL6
0044 0029 00191 MOVWF motor_mode
00192 ;-------------------------------------------------------
00193 ;-------------------------------------------------------
00194
0045 00195 NEXT_STEP3:
0045 00196 INFRARED_PRC:
Warning[202]: Argument out of range. Least significant bits used.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -