|
Коллеги, помощь нужна. Есть прошивка, нужно понять что и как она делает. а от PIC я далек... 1. PIC16C505 2. Есть PicKIT2, им и слита прошивка (как для 16F505), а вот сможет ли PicKIT2 ее залить в аналогичный чип (именно OTP)? - уже разобрался - нет а если залить её-же но в 16F505 - нужно ли что-то менять? 3. Включение портов: RB0 - Выход (акт. низкий) RB1- LED (bidirectional) RB2- in (кнопка на землю) RB3- in (switch - на землю) RB4 - LED (bidirectional) RB5 - out RC0- Выход (акт. низкий) RC1- вход или выход, сложно сказать, как-то связано с потенциометромRC3 RC2- Выход (акт. низкий)- буззер RC3- вход или выход, сложно сказать, как-то связано с потенциометром на RC1 RC4- ??? RC5- ??? работает с внутр. генератора. RC1,3-5 - работают с датчиком температуры собственно прошивка: http://www.onlinedisk.ru/file/577365/ |
|
|
IC-Prog имеет встроеный дизассемблер, главное прочитать, а потом потихоньку разбираться. если действительно это вся программа, значит писали на ассемблере Программу загрузить в IC-prog, переключить в режим ассемберных кодов, распечатать-записать, далее можно разбираться с карандашиком, а можно попытаться загрузить асемблерный текст в MPLAB и эмулировать работу программы. |
|
|
я сейчас ушел с пиков на AVR-ки. они мне показались "слаще". Да и их фирменная AVR Studio мне больше понравилась, чем ПИКовская MPLab. я не профессиональный программист мк. С каким датчиком температуры работает? У меня такое впечатление, что это не вся прошивка, потому как только процесс обмена с датчиком, (даже на ассемблере) не уместится в таком объеме. а еще похоже что pic16c505 имеет отличие в системе команд c pic16F84. а код для pic16c505 мне не удалось дизассемлировать в IC-Prog. и окончание листинга не похоже на окончание программы. Похоже на бред. LIST P=16F84, F=INHX8M include "P16FXX.inc" ORG 0x0000 ; ???? INCF 0x4A , W SWAPF STATUS , W CLRF 0x62 MOVF 0x6E , f MOVF 0x7C , f MOVF 0x5E , f SWAPF STATUS , W CLRF 0x62 MOVF 0x50 , f MOVF 0x42 , f MOVF 0x60 , f SWAPF STATUS , W CLRF 0x62 MOVF 0x36 , W MOVF 0x3A , W MOVF 0x38 , W XORWF 0x67 , W MOVF INDF , W DECF 0x70 , f INCF 0x11 , W SUBWF 0x31 , f ; ???? ADDWF 0x71 , W INCF 0x11 , W MOVF INDF , W CLRWDT ANDWF 0x24 , f ; ???? ; ???? SUBWF 0x12 , W COMF PCL , W ; ???? SUBWF 0x12 , W COMF 0x07 , W CLRW COMF 0x11 , W RRF TMR0 , W CLRW RRF 0x44 , f ; ???? SUBWF 0x10 , W CLRF 0x74 XORWF STATUS , W SUBWF 0x35 , f SUBWF 0x11 , W CLRF 0x75 SUBWF 0x73 , f MOVF INDF , W RRF FSR , W ; ???? IORWF STATUS , W DECF 0x35 , W DECF 0x34 , W SUBWF 0x73 , f INCF 0x33 , W SUBWF 0x12 , W COMF 0x0C , W ; ???? SUBWF 0x15 , W NOP SUBWF 0x24 , f SUBWF 0x14 , W NOP |
|
|
Полученно с помощью MPlab Line Address Opcode Disassembly 1 000 025 MOVWF 0x5 2 001 A4A GOTO 0x4a 3 002 E03 ANDLW 0x3 4 003 1E2 ADDWF 0x2, F 5 004 8EE RETLW 0xee 6 005 8FC RETLW 0xfc 7 006 8DE RETLW 0xde 8 007 E03 ANDLW 0x3 9 008 1E2 ADDWF 0x2, F 10 009 8D0 RETLW 0xd0 11 00A 8C2 RETLW 0xc2 12 00B 8E0 RETLW 0xe0 13 00C E03 ANDLW 0x3 14 00D 1E2 ADDWF 0x2, F 15 00E 836 RETLW 0x36 16 00F 83A RETLW 0x3a 17 010 838 RETLW 0x38 18 011 667 BTFSC 0x7, 0x3 19 012 800 RETLW 0 20 013 3F0 INCFSZ 0x10, F 21 014 A11 GOTO 0x11 22 015 2B1 INCF 0x11, F 23 016 004 CLRWDT 24 017 771 BTFSS 0x11, 0x3 25 018 A11 GOTO 0x11 26 019 800 RETLW 0 27 01A 064 CLRF 0x4 28 01B 5A4 BSF 0x4, 0x5 29 01C 071 CLRF 0x11 30 01D 070 CLRF 0x10 31 01E 212 MOVF 0x12, W 32 01F 902 CALL 0x2 33 020 007 TRIS 0x7 34 021 212 MOVF 0x12, W 35 022 907 CALL 0x7 36 023 127 IORWF 0x7, F 37 024 911 CALL 0x11 38 025 C01 MOVLW 0x1 39 026 167 ANDWF 0x7, F 40 027 CC4 MOVLW 0xc4 41 028 007 TRIS 0x7 42 029 210 MOVF 0x10, W 43 02A 1F4 ADDWF 0x14, F 44 02B 603 BTFSC 0x3, 0 45 02C 2B5 INCF 0x15, F 46 02D 211 MOVF 0x11, W 47 02E 1F5 ADDWF 0x15, F 48 02F 2F3 DECFSZ 0x13, F 49 030 800 RETLW 0 50 031 C04 MOVLW 0x4 51 032 033 MOVWF 0x13 52 033 403 BCF 0x3, 0 53 034 335 RRF 0x15, F 54 035 334 RRF 0x14, F 55 036 2F3 DECFSZ 0x13, F 56 037 A33 GOTO 0x33 57 038 212 MOVF 0x12, W 58 039 90C CALL 0xc 59 03A 024 MOVWF 0x4 60 03B 215 MOVF 0x15, W 61 03C 020 MOVWF 0 62 03D 2A4 INCF 0x4, F 63 03E 214 MOVF 0x14, W 64 03F 020 MOVWF 0 65 040 000 NOP .......................................................................... .......................................................................... 1023 3FE 000 NOP 1024 3FF C9C MOVLW 0x9c ; калиб. конст. |
|