📄 sensor_oper.lst
字号:
"File: SENSOR_OPER.ASM Holtek Cross-Assembler Version 2.86 Page 1
1 0000 INCLUDE REG_DEF.INC
2 0000
3 0000 PUBLIC SEN_INIT
4 0000 PUBLIC SEN_READ_MONTION
5 0000 PUBLIC SEN_ENTRY_SLEEP_MODE
6 0000 PUBLIC SEN_RESUME
7 0000 PUBLIC DELAY_100US
8 0000
9 0000 SEN_CODE .SECTION 'CODE'
10 0000
11 0000
12 0000 SEN_INIT:
13 0000 ;DEFAULT OF CLOCK IS OUTPUT/HIGH
14 0000 ;DEFAULT OF CLOCK IS OUTPUT/LOW
15 0000
16 0000 3415 CLR SEN_CLK_CTRL
17 0001 3495 CLR SEN_DATA_CTRL
18 0002 3014 SET SEN_CLK
19 0003 3494 CLR SEN_DATA
20 0004
21 0004 0F00 MOV A, PRODUCT_ID1
22 0005 4086 MOV SEN_REGADDR,A
23 0006 2000 R CALL SEN_READ_REG
24 0007
25 0007 0F01 MOV A, PRODUCT_ID2
26 0008 4086 MOV SEN_REGADDR,A
27 0009 2000 R CALL SEN_READ_REG
28 000A
29 000A 0F05 MOV A, OPERATION_MODE
30 000B 4086 MOV SEN_REGADDR,A
31 000C 0FB8 MOV A, 0B8H
32 000D 4087 MOV SEN_REGDATA, A
33 000E 2000 R CALL SEN_WRITE_REG
34 000F
35 000F 0F06 MOV A, CONFIGURATION
36 0010 4086 MOV SEN_REGADDR,A
37 0011 0F04 MOV A, 4
38 0012 4087 MOV SEN_REGDATA, A
39 0013 2000 R CALL SEN_WRITE_REG
40 0014 0003 RET
41 0015
42 0015 SEN_READ_MONTION:
43 0015
44 0015 3C64 SZ XYZ_ZERO_FLAG
45 0016 2800 R JMP STILL_CHECK_SENSOR
46 0017
47 0017 3866 SNZ VALID_FSP
48 0018 2800 R JMP NOT_READ_MONTION
49 0019
50 0019 3CE6 SZ RESEND_DATA_REQUIRED
51 001A 2800 R JMP NOT_READ_MONTION
52 001B
53 001B STILL_CHECK_SENSOR:
54 001B 0F02 MOV A, MONTION_STATUS
55 001C 4086 MOV SEN_REGADDR, A
56 001D 2000 R CALL SEN_READ_REG
57 001E
"File: SENSOR_OPER.ASM Holtek Cross-Assembler Version 2.86 Page 2
58 001E 4707 MOV A, SEN_REGDATA
59 001F 408C MOV MONTION_VALUE, A
60 0020 3B85 SNZ ACC.7
61 0021 2800 R JMP NO_MONTION_EXIT
62 0022
63 0022 ;CHECK IF ANY AXIS OVERFLOW
64 0022 3467 CLR MONTION_OVERFLOW
65 0023 470C MOV A, MONTION_VALUE
66 0024 0E18 AND A, 018H
67 0025 1085 SZ ACC
68 0026 3067 SET MONTION_OVERFLOW; NO_MONTION_EXIT ;OVERFLOW OCCURS, EXIT WITOUT REPORT MONTION
69 0027
70 0027 0F03 MOV A, DELTA_X
71 0028 4086 MOV SEN_REGADDR, A
72 0029 2000 R CALL SEN_READ_REG
73 002A
74 002A 4707 MOV A, SEN_REGDATA
75 002B 408A MOV MONTION_X, A
76 002C
77 002C 0F04 MOV A, DELTA_Y
78 002D 4086 MOV SEN_REGADDR, A
79 002E 2000 R CALL SEN_READ_REG
80 002F
81 002F 4187 CPL SEN_REGDATA
82 0030
83 0030 4707 MOV A, SEN_REGDATA
84 0031 0185 CPL ACC
85 0032 1485 INC ACC
86 0033 408B MOV MONTION_Y, A
87 0034
88 0034 306E SET MOVEMENT.0
89 0035
90 0035 2800 R JMP EXIT_SEN_READ_MONTION
91 0036
92 0036 NO_MONTION_EXIT:
93 0036 5F0A CLR MONTION_X
94 0037 5F0B CLR MONTION_Y
95 0038
96 0038
97 0038 2800 R JMP NOT_READ_MONTION
98 0039
99 0039 EXIT_SEN_READ_MONTION:
100 0039
101 0039 3867 SNZ MONTION_OVERFLOW
102 003A 2800 R JMP CLR_X_Y
103 003B
104 003B 5F0A CLR MONTION_X
105 003C 5F0B CLR MONTION_Y
106 003D NOT_READ_MONTION:
107 003D CLR_X_Y:
108 003D
109 003D 0003 RET
110 003E
111 003E SEN_ENTRY_SLEEP_MODE:
112 003E 0F06 MOV A, CONFIGURATION
113 003F 4086 MOV SEN_REGADDR, A
114 0040 0F0C MOV A, 12
115 0041 4087 MOV SEN_REGDATA, A
116 0042 2000 R CALL SEN_WRITE_REG
117 0043
"File: SENSOR_OPER.ASM Holtek Cross-Assembler Version 2.86 Page 3
118 0043 0003 RET
119 0044 SEN_RESUME:
120 0044 0F06 MOV A, CONFIGURATION
121 0045 4086 MOV SEN_REGADDR, A
122 0046 0F04 MOV A, 4
123 0047 4087 MOV SEN_REGDATA, A
124 0048 2000 R CALL SEN_WRITE_REG
125 0049
126 0049 0003 RET
127 004A
128 004A SEN_READ_REG:
129 004A
130 004A 4706 MOV A, SEN_REGADDR
131 004B 4088 MOV SEN_SPITEMP, A
132 004C 2000 R CALL SEN_WBYTE
133 004D
134 004D ;DATA PHASE
135 004D 2000 R CALL SEN_RBYTE
136 004E 4708 MOV A, SEN_SPITEMP
137 004F 4087 MOV SEN_REGDATA, A
138 0050
139 0050 0003 RET
140 0051
141 0051 SEN_WRITE_REG:
142 0051 ;ADDRESS PHASE
143 0051 4706 MOV A, SEN_REGADDR
144 0052 0D80 OR A, 080H
145 0053 4088 MOV SEN_SPITEMP, A
146 0054 2000 R CALL SEN_WBYTE
147 0055
148 0055 ;DATA PHASE
149 0055 4707 MOV A, SEN_REGDATA
150 0056 4088 MOV SEN_SPITEMP, A
151 0057 2000 R CALL SEN_WBYTE
152 0058
153 0058 3014 SET SEN_CLK
154 0059 3494 CLR SEN_DATA
155 005A
156 005A 0003 RET
157 005B
158 005B SEN_WBYTE:
159 005B 0F08 MOV A, 8
160 005C
161 005C SEN_WBYTE_LOOP:
162 005C 3414 CLR SEN_CLK
163 005D 3494 CLR SEN_DATA
164 005E 7F88 SZ SEN_SPITEMP.7
165 005F 3094 SET SEN_DATA
166 0060 0000 NOP
167 0061 0000 NOP
168 0062 0000 NOP
169 0063 0000 NOP
170 0064 3014 SET SEN_CLK
171 0065 5888 RL SEN_SPITEMP
172 0066 1785 SDZ ACC
173 0067 2800 R JMP SEN_WBYTE_LOOP
174 0068
175 0068 0003 RET
176 0069
177 0069 SEN_RBYTE:
"File: SENSOR_OPER.ASM Holtek Cross-Assembler Version 2.86 Page 4
178 0069 0F08 MOV A, 8
179 006A 5F08 CLR SEN_SPITEMP
180 006B 3095 SET SEN_DATA_CTRL
181 006C
182 006C SEN_RBYTE_LOOP:
183 006C 5888 RL SEN_SPITEMP
184 006D 3414 CLR SEN_CLK
185 006E 0000 NOP
186 006F 0000 NOP
187 0070 0000 NOP
188 0071 0000 NOP
189 0072 3014 SET SEN_CLK
190 0073 3C94 SZ SEN_DATA
191 0074 7008 SET SEN_SPITEMP.0
192 0075 1785 SDZ ACC
193 0076 2800 R JMP SEN_RBYTE_LOOP
194 0077
195 0077 3495 CLR SEN_DATA_CTRL
196 0078 3014 SET SEN_CLK
197 0079
198 0079 0003 RET
199 007A
200 007A DELAY_2MS:
201 007A 2000 R CALL DELAY_100US
202 007B 2000 R CALL DELAY_100US
203 007C 2000 R CALL DELAY_100US
204 007D 2000 R CALL DELAY_100US
205 007E 0003 RET
206 007F
207 007F DELAY_100US:
208 007F 0FFF MOV A, 255
209 0080 4089 MOV SEN_TEMP, A
210 0081
211 0081 D100USLOOP:
212 0081 5789 SDZ SEN_TEMP
213 0082 2800 R JMP D100USLOOP
214 0083
215 0083 0003 RET
0 Errors
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -