📄 timer_oper.lst
字号:
"File: TIMER_OPER.ASM Holtek Cross-Assembler Version 2.86 Page 1
1 0000 INCLUDE REG_DEF.INC
2 0000
3 0000
4 0000 PUBLIC INIT_TIMER
5 0000
6 0000 TIMER_CODE .SECTION 'CODE'
7 0000
8 0000 INIT_TIMER:
9 0000 0F80 MOV A, 080H
10 0001 008E MOV TMRC, A
11 0002
12 0002 0F69 MOV A, 105
13 0003 008D MOV TMR, A
14 0004
15 0004 0F05 MOV A,005H
16 0005 008B MOV INTC, A
17 0006
18 0006 5F0D CLR TIMER_COUNT
19 0007
20 0007 0003 RET
21 0008
22 0008 TIMER_ISR:
23 0008 408E MOV TIMER_ACC, A
24 0009
25 0009 548D INC TIMER_COUNT ; 100 USEC
26 000A
27 000A
28 000A 7C0D SZ TIMER_COUNT.0
29 000B 2800 R JMP NOT_Z_CHECK
30 000C
31 000C 5892 RL BS
32 000D 7412 CLR BS.0
33 000E 5891 RL FS
34 000F 7411 CLR FS.0
35 0010
36 0010 3E92 SZ WHEEL_BACK ; FORWARD BUT
37 0011 7012 SET BS.0 ; F_but_STATE
38 0012 3F12 SZ WHEEL_FORW;BACK_BUT ; BACK BUT
39 0013 7011 SET FS.0 ; B_but_STATE
40 0014
41 0014 0FFF MOV A, 0FFH
42 0015 4412 XOR A, BS
43 0016 1085 SZ ACC
44 0017 2800 R JMP IF_BS_ALL_ZERO
45 0018 ;==============================
46 0018 7010 SET Z_TEMP.0 ; BS bits ALL 1s,
47 0019 7013 SET STABLE.0 ; and BS STABLE
48 001A ;==============================
49 001A IF_BS_ALL_ZERO:
50 001A 1F05 CLR ACC
51 001B 4412 XOR A, BS
52 001C 1085 SZ ACC
53 001D 2800 R JMP IF_FS_ALL_ONE
54 001E ;===============================
55 001E 7410 CLR Z_TEMP.0 ; BS bits ALL 0s,
56 001F 7013 SET STABLE.0 ; and BS STABLE
57 0020 ;===============================
"File: TIMER_OPER.ASM Holtek Cross-Assembler Version 2.86 Page 2
58 0020 IF_FS_ALL_ONE:
59 0020 0FFF MOV A, 0FFH
60 0021 4411 XOR A, FS
61 0022 1085 SZ ACC
62 0023 2800 R JMP IF_FS_ALL_ZERO
63 0024 ;================================
64 0024 7090 SET Z_TEMP.1 ; FS bits ALL 1s,
65 0025 7093 SET STABLE.1 ; and FS STABLE
66 0026 ;================================
67 0026 IF_FS_ALL_ZERO:
68 0026 1F05 CLR ACC
69 0027 4411 XOR A, FS
70 0028 1085 SZ ACC
71 0029 2800 R JMP IF_STABLE
72 002A ;=================================
73 002A 7490 CLR Z_TEMP.1 ; FS bits ALL 0s,
74 002B 7093 SET STABLE.1 ; and FS STABLE
75 002C ;=================================
76 002C IF_STABLE:
77 002C 0F03 MOV A, 3 ;=================================
78 002D 4413 XOR A, STABLE ; Z_TEMP: 0000 00XX
79 002E 1085 SZ ACC ; ||
80 002F 2800 R JMP NOT_Z_CHECK ; |FS
81 0030 ; BS
82 0030 ;==== BELOW : CHECK WHEN STABLE
83 0030 NOT_UPDATE_OLDZ: ; STABLE: 0000 00XX
84 0030 076C MOV A, OLD_Z ; ||
85 0031 1885 RL ACC ; |FS
86 0032 1885 RL ACC ; BS
87 0033 4510 OR A, Z_TEMP ;==================================
88 0034 408F MOV Z_COMBINE, A
89 0035 ;==================================
90 0035 0F01 MOV A, 1 ; Z_COMBINE : 0000 XXXX
91 0036 440F XOR A, Z_COMBINE ; ||||
92 0037 1085 SZ ACC ; |||FS
93 0038 2800 R JMP CHECK_E ; ||BS
94 0039 ; |OLD_FS
95 0039 2800 R JMP Z_UP ; OLD_BS
96 003A ;===================================
97 003A CHECK_E:
98 003A 0F0E MOV A, 00EH ; 0000 1110 <-- Z_UP
99 003B 440F XOR A, Z_COMBINE
100 003C 1085 SZ ACC
101 003D 2800 R JMP CHECK_2
102 003E
103 003E 2800 R JMP Z_UP
104 003F
105 003F CHECK_2:
106 003F 0F02 MOV A, 002H ; 0000 0010 <-- Z_DN
107 0040 440F XOR A, Z_COMBINE
108 0041 1085 SZ ACC
109 0042 2800 R JMP CHECK_D
110 0043
111 0043 2800 R JMP Z_DN
112 0044
113 0044 CHECK_D:
114 0044 0F0D MOV A, 00DH ; 0000 1101 <-- Z_DN
115 0045 440F XOR A, Z_COMBINE
116 0046 1085 SZ ACC
117 0047 2800 R JMP ALREADY_Z_CHECK
"File: TIMER_OPER.ASM Holtek Cross-Assembler Version 2.86 Page 3
118 0048
119 0048 Z_DN:
120 0048 1FEB SET Z_WHEEL
121 0049 30EE SET MOVEMENT.1
122 004A
123 004A 2800 R JMP ALREADY_Z_CHECK
124 004B
125 004B Z_UP:
126 004B 306B SET Z_WHEEL.0
127 004C 30EE SET MOVEMENT.1
128 004D
129 004D ALREADY_Z_CHECK: ;===================================
130 004D 1F6C CLR OLD_Z ; MOVE OLD_Z <-- Z_TEMP
131 004E
132 004E 7C10 SZ Z_TEMP.0 ; OLD_Z = 0000 00XX
133 004F 306C SET OLD_Z.0
134 0050 7C90 SZ Z_TEMP.1
135 0051 30EC SET OLD_Z.1 ;====================================
136 0052
137 0052 NOT_Z_CHECK: ;========================================
138 0052 470E MOV A, TIMER_ACC ; NOT STABLE or NOT ODD TIMER_ISR
139 0053 2809 JMP EXIT_TIMER_ISR ; DO NOTHING
140 0054 ;========================================
141 0054
142 0000 TIMER_VECTOR .SECTION AT 0008H 'CODE'
143 0000
144 0000 2800 R JMP TIMER_ISR
145 0001 EXIT_TIMER_ISR:
146 0001 0004 RETI
147 0002
0 Errors
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -