; 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 4 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 _Data1 EQU RAM_START + 018h _Debounce EQU RAM_START + 019h _KeyBoard EQU RAM_START + 01Ah _OldKey EQU RAM_START + 01Bh _PORTL EQU PORTB _PORTH EQU PORTA _TRISL EQU TRISB _TRISH EQU TRISA #define _PORTB_6 PORTB, 006h #define _PORTB_7 PORTB, 007h #define _PORTB_0 PORTB, 000h #define _PORTB_4 PORTB, 004h #define _PORTA_6 PORTA, 006h #define _PORTB_5 PORTB, 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 "LCDMOD.MAC" INCLUDE "PBPPIC14.LIB" ASM? device INTRC_OSC_NOCLKOUT ENDASM? MOVE?CB 007h, CMCON LOW?T _PORTB_6 MOVE?CB 001h, _Debounce PAUSE?C 0C8h LCDOUT?C 0FEh LCDOUT?C 001h PAUSE?C 001F4h LCDOUT?C 0FEh LCDOUT?C 002h LCDOUT?C 04Ch LCDOUT?C 043h LCDOUT?C 044h LCDOUT?C 020h LCDOUT?C 072h LCDOUT?C 065h LCDOUT?C 061h LCDOUT?C 064h LCDOUT?C 079h PAUSE?C 001F4h LCDOUT?C 0FEh LCDOUT?C 001h LABEL?L _Loop LCDOUT?C 0FEh LCDOUT?C 002h LCDOUT?C 054h LCDOUT?C 065h LCDOUT?C 073h LCDOUT?C 074h LCDOUT?C 020h LCDOUT?C 042h LCDOUT?C 06Fh LCDOUT?C 061h LCDOUT?C 072h LCDOUT?C 064h LCDOUT?C 020h LCDOUTD?B _KeyBoard LCDOUT?C 0FEh LCDOUT?C 0C0h LCDOUT?C 053h LCDOUT?C 065h LCDOUT?C 072h LCDOUT?C 020h LCDOUT?C 044h LCDOUT?C 061h LCDOUT?C 074h LCDOUT?C 061h LCDOUT?C 020h LCDOUT?C 049h LCDOUT?C 06Eh LCDOUT?C 020h LCDOUTD?B _Data1 SERPIN?T _PORTB_7 SERMODE?C _N2400 SERTIME?C 09Bh SERIN?BL _Data1, _NoData PAUSE?C 005h LABEL?L _NoData SERPIN?T _PORTB_6 SERMODE?C _N2400 SEROUT?B _KeyBoard LABEL?L _Key PULSOUT?TC _PORTB_0, 001h LOW?T _PORTB_4 SHIFTDATA?T _PORTA_6 SHIFTCLOCK?T _PORTB_5 SHIFTMODE?C 000h SHIFTIN?BC _KeyBoard, 008h HIGH?T _PORTB_4 CMPEQ?BBL _KeyBoard, _OldKey, L00001 MOVE?CB 001h, _Debounce LABEL?L L00001 CMPNE?BBL _KeyBoard, _OldKey, L00003 ADD?BCB _Debounce, 001h, _Debounce CMPLE?BCL _Debounce, 00Fh, L00005 MOVE?CB 001h, _Debounce LABEL?L L00005 LABEL?L L00003 CMPGT?BCL _Debounce, 001h, _Loop MOVE?BB _KeyBoard, _OldKey GOTO?L _Loop END