📄 test153s.lst
字号:
1 ;----------------------------------------------------
2 ; Project : Digital
3 ; Author : KeillenCheung
4 ; Company : Mailly
5 ; Date : August 19 , 2004
6 ; Version : 2.00
7 ; IC@Fosc : EM78P153S@IRC( 4.0MHz )
8 ;-----------------------------------------------
9 ; declare the include file
10 ;include "Constants.h"
11 include "Define.h"
1 C ;-----------------------------------------------
2 C ; Project : Digital Model Car _ TX
3 C ; Author : PengLin
4 C ; Company : Mailly Electronic Ltd.
5 C ; Date : January 12 , 2004
6 C ; Version : 1.00
7 C ; IC@Fosc : EM78P153S@IRC( 4.0MHz )
8 C ;-----------------------------------------------
9 C ; define the operational registers
10 0000 C R0 equ 0x00 ; Indirect Addressing register
11 0001 C TCC equ 0x01 ; TCC
12 0002 C PC equ 0x02 ; PC&Stack
13 0003 C SF equ 0x03 ; Status register
14 0004 C RSR equ 0x04 ; RAM indirect register
15 0005 C PORT5 equ 0x05 ; P5
16 0006 C PORT6 equ 0x06 ; P6
17 000F C RF equ 0x0f ; Interrupt flag register
18 0000 C TCIF equ 0 ;tcc interrupt occurrence flag
19 0001 C ICIF equ 1
20 0002 C EXIF equ 2
21 C
22 C ; define the special function register
23 0005 C IOC5 equ 0x05 ; P5 control register
24 0006 C IOC6 equ 0x06 ; P6 control register
25 000A C IOCA equ 0x0a ;
26 000B C IOCB equ 0x0b ; Pull_Down control register
27 000C C IOCC equ 0x0c ; Open_drain control register
28 000D C IOCD equ 0x0d ; Pull_High control register
29 000E C IOCE equ 0x0e ; WDT control register
30 000F C IOCF equ 0x0f ; Interruption mask register
31 0000 C TCIE EQU 0
32 0001 C ICIE EQU 1
33 0002 C EXIE EQU 2
34 C
35 C ;define SF register bit
36 0000 C C EQU 0
37 0001 C DC EQU 1
38 0002 C Z EQU 2
39 0002 C _inpin equ 2
40 C
41 C ; configuration the system RAM
42 0010 C Flag equ 0x10 ; system running status flag
43 0011 C KEY_FLAG equ 0x11
44 0001 C F_push equ 1
45 0000 C F_keep equ 0
46 0002 C F_1S EQU 2
47 0003 C key1 equ 3
48 0004 C key2 equ 4
49 0005 C key3 equ 5
50 0006 C key2_again equ 6
51 0012 C KEY_CNT equ 0x12
52 0013 C time_5min equ 0x13
53 0014 C key3_temp equ 0x14
54 0015 C Key3_step equ 0x15
55 0016 C TIME_1S equ 0x16
56 0017 C stack0 equ 0x17
57 0018 C stack1 equ 0x18
58 0019 C Sq_cnt equ 0x19
59 001A C Sq_debonce equ 0x1a
60 C
61 C
62 C ;ChargeH equ 0x17 ; capacitor charge counter
63 C ;ChargeL equ 0x18
64 C ;CalibrD equ 0x19 ; the calibration value
65 C ;MiddleD equ 0x25
66 C ;IDValue equ 0x1a ; the ID value
67 C ;MotorD equ 0x1b ; the motor speed data
68 C ;ServoD equ 0x1c ; the servo data
69 C ;ServoS equ 0x1d ; the Servo adjustment value
70 C ;ServoA equ 0x1e ; the Servo Amplifer value
71 C ;ServoC equ 0x1f ; the Servo handle value
72 C
73 C
74 0020 C DelayH equ 0x20 ; delay counter/timer
75 0021 C DelayL equ 0x21
76 0026 C SentTM equ 0x26
77 C
78 0022 C Temp equ 0x22 ; temp register
79 0023 C TempH equ 0x23
80 0024 C TempL equ 0x24
12 ;-----------------------------------------------
13 ; main routine from here
14 org 000h
15 00000 1418 jmp MAIN
16 00001 0000 NOP
17 00002 0000 NOP
18 00003 0000 NOP
19 00004 0000 NOP
20 00005 0000 NOP
21 00006 0000 NOP
22 00007 1418 JMP MAIN
23 org 008h
24 00008 0057 mov stack0,a ;堆栈
25 00009 0757 swap stack0
26 0000A 0703 swapa SF
27 0000B 0058 mov stack1,a
28
29 0000C 0E0F JBS Rf,TCIF
30 0000D 1414 jmp Intend
31 0000E 080F BC RF,TCIF
32 0000F 1814 mov a,@20;5
33 00010 03C1 add tcc,a ;250*32=8ms
34 ;INC TIME_1S
35 ;MOV A,@250 ;COUNT 2S
36 ;XOR A,TIME_1S
37 ;JBS SF,Z
38 00011 05D6 DJZ TIME_1S
39 00012 1414 JMP Intend
40 ;CLR TIME_1S
41 00013 0A91 BS KEY_FLAG,F_1S
42 00014 Intend:
43 00014 0718 swapa stack1
44 00015 0043 mov SF,a
45 00016 0717 swapa stack0 ;
46 00017 0013 Reti
47 ;---------------------------------------------
48 00018 MAIN:
49 00018 1116 call INITIAL_ROUTINE ; system initiallization routine
50 00019 1135 call DELAY_10MS ;
51 0001A 0000 NOP
52 ; mov a,@0xf0
53 ; mov port6,a
54 0001B MAIN_Loop:
55 0001B 10D2 CALL SCAN_KEY
56 0001C 0E51 JBS KEY_FLAG,F_push
57 0001D 141B JMP MAIN_Loop
58 0001E 0851 BC KEY_FLAG,F_push
59 0001F 0ED1 jbs key_flag,Key1
60 00020 141B JMP MAIN_LOOP ;CHK ON/off Key
61 00021 MAIN_Loop_01:
62 00021 0E85 JBS PORT5,_inpin
63 00022 1421 JMP MAIN_Loop_01
64
65 00023 0BC6 BS PORT6,7
66 00024 1814 mov a,@20;5
67 00025 0041 MOV tcc,a ;250*32=8ms
68 00026 080F BC RF,TCIF
69 00027 1801 MOV A,@1
70 00028 0062 MOV TEMP,A
71 00029 001F IOR IOCF
72 0002A 0222 OR A,TEMP ;set TICE is 1
73 0002B 000F IOW IOCF
74 0002C 0010 ENI
75 0002D 0891 BC KEY_FLAG,F_1S
76 0002E 187D mov a,@125 ;set delay time 1s
77 0002F 0056 MOV TIME_1S,a
78 00030 00D9 CLR Sq_cnt
79 00031 MAIN_Loop_02:
80 00031 0C91 JBC KEY_FLAG,F_1S
81 00032 143E JMP MAIN_Wait_1sEnd
82 00033 0C85 JBC PORT5,_inpin
83 00034 1431 JMP MAIN_Loop_02
84 00035 MAIN_Loop_03:
85 00035 0C91 JBC KEY_FLAG,F_1S
86 00036 143E JMP MAIN_Wait_1sEnd
87 00037 0E85 JBS PORT5,_inpin
88 00038 1435 JMP MAIN_Loop_03
89 00039 1864 MOV A,@100
90 0003A 0319 XOR A,Sq_cnt
91 0003B 0E83 JBS SF,Z
92 0003C 0559 INC Sq_cnt
93 0003D 1431 JMP MAIN_Loop_02
94 0003E MAIN_Wait_1sEnd:
95 0003E 09C6 BC PORT6,7
96 0003F 0891 BC KEY_FLAG,F_1S
97 00040 1808 mov a,@8 ;count time 64ms
98 00041 0056 MOV TIME_1S,a
99 00042 00D9 CLR Sq_cnt
100 00043 MAIN_CHK_Sq:
101 00043 0C91 JBC KEY_FLAG,F_1S
102 00044 1464 JMP MAIN_CHK_Sq_End
103 00045 0E85 JBS PORT5,_inpin
104 00046 1443 JMP MAIN_CHK_Sq
105 00047 1151 call Delay_10us ;1
106 00048 0E85 JBS PORT5,_inpin
107 00049 1443 JMP MAIN_CHK_Sq
108 0004A 1151 call Delay_10us ;2
109 0004B 0E85 JBS PORT5,_inpin
110 0004C 1443 JMP MAIN_CHK_Sq
111 0004D 1151 call Delay_10us ;3
112 0004E 0E85 JBS PORT5,_inpin
113 0004F 1443 JMP MAIN_CHK_Sq
114 00050 1151 call Delay_10us ;4
115 00051 0E85 JBS PORT5,_inpin
116 00052 1443 JMP MAIN_CHK_Sq
117 00053 1151 call Delay_10us ;5
118 00054 0E85 JBS PORT5,_inpin
119 00055 1443 JMP MAIN_CHK_Sq
120 ; call Delay_10us ;6
121 ; JBS PORT5,_inpin
122 ; JMP MAIN_CHK_Sq
123 ; call Delay_10us ;7
124 ; JBS PORT5,_inpin
125 ; JMP MAIN_CHK_Sq
126 ; call Delay_10us ;8
127 ; JBS PORT5,_inpin
128 ; JMP MAIN_CHK_Sq
129 ; call Delay_10us ;9
130 ; JBS PORT5,_inpin
131 ; JMP MAIN_CHK_Sq
132 ; call Delay_10us ;10
133 ; JBS PORT5,_inpin
134 ; JMP MAIN_CHK_Sq
135 ; call Delay_10us ;11
136 ; JBS PORT5,_inpin
137 ; JMP MAIN_CHK_Sq
138 ; call Delay_10us ;12
139 ; JBS PORT5,_inpin
140 ; JMP MAIN_CHK_Sq
141 00056 MAIN_CHK_Sq_chklow:
142 00056 0C91 JBC KEY_FLAG,F_1S
143 00057 1464 JMP MAIN_CHK_Sq_End
144 00058 0C85 JBC PORT5,_inpin
145 00059 1456 JMP MAIN_CHK_Sq_chklow
146 0005A MAIN_CHK_Sq_chklow_01:
147 0005A 0C85 JBC PORT5,_inpin
148 0005B 1456 JMP MAIN_CHK_Sq_chklow
149 0005C 1151 call Delay_10us ;1
150 0005D 0C85 JBC PORT5,_inpin
151 0005E 1456 JMP MAIN_CHK_Sq_chklow
152 0005F 1151 call Delay_10us ;2
153 00060 0C85 JBC PORT5,_inpin
154 00061 1456 JMP MAIN_CHK_Sq_chklow
155 ; call Delay_10us ;3
156 ; JBC PORT5,_inpin
157 ; JMP MAIN_CHK_Sq_chklow
158 ; call Delay_10us ;4
159 ; JBC PORT5,_inpin
160 ; JMP MAIN_CHK_Sq_chklow
161 ; call Delay_10us ;5
162 ; JBC PORT5,_inpin
163 ; JMP MAIN_CHK_Sq_chklow
164 ; call Delay_10us ;6
165 ; JBC PORT5,_inpin
166 ; JMP MAIN_CHK_Sq_chklow
167 00062 0559 INC Sq_cnt
168 00063 1443 JMP MAIN_CHK_Sq
169 00064 MAIN_CHK_Sq_End:
170 00064 0000 nop
171 00065 0000 nop
172 00066 MAIN_Wait_1sEnd_1:
173 00066 0000 NOP
174 00067 1466 JMP MAIN_Wait_1sEnd_1
175 ;MAIN_Loop_01:
176 00068 0000 NOP
177 00069 1421 JMP MAIN_Loop_01
178 0006A 10D2 CALL SCAN_KEY
179 0006B 0E51 JBS KEY_FLAG,F_push
180 0006C 1421 JMP MAIN_Loop_01
181 0006D MAIN_Loop_01_in:
182 0006D 0851 BC KEY_FLAG,F_push
183 0006E 0CD1 jbc key_flag,Key1
184 0006F 1475 JMP MAIN_TURN_OFF ;CHK ON/off Key
185 00070 0D11 jbc key_flag,Key2
186 00071 147C JMP GET_KEY2
187 00072 0F51 jbs key_flag,Key3
188 00073 1421 JMP main_loop_01
189 00074 1489 JMP GET_KEY3
190 00075 MAIN_TURN_OFF:
191 00075 1800 mov a,@0
192 00076 0045 mov port5,a
193 00077 0046 mov port6,a
194 00078 1801 MOV A,@0X01
195 00079 02D1 AND KEY_FLAG,A
196 0007A 00D5 CLR Key3_step
197 0007B 141B jmp MAIN_Loop ;jmp re-start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -