?? oki80second_1.lst
字號:
1 0000 R0 == 0X00
2 0001 TCC == 0X01
3 0002 PC == 0X02
4 0003 STATUS == 0X03
5 0000 C == 0 ; Carry flag
6 0001 DC == 1 ; Auxiliary carry flag
7 0002 Z == 2 ; Zero flag
8 0003 P == 3 ; Power down flag
9 0004 T == 4 ; Timeout flag
10 0004 RSR == 0X04
11 0005 PORT5 == 0X05
12 0006 PORT6 == 0X06
13 000F INTERRUPT == 0X0F
14 0004 LED == 4 ;led display
15 0006 SDA == 6 ;i2c data
16 0007 SCL == 7 ;i2c clock
17 0001 UPkey == 1 ;up key
18 0002 DOWNkey == 2 ;down
19 0000 cs == 0 ;lcd en
20 0002 CK == 2 ;lcd clock\1415 clock
21 0003 DA == 3 ;lcd data\1415da
22 0001 ce == 1 ;1415 en
23 ;--------------------------------------------
24 0001 CONT == 0X01
25 0005 IOC5 == 0X05
26 0006 IOC6 == 0X06
27 000B IOCB == 0X0B
28 000C IOCC == 0X0C
29 000D IOCD == 0X0D
30 000E IOCE == 0X0E
31 000F IOCF == 0X0F
32 0006 PROT_I2C == 0x06
33 ;--------------------------------------------------------------------
34 ;Control Registers Define
35
36 0010 MOVE_TIME == 0X10
37 0011 DATA1 == 0X11
38 0012 KEYTIME == 0X12
39 0013 FLAG == 0x13
40 0000 havedata == 0 ; 0 1 I2C have data 0 no have data
41 0001 LOSEFLAG == 1 ; 0 KEY NO LOSE 1 KEY LOSE
42 0002 ack == 2 ;
43 0003 outack == 3
44 0004 updownflag == 4
45 0005 ledflag == 5
46 0006 i2cflag == 6
47 0014 DATA == 0X14
48 0015 I2CDATA_HIGH == 0X15
49 0016 I2CDATA_LOW == 0X16
50 0017 ADDRESS == 0X17
51 0018 BCDDATA == 0X18
52 0019 BCDDATA1 == 0X19
53 001A BCDDATA2 == 0X1a
54 001B BCDDATA3 == 0X1b
55 001C DATATEMP == 0X1c
56 001D BCDTEMP_HIGH == 0X1d
57 001E BCDTEMP_LOW == 0X1e
58 001F MOVE_TIMETEMP == 0X1f
59
60 0020 COMMAND == 0X20
61 0021 LCDRAM == 0X21
62 0022 LCD_MAP == 0X22
63 0023 E_BUFFER == 0x23
64 0024 SLAVE == 0x24
65 0025 MOVETIME2 == 0X25
66 ;--------------------------------------------------------------------
67 ;--------------------------------
68 ORG 0 ;RESET VECTOR
69 00000 0011 DISI ;disable interrupt
70 00001 1415 jmp stinit
71 org 8
72 00008 16EF jmp INT_PRO
73 org 0x15
74 00015 stinit:
75 00015 12C8 CALL INIT
76 00016 0B53 bs flag,ledflag
77 00017 12A5 CALL lcdinit
78 00018 0906 bc port6,led
79 00019 1178 call read24c01
80 0001A 0000 nop
81 0001B 0415 mov a,i2cdata_high
82 0001C 1D04 sub a,@0x04
83 0001D 0E83 jbs status,z
84 0001E 1424 jmp banduani2chi
85 0001F 0416 mov a,i2cdata_low ; i2cdata_high==4
86 00020 1D38 sub a,@0x38
87 00021 0E03 jbs status,c
88 00022 142D jmp INIDATA
89 00023 144F jmp datato1415
90 00024 banduani2chi: ;
91 00024 0415 mov a,i2cdata_high
92 00025 1D03 sub a,@0x03
93 00026 0E83 jbs status,z
94 00027 142D jmp INIDATA
95 00028 0416 mov a,i2cdata_low
96 00029 1D6B sub a,@0x6b
97 0002A 0C03 jbc status,c
98 0002B 142D jmp INIDATA
99 0002C 144F jmp datato1415
100 ;-------------------------------------- 賦 原始數據給 I2C
101 0002D INIDATA:
102 0002D 1803 MOV A,@0X03
103 0002E 0055 mov I2CDATA_HIGH,A ; 87.5 MHz
104 0002F 186B MOV A,@0X6B
105 00030 0056 mov I2CDATA_LOW,A
106 00031 11A2 call e_w
107 00032 111E call writeto1415 ; to 1415
108 00033 1143 call HEX_TO_BCD
109 00034 1210 CALL LCDDISPLAY ; to display
110 00035 1452 JMP MAIN_START_1
111 ;--------------------------------------------------------------
112 00036 dispdatatab:
113 00036 03C2 ADD PC,A
114 00037 1C0F RETL @00001111B ; 0
115 00038 1C07 RETL @00000111B ; 1
116 00039 1C0D RETL @00001101B ; 2
117 0003A 1C0F RETL @00001111B ; 3
118 0003B 1C07 RETL @00000111B ; 4
119 0003C 1C0B RETL @00001011b ; 5
120 0003D 1C0B RETL @00001011B ; 6
121 0003E 1C0F RETL @00001111B ; 7
122 0003F 1C0F RETL @00001111B ; 8
123 00040 1C0F RETL @00001111B ; 9
124 00041 dispdatatab_2:
125 00041 03C2 ADD PC,A
126 00042 1C0B RETL @00001011B ; 0
127 00043 1C00 RETL @00000000B ; 1
128 00044 1C07 RETL @00000111B ; 2
129 00045 1C05 RETL @00000101B ; 3
130 00046 1C0C RETL @00001100B ; 4
131 00047 1C0D RETL @00001101b ; 5
132 00048 1C0F RETL @00001111B ; 6
133 00049 1C00 RETL @00000000B ; 7
134 0004A 1C0F RETL @00001111B ; 8
135 0004B 1C0D RETL @00001101B ; 9
136 0004C dispdatatab_1:
137 0004C 03C2 ADD PC,A
138 0004D 1C08 RETL @00001000b ; 0
139 0004E 1C0E RETL @00001110b ; 1
140 ;-------------------------------------
141 0004F datato1415:
142 0004F 111E CALL writeto1415
143 00050 1143 CALL HEX_TO_BCD
144 00051 1210 CALL LCDDISPLAY
145 ;-------------------------------------- main 入口
146 00052 MAIN_START_1:
147 00052 110C call delay1s
148 00053 0B06 bs port6,led
149 00054 MAIN_START:
150 00054 0004 wdtc
151 ; mov a,@0x02
152 ; iow iocf
153 ; disi
154 ; MOV A,@0X0
155 ; IOW IOCE ;DISABLE WDT
156 ; nop
157 ; mov pORT6,pORT6
158 ; NOP
159 ; SLEP
160 ; nop
161 ; nop
162 ; nop
163 ; MOV A,@0X80
164 ; IOW IOCE ;ENABLE WDT
165 ; WDTC ;CLEAR WDT
166
167 00055 0C46 jbc port6,upkey
168 00056 1458 jmp mainstart_2
169 00057 145A jmp upkeytab
170 00058 mainstart_2:
171 00058 0C86 jbc port6,downkey
172 00059 1454 jmp MAIN_START
173 0005A upkeytab:
174 0005A 0004 WDTC ;CLEAR WDT
175 0005B 1114 CALL DELAY10MS
176 0005C 0C46 JBC PORT6,UPkey
177 0005D 145F JMP DOWNKEYTAB
178 0005E 1462 JMP UPKEYPROCE
179 0005F DOWNKEYTAB:
180 0005F 0C86 JBC PORT6,DOWNkey
181 00060 1454 JMP MAIN_START
182 00061 1499 JMP DOWNKEYPROCE
183 ;--------------------------------------------- UPKEY PROCE PROGRAM
184 00062 UPKEYPROCE:
185 00062 0906 bc port6,led
186 00063 00D2 CLR KEYTIME
187 00064 UPKEYPROCELOOP:
188 00064 0004 wdtc
189 00065 0552 INC KEYTIME
190 00066 0415 MOV A,I2CDATA_HIGH
191 00067 1D04 SUB A,@4
192 00068 0E83 JBS STATUS,Z
193 00069 1474 JMP UPI2C3
194 0006A UPI2C4:
195 0006A 0556 INC I2CDATA_LOW
196 0006B 1839 MOV A,@0X39
197 0006C 0116 SUB A,I2CDATA_LOW
198 0006D 0E03 JBS STATUS,C
199 0006E 147F JMP UPKEYPROCE_2
200 0006F UPRESET:
201 0006F 1803 MOV A,@3
202 00070 0055 MOV I2CDATA_HIGH,A
203 00071 186B MOV A,@0X6B
204 00072 0056 MOV I2CDATA_LOW,A
205 00073 147F JMP UPKEYPROCE_2
206 00074 UPI2C3:
207 00074 0415 MOV A,I2CDATA_HIGH
208 00075 1D03 SUB A,@3
209 00076 0E83 JBS STATUS,Z
210 00077 146F JMP UPRESET
211 00078 UPI2C3_1:
212 00078 0556 INC I2CDATA_LOW
213 00079 0416 MOV A,I2CDATA_LOW
214 0007A 1D00 SUB A,@0X00
215 0007B 0E83 JBS STATUS,Z
216 0007C 147F JMP UPKEYPROCE_2
217 0007D UPI2C3_:
218 0007D 0555 INC I2CDATA_HIGH
219 0007E 00D6 CLR I2CDATA_LOW
220 0007F UPKEYPROCE_2:
221 0007F 111E CALL writeto1415
222 00080 1143 CALL HEX_TO_BCD
223 00081 0000 nop
224 00082 1210 CALL LCDDISPLAY
225 00083 1803 MOV A,@3
226 00084 0112 SUB A,KEYTIME
227 00085 0E03 JBS STATUS,C ; 前三次一秒變一次
228 00086 1488 JMP UPKEYPROCE_3
229 00087 148A JMP UPKEYPROCE_4
230 00088 UPKEYPROCE_3:
231 00088 10F0 CALL KEYDELAY500MS
232 00089 148D JMP UPKEYPROCE_5
233 0008A UPKEYPROCE_4:
234 0008A 10F3 CALL KEYDELAY100MS
235 0008B 180A MOV A,@10
236 0008C 0052 MOV KEYTIME,A
237 0008D UPKEYPROCE_5:
238 0008D 0E46 JBS port6,UPKEY
239 0008E 1464 JMP UPKEYPROCELOOP
240 0008F 11A2 CALL e_w
241 00090 10D5 CALL LEDDELAY
242 00091 0E53 JBS FLAG,LOSEFLAG
243 00092 1495 JMP KEYDELAYUP
244 00093 0B06 BS port6,LED
245 00094 1454 jmp main_start
246 00095 KEYDELAYUP:
247 00095 11A2 CALL e_w
248 00096 0C46 JBC port6,UPKEY
249 00097 1499 JMP DOWNKEYPROCE
250 00098 1462 JMP UPKEYPROCe
251 00099 KEYDELAYUP_1:
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -