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

📄 mypjt.lst

📁 办公室及高档娱乐场所用的垃圾自动开门及关门。用红外感应头可感受到人手的动作
💻 LST
📖 第 1 页 / 共 4 页
字号:
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 + -