📄 2109asic.lst
字号:
MPASM 01.30.01 Intermediate 2109ASIC.ASM 8-3-2000 14:27:52 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 ;==========================================================================
00002 ; File Name : 2109-ASIC; 2109ASIC.asm
00003 ; Rev: Date: Author: Reason:
00004 ; 1.00 18-06-2000
00005 ;==========================================================================
00006
00007 LIST R=DEC,LINES=0,COLUMNS=120,NOWRAP,XREF=YES
00008
00009 PROCESSOR PIC16C74
00010 INCLUDE D:\2109ASIC\VCP201.INC
00001 LIST
00002 ; P16C74A.INC Standard Header File, Version 1.01 Microchip Technology, Inc.
00151 LIST
00011 INCLUDE "const.asm"
00001 ;=============================================
00002 ; File Name : const.asm
00003 ;
00004 ;Rev: Date: Author: Reason:
00005 ;===============================================
00006
00007
00008 #DEFINE TIMER_FULL TMRCNT,4 ; timer0 interrupt as time base
00009
00010 #DEFINE PROGRAM_LED P3EN,2
00011
00012 #DEFINE MODE_LED1 P3EN,0 ; mode led
00013 #DEFINE MODE_LED2 P3EN,1 ; for force setting
00014
00015 #DEFINE AUTO_LED P3EN,3
00016
00017 #DEFINE S_MOTOR SMCTRL,SM
00018
00019 ;----------------------------------------------
00020 SPI_TRANSMIT MACRO
00021 CALL SPI_COMM
00022 BTFSC STATUS,C
00023 GOTO END_SPI
00024 ENDM
00025
00026
00027 ADD_NOP8 MACRO
00028 NOP
00029 NOP
00030 NOP
00031 NOP
00032 NOP
00033 NOP
00034 NOP
00035 NOP
00036 ENDM
00037
00038
00039 #DEFINE CONT_BIT_SEL 0 ; 1st byte to host
00040 #DEFINE CONT_BIT_L3 1
00041 #DEFINE CONT_BIT_R3 2
00042 #DEFINE CONT_BIT_ST 3
00043 #DEFINE CONT_BIT_UP 4
00044 #DEFINE CONT_BIT_RT 5
00045 #DEFINE CONT_BIT_DN 6
00046 #DEFINE CONT_BIT_LT 7 ; 2nd byte to host
00047 #DEFINE CONT_BIT_L2 0
00048 #DEFINE CONT_BIT_R2 1
00049 #DEFINE CONT_BIT_L1 2
00050 #DEFINE CONT_BIT_R1 3
00051 #DEFINE CONT_BIT_TRI 4
00052 #DEFINE CONT_BIT_CIR 5
00053 #DEFINE CONT_BIT_CRO 6
00054 #DEFINE CONT_BIT_SQU 7
00055
00056 #DEFINE MEMTOP H'0ff' ;POINTER AT TOP OF BUTTON DATA MEMORY
00057 #DEFINE PBMAX D'014' ;MAXIMUM # OF FIRE BUTTONS
00058
00059 #DEFINE TIME1SEC D'76' ;1.0 SEC
00060 #DEFINE TIME700MS D'53' ;0.7 SEC
00061 #DEFINE TIME500MS D'38' ;0.5 SEC
00062 #DEFINE TIME200MS D'15' ;0.2 SEC
00063 #DEFINE TIME100MS D'9' ;0.1 SEC
00064 #DEFINE TIME65MS D'6' ;0.07 SEC
00065 #DEFINE TIME52MS D'5' ;0.05 SEC
00066 #DEFINE TIME26MS D'3' ;0.03 SEC
00067 #DEFINE TIME13MS D'1' ;0.01 SEC
00068
00069 #DEFINE DBC1SEC TIME1SEC ;1 SECONDS
00070 #DEFINE DBC700MS TIME700MS ;0.7 SECONDS
00071 #DEFINE DBC500MS TIME500MS ;0.5 SECONDS
00072 #DEFINE DBC200MS TIME200MS ;0.2 SECONDS
00073 #DEFINE DBC100MS TIME100MS ;0.1 SECONDS
00074 #DEFINE DBC26MS TIME26MS ;0.026 SECONDS
00075
00076 #DEFINE I_DUR_STEP TIME65MS ;0.07 SECONDS
00077 #DEFINE DUR_SLOW TIME52MS ;10 HZ
00078 #DEFINE DUR_AUTO TIME52MS ;10 HZ
00079
00080 #DEFINE DURBZON TIME100MS ;BUZZER ON DURATION
00081 #DEFINE DURBZOFF TIME100MS ;BUZZER OFF DURATION
00082 #DEFINE BEEP_STEP 1
00083 #DEFINE BEEP_1 D'001' ;BEEP ONCE
00084 #DEFINE BEEP_2 D'002' ;BEEP TWICE
00085 #DEFINE BEEP_3 D'003' ;BEEP THREE TIMES
00086
00087 #DEFINE PLEDON H'88' ;LED ALWAYS ON
00088 #DEFINE PLEDOFF H'00' ;LED ALWAYS OFF
00089 #DEFINE PLED1ST H'B3' ;LED BLINKS AT NORMAL RATE
00090 #DEFINE PLEDSTEP H'84' ;LED BLINKS ONCE
00091 #DEFINE PLEDMEM H'A2' ;LED BLINKS AT FAST RATE
00092
00093 #DEFINE IDLE H'EE' ;CODE FOR IDLE PERIOD
00094 #DEFINE REPEAT H'EF' ;CODE FOR REPEAT FUNCTION
00095 #DEFINE CODE_1 D'01' ;ONE BYTE STEP
00096 #DEFINE CODE_2 D'02' ;TOW BYTE STEP
00097 #DEFINE CODE_3 D'03' ;THREE BYTE STEP
00098
00099 #DEFINE CRC_BIT_8_0 B'00000000' ;XOR CODE IF BIT 8 = 0
00100 #DEFINE CRC_BIT_8_1 B'10000101' ;XOR CODE IF BIT 8 = 1
00101 #DEFINE CRC5_MASK B'00010101' ; for addr. crc
00102 #DEFINE CRC8_MASK CRC_BIT_8_1 ; for data crc
00103
00104 #DEFINE CNTL_DATA_WORD D'08' ;TOTAL # OF WORD FOR CONTROL DATA
00105 #DEFINE PB_DATA_WORD D'24' ;TOTAL # OF WORD FOR BUTTON DATA (d0 - FF)
00106 #DEFINE CNTL_POINTER PBID_0 ;POINTER OF STARTING ADDRESS OF CONTROL DATA
00107 #DEFINE BU_DATA_PTR 0XD0 ;pointer of starting address of force setting
00108 #DEFINE DATA_POINTER 0XD4 ;POINTER OF STARTING ADDRESS OF BUTTON DATA
00109
00110 ;#define PTR_PBRAW0 H'59' ;POINTER OF PB_RAW0 BUFFER
00111 ;
00112 #DEFINE EEP_ADDR_1 H'00' ;BUTTON ADDRESS OF EEPROM
00113 #DEFINE EEP_ADDR_2 H'20' ;DEFAULT BUTTON ADDRESS OF EEPROM
00114 #DEFINE CNTL_DATA D'14' ;# OF BYTE OF CONTROL DATA
00115 #DEFINE PB_DATA D'14' ;# OF BYTE OF DEFAULT BUTTON DATA
00116 #DEFINE SIZE_LENGTH D'1' ;DEFAULT BUTTON DATA LENGTH=1
00117
00118 #DEFINE RESET_PB0 B'01101011' ;RESET BUTTON A & X PRESSED
00119 #DEFINE RESET_PB1 B'11111111' ;RESET BUTTON ST PRESSED
00120 #DEFINE SWAP_PB0 B'11111111'
00121 #DEFINE SWAP_PB1 B'00111111'
00122
00123 #DEFINE CNTL_DATA_TOTAL D'15' ;TOT.# OF CONTROL DATA=15
00124 #DEFINE PB_DATA_TOTAL D'46' ;TOT.# OF BUTTON DATA =90
00125
00126
00127 #DEFINE STEP_SIZE_1 D'1' ;STEP SIZE OF 1 BYTE
00128 #DEFINE STEP_SIZE_2 D'2' ;STEP SIZE OF 2 BYTES
00129 #DEFINE STEP_SIZE_3 D'3' ;STEP SIZE OF 3 BYTES
00130 #DEFINE STEP_TMR_1 D'8' ;STEP DURATION COUNTER = 1*DUR_STEP
00131 #DEFINE STEP_TMR_2 D'16' ;STEP DURATION COUNTER = 2*DUR_STEP
00132 #DEFINE STEP_TMR_4 D'32' ;STEP DURATION COUNTER = 4*DUR_STEP
00133 #DEFINE STEP_TMR_8 D'64' ;STEP DURATION COUNTER = 8*DUR_STEP
00134
00135
00136 #DEFINE DIGITAL_ID 0X41 ; 0x41 mode
00137 #DEFINE ANALOG_ID 0X73 ; 0x73 mode
00138
00139
00140 #DEFINE INIT_4F_1 0X3F
00141
00142 #DEFINE NULL_OFFSET D'10'
00143 #DEFINE MAX_SEN 0X60 ;60 for low limit
00144 #DEFINE MIN_OFFSET 0XB0 ;min offset of A/D senser C0h
00145
00146 #DEFINE DEFAULT_AXES 0X7F ;7f
00147
00148 ;code # stored in EEPROM
00149 #DEFINE PB_SQUARE D'0'
00150 #DEFINE PB_CROSS D'1'
00151 #DEFINE PB_CIRCLE D'2'
00152 #DEFINE PB_TRIANGLE D'3'
00153 #DEFINE PB_R1 D'4'
00154 #DEFINE PB_L1 D'5'
00155 #DEFINE PB_R2 D'6'
00156 #DEFINE PB_L2 D'7'
00157 #DEFINE PB_LEFT D'8'
00158 #DEFINE PB_DOWN D'9'
00159 #DEFINE PB_RIGHT D'10'
00160 #DEFINE PB_UP D'11'
00161
00162
00163 #DEFINE DEAD_OUT 84
00164 #DEFINE DEAD_IN 91
00165
00012 INCLUDE "vars.asm"
00001 ;==========================================================================
00002 ; File Name : vars.asm
00003 ;
00004 ; Rev: Date: Author: Reason:
00005 ;
00006 ;
00007 ;==========================================================================
00008
00009 ; -------------
00010 ; page 0
00011 ; -------------
0000007F 00012 PB_DATA_CRC EQU 0X7F ;CRC FOR BUTTON DATA
0000007E 00013 PBID_14 EQU 0X7E ;DATA LENGTH FOR BUTTON #14
0000007D 00014 PBID_13 EQU 0X7D ;DATA LENGTH FOR BUTTON #13
0000007C 00015 PBID_12 EQU 0X7C ;DATA LENGTH FOR BUTTON #12
0000007B 00016 PBID_11 EQU 0X7B ;DATA LENGTH FOR BUTTON #11
0000007A 00017 PBID_10 EQU 0X7A ;DATA LENGTH FOR BUTTON #10
00000079 00018 PBID_9 EQU 0X79 ;DATA LENGTH FOR BUTTON #9
00000078 00019 PBID_8 EQU 0X78 ;DATA LENGTH FOR BUTTON #8
00000077 00020 PBID_7 EQU 0X77 ;DATA LENGTH FOR BUTTON #7
00000076 00021 PBID_6 EQU 0X76 ;DATA LENGTH FOR BUTTON #6
00000075 00022 PBID_5 EQU 0X75 ;DATA LENGTH FOR BUTTON #5
00000074 00023 PBID_4 EQU 0X74 ;DATA LENGTH FOR BUTTON #4
00000073 00024 PBID_3 EQU 0X73 ;DATA LENGTH FOR BUTTON #3
00000072 00025 PBID_2 EQU 0X72 ;DATA LENGTH FOR BUTTON #2
00000071 00026 PBID_1 EQU 0X71 ;DATA LENGTH FOR BUTTON #1
00000070 00027 PBID_0 EQU 0X70 ;DATA LENGTH FOR BUTTON #0
00028
00029 #DEFINE PBID_PTR PBID_0 ;POINTER TO THE FIRST PBID
00030
0000006F 00031 CRC_BYTE EQU 0X6F ;BUFFER FOR CRC VALUE
0000006E 00032 INPUT_BYTE EQU 0X6E ;DATA INPUT BYTE FOR CRC CALCULATION
00033
0000006D 00034 MOV_COUNT EQU 0X6D ;COUNTER NO. OF BYTES TO BE MOVED
0000006C 00035 MOV_BUFFER EQU 0X6C ;TEMPORARY BUFFER FOR DATA MOVE
00036
00037
0000006B 00038 PTR_SRC EQU 0X6B ;SOURCE POINTER
0000006A 00039 PTR_END EQU 0X6A ;DESTINATION POINTER
00000069 00040 PTR_NXT EQU 0X69 ;CURRENT STEP POINTER
00000068 00041 DATA_LENGTH EQU 0X68 ;DATA LENGTH FOR A STEP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -