Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

Помогите с прошивкой pic12f629

Вс авг 19, 2018 12:31:15

Описание: Как это работает: Красное свечение светодиода - рабочий режим Зеленое свечение светодиода - заряд Быстрое мигание красного-зеленого свечения - села батарея Если зажать спуск, и включить схему, программа переход в режим программирования длительности, текущее значение длительности обнуляется, и каждое моргание красного светодиода это приращение длительности на шаг 1мс . При достижении конечного значения 30мс происходит кратковременное перемигивание светодиода красным-зеленым и все обнуляеться и дальше по кругу. При отпускании спуска текущее значение длительности запоминается и схема переходит в рабочий режим.

Автор прошивки зашил туда определение напряжение при котором контроллер показывает что села батарея, запрограммировал на ниже 5в. В симуляций протеус при подаче питания 5в все нормально, как только изменю на 3-3.3в proteus заряжает до 41в и все потом горит светодиод села батарея. Во общем на реальной плате тоже самое с одной оговоркой сразу отказывается заряжать) Думаю протеус просто по своему принципу симулирует быстро вот и не успевает мк сработать.
Тыкните пальцем где это может быть зашито? Чтобы исправить на 3в допустим. Транзисторы логик все от 1-2в работают на затворе.

Сам код асм.

LIST P=16F84, F=INHX8M
include "P16FXX.inc"
ORG 0x0000

GOTO Label_0001
Label_000F CLRF 0x23
Label_0009 MOVWF 0x22
Label_0004 MOVLW 0xFF
ADDWF 0x22 , f
BTFSS STATUS , C
ADDWF 0x23 , f
BTFSS STATUS , C
GOTO Label_0002
MOVLW 0x03
MOVWF 0x21
MOVLW 0xDF
CALL Label_0003
GOTO Label_0004
CLRF 0x21
Label_0003 ADDLW 0xE8
MOVWF 0x20
COMF 0x21 , f
MOVLW 0xFC
BTFSS STATUS , C
GOTO Label_0005
Label_0006 ADDWF 0x20 , f
BTFSC STATUS , C
GOTO Label_0006
Label_0005 ADDWF 0x20 , f
CLRWDT
INCFSZ 0x21 , f
GOTO Label_0006
BTFSC 0x20 , 00
GOTO Label_0007
Label_0007 BTFSS 0x20 , 01
GOTO Label_0008
NOP
GOTO Label_0008
Label_0008 RETURN
Label_0002 BCF STATUS , IRP
BCF STATUS , RP1
BCF STATUS , RP0
CLRWDT
RETURN
Label_0001 BSF STATUS , RP0
MOVLW 0xDB
MOVWF TRISA
BCF STATUS , RP0
MOVLW 0x16
MOVWF 0x19
BSF STATUS , RP0
MOVLW 0xAD
MOVWF 0x19
BCF STATUS , RP0
BCF PORTA , 05
BSF STATUS , RP0
BCF TRISA , 05
BCF STATUS , RP0
BCF PORTA , 02
BSF STATUS , RP0
BCF TRISA , 02
BCF STATUS , RP0
CLRF 0x38
CLRF 0x39
MOVLW 0x03
MOVWF 0x23
MOVLW 0xE8
CALL Label_0009
CLRWDT
BTFSC PORTA , 03
GOTO Label_000A
CLRF 0x3A
GOTO Label_000B
Label_000A CALL Label_000C
GOTO Label_000D
Label_000B CLRWDT
BTFSC PORTA , 03
GOTO Label_000D
INCF 0x3A , f
CLRWDT
MOVLW 0x1F
SUBWF 0x3A , W
BTFSS STATUS , C
GOTO Label_000E
BSF STATUS , RP0
BCF TRISA , 04
BCF STATUS , RP0
BCF PORTA , 04
BSF STATUS , RP0
BCF TRISA , 04
MOVLW 0xC8
BCF STATUS , RP0
CALL Label_000F
BSF PORTA , 04
BSF STATUS , RP0
BCF TRISA , 04
MOVLW 0xC8
BCF STATUS , RP0
CALL Label_000F
BCF PORTA , 04
BSF STATUS , RP0
BCF TRISA , 04
MOVLW 0xC8
BCF STATUS , RP0
CALL Label_000F
BSF PORTA , 04
BSF STATUS , RP0
BCF TRISA , 04
MOVLW 0xC8
BCF STATUS , RP0
CALL Label_000F
BCF PORTA , 04
BSF STATUS , RP0
BCF TRISA , 04
MOVLW 0xC8
BCF STATUS , RP0
CALL Label_000F
BSF PORTA , 04
BSF STATUS , RP0
BCF TRISA , 04
MOVLW 0xC8
BCF STATUS , RP0
CALL Label_000F
BCF PORTA , 04
BSF STATUS , RP0
BCF TRISA , 04
BSF TRISA , 04
BCF STATUS , RP0
CLRF 0x3A
GOTO Label_000B
Label_000E CALL Label_0010
BSF STATUS , RP0
BCF TRISA , 04
BCF STATUS , RP0
BSF PORTA , 04
BSF STATUS , RP0
BCF TRISA , 04
BCF STATUS , RP0
MOVLW 0x01
MOVWF 0x23
MOVLW 0xF4
CALL Label_0009
BSF STATUS , RP0
BSF TRISA , 04
BCF STATUS , RP0
MOVLW 0x01
MOVWF 0x23
MOVLW 0xF4
CALL Label_0009
GOTO Label_000B
Label_000D MOVF 0x3A , W
MOVWF 0x38
CLRF 0x39
Label_0013 BCF 0x19 , 03
BSF STATUS , RP0
BCF TRISA , 04
BCF STATUS , RP0
BCF PORTA , 04
BSF STATUS , RP0
BCF TRISA , 04
MOVLW 0x14
BCF STATUS , RP0
CALL Label_000F
Label_0012 CLRWDT
BTFSC 0x19 , 06
GOTO Label_0011
BSF PORTA , 05
NOP
NOP
NOP
NOP
NOP
BCF PORTA , 05
NOP
NOP
GOTO Label_0012
Label_0011 BSF 0x19 , 03
BSF PORTA , 04
BSF STATUS , RP0
BCF TRISA , 04
MOVLW 0x14
BCF STATUS , RP0
CALL Label_000F
Label_0016 CLRWDT
BTFSS 0x19 , 06
GOTO Label_0013
CLRWDT
BTFSC PORTA , 03
GOTO Label_0014
CALL Label_0015
Label_0014 GOTO Label_0016
Label_0015 BSF PORTA , 02
BSF STATUS , RP0
BCF TRISA , 02
BCF STATUS , RP0
MOVF 0x39 , W
MOVWF 0x23
MOVF 0x38 , W
CALL Label_0009
BCF PORTA , 02
BSF STATUS , RP0
BCF TRISA , 02
MOVLW 0x14
BCF STATUS , RP0
CALL Label_000F
RETURN
Label_000C BSF STATUS , RP0
MOVLW 0x0A
MOVWF 0x1B
BSF 0x1C , 00
MOVF 0x1A , W
BCF STATUS , RP0
MOVWF 0x3A
RETURN
Label_0010 BSF STATUS , RP0
MOVLW 0x0A
MOVWF 0x1B
BCF STATUS , RP0
MOVF 0x3A , W
BSF STATUS , RP0
MOVWF 0x1A
BSF 0x1C , 02
BCF STATUS , RP0
MOVLW 0x80
MOVWF INTCON
BSF STATUS , RP0
MOVLW 0x55
MOVWF 0x1D
MOVLW 0xAA
MOVWF 0x1D
BSF 0x1C , 01
BCF 0x1C , 02
BCF STATUS , RP0
Label_0017 CLRWDT
BSF STATUS , RP0
BCF STATUS , DC
BTFSC 0x1C , 01
BSF STATUS , DC
BCF STATUS , RP0
BTFSC STATUS , DC
GOTO Label_0017
RETURN
Label_0018 SLEEP
GOTO Label_0018

ORG 0x2000
DATA 0x0F
DATA 0x0F
DATA 0x0F
DATA 0x0F

ORG 0x2007
DATA 0x04

ORG 0x2100
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00
DATA 0x00

END

Схема dc-dc http://img.radiokot.ru/files/131282/med ... r27chm.jpg
Вложения
1-30.hex
прошивка.
(2.08 KiB) Скачиваний: 454

Re: Помогите с прошивкой pic12f629

Вс авг 19, 2018 13:16:26

Замер напряжения делается компаратором ноги 6 и 7. Изменяя делитель можно установить любое напряжение срабатывания компаратора.

Re: Помогите с прошивкой pic12f629

Вс авг 19, 2018 19:39:27

Это я знаю проверял, проблема тут в том что, если питание контроллера не 5 в , то начинает моргать светодиод, что села батарея. Как это в прошивке определяется я не знаю поэтому кто знает и читать код умеет может увидеть и покажет где это мне.

Re: Помогите с прошивкой pic12f629

Вс авг 19, 2018 20:15:54

Стесняюсь спросить..., а какое отношение код для 16F84 имеет к схеме с 12F629?

Re: Помогите с прошивкой pic12f629

Вс авг 19, 2018 20:25:21

Выложите оригинал схемы.
Говорите:
Securety50 писал(а):Красное свечение светодиода - рабочий режим Зеленое свечение светодиода - заряд
А на схеме один светодиод, подключенный одной "ногой" на GND...
Наверняка есть ещё отличия вашей схемы от оригинала (в частности, вывод :7 PIC-а)...

Re: Помогите с прошивкой pic12f629

Пн авг 20, 2018 08:09:56

если питание контроллера не 5 в

Вместе с питанием плавает опорное напряжение компаратора. Нужно его стабилизировать. Где схема ?

Помогите с прошивкой pic12f629

Чт авг 23, 2018 17:16:53

1-31.asm
(11.25 KiB) Скачиваний: 281
Перед всеми заранее извиняюсь :oops: , что так долго не мог ответить всем по вашим вопросам был в командировке!!!
Схема есть выкладываю:
Изображение
D2 контроллер pic12f629 / 7-6 ноги компаратор опорное напряжение зашитое в прошивку 2.71в. Заряд с ноги 2 на транзистор VT1
Подстроечный резистор на паузу подкачки R6, делитель напряжения R6/R7/R5 в зависимости как подберем сопротивление верхнего и нижнего плеча для нужного заряда конденсатора 60в или 100в. Нога 5 разряд на катушку через ключ длительность импульсов от 1-30мс с шагом 1мс. 4 нога кнопка управления настройками длительности импульсов.

Прошивку код в асм привел в человеческий вид ото неуважительно так выложил первый раз сорри! :facepalm:

Спойлерprocessor 12F629
#include <P12F629.INC>
__config 0x3F84
; _CPD_OFF & _CP_OFF & _BODEN_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF
; & _INTRC_OSC_NOCLKOUT
; __idlocs 0xFF, 0xFF, 0xFF, 0xFF

; EEPROM-Data
Org 0x2100
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........
DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; ........

; RAM-Variable
LRAM_0x20 equ 0x20
LRAM_0x21 equ 0x21
LRAM_0x22 equ 0x22
LRAM_0x23 equ 0x23
LRAM_0x38 equ 0x38
LRAM_0x39 equ 0x39
LRAM_0x3A equ 0x3A

; Program

Org 0x0000

; Reset-Vector
GOTO LADR_0x0028
LADR_0x0001
CLRF LRAM_0x23
LADR_0x0002
MOVWF LRAM_0x22
LADR_0x0003
MOVLW 0xFF ; b'11111111' d'255'
; Interrupt-Vector
ADDWF LRAM_0x22,F
BTFSS STATUS,C
ADDWF LRAM_0x23,F
BTFSS STATUS,C
GOTO LADR_0x0023
MOVLW 0x03 ; b'00000011' d'003'
MOVWF LRAM_0x21
MOVLW 0xDF ; b'11011111' d'223'
CALL LADR_0x000F
GOTO LADR_0x0003
CLRF LRAM_0x21
LADR_0x000F
ADDLW 0xE8 ; b'11101000' d'232'
MOVWF LRAM_0x20
COMF LRAM_0x21,F
MOVLW 0xFC ; b'11111100' d'252'
BTFSS STATUS,C
GOTO LADR_0x0018
LADR_0x0015
ADDWF LRAM_0x20,F
BTFSC STATUS,C
GOTO LADR_0x0015
LADR_0x0018
ADDWF LRAM_0x20,F
CLRWDT
INCFSZ LRAM_0x21,F
GOTO LADR_0x0015
BTFSC LRAM_0x20,0
GOTO LADR_0x001E
LADR_0x001E
BTFSS LRAM_0x20,1
GOTO LADR_0x0022
NOP
GOTO LADR_0x0022
LADR_0x0022
RETURN
LADR_0x0023
BCF STATUS,IRP
BCF STATUS,RP1 ; !!Bank Register-Bank(2/3)-Select
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CLRWDT
RETURN
LADR_0x0028
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0xDB ; b'11011011' d'219'
MOVWF GPIO ; !!Bank!! GPIO - TRISIO
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0x16 ; b'00010110' d'022'
MOVWF CMCON ; !!Bank!! CMCON - VRCON
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0xAD ; b'10101101' d'173'
MOVWF CMCON ; !!Bank!! CMCON - VRCON
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,5 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,5 ; !!Bank!! GPIO - TRISIO
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,2 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,2 ; !!Bank!! GPIO - TRISIO
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CLRF LRAM_0x38
CLRF LRAM_0x39
MOVLW 0x03 ; b'00000011' d'003'
MOVWF LRAM_0x23
MOVLW 0xE8 ; b'11101000' d'232'
CALL LADR_0x0002
CLRWDT
BTFSC GPIO,3 ; !!Bank!! GPIO - TRISIO
GOTO LADR_0x0045
CLRF LRAM_0x3A
GOTO LADR_0x0047
LADR_0x0045
CALL LADR_0x00CA
GOTO LADR_0x0092
LADR_0x0047
CLRWDT
BTFSC GPIO,3 ; !!Bank!! GPIO - TRISIO
GOTO LADR_0x0092
INCF LRAM_0x3A,F
CLRWDT
MOVLW 0x1F ; b'00011111' d'031'
SUBWF LRAM_0x3A,W
BTFSS STATUS,C
GOTO LADR_0x007E
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
MOVLW 0xC8 ; b'11001000' d'200'
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CALL LADR_0x0001
BSF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
MOVLW 0xC8 ; b'11001000' d'200'
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CALL LADR_0x0001
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
MOVLW 0xC8 ; b'11001000' d'200'
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CALL LADR_0x0001
BSF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
MOVLW 0xC8 ; b'11001000' d'200'
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CALL LADR_0x0001
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
MOVLW 0xC8 ; b'11001000' d'200'
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CALL LADR_0x0001
BSF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
MOVLW 0xC8 ; b'11001000' d'200'
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CALL LADR_0x0001
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF GPIO,4 ; !!Bank!! GPIO - TRISIO
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CLRF LRAM_0x3A
GOTO LADR_0x0047
LADR_0x007E
CALL LADR_0x00D2
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BSF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0x01 ; b'00000001' d'001'
MOVWF LRAM_0x23
MOVLW 0xF4 ; b'11110100' d'244'
CALL LADR_0x0002
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BSF GPIO,4 ; !!Bank!! GPIO - TRISIO
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0x01 ; b'00000001' d'001'
MOVWF LRAM_0x23
MOVLW 0xF4 ; b'11110100' d'244'
CALL LADR_0x0002
GOTO LADR_0x0047
LADR_0x0092
MOVF LRAM_0x3A,W
MOVWF LRAM_0x38
CLRF LRAM_0x39
LADR_0x0095
BCF CMCON,3 ; !!Bank!! CMCON - VRCON
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
MOVLW 0x14 ; b'00010100' d'020'
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CALL LADR_0x0001
LADR_0x009F
CLRWDT
BTFSC CMCON,6 ; !!Bank!! CMCON - VRCON
GOTO LADR_0x00AC
BSF GPIO,5 ; !!Bank!! GPIO - TRISIO
NOP
NOP
NOP
NOP
NOP
BCF GPIO,5 ; !!Bank!! GPIO - TRISIO
NOP
NOP
GOTO LADR_0x009F
LADR_0x00AC
BSF CMCON,3 ; !!Bank!! CMCON - VRCON
BSF GPIO,4 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,4 ; !!Bank!! GPIO - TRISIO
MOVLW 0x14 ; b'00010100' d'020'
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CALL LADR_0x0001
LADR_0x00B3
CLRWDT
BTFSS CMCON,6 ; !!Bank!! CMCON - VRCON
GOTO LADR_0x0095
CLRWDT
BTFSC GPIO,3 ; !!Bank!! GPIO - TRISIO
GOTO LADR_0x00BA
CALL LADR_0x00BB
LADR_0x00BA
GOTO LADR_0x00B3
LADR_0x00BB
BSF GPIO,2 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,2 ; !!Bank!! GPIO - TRISIO
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVF LRAM_0x39,W
MOVWF LRAM_0x23
MOVF LRAM_0x38,W
CALL LADR_0x0002
BCF GPIO,2 ; !!Bank!! GPIO - TRISIO
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF GPIO,2 ; !!Bank!! GPIO - TRISIO
MOVLW 0x14 ; b'00010100' d'020'
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CALL LADR_0x0001
RETURN
LADR_0x00CA
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0x0A ; b'00001010' d'010'
MOVWF EEADR ; !!Bank!! Unimplemented - EEADR
BSF EECON1,0 ; !!Bank!! Unimplemented - EECON1
MOVF EEDATA,W ; !!Bank!! Unimplemented - EEDATA
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVWF LRAM_0x3A
RETURN
LADR_0x00D2
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0x0A ; b'00001010' d'010'
MOVWF EEADR ; !!Bank!! Unimplemented - EEADR
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVF LRAM_0x3A,W
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVWF EEDATA ; !!Bank!! Unimplemented - EEDATA
BSF EECON1,2 ; !!Bank!! Unimplemented - EECON1
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0x80 ; b'10000000' d'128'
MOVWF INTCON
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0x55 ; b'01010101' d'085' "U"
MOVWF EECON2 ; !!Bank!! Unimplemented - EECON2
MOVLW 0xAA ; b'10101010' d'170'
MOVWF EECON2 ; !!Bank!! Unimplemented - EECON2
BSF EECON1,1 ; !!Bank!! Unimplemented - EECON1
BCF EECON1,2 ; !!Bank!! Unimplemented - EECON1
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
LADR_0x00E5
CLRWDT
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF STATUS,DC
BTFSC EECON1,1 ; !!Bank!! Unimplemented - EECON1
BSF STATUS,DC
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BTFSC STATUS,DC
GOTO LADR_0x00E5
RETURN
LADR_0x00EE
SLEEP
GOTO LADR_0x00EE

End


Теперь вопросы такие остались у меня как через прошивку может определяться что села батарея (перемигивание светодиода) X3 ?

В прошивке с ноги 2 зашита частота шим 71кгц период 14мкс длительность импульса 6 мкс амплитуда 5 вольт. Как это можно изменять в прошивке и где с помощью прерывания? Насчет амплитуды 5 в это строка задается вот так:
MOVLW 0xFF ; b'11111111' d'255'

Где в прошивке зашит шаг длительности импульса? Как можно менять его или сократить до 5мс допустим. Выложил прошивку с 0.1 до 10 для примера.

Скачивал программу PIC_Delay 1.8 слабо понял как по ней работать калькулятор задержки в мс.
Вложения
01-10.hex
другая прошивка шаг 0.1мс
(1.61 KiB) Скачиваний: 457

Re: Помогите с прошивкой pic12f629

Чт авг 23, 2018 19:04:26

Вывод :6 - это CIN-, :7 - CIN+ (входы компаратора).
По конфигурации компаратора в программе, на вход "+" компаратора подаётся напряжение =13/24*Vdd, а вход "-" переключают между выводами :6 и :7.
Как такового, опорного напряжения для компаратора нет, т.ч. именно выполняя программу, нет возможности отслеживать напряжение питания +5В (если схема правильная).

Добавлено after 1 hour 20 minutes 31 second:
P.S.
Кстати, выходное напряжение жёстко привязано к напряжению питания контроллера, которое, по сути, является опорным.

Re: Помогите с прошивкой pic12f629

Чт авг 23, 2018 19:31:48

В proteus при моделировании зарядке как только на 7,или 6 не помню становиться 2.71в зарядка прекращается загорается светодиод красным. При зарядке зелёным горит. В случае подкачки как только просядет напряжение на конденсаторе на ноге 6 вроде станет 2.71в сразу вкл накачка. Как то так.

Добавлено after 2 minutes 31 second:
P.S.
Кстати, выходное напряжение жёстко привязано к напряжению питания контроллера, которое, по сути, является опорным

Вы имейте ввиду амплитуду сигналов с ног контроллера напряжением 5в ?

Re: Помогите с прошивкой pic12f629

Чт авг 23, 2018 21:33:47

2,71В (если точнее, 2,708(3)В) - да, это то, с чем сравнивает компаратор при напряжении питания контроллера 5В.
Измените напряжение его питания - изменится и напряжение сравнения (текущую формулу выложил выше) и, соответственно, напряжение на X4.

Добавлено after 1 hour 54 minutes 23 seconds:
P.S.
По схеме, нижний предел АСС (Х4) жёстко задан соотношением номиналов (R6+R7)/R5, а верхний - подстроечником, в диапазоне от (R6+R7)/R5 до (R5+R6)/R7.
Программной подстройки "порогов" в программе нет.

Re: Помогите с прошивкой pic12f629

Пт авг 24, 2018 17:32:25

Да я менял питания ставил 3 вольта но 4 и выше не проверял отказывался, он заряжать выше 41 вольта но делитель был из сопротивлений настроен на 63вольта. При питании 5вольт все нормально. Одно мне непонятно если в прошивке нет функций (села батарея) как он определяет правильно чисто по питанию? потому-что при таком явлений когда села батарея (резко моргает светодиод с красного на зеленый перемигивание) не врублюсь я тут как?

За разжовывание вам спасибо хоть что-то понятно стает принцип работы с этой прошивкой.

Re: Помогите с прошивкой pic12f629

Пт авг 24, 2018 20:53:10

Что-то мне кажется, что то что вы принимаете за индикацию "села батарея" - на самом деле, это попытка старта схемы > просадка питания (как следствие, Reset контроллера) > повторный старт и т.д. по кругу.
Есть PIC контроллеры, у которых есть возможность измерить напряжение питания не задействовав ни одного вывода портов (как говорится, "внутри себя"), но PIC12F629 к ним не относится.

Re: Помогите с прошивкой pic12f629

Сб авг 25, 2018 06:59:13

Теперь, понятно а с частотой подсказать сможете как в этой прошивке ее так грамотно задали на транзистор накачки? 71кгц период Т=14мкс длительность t=6мкс. Через кнопку как допустим в прошивке изменить длительность импульсов сейчас 1-30мс шаг 1мм. Пытался разобраться с примером 0.1-10мс таки разницу в двух местах коде нашел и не догнал. Может объяснишь? Кстати я читал асм пытался разобраться понял одно там по формуле как то делить частоту кварца надо и высчитывать.

Re: Помогите с прошивкой pic12f629

Вт авг 28, 2018 21:03:34

Securety50 писал(а):с частотой подсказать сможете как в этой прошивке ее так грамотно задали на транзистор накачки? 71кгц период Т=14мкс длительность t=6мкс.
Если точнее - частота 71'428.57...Hz (14µS).
Вот этот кусок программы:
Спойлер
Код:
LADR_0x009F
    CLRWDT
    BTFSC CMCON,6        ; !!Bank!! CMCON - VRCON
    GOTO LADR_0x00AC
    BSF GPIO,5           ; !!Bank!! GPIO - TRISIO
    NOP
    NOP
    NOP
    NOP
    NOP
    BCF GPIO,5           ; !!Bank!! GPIO - TRISIO
    NOP
    NOP
    GOTO LADR_0x009F
Выход из него возможен только по срабатыванию компаратора.
Прерывания в данной программе не используются.
Для просчёта частоты, достаточно прочитать pdf на контроллер (в частности, раздел INSTRUCTION SET SUMMARY) и включить калькулятор (можно "виндусячий") с функцией "1/х" (для пересчёта времени в частоту).
Извините, но копаться в реассемблинге программы, которая писалась не на asm, не доставляет удовольствия...
Ответить