/programy/C/PIC/mereni/PS2mys/PIC16F84/RUN.PIF |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programy/C/PIC/mereni/PS2mys/PIC16F84/Run.BAT |
---|
0,0 → 1,8 |
@echo off |
:loop |
picpgr reset PIC16F84 lpt2 |
picpgr run lpt2 |
pause |
picpgr stop lpt2 |
pause |
goto loop |
/programy/C/PIC/mereni/PS2mys/PIC16F84/main.BAK |
---|
0,0 → 1,57 |
#include "main.h" |
#include "c:\library\kaklik\CSS\PS2.c" |
#define SIGN_X 4 |
void trigger() |
{ |
output_high(PIN_A0); |
output_low(PIN_A0); |
delay_us(100); |
output_high(PIN_A0); |
} |
void flash_red() // blikne ledkou |
{ |
output_high(LED_red); |
Delay_ms(BLIK); |
output_low(LED_red); |
} |
void flash_yellow() // blikne ledkou |
{ |
output_high(LED_yellow); |
Delay_ms(BLIK); |
output_low(LED_yellow); |
} |
void main() |
{ |
int8 X,y,tl=0; |
int8 X_old,y_old,tl_old=0; |
Delay_ms(500); |
send(ENABLE_DATA_REPORTING); |
while(true) |
{ |
tl = read_byte(PRVNI); |
x = read_byte(DRUHY); |
y = read_byte(TRETI); |
trigger(); |
if (bit_test(tl, SIGN_X)) |
{ |
output_high(LED_red); |
output_low(LED_yellow); |
} |
else |
{ |
output_high(LED_yellow); |
output_low(LED_red); |
} |
} |
} |
/programy/C/PIC/mereni/PS2mys/PIC16F84/main.HEX |
---|
0,0 → 1,38 |
:1000000000308A00D128000016308400000803194F |
:10001000182801308D008C018C0B0C288D0B0B28BF |
:100020004A308C008C0B122800000000800B09283D |
:10003000DB28970183160614861083128610213060 |
:100040008C008C0B212883160610831206100630B4 |
:100050008C008C0B29280000831686148312861CC2 |
:100060002C2896011608073C031C52288316861478 |
:1000700083128618362815080139003A031D4228D4 |
:10008000061043280614831606108312150801393A |
:1000900097070310950C831686148312861C4B2831 |
:1000A000960A322883168614831286185228170857 |
:1000B000FF3A0139003A031D5F2806106028061434 |
:1000C0008316061086148312861868288316622801 |
:1000D00069288316861483128618692806148316E5 |
:1000E00006108614831286187728831671287828BC |
:1000F000831606148312E0289601160203188D2831 |
:10010000831686148312861C8A288316061483128B |
:1001100006188B289601960A7D288316861483126A |
:1001200086188D2883160614831206188D288316C8 |
:1001300086148312861C9728950196011608073CA1 |
:10014000031CBD288316861483128618A228031068 |
:10015000950C8316061400308312061801308C00AB |
:100160000C0C8C0103188C170C089504831686144C |
:100170008312861CB628960A9E2815088D00003426 |
:1001800083160510831205148316051083120510BB |
:1001900021308C008C0BCA2883160510831205149D |
:1001A000FC2884011F3083059101940102309500E1 |
:1001B000FA3096000428950BD828F43095001928B9 |
:1001C000E83083160317FF00831203137C200D0809 |
:1001D0009100023083160317FF00831203137C2063 |
:1001E0000D088F00023083160317FF0083120313DC |
:1001F0007C200D089000C028111E072983160511C8 |
:100200008312051583168511831285110F29831614 |
:100210008511831285158316051183120511E028B7 |
:02022000630079 |
:02400E00F93F78 |
:00000001FF |
;PIC16F84 |
/programy/C/PIC/mereni/PS2mys/PIC16F84/main.LST |
---|
0,0 → 1,474 |
CCS PCW C Compiler, Version 3.110, 15448 |
Filename: d:\@kaklik\programy\pic_c\ps2mys\main.LST |
ROM used: 273 (27%) |
Largest free fragment is 751 |
RAM used: 9 (13%) at main() level |
12 (18%) worst case |
Stack: 1 locations |
* |
0000: MOVLW 00 |
0001: MOVWF 0A |
0002: GOTO 0D1 |
0003: NOP |
.................... #include "D:\@Kaklik\programy\PIC_C\PS2mys\main.h" |
.................... #include <16F84.h> |
.................... //////// Standard Header file for the PIC16F84 device //////////////// |
.................... #device PIC16F84 |
.................... #list |
.................... |
.................... #use delay(clock=4000000) |
0004: MOVLW 16 |
0005: MOVWF 04 |
0006: MOVF 00,W |
0007: BTFSC 03.2 |
0008: GOTO 018 |
0009: MOVLW 01 |
000A: MOVWF 0D |
000B: CLRF 0C |
000C: DECFSZ 0C,F |
000D: GOTO 00C |
000E: DECFSZ 0D,F |
000F: GOTO 00B |
0010: MOVLW 4A |
0011: MOVWF 0C |
0012: DECFSZ 0C,F |
0013: GOTO 012 |
0014: NOP |
0015: NOP |
0016: DECFSZ 00,F |
0017: GOTO 009 |
0018: GOTO 0DB (RETURN) |
.................... #fuses XT,NOWDT |
.................... |
.................... #DEFINE DATA PIN_B0 // musi byt definovan kanal DATA |
.................... #DEFINE CLK PIN_B1 // a taky hodiny CLK |
.................... |
.................... #define PRVNI 1000 // nastaveni prodlevy pred zacatkem vysilani bajtu |
.................... #define DRUHY 2 |
.................... #define TRETI DRUHY |
.................... |
.................... // prikazy |
.................... #define RESET 0xFF |
.................... #define ENABLE_DATA_REPORTING 0xF4 |
.................... #define READ_DATA 0xEB |
.................... #define STATUS_REQUEST 0xE9 |
.................... #define SET_REMOTE_MODE 0xF0 |
.................... #define SET_STREAM_MODE 0xEA |
.................... #define GET_DEVICE_ID 0xF2 |
.................... |
.................... #DEFINE LED_yellow PIN_A3 |
.................... #DEFINE LED_red PIN_A2 |
.................... |
.................... #DEFINE BLIK 120 // doba rozsviceni led |
.................... |
.................... #include "PS2.c" |
.................... // Modul pro komunikaci s Mysi |
.................... |
.................... void send(byte command) |
.................... { |
.................... int n; |
0019: CLRF 17 |
.................... int parity=0; |
.................... |
.................... //Request-to-send |
.................... output_float(DATA); |
001A: BSF 03.5 |
001B: BSF 06.0 |
.................... output_low(CLK); |
001C: BCF 06.1 |
001D: BCF 03.5 |
001E: BCF 06.1 |
.................... delay_us(100); |
001F: MOVLW 21 |
0020: MOVWF 0C |
0021: DECFSZ 0C,F |
0022: GOTO 021 |
.................... // start bit |
.................... output_low(DATA); |
0023: BSF 03.5 |
0024: BCF 06.0 |
0025: BCF 03.5 |
0026: BCF 06.0 |
.................... delay_us(20); |
0027: MOVLW 06 |
0028: MOVWF 0C |
0029: DECFSZ 0C,F |
002A: GOTO 029 |
002B: NOP |
.................... while(!input(CLK)); |
002C: BSF 03.5 |
002D: BSF 06.1 |
002E: BCF 03.5 |
002F: BTFSS 06.1 |
0030: GOTO 02C |
.................... // 8 bitu |
.................... for(n=0; n<8; n++) |
0031: CLRF 16 |
0032: MOVF 16,W |
0033: SUBLW 07 |
0034: BTFSS 03.0 |
0035: GOTO 052 |
.................... { |
.................... while(input(CLK)); |
0036: BSF 03.5 |
0037: BSF 06.1 |
0038: BCF 03.5 |
0039: BTFSC 06.1 |
003A: GOTO 036 |
.................... output_bit(DATA, command & 1); |
003B: MOVF 15,W |
003C: ANDLW 01 |
003D: XORLW 00 |
003E: BTFSS 03.2 |
003F: GOTO 042 |
0040: BCF 06.0 |
0041: GOTO 043 |
0042: BSF 06.0 |
0043: BSF 03.5 |
0044: BCF 06.0 |
.................... parity += command & 1; |
0045: BCF 03.5 |
0046: MOVF 15,W |
0047: ANDLW 01 |
0048: ADDWF 17,F |
.................... command>>=1; |
0049: BCF 03.0 |
004A: RRF 15,F |
.................... while(!input(CLK)); |
004B: BSF 03.5 |
004C: BSF 06.1 |
004D: BCF 03.5 |
004E: BTFSS 06.1 |
004F: GOTO 04B |
.................... }; |
0050: INCF 16,F |
0051: GOTO 032 |
.................... // parita |
.................... while(input(CLK)); |
0052: BSF 03.5 |
0053: BSF 06.1 |
0054: BCF 03.5 |
0055: BTFSC 06.1 |
0056: GOTO 052 |
.................... output_bit(DATA, ~parity & 1); |
0057: MOVF 17,W |
0058: XORLW FF |
0059: ANDLW 01 |
005A: XORLW 00 |
005B: BTFSS 03.2 |
005C: GOTO 05F |
005D: BCF 06.0 |
005E: GOTO 060 |
005F: BSF 06.0 |
0060: BSF 03.5 |
0061: BCF 06.0 |
.................... while(!input(CLK)); |
0062: BSF 06.1 |
0063: BCF 03.5 |
0064: BTFSC 06.1 |
0065: GOTO 068 |
0066: BSF 03.5 |
0067: GOTO 062 |
0068: GOTO 069 |
.................... // stop bit |
.................... while(input(CLK)); |
0069: BSF 03.5 |
006A: BSF 06.1 |
006B: BCF 03.5 |
006C: BTFSC 06.1 |
006D: GOTO 069 |
.................... output_bit(DATA, 1); |
006E: BSF 06.0 |
006F: BSF 03.5 |
0070: BCF 06.0 |
.................... while(!input(CLK)); |
0071: BSF 06.1 |
0072: BCF 03.5 |
0073: BTFSC 06.1 |
0074: GOTO 077 |
0075: BSF 03.5 |
0076: GOTO 071 |
0077: GOTO 078 |
.................... output_float(DATA); |
0078: BSF 03.5 |
0079: BSF 06.0 |
007A: BCF 03.5 |
007B: GOTO 0E0 (RETURN) |
.................... } |
.................... |
.................... |
.................... int8 read_byte(int8 const poradi) |
.................... { |
.................... int8 bajt; |
.................... int8 i; |
.................... |
.................... // cekani na komunikacni klid |
.................... for (i=0; i<poradi; i++) |
007C: CLRF 16 |
007D: SUBWF 16,W |
007E: BTFSC 03.0 |
007F: GOTO 08D |
.................... { |
.................... if (!input(CLK) || !input(DATA)) i=0; |
0080: BSF 03.5 |
0081: BSF 06.1 |
0082: BCF 03.5 |
0083: BTFSS 06.1 |
0084: GOTO 08A |
0085: BSF 03.5 |
0086: BSF 06.0 |
0087: BCF 03.5 |
0088: BTFSC 06.0 |
0089: GOTO 08B |
008A: CLRF 16 |
.................... }; |
008B: INCF 16,F |
008C: GOTO 07D |
.................... |
.................... // cekani na startbit |
.................... while(input(CLK) || input(DATA)); |
008D: BSF 03.5 |
008E: BSF 06.1 |
008F: BCF 03.5 |
0090: BTFSC 06.1 |
0091: GOTO 08D |
0092: BSF 03.5 |
0093: BSF 06.0 |
0094: BCF 03.5 |
0095: BTFSC 06.0 |
0096: GOTO 08D |
.................... while(!input(CLK)); |
0097: BSF 03.5 |
0098: BSF 06.1 |
0099: BCF 03.5 |
009A: BTFSS 06.1 |
009B: GOTO 097 |
.................... |
.................... bajt = 0; |
009C: CLRF 15 |
.................... for(i=0; i<8; i++) |
009D: CLRF 16 |
009E: MOVF 16,W |
009F: SUBLW 07 |
00A0: BTFSS 03.0 |
00A1: GOTO 0BD |
.................... { |
.................... while(input(CLK)); // ceka na nulu hodin |
00A2: BSF 03.5 |
00A3: BSF 06.1 |
00A4: BCF 03.5 |
00A5: BTFSC 06.1 |
00A6: GOTO 0A2 |
.................... |
.................... bajt >>= 1; |
00A7: BCF 03.0 |
00A8: RRF 15,F |
.................... bajt |= input(DATA) << 7; |
00A9: BSF 03.5 |
00AA: BSF 06.0 |
00AB: MOVLW 00 |
00AC: BCF 03.5 |
00AD: BTFSC 06.0 |
00AE: MOVLW 01 |
00AF: MOVWF 0C |
00B0: RRF 0C,W |
00B1: CLRF 0C |
00B2: BTFSC 03.0 |
00B3: BSF 0C.7 |
00B4: MOVF 0C,W |
00B5: IORWF 15,F |
.................... |
.................... while(!input(CLK)); // ceka na jednicku hodin |
00B6: BSF 03.5 |
00B7: BSF 06.1 |
00B8: BCF 03.5 |
00B9: BTFSS 06.1 |
00BA: GOTO 0B6 |
.................... }; |
00BB: INCF 16,F |
00BC: GOTO 09E |
.................... return (bajt); |
00BD: MOVF 15,W |
00BE: MOVWF 0D |
00BF: RETLW 00 |
.................... } |
.................... |
.................... |
.................... /*void read_all_byte(int8*st,*nd,*rd) // precte 3 bajty |
.................... { |
.................... int8 i; |
.................... |
.................... // *st=read_byte(1st); |
.................... |
.................... // cekani na startbit |
.................... while(input(CLK) || input(DATA)); |
.................... while(!input(CLK)); |
.................... *nd = 0; |
.................... for(i=0; i<8; i++) |
.................... { |
.................... while(input(CLK)); // ceka na nulu hodin |
.................... |
.................... *nd |= input(DATA) << 7; |
.................... *nd >>= 1; |
.................... |
.................... while(!input(CLK)); // ceka na jednicku hodin |
.................... }; |
.................... |
.................... // cekani na startbit |
.................... while(input(CLK) || input(DATA)); |
.................... while(!input(CLK)); |
.................... *rd = 0; |
.................... for(i=0; i<8; i++) |
.................... { |
.................... while(input(CLK)); // ceka na nulu hodin |
.................... |
.................... *rd |= input(DATA) << 7; |
.................... *rd >>= 1; |
.................... |
.................... while(!input(CLK)); // ceka na jednicku hodin |
.................... }; |
.................... }*/ |
.................... |
.................... |
.................... #define SIGN_X 4 |
.................... |
.................... void trigger() |
.................... { |
.................... output_high(PIN_A0); |
00C0: BSF 03.5 |
00C1: BCF 05.0 |
00C2: BCF 03.5 |
00C3: BSF 05.0 |
.................... output_low(PIN_A0); |
00C4: BSF 03.5 |
00C5: BCF 05.0 |
00C6: BCF 03.5 |
00C7: BCF 05.0 |
.................... delay_us(100); |
00C8: MOVLW 21 |
00C9: MOVWF 0C |
00CA: DECFSZ 0C,F |
00CB: GOTO 0CA |
.................... output_high(PIN_A0); |
00CC: BSF 03.5 |
00CD: BCF 05.0 |
00CE: BCF 03.5 |
00CF: BSF 05.0 |
00D0: GOTO 0FC (RETURN) |
.................... } |
.................... |
.................... void flash_red() // blikne ledkou |
.................... { |
.................... output_high(LED_red); |
.................... Delay_ms(BLIK); |
.................... output_low(LED_red); |
.................... } |
.................... |
.................... void flash_yellow() // blikne ledkou |
.................... { |
.................... output_high(LED_yellow); |
.................... Delay_ms(BLIK); |
.................... output_low(LED_yellow); |
.................... } |
.................... |
.................... void main() |
.................... { |
.................... int8 X,y,tl=0; |
* |
00D4: CLRF 11 |
00D5: CLRF 14 |
.................... int8 X_old,y_old,tl_old=0; |
* |
00D1: CLRF 04 |
00D2: MOVLW 1F |
00D3: ANDWF 03,F |
.................... |
.................... Delay_ms(500); |
* |
00D6: MOVLW 02 |
00D7: MOVWF 15 |
00D8: MOVLW FA |
00D9: MOVWF 16 |
00DA: GOTO 004 |
00DB: DECFSZ 15,F |
00DC: GOTO 0D8 |
.................... send(ENABLE_DATA_REPORTING); |
00DD: MOVLW F4 |
00DE: MOVWF 15 |
00DF: GOTO 019 |
.................... |
.................... while(true) |
.................... { |
.................... tl = read_byte(PRVNI); |
00E0: MOVLW E8 |
00E1: BSF 03.5 |
00E2: BSF 03.6 |
00E3: MOVWF 7F |
00E4: BCF 03.5 |
00E5: BCF 03.6 |
00E6: CALL 07C |
00E7: MOVF 0D,W |
00E8: MOVWF 11 |
.................... x = read_byte(DRUHY); |
00E9: MOVLW 02 |
00EA: BSF 03.5 |
00EB: BSF 03.6 |
00EC: MOVWF 7F |
00ED: BCF 03.5 |
00EE: BCF 03.6 |
00EF: CALL 07C |
00F0: MOVF 0D,W |
00F1: MOVWF 0F |
.................... y = read_byte(TRETI); |
00F2: MOVLW 02 |
00F3: BSF 03.5 |
00F4: BSF 03.6 |
00F5: MOVWF 7F |
00F6: BCF 03.5 |
00F7: BCF 03.6 |
00F8: CALL 07C |
00F9: MOVF 0D,W |
00FA: MOVWF 10 |
.................... trigger(); |
00FB: GOTO 0C0 |
.................... |
.................... |
.................... if (bit_test(tl, SIGN_X)) |
00FC: BTFSS 11.4 |
00FD: GOTO 107 |
.................... { |
.................... output_high(LED_red); |
00FE: BSF 03.5 |
00FF: BCF 05.2 |
0100: BCF 03.5 |
0101: BSF 05.2 |
.................... output_low(LED_yellow); |
0102: BSF 03.5 |
0103: BCF 05.3 |
0104: BCF 03.5 |
0105: BCF 05.3 |
.................... } |
.................... else |
0106: GOTO 10F |
.................... { |
.................... output_high(LED_yellow); |
0107: BSF 03.5 |
0108: BCF 05.3 |
0109: BCF 03.5 |
010A: BSF 05.3 |
.................... output_low(LED_red); |
010B: BSF 03.5 |
010C: BCF 05.2 |
010D: BCF 03.5 |
010E: BCF 05.2 |
.................... } |
.................... } |
010F: GOTO 0E0 |
.................... } |
.................... |
0110: SLEEP |
.................... |
.................... |
/programy/C/PIC/mereni/PS2mys/PIC16F84/main.PJT |
---|
0,0 → 1,37 |
[PROJECT] |
Target=main.HEX |
Development_Mode= |
Processor=0x684A |
ToolSuite=CCS |
[Directories] |
Include=C:\PROGRAM FILES\PICC\devices\;C:\PROGRAM FILES\PICC\dr |
Library= |
LinkerScript= |
[Target Data] |
FileList=main.c; |
BuildTool=C-COMPILER |
OptionString=+FM |
AdditionalOptionString= |
BuildRequired=1 |
[main.c] |
Type=4 |
Path= |
FileList= |
BuildTool= |
OptionString= |
AdditionalOptionString= |
[mru-list] |
1=main.c |
[Windows] |
0=0000 main.c 0 0 796 451 3 0 |
[Opened Files] |
1=D:\KAKLIK\programy\PIC_C\mereni\PS2mys\PIC16F84\main.c |
2=C:\PROGRAM FILES\PICC\devices\16F84.h |
3=c:\library\kaklik\CCS\PS2.c |
4= |
/programy/C/PIC/mereni/PS2mys/PIC16F84/main.SYM |
---|
0,0 → 1,32 |
00C @SCRATCH |
00D @SCRATCH |
00D _RETURN_ |
00F main.X |
010 main.y |
011 main.tl |
012 main.X_old |
013 main.y_old |
014 main.tl_old |
015 send.command |
015 read_byte.bajt |
015 main.@SCRATCH |
016 delay_ms.P1 |
016 send.n |
016 read_byte.i |
017 send.parity |
017 read_byte.@SCRATCH |
018 send.@SCRATCH |
delay_us.P1 |
read_byte.poradi |
0004 delay_ms |
0019 send |
007C read_byte |
00C0 trigger |
00D1 main |
Project Files: |
d:\@kaklik\programy\pic_c\ps2mys\main.c |
D:\@Kaklik\programy\PIC_C\PS2mys\main.h |
C:\PROGRAM FILES\PICC\devices\16F84.h |
d:\@kaklik\programy\pic_c\ps2mys\PS2.c |
/programy/C/PIC/mereni/PS2mys/PIC16F84/main.c |
---|
0,0 → 1,57 |
#include "main.h" |
#include "c:\library\kaklik\CCS\PS2.c" |
#define SIGN_X 4 |
void trigger() |
{ |
output_high(PIN_A0); |
output_low(PIN_A0); |
delay_us(100); |
output_high(PIN_A0); |
} |
void flash_red() // blikne ledkou |
{ |
output_high(LED_red); |
Delay_ms(BLIK); |
output_low(LED_red); |
} |
void flash_yellow() // blikne ledkou |
{ |
output_high(LED_yellow); |
Delay_ms(BLIK); |
output_low(LED_yellow); |
} |
void main() |
{ |
int8 X,y,tl=0; |
int8 X_old,y_old,tl_old=0; |
Delay_ms(500); |
send(ENABLE_DATA_REPORTING); |
while(true) |
{ |
tl = read_byte(PRVNI); |
x = read_byte(DRUHY); |
y = read_byte(TRETI); |
trigger(); |
if (bit_test(tl, SIGN_X)) |
{ |
output_high(LED_red); |
output_low(LED_yellow); |
} |
else |
{ |
output_high(LED_yellow); |
output_low(LED_red); |
} |
} |
} |
/programy/C/PIC/mereni/PS2mys/PIC16F84/main.cod |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programy/C/PIC/mereni/PS2mys/PIC16F84/main.err |
---|
0,0 → 1,0 |
Error[51] c:\library\kaklik\CCS\PS2.c 48 : A numeric expression must appear here |
/programy/C/PIC/mereni/PS2mys/PIC16F84/main.h |
---|
0,0 → 1,24 |
#include <16F84.h> |
#use delay(clock=4000000) |
#fuses XT,NOWDT |
#DEFINE DATA PIN_B0 // musi byt definovan kanal DATA |
#DEFINE CLK PIN_B1 // a taky hodiny CLK |
#define PRVNI 1000 // nastaveni prodlevy pred zacatkem vysilani bajtu |
#define DRUHY 2 |
#define TRETI DRUHY |
// prikazy |
#define RESET 0xFF |
#define ENABLE_DATA_REPORTING 0xF4 |
#define READ_DATA 0xEB |
#define STATUS_REQUEST 0xE9 |
#define SET_REMOTE_MODE 0xF0 |
#define SET_STREAM_MODE 0xEA |
#define GET_DEVICE_ID 0xF2 |
#DEFINE LED_yellow PIN_A3 |
#DEFINE LED_red PIN_A2 |
#DEFINE BLIK 120 // doba rozsviceni led |
/programy/C/PIC/mereni/PS2mys/PIC16F84/main.sta |
---|
0,0 → 1,32 |
ROM used: 273 (27%) |
751 (73%) including unused fragments |
1 Average locations per line |
4 Average locations per statement |
RAM used: 9 (13%) at main() level |
12 (18%) worst case |
Lines Stmts % Files |
----- ----- --- ----- |
58 25 34 d:\@kaklik\programy\pic_c\ps2mys\main.c |
25 0 0 D:\@Kaklik\programy\PIC_C\PS2mys\main.h |
111 0 0 C:\PROGRAM FILES\PICC\devices\16F84.h |
100 48 49 d:\@kaklik\programy\pic_c\ps2mys\PS2.c |
----- ----- |
588 146 Total |
Page ROM % RAM Functions: |
---- --- --- --- ---------- |
0 21 8 1 delay_ms |
0 99 36 4 send |
0 68 25 4 read_byte |
0 17 6 0 trigger |
0 64 23 7 main |
Segment Used Free |
--------- ---- ---- |
0000-0003 4 0 |
0004-03FF 269 751 |
/programy/C/PIC/mereni/PS2mys/PIC16F84/main.tre |
---|
0,0 → 1,9 |
ÀÄmain |
ÀÄmain 0/64 Ram=7 |
ÃÄ??0?? |
ÃÄdelay_ms 0/21 Ram=1 |
ÃÄsend 0/99 Ram=4 |
ÃÄread_byte 0/68 Ram=4 |
ÃÄread_byte 0/68 Ram=4 |
ÃÄread_byte 0/68 Ram=4 |
ÀÄtrigger 0/17 Ram=0 |
/programy/C/PIC/mereni/PS2mys/PIC16F84/prg.bat |
---|
0,0 → 1,6 |
call picpgr stop |
call picpgr erase pic16f84 |
call picpgr program main.hex hex pic16f84 |
call picpgr run |
pause |
call picpgr stop |
/programy/C/PIC/mereni/PS2mys/PIC16F84/ps2.BAK |
---|
0,0 → 1,99 |
// Modul pro komunikaci s Mysi |
void send(byte command) |
{ |
int n; |
int parity=0; |
//Request-to-send |
// output_float(DATA); |
output_low(CLK); |
delay_us(100); |
// start bit |
output_low(DATA); |
delay_us(20); |
while(!input(CLK)); |
// 8 bitu |
for(n=0; n<8; n++) |
{ |
while(input(CLK)); |
output_bit(DATA, command & 1); |
parity += command & 1; |
command>>=1; |
while(!input(CLK)); |
}; |
// parita |
while(input(CLK)); |
output_bit(DATA, ~parity & 1); |
while(!input(CLK)); |
// stop bit |
while(input(CLK)); |
output_bit(DATA, 1); |
while(!input(CLK)); |
output_float(DATA); |
} |
int8 read_byte(int8 const poradi) |
{ |
int8 bajt; |
int8 i; |
// cekani na komunikacni klid |
for (i=0; i<poradi; i++) |
{ |
if (!input(CLK) || !input(DATA)) i=0; |
}; |
// cekani na startbit |
while(input(CLK) || input(DATA)); |
while(!input(CLK)); |
bajt = 0; |
for(i=0; i<8; i++) |
{ |
while(input(CLK)); // ceka na nulu hodin |
bajt >>= 1; |
bajt |= input(DATA) << 7; |
while(!input(CLK)); // ceka na jednicku hodin |
}; |
return (bajt); |
} |
/*void read_all_byte(int8*st,*nd,*rd) // precte 3 bajty |
{ |
int8 i; |
// *st=read_byte(1st); |
// cekani na startbit |
while(input(CLK) || input(DATA)); |
while(!input(CLK)); |
*nd = 0; |
for(i=0; i<8; i++) |
{ |
while(input(CLK)); // ceka na nulu hodin |
*nd |= input(DATA) << 7; |
*nd >>= 1; |
while(!input(CLK)); // ceka na jednicku hodin |
}; |
// cekani na startbit |
while(input(CLK) || input(DATA)); |
while(!input(CLK)); |
*rd = 0; |
for(i=0; i<8; i++) |
{ |
while(input(CLK)); // ceka na nulu hodin |
*rd |= input(DATA) << 7; |
*rd >>= 1; |
while(!input(CLK)); // ceka na jednicku hodin |
}; |
}*/ |
/programy/C/PIC/mereni/PS2mys/PIC16F84/ps2mouse.BAK |
---|
0,0 → 1,100 |
#include "main.h" |
#include "ps2mouse.h" |
void send(byte command) |
{ |
int n; |
int parity=0; |
//Request-to-send |
input(DATA); |
output_low(CLK); |
delay_us(100); |
// start bit |
output_low(DATA); |
delay_us(20); |
while(!input(CLK)); |
// 8 bitu |
for(n=0; n<8; n++) |
{ |
while(input(CLK)); |
output_bit(DATA, command & 1); |
parity += command & 1; |
command>>=1; |
while(!input(CLK)); |
}; |
// parita |
while(input(CLK)); |
output_bit(DATA, ~parity & 1); |
while(!input(CLK)); |
// stop bit |
while(input(CLK)); |
output_bit(DATA, 1); |
while(!input(CLK)); |
output_float(DATA); |
} |
int8 read_byte(int8 const poradi) |
{ |
int8 bajt; |
int8 i; |
// cekani na komunikacni klid |
for (i=0; i<poradi; i++) |
{ |
if (!input(CLK) || !input(DATA)) i=0; |
}; |
// cekani na startbit |
while(input(CLK) || input(DATA)); |
while(!input(CLK)); |
bajt = 0; |
for(i=0; i<8; i++) |
{ |
while(input(CLK)); // ceka na nulu hodin |
bajt >>= 1; |
bajt |= input(DATA) << 7; |
while(!input(CLK)); // ceka na jednicku hodin |
}; |
return (bajt); |
} |
/*void read_all_byte(int8*st,*nd,*rd) // precte 3 bajty |
{ |
int8 i; |
// *st=read_byte(1st); |
// cekani na startbit |
while(input(CLK) || input(DATA)); |
while(!input(CLK)); |
*nd = 0; |
for(i=0; i<8; i++) |
{ |
while(input(CLK)); // ceka na nulu hodin |
*nd |= input(DATA) << 7; |
*nd >>= 1; |
while(!input(CLK)); // ceka na jednicku hodin |
}; |
// cekani na startbit |
while(input(CLK) || input(DATA)); |
while(!input(CLK)); |
*rd = 0; |
for(i=0; i<8; i++) |
{ |
while(input(CLK)); // ceka na nulu hodin |
*rd |= input(DATA) << 7; |
*rd >>= 1; |
while(!input(CLK)); // ceka na jednicku hodin |
}; |
}*/ |
/programy/C/PIC/mereni/PS2mys/PIC16F84/ps2mouse.c |
---|
0,0 → 1,97 |
void send(byte command) |
{ |
int n; |
int parity=0; |
//Request-to-send |
input(DATA); |
output_low(CLK); |
delay_us(100); |
// start bit |
output_low(DATA); |
delay_us(20); |
while(!input(CLK)); |
// 8 bitu |
for(n=0; n<8; n++) |
{ |
while(input(CLK)); |
output_bit(DATA, command & 1); |
parity += command & 1; |
command>>=1; |
while(!input(CLK)); |
}; |
// parita |
while(input(CLK)); |
output_bit(DATA, ~parity & 1); |
while(!input(CLK)); |
// stop bit |
while(input(CLK)); |
output_bit(DATA, 1); |
while(!input(CLK)); |
output_float(DATA); |
} |
int8 read_byte(int8 const poradi) |
{ |
int8 bajt; |
int8 i; |
// cekani na komunikacni klid |
for (i=0; i<poradi; i++) |
{ |
if (!input(CLK) || !input(DATA)) i=0; |
}; |
// cekani na startbit |
while(input(CLK) || input(DATA)); |
while(!input(CLK)); |
bajt = 0; |
for(i=0; i<8; i++) |
{ |
while(input(CLK)); // ceka na nulu hodin |
bajt >>= 1; |
bajt |= input(DATA) << 7; |
while(!input(CLK)); // ceka na jednicku hodin |
}; |
return (bajt); |
} |
/*void read_all_byte(int8*st,*nd,*rd) // precte 3 bajty |
{ |
int8 i; |
// *st=read_byte(1st); |
// cekani na startbit |
while(input(CLK) || input(DATA)); |
while(!input(CLK)); |
*nd = 0; |
for(i=0; i<8; i++) |
{ |
while(input(CLK)); // ceka na nulu hodin |
*nd |= input(DATA) << 7; |
*nd >>= 1; |
while(!input(CLK)); // ceka na jednicku hodin |
}; |
// cekani na startbit |
while(input(CLK) || input(DATA)); |
while(!input(CLK)); |
*rd = 0; |
for(i=0; i<8; i++) |
{ |
while(input(CLK)); // ceka na nulu hodin |
*rd |= input(DATA) << 7; |
*rd >>= 1; |
while(!input(CLK)); // ceka na jednicku hodin |
}; |
}*/ |
/programy/C/PIC/mereni/PS2mys/PIC16F84/ps2mouse.h |
---|
0,0 → 1,18 |
#define PRVNI 1000 // nastaveni prodlevy pred zacatkem vysilani bajtu |
#define DRUHY 2 |
#define TRETI DRUHY |
// prikazy |
#define RESET 0xFF |
#define ENABLE_DATA_REPORTING 0xF4 |
#define READ_DATA 0xEB |
#define STATUS_REQUEST 0xE9 |
#define SET_REMOTE_MODE 0xF0 |
#define SET_STREAM_MODE 0xEA |
#define GET_DEVICE_ID 0xF2 |
void send(byte command); |
int8 read_byte(int8 const poradi); |
/programy/C/PIC/mereni/PS2mys/PIC16F84/vssver.scc |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programy/C/PIC/mereni/PS2mys/PIC16F88/mys.BAK |
---|
0,0 → 1,54 |
#include "D:\KAKLIK\programy\PIC_C\mereni\PS2mys\PIC16F88\mys.h" |
#define LCD_RS PIN_A0 // rizeni registru LCD displeje |
#define LCD_E PIN_A1 // enable LCD displeje |
#define LCD_DATA_LSB PIN_B0 // pripojeni LSB bitu datoveho portu LCD displeje (celkem 4 bity vzestupne za sebou) |
#include "C:\library\CCS\lcd.c" |
#define TRIGGER_PIN PIN_B4 |
#DEFINE DATA PIN_B5 // musi byt definovan kanal DATA |
#DEFINE CLK PIN_B6 // a taky hodiny CLK |
#include "C:\library\kaklik\CCS\ps2.c" |
void trigger() |
{ |
output_high(TRIGGER_PIN); |
delay_us(50); |
output_low(TRIGGER_PIN); |
} |
void main() |
{ |
signed int16 x=0,y=0; |
signed int8 hodnota,dx,dy; |
unsigned int8 tl1,tl2,tl3; |
setup_adc_ports(NO_ANALOGS|VSS_VDD); |
setup_adc(ADC_OFF); |
setup_spi(FALSE); |
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); |
setup_timer_1(T1_DISABLED); |
setup_timer_2(T2_DISABLED,0,1); |
setup_comparator(NC_NC_NC_NC); |
setup_vref(FALSE); |
lcd_init(); |
Delay_ms(500); |
send(SET_REMOTE_MODE); |
while (true) |
{ |
LCD_gotoxy(1,1); |
printf(lcd_putc,"%X X=%ld Y=%ld TL1=%U TL2=%U TL3=%U",hodnota, x,y,tl1,tl2,tl3); |
delay_ms(20); |
send(READ_DATA); |
hodnota=read_byte(); |
read_standard_byte(&dx,&dy,&tl1,&tl2,&tl3); |
x+=dx; |
y+=dy; |
} |
} |
/programy/C/PIC/mereni/PS2mys/PIC16F88/mys.HEX |
---|
0,0 → 1,123 |
:1000000000308A00E22A00000A108A100A118207D2 |
:1000100028340C34013406340A108A100A1182077D |
:1000200025345834203458343D3425346C34643409 |
:10003000203459343D3425346C3464342034543401 |
:100040004C3431343D342534553454344C3432340A |
:100050003D3425345534203454344C3433343D3419 |
:1000600025345534003434308400000803194728FF |
:100070000130F800F701F70B3B28F80B3A284A301B |
:10008000F700F70B412800000000800B38280034EF |
:100090000608F039BB003A080F393B048600851486 |
:1000A0008316851000008312851083168510831235 |
:1000B0000034B808031D5E2805105F280514831658 |
:1000C00005108312B90E3908BA004820B90E390854 |
:1000D000BA0048200D30F700F70B6C2800341430BC |
:1000E000B4003320F0308316860583120510831682 |
:1000F000051083128510831685108312AB012B081F |
:10010000023C031C8B280230B40033200330BA00B9 |
:100110004820AB0A7F280D30F700F70B8D280230FE |
:10012000BA0048200D30F700F70B9428AB012B08DC |
:10013000023C031CA7282B080420AC00B8012C08A3 |
:10014000B90059200230B4003320AB0A97288A1135 |
:10015000242BAD0183168616061383120613213055 |
:10016000F700F70BB12883168612831286128316C6 |
:1001700006178312061BB728AC012C08073C031C8A |
:10018000DA28831606178312061BC1282B18CA28E3 |
:100190008612CB2886168316861283122B08013905 |
:1001A000AD070310AB0C831606178312061FD32866 |
:1001B000AC0ABD28831606178312061BDA282D0801 |
:1001C000FF3A0139003A031DE7288612E82886160F |
:1001D0008316861206178312061BF0288316EA2858 |
:1001E0008316861686168312861EF8288316F22832 |
:1001F000831606178312061BF82883160617831228 |
:10020000061FFD28831686168312861EFD280034DD |
:1002100001303402B6003508023C031D112940307C |
:10022000B60736088038B700B8013708B90059203A |
:10023000003433080C3A03192729063A03192F29E9 |
:10024000073A03193529053A03193A293F29B80114 |
:100250000130B90059200230B40033204B2901305D |
:10026000B4000230B50008214B290130B400B500BC |
:1002700008214B29B8011030B90059204B29330807 |
:100280001F3C031C45290730B3050130B800330873 |
:10029000B90059204B290034AC1B5E290F30F70000 |
:1002A0002B0EF7050A307702031859293030F7076B |
:1002B0005B292C08F7077708B30019210F30AB052D |
:1002C0000A302B020318662930306829AC132C0839 |
:1002D000AB072B08B30019218A11372B0408B20091 |
:1002E000AC1F7B292D30B30019218403AB09AC0965 |
:1002F000AB0A0319AC0A2C0EF038AE00AE07E23E92 |
:10030000AF00323EB1002C080F39AF07AF07B1077D |
:10031000E93EB000B007B0072B0E0F39B007B107A8 |
:10032000B00DB10DB109B10D2B080F39B107AE0DEC |
:100330000730AD000A30B107B003031C9B29B0079A |
:10034000AF03031C9F29AF07AE03031CA329AE070D |
:10035000AD03031CA7292D30840007303205840724 |
:10036000313004020319D0290008F700031DBE290B |
:10037000321ACE29B219C0292030C1290830B20062 |
:100380003030F707AC010408AB007708AD00770800 |
:10039000B30019212B0884002D08F700840AB02926 |
:1003A0000008F7003030F7077708B3001921003450 |
:1003B0003208F80131020318E0293108F700EC296E |
:1003C000F7010830B300B10DF70D320877020318BA |
:1003D000F700F80DB30BE32900343013B0122F08E7 |
:1003E000B1006430B200D8217708AF007808031D4F |
:1003F000172AB01A172AB019252A301B052A3018D7 |
:10040000052A3019052AB01B252A301C112AB01BD9 |
:10041000252A301B112A3018252A3019112AB01B21 |
:10042000252A2030301E3030B3001921252AB0167D |
:10043000B01F212A78088000F8002D30B300192160 |
:10044000B01330307807B3001921301B302A2F0841 |
:10045000B1000A30B200D8217708AF003017F62972 |
:10046000B01F352A2D30B300192130302F07B300CB |
:10047000192100343510831606178312061B3B2AF8 |
:10048000831686168312861A3B2A83160617831252 |
:10049000061F452AB301B4013408073C031C7C2A1B |
:1004A000831606178312061B502A0310B30C8316FB |
:1004B000861600308312861A0130F700770CF70198 |
:1004C0000318F7177708B304003035180130B60069 |
:1004D0008316861600308312861A01303606F8001D |
:1004E0007818742A3510752A351483160617831266 |
:1004F000061F752AB40A4C2A831606178312061B98 |
:100500007C2A003035180130B6008316861600307C |
:100510008312861A01303606F8007818912A3510B1 |
:10052000922A3514831606178312061F922A831601 |
:1005300006178312061B972A831606178312061FB7 |
:100540009C2A3308F80000343A227808B0003A2296 |
:100550007808B1003A227808B20030080839083C1F |
:10056000031DB82A2B0884003108003C8000BC2AF7 |
:100570002B0884003108800030081039103C031D1E |
:10058000C72A2C0884003208003C8000CB2A2C08A3 |
:100590008400320880002D08840030080139800072 |
:1005A0002E0884000310300C013980002F088400CD |
:1005B000300CF700F70C3F30F70577080139800061 |
:1005C0008A11A52B84011F30830583161F129F12E9 |
:1005D0001B0880399B0007309C001C0883120D13F8 |
:1005E000603083168F008312A101A201A301A40130 |
:1005F00083161F129F121B0880399B0083121F1045 |
:100600009412831606118614061200308312940089 |
:10061000831694000108C7390838810083129001BD |
:100620000030F800920000308316920007309C00E2 |
:1006300005080330F700F70B1B2B1C0883120D1362 |
:1006400083169D0183126F280230AB00FA30B4008C |
:100650003320AB0B262BF030AB00A9200130B400C7 |
:10066000B50008212508AB003730AC004C292030FC |
:10067000B30019215830B30019213D30B3001921BE |
:10068000103084002208AC002108AB006E2120301D |
:10069000B30019215930B30019213D30B30019219D |
:1006A000103084002408AC002308AB006E210E300B |
:1006B000AB002B080C20AB0AF700B3001921133054 |
:1006C0002B02031D592B2808AF001830B000ED2174 |
:1006D0000330AC002030B3001921AC0B6A2B15306D |
:1006E000AD002D080C20AD0AF700B3001921193018 |
:1006F0002D02031D712B2908AF001830B000ED2129 |
:100700001B30AE002E080C20AE0AF700B3001921F2 |
:1007100020302E02031D822B2A08AF001830B000B3 |
:10072000ED211430B4003320EB30AB00A9203A2285 |
:100730007808A5002630AB002730AC002830AD008B |
:100740002930AE002A30AF00A42AFA012608A61BE1 |
:10075000FA03A1070318A20A7A08A207FA012708D8 |
:10076000A71BFA03A3070318A40A7A08A4072E2BD1 |
:02077000630024 |
:04400E00783FFF3FB9 |
:00000001FF |
;PIC16F88 |
/programy/C/PIC/mereni/PS2mys/PIC16F88/mys.LST |
---|
0,0 → 1,1177 |
CCS PCM C Compiler, Version 3.221, 27853 19-XII-05 23:22 |
Filename: D:\KAKLIK\programy\PIC_C\mereni\PS2mys\PIC16F88\mys.LST |
ROM used: 953 words (23%) |
Largest free fragment is 2048 |
RAM used: 19 (11%) at main() level |
33 (19%) worst case |
Stack: 5 locations |
* |
0000: MOVLW 00 |
0001: MOVWF 0A |
0002: GOTO 2E2 |
0003: NOP |
.................... #include "D:\KAKLIK\programy\PIC_C\mereni\PS2mys\PIC16F88\mys.h" |
.................... #include <16F88.h> |
.................... //////// Standard Header file for the PIC16F88 device //////////////// |
.................... #device PIC16F88 |
.................... #list |
.................... |
.................... #device adc=8 |
.................... #fuses NOWDT,INTRC_IO, NOPUT, MCLR, BROWNOUT, NOLVP, NOCPD, NOWRT, NODEBUG, NOPROTECT, FCMEN, IESO |
.................... #use delay(clock=4000000) |
* |
0033: MOVLW 34 |
0034: MOVWF 04 |
0035: MOVF 00,W |
0036: BTFSC 03.2 |
0037: GOTO 047 |
0038: MOVLW 01 |
0039: MOVWF 78 |
003A: CLRF 77 |
003B: DECFSZ 77,F |
003C: GOTO 03B |
003D: DECFSZ 78,F |
003E: GOTO 03A |
003F: MOVLW 4A |
0040: MOVWF 77 |
0041: DECFSZ 77,F |
0042: GOTO 041 |
0043: NOP |
0044: NOP |
0045: DECFSZ 00,F |
0046: GOTO 038 |
0047: RETLW 00 |
.................... |
.................... |
.................... |
.................... #define LCD_RS PIN_A0 // rizeni registru LCD displeje |
.................... #define LCD_E PIN_A1 // enable LCD displeje |
.................... #define LCD_DATA_LSB PIN_B0 // pripojeni LSB bitu datoveho portu LCD displeje (celkem 4 bity vzestupne za sebou) |
.................... #include "C:\library\CCS\lcd.c" |
.................... // LCD modul pro ovladani dvouradkoveho LCD modulu se standardnim Hitachi radicem |
.................... // (c)miho 2002,2005 |
.................... // |
.................... // Historie: |
.................... // |
.................... // 0.00 Uvodni verze se snadnou definici portu LCD displeje |
.................... // 0.01 Oprava portu (zapomenute stare identifikatory) |
.................... // 0.02 Doplnena moznost pripojeni datoveho portu LCD na libovolne porty |
.................... // 0.03 Doplnena procedura lcd_clr pro smazani displeje |
.................... // |
.................... // |
.................... // Funkce: |
.................... // |
.................... // lcd_init() inicializuje LCD displej a porty, nutno volat jako prvni |
.................... // |
.................... // lcd_putc(c) zapis snaku do lcd displeje, zpracovava nasledujici ridici znaky |
.................... // \f = \x0C - nova stranka - smazani displeje |
.................... // \n = \x0A - odradkovani (prechod na druhou radku) |
.................... // \b = \x08 - backspace - posunuti kurzoru o 1 pozici zpet |
.................... // \r = \x0D - goto home to position 1,1 |
.................... // \0 .. \7 - definovatelne znaky v pozicich 0 az 7 v CGRAM |
.................... // \20 .. \27 - alternativne zapsane znaky (oktalove) v pozicich 0 az 7 CGRAM |
.................... // Pozor na to, ze funkce printf konci tisk pokud narazi na \0 (konec retezce) |
.................... // |
.................... // lcd_gotoxy(x,y) presune kurzor na uvedenou adresu |
.................... // nekontroluje parametry |
.................... // |
.................... // lcd_cursor_on zapne kurzor |
.................... // lcd_cursor_off vypne kurzor |
.................... // |
.................... // lcd_clr smaze displej |
.................... // |
.................... // lcd_define_char(Index, Def) Makro, ktere definuje znaky od pozice Index obsahem definicniho |
.................... // retezce Def. Kazdych 8 znaku retezce Def definuje dalsi znak v CGRAM. |
.................... // Kapacita CGRAM je celkem 8 znaku s indexem 0 az 7. |
.................... // Na konci se provede lcd_gotoxy(1,1). |
.................... // Na konci teto knihovny je priklad pouziti definovanych znaku |
.................... // |
.................... // |
.................... // Definice portu: // Datovy port displeje pripojeny na 4 bity za sebou na jeden port |
.................... // |
.................... // #define LCD_RS PIN_B2 // rizeni registru LCD displeje |
.................... // #define LCD_E PIN_B1 // enable LCD displeje |
.................... // #define LCD_DATA_LSB PIN_C2 // pripojeni LSB bitu datoveho portu LCD displeje (celkem 4 bity vzestupne za sebou) |
.................... // |
.................... // |
.................... // Alternativni definice: // Datovy port displeje pripojeny na libovolne 4 bitove porty (vede na kod delsi asi o 25 slov) |
.................... // |
.................... // #define LCD_RS PIN_B2 // rizeni registru LCD displeje |
.................... // #define LCD_E PIN_B1 // enable LCD displeje |
.................... // #define LCD_D0 PIN_C2 // D0 - datove bity pripojene na libovolne porty |
.................... // #define LCD_D1 PIN_C3 // D1 |
.................... // #define LCD_D2 PIN_C4 // D2 |
.................... // #define LCD_D3 PIN_C5 // D3 |
.................... |
.................... |
.................... |
.................... |
.................... // Privatni sekce, cist jen v pripade, ze neco nefunguje |
.................... |
.................... |
.................... |
.................... |
.................... #ifdef LCD_DATA_LSB |
.................... // Generovane defince portu pro ucely teto knihovny aby kod generoval spravne IO operace a soucasne |
.................... // bylo mozne jednoduse deklarovat pripojene piny LCD displeje pri pouziti teto knihovny. Problem spociva |
.................... // v tom, ze se musi spravne ridit smery portu a soucasne datovy port zabira jen 4 bity ze zadaneho portu |
.................... // |
.................... #define LCD_SHIFT (LCD_DATA_LSB&7) // pocet bitu posuvu datoveho kanalu v datovem portu |
.................... #define LCD_PORT (LCD_DATA_LSB>>3) // adresa LCD datoveho portu |
.................... #define LCD_TRIS (LCD_PORT+0x80) // adresa prislusneho TRIS registru |
.................... #define LCD_MASK (0xF<<LCD_SHIFT) // maska platnych bitu |
.................... // |
.................... #if LCD_SHIFT>4 // kontrola mezi |
.................... #error LCD data port LSB bit not in range 0..4 |
.................... #endif |
.................... #endif |
.................... |
.................... |
.................... // Definice konstant pro LCD display |
.................... // |
.................... #define LCD_CURSOR_ON_ 0x0E // kurzor jako blikajici radka pod znakem |
.................... #define LCD_CURSOR_OFF_ 0x0C // zadny kurzor |
.................... #define LCD_LINE_2 0x40 // adresa 1. znaku 2. radky |
.................... |
.................... |
.................... // Definice rezimu LCD displeje |
.................... // |
.................... BYTE const LCD_INIT_STRING[4] = |
.................... { |
.................... 0x28, // intrfejs 4 bity, 2 radky, font 5x7 |
.................... LCD_CURSOR_OFF_, // display on, kurzor off, |
.................... 0x01, // clear displeje |
.................... 0x06 // inkrement pozice kurzoru (posun kurzoru doprava) |
.................... }; |
.................... |
.................... |
.................... // Odesle nibble do displeje (posle data a klikne signalem e) |
.................... // |
.................... void lcd_send_nibble( BYTE n ) |
.................... { |
.................... #ifdef LCD_DATA_LSB |
.................... // data jsou za sebou na 4 bitech jednoho portu |
.................... *LCD_PORT = (*LCD_PORT & ~LCD_MASK) | ((n << LCD_SHIFT) & LCD_MASK); // nastav datove bity portu a ostatni zachovej |
0048: MOVF 06,W |
0049: ANDLW F0 |
004A: MOVWF 3B |
004B: MOVF 3A,W |
004C: ANDLW 0F |
004D: IORWF 3B,W |
004E: MOVWF 06 |
.................... #else |
.................... // data jsou na libovolnych 4 bitech libovolnych portu |
.................... output_bit(LCD_D0,bit_test(n,0)); |
.................... output_bit(LCD_D1,bit_test(n,1)); |
.................... output_bit(LCD_D2,bit_test(n,2)); |
.................... output_bit(LCD_D3,bit_test(n,3)); |
.................... #endif |
.................... output_bit(LCD_E,1); // vzestupna hrana |
004F: BSF 05.1 |
0050: BSF 03.5 |
0051: BCF 05.1 |
.................... delay_us(1); // pockej alespon 450ns od e nebo alespon 195ns od dat |
0052: NOP |
.................... output_bit(LCD_E,0); // sestupna hrana (minimalni perioda e je 1us) |
0053: BCF 03.5 |
0054: BCF 05.1 |
0055: BSF 03.5 |
0056: BCF 05.1 |
.................... } |
0057: BCF 03.5 |
0058: RETLW 00 |
.................... |
.................... |
.................... // Odesle bajt do registru LCD |
.................... // |
.................... // Pokud je Adr=0 .. instrukcni registr |
.................... // Pokud je Adr=1 .. datovy registr |
.................... // |
.................... void lcd_send_byte( BOOLEAN Adr, BYTE n ) |
.................... { |
.................... output_bit(LCD_RS,Adr); // vyber registr |
0059: MOVF 38,F |
005A: BTFSS 03.2 |
005B: GOTO 05E |
005C: BCF 05.0 |
005D: GOTO 05F |
005E: BSF 05.0 |
005F: BSF 03.5 |
0060: BCF 05.0 |
.................... swap(n); |
0061: BCF 03.5 |
0062: SWAPF 39,F |
.................... lcd_send_nibble(n); // posli horni pulku bajtu |
0063: MOVF 39,W |
0064: MOVWF 3A |
0065: CALL 048 |
.................... swap(n); |
0066: SWAPF 39,F |
.................... lcd_send_nibble(n); // posli spodni pulku bajtu |
0067: MOVF 39,W |
0068: MOVWF 3A |
0069: CALL 048 |
.................... delay_us(40); // minimalni doba na provedeni prikazu |
006A: MOVLW 0D |
006B: MOVWF 77 |
006C: DECFSZ 77,F |
006D: GOTO 06C |
.................... } |
006E: RETLW 00 |
.................... |
.................... |
.................... // Provede inicializaci LCD displeje, smaze obsah a nastavi mod displeje |
.................... // |
.................... // Tato procedura se musi volat pred pouzitim ostatnich lcd_ procedur |
.................... // |
.................... void lcd_init() |
.................... { |
.................... |
.................... int i; // pocitadlo cyklu |
.................... |
.................... delay_ms(20); // spozdeni pro provedeni startu displeje po zapnuti napajeni |
006F: MOVLW 14 |
0070: MOVWF 34 |
0071: CALL 033 |
.................... |
.................... #ifdef LCD_DATA_LSB |
.................... // data jsou na 4 bitech za sebou, nastav smer pro vsechny dalsi prenosy |
.................... *LCD_TRIS = *LCD_TRIS & ~LCD_MASK; // nuluj odpovidajici bity tris registru datoveho portu LCD |
0072: MOVLW F0 |
0073: BSF 03.5 |
0074: ANDWF 06,F |
.................... #endif |
.................... |
.................... output_bit(LCD_RS,0); // nastav jako vystup a nastav klidovy stav |
0075: BCF 03.5 |
0076: BCF 05.0 |
0077: BSF 03.5 |
0078: BCF 05.0 |
.................... output_bit(LCD_E, 0); // nastav jako vystup a nastav klidovy stav |
0079: BCF 03.5 |
007A: BCF 05.1 |
007B: BSF 03.5 |
007C: BCF 05.1 |
.................... |
.................... for (i=0; i<3; i++) // nastav lcd do rezimu 8 bitu sbernice |
007D: BCF 03.5 |
007E: CLRF 2B |
007F: MOVF 2B,W |
0080: SUBLW 02 |
0081: BTFSS 03.0 |
0082: GOTO 08B |
.................... { |
.................... delay_ms(2); // muze byt rozdelany prenos dat (2x 4 bity) nebo pomaly povel |
0083: MOVLW 02 |
0084: MOVWF 34 |
0085: CALL 033 |
.................... lcd_send_nibble(3); // rezim 8 bitu |
0086: MOVLW 03 |
0087: MOVWF 3A |
0088: CALL 048 |
.................... } |
0089: INCF 2B,F |
008A: GOTO 07F |
.................... |
.................... delay_us(40); // cas na zpracovani |
008B: MOVLW 0D |
008C: MOVWF 77 |
008D: DECFSZ 77,F |
008E: GOTO 08D |
.................... lcd_send_nibble(2); // nastav rezim 4 bitu (plati od nasledujiciho prenosu) |
008F: MOVLW 02 |
0090: MOVWF 3A |
0091: CALL 048 |
.................... delay_us(40); // cas na zpracovani |
0092: MOVLW 0D |
0093: MOVWF 77 |
0094: DECFSZ 77,F |
0095: GOTO 094 |
.................... |
.................... for (i=0;i<3;i++) // proved inicializaci (nastaveni modu, smazani apod) |
0096: CLRF 2B |
0097: MOVF 2B,W |
0098: SUBLW 02 |
0099: BTFSS 03.0 |
009A: GOTO 0A7 |
.................... { |
.................... lcd_send_byte(0,LCD_INIT_STRING[i]); |
009B: MOVF 2B,W |
009C: CALL 004 |
009D: MOVWF 2C |
009E: CLRF 38 |
009F: MOVF 2C,W |
00A0: MOVWF 39 |
00A1: CALL 059 |
.................... delay_ms(2); |
00A2: MOVLW 02 |
00A3: MOVWF 34 |
00A4: CALL 033 |
.................... } |
00A5: INCF 2B,F |
00A6: GOTO 097 |
.................... } |
00A7: BCF 0A.3 |
00A8: GOTO 324 (RETURN) |
.................... |
.................... |
.................... // Proved presun kurzoru |
.................... // |
.................... // Pozice 1.1 je domu |
.................... // |
.................... void lcd_gotoxy( BYTE x, BYTE y) |
.................... { |
.................... |
.................... BYTE Adr; |
.................... |
.................... Adr=x-1; |
* |
0108: MOVLW 01 |
0109: SUBWF 34,W |
010A: MOVWF 36 |
.................... if(y==2) |
010B: MOVF 35,W |
010C: SUBLW 02 |
010D: BTFSS 03.2 |
010E: GOTO 111 |
.................... Adr+=LCD_LINE_2; |
010F: MOVLW 40 |
0110: ADDWF 36,F |
.................... |
.................... lcd_send_byte(0,0x80|Adr); |
0111: MOVF 36,W |
0112: IORLW 80 |
0113: MOVWF 37 |
0114: CLRF 38 |
0115: MOVF 37,W |
0116: MOVWF 39 |
0117: CALL 059 |
.................... } |
0118: RETLW 00 |
.................... |
.................... |
.................... // Zapis znaku na displej, zpracovani ridicich znaku |
.................... // |
.................... void lcd_putc( char c) |
.................... { |
.................... |
.................... switch (c) |
.................... { |
0119: MOVF 33,W |
011A: XORLW 0C |
011B: BTFSC 03.2 |
011C: GOTO 127 |
011D: XORLW 06 |
011E: BTFSC 03.2 |
011F: GOTO 12F |
0120: XORLW 07 |
0121: BTFSC 03.2 |
0122: GOTO 135 |
0123: XORLW 05 |
0124: BTFSC 03.2 |
0125: GOTO 13A |
0126: GOTO 13F |
.................... case '\f' : lcd_send_byte(0,1); // smaz displej |
0127: CLRF 38 |
0128: MOVLW 01 |
0129: MOVWF 39 |
012A: CALL 059 |
.................... delay_ms(2); |
012B: MOVLW 02 |
012C: MOVWF 34 |
012D: CALL 033 |
.................... break; |
012E: GOTO 14B |
.................... case '\n' : lcd_gotoxy(1,2); break; // presun se na 1. znak 2. radky |
012F: MOVLW 01 |
0130: MOVWF 34 |
0131: MOVLW 02 |
0132: MOVWF 35 |
0133: CALL 108 |
0134: GOTO 14B |
.................... case '\r' : lcd_gotoxy(1,1); break; // presun home |
0135: MOVLW 01 |
0136: MOVWF 34 |
0137: MOVWF 35 |
0138: CALL 108 |
0139: GOTO 14B |
.................... case '\b' : lcd_send_byte(0,0x10); break; // posun kurzor o 1 zpet |
013A: CLRF 38 |
013B: MOVLW 10 |
013C: MOVWF 39 |
013D: CALL 059 |
013E: GOTO 14B |
.................... default : if (c<0x20) c&=0x7; // preklopeni definovatelnych znaku na rozsah 0 az 0x1F |
013F: MOVF 33,W |
0140: SUBLW 1F |
0141: BTFSS 03.0 |
0142: GOTO 145 |
0143: MOVLW 07 |
0144: ANDWF 33,F |
.................... lcd_send_byte(1,c); break; // zapis znak |
0145: MOVLW 01 |
0146: MOVWF 38 |
0147: MOVF 33,W |
0148: MOVWF 39 |
0149: CALL 059 |
014A: GOTO 14B |
.................... } |
.................... } |
014B: RETLW 00 |
.................... |
.................... |
.................... // Zapni kurzor |
.................... // |
.................... void lcd_cursor_on() |
.................... { |
.................... lcd_send_byte(0,LCD_CURSOR_ON_); |
.................... } |
.................... |
.................... |
.................... // Vypni kurzor |
.................... // |
.................... void lcd_cursor_off() |
.................... { |
.................... lcd_send_byte(0,LCD_CURSOR_OFF_); |
.................... } |
.................... |
.................... |
.................... // Smaz displej |
.................... // |
.................... void lcd_clr() |
.................... { |
.................... lcd_putc('\f'); |
.................... } |
.................... |
.................... |
.................... // Definice vlastnich fontu |
.................... // |
.................... // Vlastnich definic muze byt jen 8 do pozic 0 az 7 pameti CGRAM radice lcd displeje |
.................... // Pro snadne definovani jsou pripraveny nasledujici definice a na konci souboru je uveden |
.................... // priklad pouziti definovanych znaku. |
.................... |
.................... |
.................... // Pomocna procedura pro posilani ridicich dat do radice displeje |
.................... // |
.................... void lcd_putc2(int Data) |
.................... { |
.................... lcd_send_byte(1,Data); |
.................... } |
.................... |
.................... |
.................... // Pomocne definice pro programovani obsahu CGRAM |
.................... // |
.................... #define lcd_define_start(Code) lcd_send_byte(0,0x40+(Code<<3)); delay_ms(2) |
.................... #define lcd_define_def(String) printf(lcd_putc2,String); |
.................... #define lcd_define_end() lcd_send_byte(0,3); delay_ms(2) |
.................... |
.................... |
.................... // Vlastni vykonne makro pro definovani fontu do pozice Index CGRAM s definicnim retezcem Def |
.................... // |
.................... #define lcd_define_char(Index, Def) lcd_define_start(Index); lcd_define_def(Def); lcd_define_end(); |
.................... |
.................... |
.................... // Pripravene definice fontu vybranych znaku |
.................... // V tabulce nesmi byt 00 (konec retezce v printf()), misto toho davame 80 |
.................... // |
.................... #define LCD_CHAR_BAT100 "\x0E\x1F\x1F\x1F\x1F\x1F\x1F\x1F" /* symbol plne baterie */ |
.................... #define LCD_CHAR_BAT50 "\x0E\x1F\x11\x11\x13\x17\x1F\x1F" /* symbol polovicni baterie */ |
.................... #define LCD_CHAR_BAT0 "\x0E\x1F\x11\x11\x11\x11\x11\x1F" /* symbol vybite baterie */ |
.................... #define LCD_CHAR_UP "\x80\x04\x0E\x15\x04\x04\x04\x80" /* symbol sipka nahoru */ |
.................... #define LCD_CHAR_DOWN "\x80\x04\x04\x04\x15\x0E\x04\x80" /* symbol Sipka dolu */ |
.................... #define LCD_CHAR_LUA "\x04\x0E\x11\x11\x1F\x11\x11\x80" /* A s carkou */ |
.................... #define LCD_CHAR_LLA "\x01\x02\x0E\x01\x1F\x11\x0F\x80" /* a s carkou */ |
.................... #define LCD_CHAR_HUC "\x0A\x0E\x11\x10\x10\x11\x0E\x80" /* C s hackem */ |
.................... #define LCD_CHAR_HLC "\x0A\x04\x0E\x10\x10\x11\x0E\x80" /* c s hackem */ |
.................... #define LCD_CHAR_HUD "\x0A\x1C\x12\x11\x11\x12\x1C\x80" /* D s hackem */ |
.................... #define LCD_CHAR_HLD "\x05\x03\x0D\x13\x11\x11\x0F\x80" /* d s hackem */ |
.................... #define LCD_CHAR_LUE "\x04\x1F\x10\x10\x1E\x10\x1F\x80" /* E s carkou */ |
.................... #define LCD_CHAR_LLE "\x01\x02\x0E\x11\x1F\x10\x0E\x80" /* e s carkou */ |
.................... #define LCD_CHAR_HUE "\x0A\x1F\x10\x1E\x10\x10\x1F\x80" /* E s hackem */ |
.................... #define LCD_CHAR_HLE "\x0A\x04\x0E\x11\x1F\x10\x0E\x80" /* e s hackem */ |
.................... #define LCD_CHAR_LUI "\x04\x0E\x04\x04\x04\x04\x0E\x80" /* I s carkou */ |
.................... #define LCD_CHAR_LLI "\x02\x04\x80\x0C\x04\x04\x0E\x80" /* i s carkou */ |
.................... #define LCD_CHAR_HUN "\x0A\x15\x11\x19\x15\x13\x11\x80" /* N s hackem */ |
.................... #define LCD_CHAR_HLN "\x0A\x04\x16\x19\x11\x11\x11\x80" /* n s hackem */ |
.................... #define LCD_CHAR_LUO "\x04\x0E\x11\x11\x11\x11\x0E\x80" /* O s carkou */ |
.................... #define LCD_CHAR_LLO "\x02\x04\x0E\x11\x11\x11\x0E\x80" /* o s carkou */ |
.................... #define LCD_CHAR_HUR "\x0A\x1E\x11\x1E\x14\x12\x11\x80" /* R s hackem */ |
.................... #define LCD_CHAR_HLR "\x0A\x04\x16\x19\x10\x10\x10\x80" /* r s hackem */ |
.................... #define LCD_CHAR_HUS "\x0A\x0F\x10\x0E\x01\x01\x1E\x80" /* S s hackem */ |
.................... #define LCD_CHAR_HLS "\x0A\x04\x0E\x10\x0E\x01\x1E\x80" /* s s hackem */ |
.................... #define LCD_CHAR_HUT "\x0A\x1F\x04\x04\x04\x04\x04\x80" /* T s hackem */ |
.................... #define LCD_CHAR_HLT "\x0A\x0C\x1C\x08\x08\x09\x06\x80" /* t s hackem */ |
.................... #define LCD_CHAR_LUU "\x02\x15\x11\x11\x11\x11\x0E\x80" /* U s carkou */ |
.................... #define LCD_CHAR_LLU "\x02\x04\x11\x11\x11\x13\x0D\x80" /* u s carkou */ |
.................... #define LCD_CHAR_CUU "\x06\x17\x11\x11\x11\x11\x0E\x80" /* U s krouzkem */ |
.................... #define LCD_CHAR_CLU "\x06\x06\x11\x11\x11\x11\x0E\x80" /* u s krouzkem */ |
.................... #define LCD_CHAR_LUY "\x02\x15\x11\x0A\x04\x04\x04\x80" /* Y s carkou */ |
.................... #define LCD_CHAR_LLY "\x02\x04\x11\x11\x0F\x01\x0E\x80" /* y s carkou */ |
.................... #define LCD_CHAR_HUZ "\x0A\x1F\x01\x02\x04\x08\x1F\x80" /* Z s hackem */ |
.................... #define LCD_CHAR_HLZ "\x0A\x04\x1F\x02\x04\x08\x1F\x80" /* z s hackem */ |
.................... |
.................... |
.................... // Priklad pouziti definovanych znaku |
.................... // |
.................... // |
.................... //void lcd_sample() |
.................... //{ |
.................... // lcd_define_char(0,LCD_CHAR_BAT50); // Priklad definice znaku baterie do pozice 0 |
.................... // lcd_define_char(2,LCD_CHAR_HLE LCD_CHAR_LUI); // Priklad definice znaku e s hackem a I s carkou od pozice 2 |
.................... // // vsimnete si, ze neni carka mezi retezci s definici (oba retezce definuji |
.................... // // jediny definicni retezec) |
.................... // printf(lcd_putc,"\fZnaky:\20\22\23"); // priklad vypisu znaku z pozice 0, 2 a 3 |
.................... // delay_ms(1000); |
.................... // lcd_define_char(0,LCD_CHAR_BAT0); // Predefinovani tvaru znaku v pozici 0 |
.................... // delay_ms(1000); |
.................... //} |
.................... |
.................... |
.................... #define TRIGGER_PIN PIN_B4 |
.................... |
.................... #DEFINE DATA PIN_B5 // musi byt definovan kanal DATA |
.................... #DEFINE CLK PIN_B6 // a taky hodiny CLK |
.................... #include "C:\library\kaklik\CCS\ps2.c" |
.................... //////////////////////////////////////////////////////////////////////////////// |
.................... // Modul pro komunikaci s PS/2 mysi |
.................... // |
.................... // #DEFINE DATA PIN_B0 // musi byt definovan kanal DATA |
.................... // #DEFINE CLK PIN_B1 // a taky hodiny CLK |
.................... // |
.................... //////////////////////////////////////////////////////////////////////////////// |
.................... |
.................... #define PRVNI 1000 // nastaveni prodlevy pred zacatkem vysilani bajtu |
.................... #define DRUHY 2 |
.................... #define TRETI DRUHY |
.................... |
.................... // prikazy |
.................... #define RESET 0xFF |
.................... #define ENABLE_DATA_REPORTING 0xF4 |
.................... #define READ_DATA 0xEB |
.................... #define STATUS_REQUEST 0xE9 |
.................... #define SET_REMOTE_MODE 0xF0 |
.................... #define SET_STREAM_MODE 0xEA |
.................... #define GET_DEVICE_ID 0xF2 |
.................... |
.................... |
.................... void send(byte command) |
.................... { |
.................... unsigned int8 n; |
.................... unsigned int8 parity=0; |
* |
00A9: CLRF 2D |
.................... |
.................... //Request-to-send |
.................... output_float(DATA); |
00AA: BSF 03.5 |
00AB: BSF 06.5 |
.................... output_low(CLK); |
00AC: BCF 06.6 |
00AD: BCF 03.5 |
00AE: BCF 06.6 |
.................... delay_us(100); |
00AF: MOVLW 21 |
00B0: MOVWF 77 |
00B1: DECFSZ 77,F |
00B2: GOTO 0B1 |
.................... // start bit |
.................... output_low(DATA); |
00B3: BSF 03.5 |
00B4: BCF 06.5 |
00B5: BCF 03.5 |
00B6: BCF 06.5 |
.................... while(input(CLK)); // ceka se na hodiny od mysi (mys zataha za hodiny) |
00B7: BSF 03.5 |
00B8: BSF 06.6 |
00B9: BCF 03.5 |
00BA: BTFSC 06.6 |
00BB: GOTO 0B7 |
.................... // 8 bitu |
.................... for(n=0; n<8; n++) |
00BC: CLRF 2C |
00BD: MOVF 2C,W |
00BE: SUBLW 07 |
00BF: BTFSS 03.0 |
00C0: GOTO 0DA |
.................... { |
.................... while(input(CLK)); |
00C1: BSF 03.5 |
00C2: BSF 06.6 |
00C3: BCF 03.5 |
00C4: BTFSC 06.6 |
00C5: GOTO 0C1 |
.................... output_bit(DATA, command & 1); |
00C6: BTFSC 2B.0 |
00C7: GOTO 0CA |
00C8: BCF 06.5 |
00C9: GOTO 0CB |
00CA: BSF 06.5 |
00CB: BSF 03.5 |
00CC: BCF 06.5 |
.................... parity += command & 1; |
00CD: BCF 03.5 |
00CE: MOVF 2B,W |
00CF: ANDLW 01 |
00D0: ADDWF 2D,F |
.................... command >>= 1; |
00D1: BCF 03.0 |
00D2: RRF 2B,F |
.................... while(!input(CLK)); |
00D3: BSF 03.5 |
00D4: BSF 06.6 |
00D5: BCF 03.5 |
00D6: BTFSS 06.6 |
00D7: GOTO 0D3 |
.................... }; |
00D8: INCF 2C,F |
00D9: GOTO 0BD |
.................... // parita |
.................... while(input(CLK)); |
00DA: BSF 03.5 |
00DB: BSF 06.6 |
00DC: BCF 03.5 |
00DD: BTFSC 06.6 |
00DE: GOTO 0DA |
.................... output_bit(DATA, ~parity & 1); |
00DF: MOVF 2D,W |
00E0: XORLW FF |
00E1: ANDLW 01 |
00E2: XORLW 00 |
00E3: BTFSS 03.2 |
00E4: GOTO 0E7 |
00E5: BCF 06.5 |
00E6: GOTO 0E8 |
00E7: BSF 06.5 |
00E8: BSF 03.5 |
00E9: BCF 06.5 |
.................... while(!input(CLK)); |
00EA: BSF 06.6 |
00EB: BCF 03.5 |
00EC: BTFSC 06.6 |
00ED: GOTO 0F0 |
00EE: BSF 03.5 |
00EF: GOTO 0EA |
.................... |
.................... // stop bit |
.................... output_float(DATA); |
00F0: BSF 03.5 |
00F1: BSF 06.5 |
.................... while(input(DATA)); // mys musi sama jeste jednou zatahat za hodiny a data |
00F2: BSF 06.5 |
00F3: BCF 03.5 |
00F4: BTFSS 06.5 |
00F5: GOTO 0F8 |
00F6: BSF 03.5 |
00F7: GOTO 0F2 |
.................... while(input(CLK)); |
00F8: BSF 03.5 |
00F9: BSF 06.6 |
00FA: BCF 03.5 |
00FB: BTFSC 06.6 |
00FC: GOTO 0F8 |
.................... |
.................... // ceka se az nastane klidovy stav |
.................... while(!input(CLK) || !input(DATA)); |
00FD: BSF 03.5 |
00FE: BSF 06.6 |
00FF: BCF 03.5 |
0100: BTFSS 06.6 |
0101: GOTO 0FD |
0102: BSF 03.5 |
0103: BSF 06.5 |
0104: BCF 03.5 |
0105: BTFSS 06.5 |
0106: GOTO 0FD |
.................... } |
0107: RETLW 00 |
.................... |
.................... |
.................... int8 read_byte() // dodelat paritu |
.................... { |
.................... unsigned int8 bajt; |
.................... unsigned int8 i; |
.................... int1 parity=0; |
* |
023A: BCF 35.0 |
.................... |
.................... // cekani na startbit |
.................... while(input(CLK) || input(DATA)); // oba signaly musi byt v 0 |
023B: BSF 03.5 |
023C: BSF 06.6 |
023D: BCF 03.5 |
023E: BTFSC 06.6 |
023F: GOTO 23B |
0240: BSF 03.5 |
0241: BSF 06.5 |
0242: BCF 03.5 |
0243: BTFSC 06.5 |
0244: GOTO 23B |
.................... while(!input(CLK)); // ceka se na nabeznou hranu hodin |
0245: BSF 03.5 |
0246: BSF 06.6 |
0247: BCF 03.5 |
0248: BTFSS 06.6 |
0249: GOTO 245 |
.................... |
.................... bajt = 0; |
024A: CLRF 33 |
.................... for(i=0; i<8; i++) |
024B: CLRF 34 |
024C: MOVF 34,W |
024D: SUBLW 07 |
024E: BTFSS 03.0 |
024F: GOTO 27C |
.................... { |
.................... while(input(CLK)); // ceka na nulu hodin |
0250: BSF 03.5 |
0251: BSF 06.6 |
0252: BCF 03.5 |
0253: BTFSC 06.6 |
0254: GOTO 250 |
.................... |
.................... bajt >>= 1; |
0255: BCF 03.0 |
0256: RRF 33,F |
.................... bajt |= input(DATA) << 7; // zapise se stav do promene |
0257: BSF 03.5 |
0258: BSF 06.5 |
0259: MOVLW 00 |
025A: BCF 03.5 |
025B: BTFSC 06.5 |
025C: MOVLW 01 |
025D: MOVWF 77 |
025E: RRF 77,W |
025F: CLRF 77 |
0260: BTFSC 03.0 |
0261: BSF 77.7 |
0262: MOVF 77,W |
0263: IORWF 33,F |
.................... parity^=input(DATA); |
0264: MOVLW 00 |
0265: BTFSC 35.0 |
0266: MOVLW 01 |
0267: MOVWF 36 |
0268: BSF 03.5 |
0269: BSF 06.5 |
026A: MOVLW 00 |
026B: BCF 03.5 |
026C: BTFSC 06.5 |
026D: MOVLW 01 |
026E: XORWF 36,W |
026F: MOVWF 78 |
0270: BTFSC 78.0 |
0271: GOTO 274 |
0272: BCF 35.0 |
0273: GOTO 275 |
0274: BSF 35.0 |
.................... |
.................... while(!input(CLK)); // ceka na jednicku hodin |
0275: BSF 03.5 |
0276: BSF 06.6 |
0277: BCF 03.5 |
0278: BTFSS 06.6 |
0279: GOTO 275 |
.................... }; |
027A: INCF 34,F |
027B: GOTO 24C |
.................... while(input(CLK)); |
027C: BSF 03.5 |
027D: BSF 06.6 |
027E: BCF 03.5 |
027F: BTFSC 06.6 |
0280: GOTO 27C |
.................... parity^=input(DATA); |
0281: MOVLW 00 |
0282: BTFSC 35.0 |
0283: MOVLW 01 |
0284: MOVWF 36 |
0285: BSF 03.5 |
0286: BSF 06.5 |
0287: MOVLW 00 |
0288: BCF 03.5 |
0289: BTFSC 06.5 |
028A: MOVLW 01 |
028B: XORWF 36,W |
028C: MOVWF 78 |
028D: BTFSC 78.0 |
028E: GOTO 291 |
028F: BCF 35.0 |
0290: GOTO 292 |
0291: BSF 35.0 |
.................... // if (parity) |
.................... while(!input(CLK)); // ceka na jednicku hodin |
0292: BSF 03.5 |
0293: BSF 06.6 |
0294: BCF 03.5 |
0295: BTFSS 06.6 |
0296: GOTO 292 |
.................... while(input(CLK)); |
0297: BSF 03.5 |
0298: BSF 06.6 |
0299: BCF 03.5 |
029A: BTFSC 06.6 |
029B: GOTO 297 |
.................... while(!input(CLK)); // ceka na jednicku hodin |
029C: BSF 03.5 |
029D: BSF 06.6 |
029E: BCF 03.5 |
029F: BTFSS 06.6 |
02A0: GOTO 29C |
.................... return (bajt); |
02A1: MOVF 33,W |
02A2: MOVWF 78 |
.................... } |
02A3: RETLW 00 |
.................... |
.................... |
.................... void read_standard_byte(signed int8 *x,*y,unsigned int8 *tl1,*tl2,*tl3) |
.................... { |
.................... unsigned int8 st,nd,rd; |
.................... |
.................... st = read_byte(); |
02A4: CALL 23A |
02A5: MOVF 78,W |
02A6: MOVWF 30 |
.................... nd = read_byte(); |
02A7: CALL 23A |
02A8: MOVF 78,W |
02A9: MOVWF 31 |
.................... rd = read_byte(); |
02AA: CALL 23A |
02AB: MOVF 78,W |
02AC: MOVWF 32 |
.................... |
.................... if ((st & 0b1000) == 0b1000) *x=-nd; else *x=nd; |
02AD: MOVF 30,W |
02AE: ANDLW 08 |
02AF: SUBLW 08 |
02B0: BTFSS 03.2 |
02B1: GOTO 2B8 |
02B2: MOVF 2B,W |
02B3: MOVWF 04 |
02B4: MOVF 31,W |
02B5: SUBLW 00 |
02B6: MOVWF 00 |
02B7: GOTO 2BC |
02B8: MOVF 2B,W |
02B9: MOVWF 04 |
02BA: MOVF 31,W |
02BB: MOVWF 00 |
.................... if ((st & 0b10000) == 0b10000) *y=-rd; else *y=rd; |
02BC: MOVF 30,W |
02BD: ANDLW 10 |
02BE: SUBLW 10 |
02BF: BTFSS 03.2 |
02C0: GOTO 2C7 |
02C1: MOVF 2C,W |
02C2: MOVWF 04 |
02C3: MOVF 32,W |
02C4: SUBLW 00 |
02C5: MOVWF 00 |
02C6: GOTO 2CB |
02C7: MOVF 2C,W |
02C8: MOVWF 04 |
02C9: MOVF 32,W |
02CA: MOVWF 00 |
.................... |
.................... *tl1=st & 1; |
02CB: MOVF 2D,W |
02CC: MOVWF 04 |
02CD: MOVF 30,W |
02CE: ANDLW 01 |
02CF: MOVWF 00 |
.................... *tl2=(st >> 1) & 1; |
02D0: MOVF 2E,W |
02D1: MOVWF 04 |
02D2: BCF 03.0 |
02D3: RRF 30,W |
02D4: ANDLW 01 |
02D5: MOVWF 00 |
.................... *tl3=(st >> 2) & 1; |
02D6: MOVF 2F,W |
02D7: MOVWF 04 |
02D8: RRF 30,W |
02D9: MOVWF 77 |
02DA: RRF 77,F |
02DB: MOVLW 3F |
02DC: ANDWF 77,F |
02DD: MOVF 77,W |
02DE: ANDLW 01 |
02DF: MOVWF 00 |
.................... } |
02E0: BCF 0A.3 |
02E1: GOTO 3A5 (RETURN) |
.................... void ps2break() |
.................... { |
.................... output_low(CLK); |
.................... } |
.................... void ps2enable() |
.................... { |
.................... output_float(CLK); |
.................... } |
.................... |
.................... |
.................... |
.................... |
.................... void trigger() |
.................... { |
.................... output_high(TRIGGER_PIN); |
.................... delay_us(50); |
.................... output_low(TRIGGER_PIN); |
.................... } |
.................... |
.................... void main() |
.................... { |
02E2: CLRF 04 |
02E3: MOVLW 1F |
02E4: ANDWF 03,F |
02E5: BSF 03.5 |
02E6: BCF 1F.4 |
02E7: BCF 1F.5 |
02E8: MOVF 1B,W |
02E9: ANDLW 80 |
02EA: MOVWF 1B |
02EB: MOVLW 07 |
02EC: MOVWF 1C |
02ED: MOVF 1C,W |
02EE: BCF 03.5 |
02EF: BCF 0D.6 |
02F0: MOVLW 60 |
02F1: BSF 03.5 |
02F2: MOVWF 0F |
.................... signed int16 x=0,y=0; |
02F3: BCF 03.5 |
02F4: CLRF 21 |
02F5: CLRF 22 |
02F6: CLRF 23 |
02F7: CLRF 24 |
.................... signed int8 hodnota,dx,dy; |
.................... unsigned int8 tl1,tl2,tl3; |
.................... |
.................... setup_adc_ports(NO_ANALOGS|VSS_VDD); |
02F8: BSF 03.5 |
02F9: BCF 1F.4 |
02FA: BCF 1F.5 |
02FB: MOVF 1B,W |
02FC: ANDLW 80 |
02FD: MOVWF 1B |
.................... setup_adc(ADC_OFF); |
02FE: BCF 03.5 |
02FF: BCF 1F.0 |
.................... setup_spi(FALSE); |
0300: BCF 14.5 |
0301: BSF 03.5 |
0302: BCF 06.2 |
0303: BSF 06.1 |
0304: BCF 06.4 |
0305: MOVLW 00 |
0306: BCF 03.5 |
0307: MOVWF 14 |
0308: BSF 03.5 |
0309: MOVWF 14 |
.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); |
030A: MOVF 01,W |
030B: ANDLW C7 |
030C: IORLW 08 |
030D: MOVWF 01 |
.................... setup_timer_1(T1_DISABLED); |
030E: BCF 03.5 |
030F: CLRF 10 |
.................... setup_timer_2(T2_DISABLED,0,1); |
0310: MOVLW 00 |
0311: MOVWF 78 |
0312: MOVWF 12 |
0313: MOVLW 00 |
0314: BSF 03.5 |
0315: MOVWF 12 |
.................... setup_comparator(NC_NC_NC_NC); |
0316: MOVLW 07 |
0317: MOVWF 1C |
0318: MOVF 05,W |
0319: MOVLW 03 |
031A: MOVWF 77 |
031B: DECFSZ 77,F |
031C: GOTO 31B |
031D: MOVF 1C,W |
031E: BCF 03.5 |
031F: BCF 0D.6 |
.................... setup_vref(FALSE); |
0320: BSF 03.5 |
0321: CLRF 1D |
.................... |
.................... lcd_init(); |
0322: BCF 03.5 |
0323: GOTO 06F |
.................... Delay_ms(500); |
0324: MOVLW 02 |
0325: MOVWF 2B |
0326: MOVLW FA |
0327: MOVWF 34 |
0328: CALL 033 |
0329: DECFSZ 2B,F |
032A: GOTO 326 |
.................... |
.................... send(SET_REMOTE_MODE); |
032B: MOVLW F0 |
032C: MOVWF 2B |
032D: CALL 0A9 |
.................... |
.................... while (true) |
.................... { |
.................... LCD_gotoxy(1,1); |
032E: MOVLW 01 |
032F: MOVWF 34 |
0330: MOVWF 35 |
0331: CALL 108 |
.................... printf(lcd_putc,"%X X=%ld Y=%ld TL1=%U TL2=%U TL3=%U",hodnota, x,y,tl1,tl2,tl3); |
0332: MOVF 25,W |
0333: MOVWF 2B |
0334: MOVLW 37 |
0335: MOVWF 2C |
0336: GOTO 14C |
0337: MOVLW 20 |
0338: MOVWF 33 |
0339: CALL 119 |
033A: MOVLW 58 |
033B: MOVWF 33 |
033C: CALL 119 |
033D: MOVLW 3D |
033E: MOVWF 33 |
033F: CALL 119 |
0340: MOVLW 10 |
0341: MOVWF 04 |
0342: MOVF 22,W |
0343: MOVWF 2C |
0344: MOVF 21,W |
0345: MOVWF 2B |
0346: CALL 16E |
0347: MOVLW 20 |
0348: MOVWF 33 |
0349: CALL 119 |
034A: MOVLW 59 |
034B: MOVWF 33 |
034C: CALL 119 |
034D: MOVLW 3D |
034E: MOVWF 33 |
034F: CALL 119 |
0350: MOVLW 10 |
0351: MOVWF 04 |
0352: MOVF 24,W |
0353: MOVWF 2C |
0354: MOVF 23,W |
0355: MOVWF 2B |
0356: CALL 16E |
0357: MOVLW 0E |
0358: MOVWF 2B |
0359: MOVF 2B,W |
035A: CALL 00C |
035B: INCF 2B,F |
035C: MOVWF 77 |
035D: MOVWF 33 |
035E: CALL 119 |
035F: MOVLW 13 |
0360: SUBWF 2B,W |
0361: BTFSS 03.2 |
0362: GOTO 359 |
0363: MOVF 28,W |
0364: MOVWF 2F |
0365: MOVLW 18 |
0366: MOVWF 30 |
0367: CALL 1ED |
0368: MOVLW 03 |
0369: MOVWF 2C |
036A: MOVLW 20 |
036B: MOVWF 33 |
036C: CALL 119 |
036D: DECFSZ 2C,F |
036E: GOTO 36A |
036F: MOVLW 15 |
0370: MOVWF 2D |
0371: MOVF 2D,W |
0372: CALL 00C |
0373: INCF 2D,F |
0374: MOVWF 77 |
0375: MOVWF 33 |
0376: CALL 119 |
0377: MOVLW 19 |
0378: SUBWF 2D,W |
0379: BTFSS 03.2 |
037A: GOTO 371 |
037B: MOVF 29,W |
037C: MOVWF 2F |
037D: MOVLW 18 |
037E: MOVWF 30 |
037F: CALL 1ED |
0380: MOVLW 1B |
0381: MOVWF 2E |
0382: MOVF 2E,W |
0383: CALL 00C |
0384: INCF 2E,F |
0385: MOVWF 77 |
0386: MOVWF 33 |
0387: CALL 119 |
0388: MOVLW 20 |
0389: SUBWF 2E,W |
038A: BTFSS 03.2 |
038B: GOTO 382 |
038C: MOVF 2A,W |
038D: MOVWF 2F |
038E: MOVLW 18 |
038F: MOVWF 30 |
0390: CALL 1ED |
.................... delay_ms(20); |
0391: MOVLW 14 |
0392: MOVWF 34 |
0393: CALL 033 |
.................... send(READ_DATA); |
0394: MOVLW EB |
0395: MOVWF 2B |
0396: CALL 0A9 |
.................... hodnota=read_byte(); |
0397: CALL 23A |
0398: MOVF 78,W |
0399: MOVWF 25 |
.................... read_standard_byte(&dx,&dy,&tl1,&tl2,&tl3); |
039A: MOVLW 26 |
039B: MOVWF 2B |
039C: MOVLW 27 |
039D: MOVWF 2C |
039E: MOVLW 28 |
039F: MOVWF 2D |
03A0: MOVLW 29 |
03A1: MOVWF 2E |
03A2: MOVLW 2A |
03A3: MOVWF 2F |
03A4: GOTO 2A4 |
.................... x+=dx; |
03A5: CLRF 7A |
03A6: MOVF 26,W |
03A7: BTFSC 26.7 |
03A8: DECF 7A,F |
03A9: ADDWF 21,F |
03AA: BTFSC 03.0 |
03AB: INCF 22,F |
03AC: MOVF 7A,W |
03AD: ADDWF 22,F |
.................... y+=dy; |
03AE: CLRF 7A |
03AF: MOVF 27,W |
03B0: BTFSC 27.7 |
03B1: DECF 7A,F |
03B2: ADDWF 23,F |
03B3: BTFSC 03.0 |
03B4: INCF 24,F |
03B5: MOVF 7A,W |
03B6: ADDWF 24,F |
.................... } |
03B7: GOTO 32E |
.................... } |
.................... |
03B8: SLEEP |
Configuration Fuses: |
Word 1: 3F78 NOWDT NOPUT MCLR BROWNOUT NOLVP NOCPD NOWRT NODEBUG CCPB0 NOPROTECT INTRC_IO |
Word 2: 3FFF FCMEN IESO |
/programy/C/PIC/mereni/PS2mys/PIC16F88/mys.PJT |
---|
0,0 → 1,39 |
[PROJECT] |
Target=mys.HEX |
Development_Mode= |
Processor=0x688F |
ToolSuite=CCS |
[Directories] |
Include=C:\Program Files\PICC\devices\;C:\Program Files\PICC\dr |
Library= |
LinkerScript= |
[Target Data] |
FileList=mys.c; |
BuildTool=C-COMPILER |
OptionString=+FM |
AdditionalOptionString= |
BuildRequired=1 |
[mys.c] |
Type=4 |
Path= |
FileList= |
BuildTool= |
OptionString= |
AdditionalOptionString= |
[mru-list] |
1=mys.c |
[Windows] |
0=0000 mys.c 0 0 796 451 3 0 |
[Opened Files] |
1=D:\KAKLIK\programy\PIC_C\mereni\PS2mys\PIC16F88\mys.c |
2=C:\library\CCS\lcd.c |
3=D:\KAKLIK\programy\PIC_C\mereni\PS2mys\PIC16F88\mys.h |
4=C:\Program Files\PICC\devices\16F88.h |
5=C:\library\kaklik\CCS\ps2.c |
6= |
/programy/C/PIC/mereni/PS2mys/PIC16F88/mys.SYM |
---|
0,0 → 1,109 |
015-016 CCP_1 |
015 CCP_1_LOW |
016 CCP_1_HIGH |
021-022 main.x |
023-024 main.y |
025 main.hodnota |
026 main.dx |
027 main.dy |
028 main.tl1 |
029 main.tl2 |
02A main.tl3 |
02B lcd_init.i |
02B send.command |
02B-02C @PRINTF_LD_278.P1 |
02B @PRINTF_X_278.P2 |
02B read_standard_byte.x |
02B main.@SCRATCH |
02C send.n |
02C @PRINTF_X_278.P1 |
02C read_standard_byte.y |
02C lcd_init.@SCRATCH |
02C main.@SCRATCH |
02D send.parity |
02D read_standard_byte.tl1 |
02D main.@SCRATCH |
02D @PRINTF_LD_278.@SCRATCH |
02E read_standard_byte.tl2 |
02E send.@SCRATCH |
02E main.@SCRATCH |
02E @PRINTF_LD_278.@SCRATCH |
02F @PRINTF_U_278.P1 |
02F read_standard_byte.tl3 |
02F @PRINTF_LD_278.@SCRATCH |
030 read_standard_byte.st |
030 @PRINTF_U_278.P1 |
030 @PRINTF_LD_278.@SCRATCH |
031 @DIV88.P1 |
031 read_standard_byte.nd |
031 @PRINTF_LD_278.@SCRATCH |
032 @DIV88.P1 |
032 read_standard_byte.rd |
032 @PRINTF_LD_278.@SCRATCH |
033 lcd_putc.c |
033 read_byte.bajt |
033 read_standard_byte.@SCRATCH |
033 @DIV88.@SCRATCH |
034 read_byte.i |
034 lcd_gotoxy.x |
034 @delay_ms1.P1 |
034 read_standard_byte.@SCRATCH |
035 lcd_gotoxy.y |
035.0 read_byte.parity |
036 lcd_gotoxy.Adr |
036 read_byte.@SCRATCH |
037 lcd_gotoxy.@SCRATCH |
038 lcd_send_byte.Adr |
039 lcd_send_byte.n |
03A lcd_send_nibble.n |
03B lcd_send_nibble.@SCRATCH |
03C lcd_send_nibble.@SCRATCH |
077 @SCRATCH |
078 @SCRATCH |
078 _RETURN_ |
079 @SCRATCH |
07A @SCRATCH |
07B @SCRATCH |
09C.6 C1OUT |
09C.7 C2OUT |
0033 @delay_ms1 |
0004 @const27 |
0048 lcd_send_nibble |
0059 lcd_send_byte |
006F lcd_init |
0108 lcd_gotoxy |
0119 lcd_putc |
00A9 send |
023A read_byte |
02A4 read_standard_byte |
02E2 main |
000C @const10225 |
014C @PRINTF_X_278 |
016E @PRINTF_LD_278 |
01D8 @DIV88 |
01ED @PRINTF_U_278 |
02E2 @cinit |
Project Files: |
D:\KAKLIK\programy\PIC_C\mereni\PS2mys\PIC16F88\mys.c |
D:\KAKLIK\programy\PIC_C\mereni\PS2mys\PIC16F88\mys.h |
C:\Program Files\PICC\devices\16F88.h |
C:\library\CCS\lcd.c |
C:\library\kaklik\CCS\ps2.c |
Compiler Settings: |
Processor: PIC16F88 |
Pointer Size: 8 |
ADC Range: 0-255 |
Opt Level: 9 |
Short,Int,Long: 1,8,16 |
Output Files: |
Errors: D:\KAKLIK\programy\PIC_C\mereni\PS2mys\PIC16F88\mys.err |
INHX8: D:\KAKLIK\programy\PIC_C\mereni\PS2mys\PIC16F88\mys.HEX |
Symbols: D:\KAKLIK\programy\PIC_C\mereni\PS2mys\PIC16F88\mys.SYM |
List: D:\KAKLIK\programy\PIC_C\mereni\PS2mys\PIC16F88\mys.LST |
Debug/COFF: D:\KAKLIK\programy\PIC_C\mereni\PS2mys\PIC16F88\mys.cof |
Call Tree: D:\KAKLIK\programy\PIC_C\mereni\PS2mys\PIC16F88\mys.tre |
Statistics: D:\KAKLIK\programy\PIC_C\mereni\PS2mys\PIC16F88\mys.sta |
/programy/C/PIC/mereni/PS2mys/PIC16F88/mys.c |
---|
0,0 → 1,58 |
#include "D:\KAKLIK\programy\PIC_C\mereni\PS2mys\PIC16F88\mys.h" |
#define LCD_RS PIN_A0 // rizeni registru LCD displeje |
#define LCD_E PIN_A1 // enable LCD displeje |
#define LCD_DATA_LSB PIN_B0 // pripojeni LSB bitu datoveho portu LCD displeje (celkem 4 bity vzestupne za sebou) |
#include "C:\library\CCS\lcd.c" // modul pro ovladani LCD |
#define TRIGGER_PIN PIN_B4 |
#DEFINE DATA PIN_B5 // drat DATA |
#DEFINE CLK PIN_B6 // hodiny CLK |
#include "C:\library\kaklik\CCS\ps2.c" // modul pro SW ovladani PS2 |
void trigger() |
{ |
output_high(TRIGGER_PIN); |
delay_us(50); |
output_low(TRIGGER_PIN); |
} |
void main() |
{ |
signed int16 x=0,y=0; |
signed int8 hodnota,dx,dy; |
unsigned int8 tl1,tl2,tl3; |
setup_adc_ports(NO_ANALOGS|VSS_VDD); |
setup_adc(ADC_OFF); |
setup_spi(FALSE); |
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); |
setup_timer_1(T1_DISABLED); |
setup_timer_2(T2_DISABLED,0,1); |
setup_comparator(NC_NC_NC_NC); |
setup_vref(FALSE); |
lcd_init(); |
Delay_ms(200); |
ps2send(RESET); // resetuje mys |
read_byte(); // prijme 0xFA |
read_byte(); // 0xAA self-test passed |
read_byte(); // mouse ID |
Delay_ms(200); |
ps2send(SET_REMOTE_MODE); |
while (true) |
{ |
LCD_gotoxy(1,1); |
printf(lcd_putc,"%X X=%ld Y=%ld TL1=%U TL2=%U TL3=%U",hodnota, x,y,tl1,tl2,tl3); |
delay_ms(20); |
send(READ_DATA); |
hodnota=read_byte(); |
read_standard_byte(&dx,&dy,&tl1,&tl2,&tl3); |
x+=dx; |
y+=dy; |
} |
} |
/programy/C/PIC/mereni/PS2mys/PIC16F88/mys.cof |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programy/C/PIC/mereni/PS2mys/PIC16F88/mys.err |
---|
0,0 → 1,0 |
No Errors |
/programy/C/PIC/mereni/PS2mys/PIC16F88/mys.h |
---|
0,0 → 1,5 |
#include <16F88.h> |
#device adc=8 |
#fuses NOWDT,INTRC_IO, NOPUT, MCLR, BROWNOUT, NOLVP, NOCPD, NOWRT, NODEBUG, NOPROTECT, FCMEN, IESO |
#use delay(clock=4000000) |
/programy/C/PIC/mereni/PS2mys/PIC16F88/mys.sta |
---|
0,0 → 1,45 |
ROM used: 953 (23%) |
953 (23%) including unused fragments |
1 Average locations per line |
7 Average locations per statement |
RAM used: 19 (11%) at main() level |
33 (19%) worst case |
Lines Stmts % Files |
----- ----- --- ----- |
55 24 17 D:\KAKLIK\programy\PIC_C\mereni\PS2mys\PIC16F88\mys.c |
6 0 0 D:\KAKLIK\programy\PIC_C\mereni\PS2mys\PIC16F88\mys.h |
275 0 0 C:\Program Files\PICC\devices\16F88.h |
312 47 29 C:\library\CCS\lcd.c |
113 67 32 C:\library\kaklik\CCS\ps2.c |
----- ----- |
1522 276 Total |
Page ROM % RAM Functions: |
---- --- --- --- ---------- |
0 21 2 1 @delay_ms1 |
0 8 1 0 @const27 |
0 17 2 3 lcd_send_nibble |
0 22 2 2 lcd_send_byte |
0 58 6 2 lcd_init |
0 17 2 4 lcd_gotoxy |
0 51 5 1 lcd_putc |
0 95 10 4 send |
0 106 11 4 read_byte |
0 62 7 10 read_standard_byte |
0 215 23 14 main |
0 39 4 0 @const10225 |
0 34 4 2 @PRINTF_X_278 |
0 106 11 8 @PRINTF_LD_278 |
0 21 2 3 @DIV88 |
0 77 8 2 @PRINTF_U_278 |
Segment Used Free |
--------- ---- ---- |
00000-00003 4 0 |
00004-007FF 949 1095 |
00800-00FFF 0 2048 |
/programy/C/PIC/mereni/PS2mys/PIC16F88/mys.tre |
---|
0,0 → 1,668 |
ÀÄmys |
ÀÄmain 0/215 Ram=14 |
ÃÄ??0?? |
ÃÄlcd_init 0/58 Ram=2 |
³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄ@const27 0/8 Ram=0 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄ@delay_ms1 0/21 Ram=1 |
ÃÄ@delay_ms1 0/21 Ram=1 |
ÃÄsend 0/95 Ram=4 |
ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_nibble 0/17 Ram=3 |
ÃÄ@PRINTF_X_278 0/34 Ram=2 |
³ ÃÄlcd_putc 0/51 Ram=1 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_putc 0/51 Ram=1 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_nibble 0/17 Ram=3 |
ÃÄlcd_putc 0/51 Ram=1 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_nibble 0/17 Ram=3 |
ÃÄlcd_putc 0/51 Ram=1 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_nibble 0/17 Ram=3 |
ÃÄlcd_putc 0/51 Ram=1 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_nibble 0/17 Ram=3 |
ÃÄ@PRINTF_LD_278 0/106 Ram=8 |
³ ÃÄlcd_putc 0/51 Ram=1 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_putc 0/51 Ram=1 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_putc 0/51 Ram=1 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_nibble 0/17 Ram=3 |
ÃÄlcd_putc 0/51 Ram=1 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_nibble 0/17 Ram=3 |
ÃÄlcd_putc 0/51 Ram=1 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_nibble 0/17 Ram=3 |
ÃÄlcd_putc 0/51 Ram=1 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_nibble 0/17 Ram=3 |
ÃÄ@PRINTF_LD_278 0/106 Ram=8 |
³ ÃÄlcd_putc 0/51 Ram=1 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_putc 0/51 Ram=1 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_putc 0/51 Ram=1 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_nibble 0/17 Ram=3 |
ÃÄ@const10225 0/39 Ram=0 |
ÃÄlcd_putc 0/51 Ram=1 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_nibble 0/17 Ram=3 |
ÃÄ@PRINTF_U_278 0/77 Ram=2 |
³ ÃÄ@DIV88 0/21 Ram=3 |
³ ÃÄlcd_putc 0/51 Ram=1 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_putc 0/51 Ram=1 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_putc 0/51 Ram=1 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄ@DIV88 0/21 Ram=3 |
³ ÃÄlcd_putc 0/51 Ram=1 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_putc 0/51 Ram=1 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_nibble 0/17 Ram=3 |
ÃÄlcd_putc 0/51 Ram=1 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_nibble 0/17 Ram=3 |
ÃÄ@const10225 0/39 Ram=0 |
ÃÄlcd_putc 0/51 Ram=1 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_nibble 0/17 Ram=3 |
ÃÄ@PRINTF_U_278 0/77 Ram=2 |
³ ÃÄ@DIV88 0/21 Ram=3 |
³ ÃÄlcd_putc 0/51 Ram=1 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_putc 0/51 Ram=1 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_putc 0/51 Ram=1 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄ@DIV88 0/21 Ram=3 |
³ ÃÄlcd_putc 0/51 Ram=1 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_putc 0/51 Ram=1 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_nibble 0/17 Ram=3 |
ÃÄ@const10225 0/39 Ram=0 |
ÃÄlcd_putc 0/51 Ram=1 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_nibble 0/17 Ram=3 |
ÃÄ@PRINTF_U_278 0/77 Ram=2 |
³ ÃÄ@DIV88 0/21 Ram=3 |
³ ÃÄlcd_putc 0/51 Ram=1 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_putc 0/51 Ram=1 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_putc 0/51 Ram=1 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄ@DIV88 0/21 Ram=3 |
³ ÃÄlcd_putc 0/51 Ram=1 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_putc 0/51 Ram=1 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄ@delay_ms1 0/21 Ram=1 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_gotoxy 0/17 Ram=4 |
³ ³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÃÄlcd_send_byte 0/22 Ram=2 |
³ ³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ³ ÀÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_byte 0/22 Ram=2 |
³ ÃÄlcd_send_nibble 0/17 Ram=3 |
³ ÀÄlcd_send_nibble 0/17 Ram=3 |
ÃÄ@delay_ms1 0/21 Ram=1 |
ÃÄsend 0/95 Ram=4 |
ÃÄread_byte 0/106 Ram=4 |
ÀÄread_standard_byte 0/62 Ram=10 |
ÃÄread_byte 0/106 Ram=4 |
ÃÄread_byte 0/106 Ram=4 |
ÀÄread_byte 0/106 Ram=4 |