; PicBasic Pro Compiler 2.40, (c) 1998, 2001 microEngineering Labs, Inc. All Rights Reserved. PM_USED EQU 1 INCLUDE "16F628.INC" ; Define statements. #define OSC 20 RAM_START EQU 00020h RAM_END EQU 0014Fh RAM_BANKS EQU 00003h BANK0_START EQU 00020h BANK0_END EQU 0007Fh BANK1_START EQU 000A0h BANK1_END EQU 000EFh BANK2_START EQU 00120h BANK2_END EQU 0014Fh EEPROM_START EQU 02100h EEPROM_END EQU 0217Fh R0 EQU RAM_START + 000h R1 EQU RAM_START + 002h R2 EQU RAM_START + 004h R3 EQU RAM_START + 006h R4 EQU RAM_START + 008h R5 EQU RAM_START + 00Ah R6 EQU RAM_START + 00Ch R7 EQU RAM_START + 00Eh R8 EQU RAM_START + 010h FLAGS EQU RAM_START + 012h GOP EQU RAM_START + 013h RM1 EQU RAM_START + 014h RM2 EQU RAM_START + 015h RR1 EQU RAM_START + 016h RR2 EQU RAM_START + 017h _DataCF EQU RAM_START + 018h _SonarRange EQU RAM_START + 01Ah _US_pulseCF EQU RAM_START + 01Bh _PORTL EQU PORTB _PORTH EQU PORTA _TRISL EQU TRISB _TRISH EQU TRISA #define _PORTB_2 PORTB, 002h #define _PORTB_4 PORTB, 004h #define _PORTB_0 PORTB, 000h #define _PORTA_5 PORTA, 005h ; Constants. _T2400 EQU 00000h _T1200 EQU 00001h _T9600 EQU 00002h _T300 EQU 00003h _N2400 EQU 00004h _N1200 EQU 00005h _N9600 EQU 00006h _N300 EQU 00007h _OT2400 EQU 00008h _OT1200 EQU 00009h _OT9600 EQU 0000Ah _OT300 EQU 0000Bh _ON2400 EQU 0000Ch _ON1200 EQU 0000Dh _ON9600 EQU 0000Eh _ON300 EQU 0000Fh _MSBPRE EQU 00000h _LSBPRE EQU 00001h _MSBPOST EQU 00002h _LSBPOST EQU 00003h _LSBFIRST EQU 00000h _MSBFIRST EQU 00001h _CLS EQU 00000h _HOME EQU 00001h _BELL EQU 00007h _BKSP EQU 00008h _TAB EQU 00009h _CR EQU 0000Dh _UnitOn EQU 00012h _UnitOff EQU 0001Ah _UnitsOff EQU 0001Ch _LightsOn EQU 00014h _LightsOff EQU 00010h _Dim EQU 0001Eh _Bright EQU 00016h INCLUDE "USTEST.MAC" INCLUDE "PBPPIC14.LIB" MOVE?CB 007h, CMCON OUTPUT?T _PORTB_2 LOW?T _PORTB_2 OUTPUT?T _PORTB_4 MOVE?CT 001h, _PORTB_4 OUTPUT?T _PORTB_0 INPUT?T _PORTA_5 MOVE?CW 000h, _DataCF LABEL?L _keepGoing MOVE?CB 001h, _US_pulseCF LABEL?L L00001 CMPGT?BCL _US_pulseCF, 008h, L00002 HIGH?T _PORTB_0 ASM? nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop ENDASM? LOW?T _PORTB_0 ASM? nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop ENDASM? NEXT?BCL _US_pulseCF, 001h, L00001 LABEL?L L00002 PAUSEUS?C 002h LABEL?L _countTimeCF ADD?WCW _DataCF, 001h, _DataCF CMPLE?WCL _DataCF, 001F4h, L00003 MOVE?CB 000h, _SonarRange GOTO?L _noechoCF LABEL?L L00003 CMPEQ?TCL _PORTA_5, 001h, _countTimeCF CMPGT?WCL _DataCF, 002h, L00005 MOVE?CB 000h, _SonarRange GOTO?L _noechoCF LABEL?L L00005 DIV?WCB _DataCF, 002h, _SonarRange LABEL?L _noechoCF LABEL?L _SerToMaster SERPIN?T _PORTB_2 SERMODE?C _N9600 SEROUT?B _SonarRange MOVE?CW 000h, _DataCF TOGGLE?T _PORTB_4 GOTO?L _keepGoing END