📄 main.lst
字号:
1 ;=====================================================
2 ;Program Start
3 ;=====================================================
4 include "include.dt"
1 C ;-----------------------------------------------------
2 C ;Gerenal Register Define
3 C ;-----------------------------------------------------
4 0000 C R0 EQU 0x00
5 0001 C TCC EQU 0x01
6 0002 C PC EQU 0x02
7 0003 C STATUS EQU 0x03
8 0004 C R4 EQU 0x04
9 0005 C R5 EQU 0x05
10 0006 C R6 EQU 0x06
11 000F C RF EQU 0x0F
12 0005 C IOC5 EQU 0x05
13 0006 C IOC6 EQU 0x06
14 000B C IOCB EQU 0x0B
15 000C C IOCC EQU 0x0C
16 000D C IOCD EQU 0x0D
17 000E C IOCE EQU 0x0E
18 000F C IOCF EQU 0x0F
19 C
20 C ;-----------------------------------------------------
21 C ;Constant Define
22 C ;-----------------------------------------------------
23 0002 C Z EQU 2
24 0000 C C EQU 0
25 C
26 C ;-----------------------------------------------------
27 C ;User Register Define
28 C ;-----------------------------------------------------
29 0010 C Temp EQU 0x10
30 0011 C Count EQU 0x11
31 0012 C Flag EQU 0x12
32 0013 C DispMode EQU 0x13
33 0014 C TimeBase EQU 0x14
34 0015 C Mode EQU 0x15
35 0016 C Dirct EQU 0x16
36 0017 C Red_Dirct EQU 0x17
37 0018 C Green_Dirct EQU 0x18
38 0019 C Blue_Dirct EQU 0x19
39 001A C CntDirct_h EQU 0x1A
40 001B C CntDirct_l EQU 0x1B
41 001C C Duty_RED EQU 0x1C
42 001D C Duty_GREEN EQU 0x1D
43 001E C Duty_BLUE EQU 0x1E
44 C
45 0020 C TimeCnt EQU 0x20
46 0021 C IRNum EQU 0x21
47 0022 C IR_Status EQU 0x22
48 0023 C IRCode_E EQU 0x23
49 0024 C IRCode_H EQU 0x24
50 0025 C IRCode_M EQU 0x25
51 0026 C IRCode_L EQU 0x26
52 C
53 0028 C A_PUSH EQU 0x28
54 0029 C STATUS_PUSH EQU 0x29
55 002A C CntPWM_RED EQU 0x2A
56 002B C CntPWM_GREEN EQU 0x2B
57 002C C CntPWM_BLUE EQU 0x2C
58 C
59 002D C DispMode_Bak EQU 0x2D
60 C
61 C
62 C
63 C
64 C ;-----------------------------------------------------
65 C ;Flag Define:
66 C ;-----------------------------------------------------
67 0000 C IR_VALID EQU 0
68 0001 C TCC100US EQU 1
69 0002 C POWER_VALID EQU 2
70 0003 C POWEROFF EQU 3
71 C
72 C ;-----------------------------------------------------
73 C ;IR_Status Define:
74 C ;-----------------------------------------------------
75 0000 C IR_HEAD_LOW EQU 0
76 0001 C IR_HEAD_HIGH EQU 1
77 0002 C IR_DATA_LOW EQU 2
78 0003 C IR_DATA_HIGH EQU 3
79 C
80 C ;-----------------------------------------------------
81 C ;IR Unit Time Define:
82 C ;-----------------------------------------------------
83 003C C IR_HEAD_LOWMIN EQU 60
84 0064 C IR_HEAD_LOWMAX EQU 100
85 C
86 001E C IR_HEAD_HIGHMIN EQU 30
87 0032 C IR_HEAD_HIGHMAX EQU 50
88 C
89 0003 C IR_DATA_LOWMIN EQU 3
90 0008 C IR_DATA_LOWMAX EQU 8
91 C
92 0003 C IR_ZERO_MIN EQU 3
93 0008 C IR_ZERO_MAX EQU 8
94 C
95 000C C IR_ONE_MIN EQU 12
96 0012 C IR_ONE_MAX EQU 18
97 C
98 C
99 C ;-----------------------------------------------------
100 C ;Color Data Table Define
101 C ;-----------------------------------------------------
102 0000 C DECR EQU 0
103 0001 C INCR EQU 1
104 0002 C EMPTY EQU 2
105 0004 C FULL EQU 4
106 C
107 C ;-----------------------------------------------------
108 C ;I/O Define
109 C ;-----------------------------------------------------
110 C SET_LEFT_RED_ON MACRO
111 C bc R6,3
112 C ENDM
113 C
114 C SET_LEFT_RED_OFF MACRO
115 C bs R6,3
116 C ENDM
117 C
118 C LEFT_RED_ON_SKIP MACRO
119 C jbc R6,3
120 C ENDM
121 C
122 C LEFT_RED_OFF_SKIP MACRO
123 C jbs R6,3
124 C ENDM
125 C ;-----------------------------------------------------
126 C SET_LEFT_GREEN_ON MACRO
127 C bc R6,2
128 C ENDM
129 C
130 C SET_LEFT_GREEN_OFF MACRO
131 C bs R6,2
132 C ENDM
133 C
134 C LEFT_GREEN_ON_SKIP MACRO
135 C jbc R6,2
136 C ENDM
137 C
138 C LEFT_GREEN_OFF_SKIP MACRO
139 C jbs R6,2
140 C ENDM
141 C ;-----------------------------------------------------
142 C SET_LEFT_BLUE_ON MACRO
143 C bc R6,1
144 C ENDM
145 C
146 C SET_LEFT_BLUE_OFF MACRO
147 C bs R6,1
148 C ENDM
149 C
150 C LEFT_BLUE_ON_SKIP MACRO
151 C jbc R6,1
152 C ENDM
153 C
154 C LEFT_BLUE_OFF_SKIP MACRO
155 C jbs R6,1
156 C ENDM
157 C ;-----------------------------------------------------
158 C SET_RIGHT_RED_ON MACRO
159 C bc R6,4
160 C ENDM
161 C
162 C SET_RIGHT_RED_OFF MACRO
163 C bs R6,4
164 C ENDM
165 C
166 C RIGHT_RED_ON_SKIP MACRO
167 C jbc R6,4
168 C ENDM
169 C
170 C RIGHT_RED_OFF_SKIP MACRO
171 C jbs R6,4
172 C ENDM
173 C ;-----------------------------------------------------
174 C SET_RIGHT_GREEN_ON MACRO
175 C bc R6,5
176 C ENDM
177 C
178 C SET_RIGHT_GREEN_OFF MACRO
179 C bs R6,5
180 C ENDM
181 C
182 C RIGHT_GREEN_ON_SKIP MACRO
183 C jbc R6,5
184 C ENDM
185 C
186 C RIGHT_GREEN_OFF_SKIP MACRO
187 C jbs R6,5
188 C ENDM
189 C ;-----------------------------------------------------
190 C SET_RIGHT_BLUE_ON MACRO
191 C bc R6,6
192 C ENDM
193 C
194 C SET_RIGHT_BLUE_OFF MACRO
195 C bs R6,6
196 C ENDM
197 C
198 C RIGHT_BLUE_ON_SKIP MACRO
199 C jbc R6,6
200 C ENDM
201 C
202 C RIGHT_BLUE_OFF_SKIP MACRO
203 C jbs R6,6
204 C ENDM
205 C ;-----------------------------------------------------
206 C IR_HIGH_SKIP MACRO
207 C jbs R6,7
208 C ENDM
209 C
210 C IR_LOW_SKIP MACRO
211 C jbc R6,7
212 C ENDM
213 C ;-----------------------------------------------------
214 C
215 C
5
6 ORG 0x000
7 00000 1460 jmp Start
8 00001 0000 nop
9 00002 0000 nop
10 00003 0000 nop
11 00004 0000 nop
12 00005 0000 nop
13 00006 0000 nop
14 00007 0000 nop
15 ORG 0x008
16 00008 INT_Entry: ;100us TCC Interrupt
17 00008 0068 mov A_PUSH,A ;A==>A_PUSH
18 00009 0703 swapa STATUS ;
19 0000A 0069 mov STATUS_PUSH,A ;STATUS==>STATUS_PUSH
20 0000B 0560 inc TimeCnt
21 0000C 0A52 bs Flag, TCC100US
22 0000D 18A3 mov A,@0x0A3
23 0000E 0041 mov TCC,A
24 0000F 080F bc RF,0
25 00010 0729 swapa STATUS_PUSH ;
26 00011 0043 mov STATUS,A ;STATUS_PUSH==>STATUS
27 00012 0768 swap A_PUSH
28 00013 0728 swapa A_PUSH ;A_PUSH==>A
29 00014 0013 reti
30
31 ORG 0x020
32 00020 Red_Table:
33 00020 03C2 add PC, A
34 00021 1C00 retl @DECR ;0
35 00022 1C02 retl @EMPTY ;1
36 00023 1C01 retl @INCR ;2
37 00024 1C00 retl @DECR ;3
38 00025 1C01 retl @INCR ;4
39 00026 1C04 retl @FULL ;5
40 00027 1C00 retl @DECR ;6
41 00028 1C01 retl @INCR ;7
42 00029 1C00 retl @DECR ;8
43 0002A 1C02 retl @EMPTY ;9
44 0002B 1C01 retl @INCR ;10
45
46 0002C Green_Table:
47 0002C 03C2 add PC, A
48 0002D 1C01 retl @INCR ;0
49 0002E 1C00 retl @DECR ;1
50 0002F 1C02 retl @EMPTY ;2
51 00030 1C01 retl @INCR ;3
52 00031 1C04 retl @FULL ;4
53 00032 1C00 retl @DECR ;5
54 00033 1C01 retl @INCR ;6
55 00034 1C00 retl @DECR ;7
56 00035 1C02 retl @EMPTY ;8
57 00036 1C01 retl @INCR ;9
58 00037 1C00 retl @DECR ;10
59
60 00038 Blue_Table:
61 00038 03C2 add PC, A
62 00039 1C02 retl @EMPTY ;0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -