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

Помогите с переводом значения в прошивке.

Пн дек 19, 2022 13:40:44

Добрый день.
Мне нужно для учебы в схеме электронного спидометра перевести км/ч в метр/час. Микроконтроллер pic16f628a, прошивка исходника на ассемблере. В программировании не силен, но понемногу учусь.

Как понимаю пересчет импульсов здесь?:

CYCLE ; основной цикл программы

movfw SELEKT
xorlw .5
bz m22
xorlw .4^.5
bz m23
xorlw .3^.4
bz m24
xorlw .2^.3
bz m25
xorlw .1^.2
bz m26
goto m28
; цикл подсчета импульсов
m22 ;----------
VIBOR .44, .206 ; 5 вариант = 10000 имп/км
bsf FLAG, 7
goto m28
m23 ;----------
VIBOR .56, .207 ; 4 вариант= 8000 имп/км
goto m28
m24 ;----------
VIBOR .75, .207 ; 3 вариант= 6000 имп/км
goto m28
m25 ;----------
VIBOR .112, .207 ; 2 вариант = 4000 имп/км
goto m28
m26 ;----------
VIBOR .90, .207 ; 1 вариант =2500 имп/км
bsf FLAG, 6 ; флаг пропуска
Вложения
spd.asm
(19.45 KiB) Скачиваний: 46

Re: Помогите с переводом значения в прошивке.

Вт дек 20, 2022 03:50:01

для этого достаточно умножить на 1000
Спойлер
Код:
;RA*RB=RES
   ;
   MOVLW   LOW .1000
   MOVWF   RA.L
   MOVLW   HIGH .1000
   MOVWF   RA.H
   ;
   CLRF        RES.UU
   CLRF        RES.U
   CLRF        RES.H
   MOVLW   80h
   MOVWF   RES.L
MUL22.IT1
   RRF   RA.H,F
   RRF   RA.L,F
;   
   BTFSS   STATUS,C
   GOTO    MUL22.NBL
   MOVF    RB.L,W
   ADDWF     RES.H,F
   MOVF      RB.H , W
   BTFSC     STATUS,C
   INCFSZ    RB.H, W 
   ADDWF     RES.U, F 
   BTFSC     STATUS,C
   INCF      RES.UU, F
   BCF       STATUS,C
MUL22.NBL 
   BTFSS    RA.L,7
   GOTO     MUL22.NBH
   MOVF     RB.L,W
   ADDWF    RES.U,F
   MOVF     RB.H, W
   BTFSC    STATUS,C
   INCFSZ   RB.H, W
   ADDWF    RES.UU,F
MUL22.NBH
   RRF     RES.UU,F
   RRF     RES.U,F
   RRF     RES.H,F
   RRF     RES.L,F
   BTFSS   STATUS,C
   GOTO    MUL22.IT1
;

Re: Помогите с переводом значения в прошивке.

Вт дек 20, 2022 07:19:16

Не подскажите как это сделать в программе?
Ответить