📄 xq_16io.lst
字号:
167 ;
00AD 530010 F 168 stus_port13: anl input_stus,#010H
A51 MACRO ASSEMBLER XQ_AP66C.LST 11/24/2003 18:38:36 PAGE 9
00B0 800D 169 sjmp in_exit
170 ;
00B2 530020 F 171 stus_port14: anl input_stus,#020H
00B5 8008 172 sjmp in_exit
173 ;
00B7 530040 F 174 stus_port15: anl input_stus,#040H
00BA 8003 175 sjmp in_exit
176 ;
00BC 530080 F 177 stus_port16: anl input_stus,#080H
00BF E500 F 178 in_exit: mov a,input_stus
00C1 B40004 179 cjne a,#00,in_exit1
00C4 7F01 180 mov r7,#ON
00C6 8002 181 jmp in_exit2
00C8 7F00 182 in_exit1: mov r7,#OFF
00CA 22 183 in_exit2: ret
184 ;----------------------------------------------------------------------------
185 ; PC16I8O output port C call function prototype
186 ; void _output_port(char c,char s)
187 ;
00CB ED 188 _output_port: mov a,r5
00CC B40104 189 cjne a,#01,out_port1
00CF 7D00 190 mov r5,#OFF
A51 MACRO ASSEMBLER XQ_AP66C.LST 11/24/2003 18:38:36 PAGE 10
00D1 8002 191 jmp out_port2
00D3 7D01 192 out_port1: mov r5,#ON
00D5 AE90 193 out_port2: mov r6,p1
00D7 8E00 F 194 mov output_buf,r6
00D9 EF 195 mov a,r7
00DA 14 196 dec a
00DB B40800 197 cjne a,#08h,out_port3
00DE 4003 198 out_port3: jc $ + 5h
00E0 020000 F 199 ljmp out_exit
00E3 900000 F 200 mov dptr,#out_vector
00E6 F8 201 mov r0,a
00E7 28 202 add a,r0
00E8 28 203 add a,r0
00E9 73 204 jmp @a+dptr
205 ;
00EA 020000 F 206 out_vector: ljmp port1_out
00ED 020000 F 207 ljmp port2_out
00F0 020000 F 208 ljmp port3_out
00F3 020000 F 209 ljmp port4_out
00F6 020000 F 210 ljmp port5_out
00F9 020000 F 211 ljmp port6_out
00FC 020000 F 212 ljmp port7_out
A51 MACRO ASSEMBLER XQ_AP66C.LST 11/24/2003 18:38:36 PAGE 11
00FF 020000 F 213 ljmp port8_out
214 ;
0102 ED 215 port1_out: mov a,r5
0103 B40106 216 cjne a,#01h,port1_out1
0106 430001 F 217 orl output_buf,#01H
0109 020000 F 218 ljmp out_exit
010C 5300FE F 219 port1_out1: anl output_buf,#0FEH
010F 020000 F 220 ljmp out_exit
0112 ED 221 port2_out: mov a,r5
0113 B40106 222 cjne a,#01h,port2_out1
0116 430002 F 223 orl output_buf,#02h
0119 020000 F 224 ljmp out_exit
011C 5300FD F 225 port2_out1: anl output_buf,#0fdh
011F 8052 226 sjmp out_exit
0121 ED 227 port3_out: mov a,r5
0122 B40105 228 cjne a,#01h,port3_out1
0125 430004 F 229 orl output_buf,#04h
0128 8049 230 sjmp out_exit
012A 5300FB F 231 port3_out1: anl output_buf,#0fbh
012D 8044 232 sjmp out_exit
012F ED 233 port4_out: mov a,r5
0130 B40105 234 cjne a,#01h,port4_out1
A51 MACRO ASSEMBLER XQ_AP66C.LST 11/24/2003 18:38:36 PAGE 12
0133 430008 F 235 orl output_buf,#08h
0136 803B 236 sjmp out_exit
0138 5300F7 F 237 port4_out1: anl output_buf,#0f7h
013B 8036 238 sjmp out_exit
013D ED 239 port5_out: mov a,r5
013E B40105 240 cjne a,#01h,port5_out1
0141 430010 F 241 orl output_buf,#010h
0144 802D 242 sjmp out_exit
0146 5300EF F 243 port5_out1: anl output_buf,#0efh
0149 8028 244 sjmp out_exit
014B ED 245 port6_out: mov a,r5
014C B40105 246 cjne a,#01h,port6_out1
014F 430020 F 247 orl output_buf,#020h
0152 801F 248 sjmp out_exit
0154 5300DF F 249 port6_out1: anl output_buf,#0dfh
0157 801A 250 sjmp out_exit
0159 ED 251 port7_out: mov a,r5
015A B40105 252 cjne a,#01h,port7_out1
015D 430040 F 253 orl output_buf,#040h
0160 8011 254 sjmp out_exit
0162 5300BF F 255 port7_out1: anl output_buf,#0bfh
0165 800C 256 sjmp out_exit
A51 MACRO ASSEMBLER XQ_AP66C.LST 11/24/2003 18:38:36 PAGE 13
0167 ED 257 port8_out: mov a,r5
0168 B40105 258 cjne a,#01h,port8_out1
016B 430080 F 259 orl output_buf,#080h
016E 8003 260 sjmp out_exit
0170 53007F F 261 port8_out1: anl output_buf,#07fh
0173 850090 F 262 out_exit: mov p1,output_buf
0176 22 263 ret
264 ;----------------------------------------------------------------------------
0177 AE90 265 _get_outstus: mov r6,p1
0179 EF 266 mov a,r7
017A B40105 267 cjne a,#01,get_outstus1
017D EE 268 mov a,r6
017E 5401 269 anl a,#00000001b
0180 8036 270 jmp check_stus
0182 B40205 271 get_outstus1: cjne a,#02,get_outstus2
0185 EE 272 mov a,r6
0186 5402 273 anl a,#00000010b
0188 802E 274 jmp check_stus
018A B40305 275 get_outstus2: cjne a,#03,get_outstus3
018D EE 276 mov a,r6
018E 5404 277 anl a,#00000100b
0190 8026 278 jmp check_stus
A51 MACRO ASSEMBLER XQ_AP66C.LST 11/24/2003 18:38:36 PAGE 14
0192 B40405 279 get_outstus3: cjne a,#04,get_outstus4
0195 EE 280 mov a,r6
0196 5408 281 anl a,#00001000b
0198 801E 282 jmp check_stus
019A B40505 283 get_outstus4: cjne a,#05,get_outstus5
019D EE 284 mov a,r6
019E 5410 285 anl a,#00010000b
01A0 8016 286 jmp check_stus
01A2 B40605 287 get_outstus5: cjne a,#06,get_outstus6
01A5 EE 288 mov a,r6
01A6 5420 289 anl a,#00100000b
01A8 800E 290 jmp check_stus
01AA B40705 291 get_outstus6: cjne a,#07,get_outstus7
01AD EE 292 mov a,r6
01AE 5440 293 anl a,#01000000b
01B0 8006 294 jmp check_stus
01B2 B4080B 295 get_outstus7: cjne a,#08,check_end
01B5 EE 296 mov a,r6
01B6 5480 297 anl a,#10000000b
01B8 7004 298 check_stus: jnz check_stus1
01BA 7F01 299 mov r7,#ON
01BC 8002 300 jmp check_end
A51 MACRO ASSEMBLER XQ_AP66C.LST 11/24/2003 18:38:36 PAGE 15
01BE 7F00 301 check_stus1: mov r7,#OFF
01C0 22 302 check_end: ret
303 ;----------------------------------------------------------------------------
304 ; PC16I8O sk2 explanation using read BCD function
305 ; sk2.2 = MSB byte sk2.4 = LSB byte
306 ; C call function prototype char _scan_manual(void)
307 ;
01C1 C2B6 308 _scan_manual: clr p3.6 ; read LSB byte
01C3 120000 F 309 call delay5ms
01C6 120000 F 310 call delay5ms
01C9 E5B0 311 mov a,p3
01CB 13 312 rrc a
01CC 13 313 rrc a
01CD F4 314 cpl a
01CE 540F 315 anl a,#00001111b
01D0 F8 316 mov r0,a ; save LSB byte at r0
01D1 D2B6 317 setb p3.6
01D3 C2B7 318 clr p3.7 ; read MSB byte
01D5 120000 F 319 call delay5ms
01D8 120000 F 320 call delay5ms
01DB E5B0 321 mov a,p3
01DD 13 322 rrc a
A51 MACRO ASSEMBLER XQ_AP66C.LST 11/24/2003 18:38:36 PAGE 16
01DE 13 323 rrc a
01DF F4 324 cpl a
01E0 540F 325 anl a,#00001111b
01E2 D2B7 326 setb p3.7
01E4 75F00A 327 mov b,#10
01E7 A4 328 mul ab
01E8 28 329 add a,r0
01E9 FF 330 mov r7,a ; return BCD in r7 register
01EA 22 331 ret
332 ;----------------------------------------------------------------------------
333 ; PC16I8O sk2 explanation using panel control
334 ; Sk2.5 & sk2.6 & sk2.8 & sk2.9 using for key
335 ; C call function prototye char _get_key(char c)
336 ;
01EB E500 F 337 _get_key: mov a,port3_stus
01ED BF0104 338 cjne r7,#01,get_key1
01F0 5404 339 anl a,#04h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -