Proteus, KiCAD и другие ECAD Разработчик так или иначе сталкивается с системами автоматизированного проектирования. Данный раздел - по САПР. |
23.07.2005, 16:11
|
|
RETAS
Гость
|
Исправление HEX файла
Ребята, на www.uni_electronics.newmail.ru/datchik.html дана схема
датчика на PIC12F508A и HEX файл к нему,но попробов его дизасемблировать
выдаётся ошибки (до автора добраться мне неудалось).
Можбыть ктонить может исправить этот HEX файл дабы можно было уловить
идею работы этого датчика и тем самым его запустить.
Спасибо.
|
|
|
|
23.07.2005, 16:14
|
|
RETAS
Гость
|
В адресе,после слова uni должен стоять знак подчёркивания "_".
|
|
|
|
24.07.2005, 14:54
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Не могу открыть страницу .
Скинь все что у тебя есть по теме (схему , прошивку)
на dosikus@rambler.ru .Чем смогу помогу.
|
|
|
|
24.07.2005, 23:09
|
|
Гость
|
|
|
|
|
25.07.2005, 20:21
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
А чем ты дизасемблировал ?
Во первых там не 12F508A (ТАКИХ ВРОДЕ И НЕ БЫВАЛО)
,а 12C508A
,а еще лучше переделать на 12F629
а вот листинг.
processor
#include ‹P12C508A.INC›
__config _CP_ON & _MCLRE_OFF & _WDT_ON & _ExtRC_OSC ; 0x0FE7
; RAM-Variable
LRAM_0x07 equ 0x07
LRAM_0x08 equ 0x08
LRAM_0x0A equ 0x0A
LRAM_0x0B equ 0x0B
LRAM_0x0C equ 0x0C
LRAM_0x0D equ 0x0D
LRAM_0x0E equ 0x0E
; Program
Org 0x0000
; Reset-Vector
GOTO LADR_0x0040
Org 0x0008
ADDWF PCL,F
RETLW 0x31
RETLW 0x34
RETLW 0x73
RETLW 0x65
RETLW 0x6E
RETLW 0x73
RETLW 0x2E
RETLW 0x2E
RETLW 0x41
RETLW 0x4C
RETLW 0x31
RETLW 0x39
RETLW 0x39
RETLW 0x38
RETLW 0x2E
RETLW 0x2E
RETLW 0x53
RETLW 0x65
RETLW 0x6E
RETLW 0x73
RETLW 0x6F
RETLW 0x72
RETLW 0x2E
RETLW 0x2E
Org 0x0040
LADR_0x0040
MOVLW 0x19
TRIS 6
MOVLW 0x4C
OPTION
BTFSS STATUS,NOT_TO
GOTO LADR_0x005F
CLRF FSR
MOVLW 0x10
MOVWF LRAM_0x0D
MOVLW 0x0F
MOVWF LRAM_0x0C
BCF LRAM_0x0E,7
GOTO LADR_0x0093
LADR_0x004D
BCF LRAM_0x0E,1
MOVF LRAM_0x08,W
XORWF LRAM_0x0A,W
BTFSC STATUS,Z
RETLW 0x00
MOVF LRAM_0x08,W
SUBWF LRAM_0x0A,W
BTFSS STATUS,C
GOTO LADR_0x005C
LADR_0x0056
MOVWF LRAM_0x0B
MOVLW 0x02
SUBWF LRAM_0x0B,W
BTFSC STATUS,C
BSF LRAM_0x0E,1
RETLW 0x00
LADR_0x005C
MOVF LRAM_0x0A,W
SUBWF LRAM_0x08,W
GOTO LADR_0x0056
LADR_0x005F
BTFSC LRAM_0x0E,7
GOTO LADR_0x006D
MOVLW 0x10
MOVWF FSR
LADR_0x0063
MOVF LRAM_0x08,W
MOVWF INDF
INCF FSR,F
MOVLW 0x1B
SUBWF FSR,W
BTFSS STATUS,C
GOTO LADR_0x0063
CLRF FSR
BSF LRAM_0x0E,7
GOTO LADR_0x0093
LADR_0x006D
MOVLW 0x1A
SUBWF LRAM_0x0D,W
BTFSS STATUS,C
GOTO LADR_0x0073
MOVLW 0x10
MOVWF LRAM_0x0D
LADR_0x0073
MOVF LRAM_0x0D,W
MOVWF FSR
MOVF LRAM_0x08,W
MOVWF INDF
INCF LRAM_0x0D,F
BCF GPIO,GP1
BTFSS LRAM_0x0D,0
BSF GPIO,GP1
MOVLW 0x0F
ANDWF LRAM_0x0C,F
BCF LRAM_0x0E,0
MOVLW 0x10
MOVWF FSR
LADR_0x0080
MOVF INDF,W
MOVWF LRAM_0x0A
CALL LADR_0x004D
BTFSS LRAM_0x0E,1
GOTO LADR_0x0088
BSF LRAM_0x0E,0
MOVLW 0x0F
MOVWF LRAM_0x0C
LADR_0x0088
INCF FSR,F
MOVLW 0x19
SUBWF FSR,W
BTFSS STATUS,C
GOTO LADR_0x0080
CLRF FSR
DECFSZ LRAM_0x0C,F
GOTO LADR_0x0091
BCF GPIO,GP2
LADR_0x0091
BTFSC LRAM_0x0E,0
BSF GPIO,GP2
LADR_0x0093
CLRF LRAM_0x07
CLRF LRAM_0x08
LADR_0x0095
GOTO LADR_0x0096
LADR_0x0096
GOTO LADR_0x0097
LADR_0x0097
INCFSZ LRAM_0x07,F
GOTO LADR_0x0095
INCF LRAM_0x08,F
GOTO LADR_0x0095
End
|
|
|
|
25.07.2005, 20:24
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Блин формат изменился....
Сдвинь метки (LADR_0x00XX) влево.
|
|
|
|
28.07.2005, 00:37
|
|
Гость
|
Dosikus,большое Тебе спасибо за помощь.
1. Я пробовал дизасемблировать програматором с narod.ru - так он мне выдавал сообщение об ошибке
в 18-ой строке,а другой ICprog105C сообщал что нет ID и ещё вроде что то.Можбыть можешь посоветовать
чем пользоваться ?
2. asm файл запустил на МПЛАБе - всё нормально,теперь пробую востановить алгоритм,однако это для
меня трудновато,поэтому хочу спросить: есть ли какая либо методика подхода к таким задачам дабы
побыстрей сообразить идею программы?
3. Данную схему можно рассматривать как ёмкостный датчик (регистратор изменений выносной ёмкости).
Выносная ёмкость,как я понял,является задающей для генератора PICa,собака запущена, однако нигде
несбрасывается.Вроде бы получается - идея обнаружения основана на двух генераторах (похожый принцип
применяется в некоторых металоискателях) и прав я или нет,хотелось-бы глубже понять работу программы.
4. Я думаю применить PIC12F629,но непридётся ли вводить изменения?
Спасибо.
|
|
|
|
28.07.2005, 20:10
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Эти дизасмы похоже ругались на строку конфигурации.
Я дизассемблирую PICDISAM но он старый поддерживает
только 12 и 16 пики.
А автор пропал.
Изменения для 12ф629 нужны будут ,но небольшие.
А вообще моделируй в протеусе ,
там все увидишь.
|
|
|
|
29.07.2005, 01:03
|
|
RETAS
Гость
|
Да,ПРОТЕУС вроде сильная вещь,но судя по дискусиям на КАЗУСЕ,не так с ним всё просто - я пока
и МПЛАБом даволен,но тут ,попробовав на нём проиграть программу датчика,наткнулся на странную
странность - в слове конфигурации заданно что собака включена (спредделителем на 16) и по истечени
0,288сек (18мсек*16=288мсек) должен 4-ый бит STATUSа установиться в 0,но ничего подобного непроисходит
и программа крутится себе пастоянно на одном месте.
ПОМОГИТЕ!!!
|
|
|
|
29.07.2005, 20:04
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Посмотрю . Но не раньше вторника , извини времени нет.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:07.
|
|