📄 rx900-ok.lst
字号:
00242 ; GPIO1 = IN
00243 ; GPIO0.GPIO2.GPIO3.GPIO4.GPIO5 = OUT
00244
00245 ;*********************************************************************
003E 00246 INIT_GPIO
003E 0C04 00247 MOVLW B'00000100' ; only GPIO.2 is input
003F 0006 00248 TRIS GPIO
0040 0066 00249 CLRF GPIO
0041 0800 00250 RETLW 0
00251 ;
0042 00252 INIT_TMR0
0042 0CCC 00253 MOVLW B'11001100' ; WDT rate 1 : 16
0043 0002 00254 OPTION
0044 0004 00255 CLRWDT
0045 0800 00256 RETLW 0
00257
00258 ;*********************************************************************
00259 ; verdict three key thereinto singleton
00260 ; if all not homologous, return program start
00261 ;-----------------------------------------
0046 00262 CHK_QC
0046 0CF0 00263 MOVLW 0F0H
0047 0092 00264 SUBWF DATA_BUF,W
0048 0743 00265 SKPZ
MPASM 02.70 Released RX900-OK.ASM 3-10-2003 14:59:15 PAGE 6
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0049 0A5E 00266 GOTO CHKAAH
004A 0CFF 00267 MOVLW 0FFH
004B 0034 00268 MOVWF FLG_QC ;set QC mode flag
004C 007D 00269 CLRF COUNT1
004D 0586 00270 BSF GPIO,BUZZER
004E 0C64 00271 MOVLW D'100'
004F 09BB 00272 CALL DELAYX
0050 0486 00273 BCF GPIO,BUZZER
0051 0C50 00274 MOVLW D'80'
0052 09BB 00275 CALL DELAYX
0053 0586 00276 BSF GPIO,BUZZER
0054 0C64 00277 MOVLW D'100'
0055 09BB 00278 CALL DELAYX
0056 0486 00279 BCF GPIO,BUZZER
0057 0C50 00280 MOVLW D'80'
0058 09BB 00281 CALL DELAYX
0059 0586 00282 BSF GPIO,BUZZER
005A 0C64 00283 MOVLW D'100'
005B 09BB 00284 CALL DELAYX
005C 0486 00285 BCF GPIO,BUZZER
005D 0AAC 00286 GOTO OK_END
005E 00287 CHKAAH
005E 0CAA 00288 MOVLW 0AAH
005F 0092 00289 SUBWF DATA_BUF,W
0060 0743 00290 SKPZ
0061 0A74 00291 GOTO CHK55H
00292 ;
0062 0214 00293 MOVFW FLG_QC
0063 0743 00294 SKPZ
0064 0A70 00295 GOTO QC_AAH
00296 ;
0065 0586 00297 BSF GPIO,BUZZER
0066 0C64 00298 MOVLW D'100'
0067 09BB 00299 CALL DELAYX
0068 0486 00300 BCF GPIO,BUZZER
0069 0C50 00301 MOVLW D'80'
006A 09BB 00302 CALL DELAYX
006B 0586 00303 BSF GPIO,BUZZER
006C 0C64 00304 MOVLW D'100'
006D 09BB 00305 CALL DELAYX
006E 0486 00306 BCF GPIO,BUZZER
006F 0AAC 00307 GOTO OK_END
0070 00308 QC_AAH
0070 0586 00309 BSF GPIO,BUZZER
0071 09AE 00310 CALL DELAY3S ; BUZZER out 3S
0072 0486 00311 BCF GPIO,BUZZER
0073 0AAC 00312 GOTO OK_END
0074 00313 CHK55H
0074 0C55 00314 MOVLW 055H
0075 0092 00315 SUBWF DATA_BUF,W
0076 0743 00316 SKPZ
0077 0A86 00317 GOTO CHK0FH
00318 ;
MPASM 02.70 Released RX900-OK.ASM 3-10-2003 14:59:15 PAGE 7
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0078 0214 00319 MOVFW FLG_QC
0079 0743 00320 SKPZ
007A 0A82 00321 GOTO QC_55H
00322 ;
007B 05A6 00323 BSF GPIO,SPRAY
007C 0C96 00324 MOVLW D'150'
007D 09BB 00325 CALL DELAYX
007E 0C96 00326 MOVLW D'150'
007F 09BB 00327 CALL DELAYX
0080 04A6 00328 BCF GPIO,SPRAY
0081 0AAC 00329 GOTO OK_END
0082 00330 QC_55H
0082 05A6 00331 BSF GPIO,SPRAY
0083 09AE 00332 CALL DELAY3S ; SPRAY out 3S
0084 04A6 00333 BCF GPIO,SPRAY
0085 0AAC 00334 GOTO OK_END
0086 00335 CHK0FH
0086 0C0F 00336 MOVLW 00FH
0087 0092 00337 SUBWF DATA_BUF,W
0088 0743 00338 SKPZ
0089 0A35 00339 GOTO CHECK_START
00340 ;
008A 0214 00341 MOVFW FLG_QC
008B 0743 00342 SKPZ
008C 0A98 00343 GOTO QC_0FH
008D 05A6 00344 BSF GPIO,SPRAY
008E 0CC8 00345 MOVLW D'200'
008F 09BB 00346 CALL DELAYX
0090 0CC8 00347 MOVLW D'200'
0091 09BB 00348 CALL DELAYX
0092 0CC8 00349 MOVLW D'200'
0093 09BB 00350 CALL DELAYX
0094 0C64 00351 MOVLW D'100'
0095 09BB 00352 CALL DELAYX
0096 04A6 00353 BCF GPIO,SPRAY
0097 0AAC 00354 GOTO OK_END
0098 00355 QC_0FH
0098 0074 00356 CLRF FLG_QC
0099 0586 00357 BSF GPIO,BUZZER
009A 0C64 00358 MOVLW D'100'
009B 09BB 00359 CALL DELAYX
009C 0486 00360 BCF GPIO,BUZZER
009D 0C50 00361 MOVLW D'80'
009E 09BB 00362 CALL DELAYX
009F 0586 00363 BSF GPIO,BUZZER
00A0 0C64 00364 MOVLW D'100'
00A1 09BB 00365 CALL DELAYX
00A2 0486 00366 BCF GPIO,BUZZER
00A3 09AE 00367 CALL DELAY3S
00A4 0CCF 00368 MOVLW B'11001111' ; WDT rate 1 : 128
00A5 0002 00369 OPTION ; enter sleep 2.4s
00A6 0004 00370 CLRWDT
00A7 0003 00371 SLEEP
MPASM 02.70 Released RX900-OK.ASM 3-10-2003 14:59:15 PAGE 8
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00A8 0000 00372 NOP
00A9 0000 00373 NOP
00AA 0000 00374 NOP
00AB 0AAA 00375 GOTO $-1
00AC 00376 OK_END
00AC 05A3 00377 BLOCK2
00AD 0A1B 00378 GOTO M_LOOP
00379 ;*********************************************************************
00380 ;*********************************************************************
00AE 00381 DELAY3S
00AE 0C96 00382 MOVLW D'150' ; 150 * 20 = 3s
00AF 0037 00383 MOVWF R2
00B0 09BA 00384 CALL DELAY20MS
00B1 02F7 00385 DECFSZ R2
00B2 0AB0 00386 GOTO $-2
00B3 0800 00387 RETLW 0
00388 ;
00B4 00389 DELAY1S
00B4 0C32 00390 MOVLW D'50' ; 50 * 20 = 1s
00B5 0037 00391 MOVWF R2
00B6 09BA 00392 CALL DELAY20MS
00B7 02F7 00393 DECFSZ R2
00B8 0AB6 00394 GOTO $-2
00B9 0800 00395 RETLW 0
00396 ;
00BA 00397 DELAY20MS
00BA 0C14 00398 MOVLW D'20' ; Td = (((R5) * 5) + 5) * (R0)
00BB 00399 DELAYX
00BB 0035 00400 MOVWF R0 ; = (200 * 5 + 5) * 20
00BC 0CC8 00401 MOVLW D'200' ; = 20ms
00BD 0036 00402 MOVWF R1
00BE 0004 00403 CLRWDT
00BF 0004 00404 CLRWDT
00C0 02F6 00405 DECFSZ R1
00C1 0ABE 00406 GOTO $-3
00C2 02F5 00407 DECFSZ R0
00C3 0ABC 00408 GOTO $-7
00C4 0800 00409 RETLW 0
00410
00411
00412 ;----------------------------------------
00413 ;----------------------------------------
00414 ;----------------------------------------
00415 ; ROM BLOCK2
00416 ;----------------------------------------
00417 ;----------------------------------------
00418 ;----------------------------------------
00419
0210 00420 ORG 210H
0210 00421 _MAIN
0210 0064 00422 CLRF FSR ; Select blank 0
0211 0074 00423 CLRF FLG_QC
0212 0203 00424 MOVFW STATUS ; STATUS register to W
MPASM 02.70 Released RX900-OK.ASM 3-10-2003 14:59:15 PAGE 9
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0213 0E98 00425 ANDLW B'10011000' ; check power on of start
0214 002A 00426 MOVWF TEMP_BUF
0215 0643 00427 SKPNZ
0216 0A28 00428 GOTO WDT_WAKE ; is WDT wake the sleep
00429 ;
0217 00430 POWER_UP
0217 04A3 00431 BLOCK1
0218 0942 00432 CALL INIT_TMR0
0219 093E 00433 CALL INIT_GPIO
021A 05A3 00434 BLOCK2
00435 ;=====================================================================
021B 00436 M_LOOP
021B 0214 00437 MOVFW FLG_QC
021C 0743 00438 SKPZ
021D 0A2C 00439 GOTO QC_WAKE
00440 ;
021E 0406 00441 BCF GPIO,ENABLE ; start sleep of send board
021F 04A3 00442 BLOCK1
0220 0942 00443 CALL INIT_TMR0
0221 05A3 00444 BLOCK2
00445 ;
0222 0000 00446 NOP
0223 0003 00447 SLEEP ; the MCU start sleep
0224 0000 00448 NOP
0225 0000 00449 NOP
0226 0000 00450 NOP
0227 0000 00451 NOP
0228 00452 WDT_WAKE
0228 0C64 00453 MOVLW D'100'
0229 04A3 00454 BLOCK1
022A 09BB 00455 CALL DELAYX
022B 05A3 00456 BLOCK2
022C 00457 QC_WAKE
022C 04A3 00458 BLOCK1
022D 0942 00459 CALL INIT_TMR0
022E 093E 00460 CALL INIT_GPIO
022F 05A3 00461 BLOCK2
0230 0506 00462 BSF GPIO,ENABLE ; the send board start activity
0231 0C01 00463 MOVLW D'1'
0232 04A3 00464 BLOCK1
0233 09BB 00465 CALL DELAYX
0234 05A3 00466 BLOCK2
00467 ;*********************************************************************
00468 ; start bit existence condition:
00469 ;
00470 ; STA_BREADTHDN =/< COUNTER_BUF =/< STA_BREADTHUP
00471 ;
00472 ;--------------------------------------------
0235 00473 CHECK_START
0235 0C09 00474 MOVLW D'9'
0236 003A 00475 MOVWF LOOK_CONT
0237 02FA 00476 DECFSZ LOOK_CONT
0238 0A3A 00477 GOTO $+2
MPASM 02.70 Released RX900-OK.ASM 3-10-2003 14:59:15 PAGE 10
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0239 0A1B 00478 GOTO M_LOOP
023A 00479 _START
023A 04A3 00480 BLOCK1
023B 0912 00481 CALL RECEIVE_BIT
023C 05A3 00482 BLOCK2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -