Устройства для тестирования аккумуляторов

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

?ать кнопки?

F 0238 00591 SUBWF TMR_DREBEZG,W

1D03 00592 SKPZ

0008 00593 RETURN ;нет, рано разблокировать

14B4 00594 BSF ON_KN

01B8 00595 CLRF TMR_DREBEZG ;очищаем рабочие ячейки для след раза

01B9 00596 CLRF TMR_CLR_KN ;очищаем рабочие ячейки для след раза

0008 00597 RETURN

00598 T_KN_OFF

1B86 00599 BTFSC KN_PUSK ;если кнопка ещё нажата

298A 00600 GOTO $+3

01B8 00601 CLRF TMR_DREBEZG ;срабатывание кнопки, начать отiёт заново

0189 0008 00602 RETURN

A 180B 00603 BTFSC INTCON,0

018B 01B8 00604 CLRF TMR_DREBEZG ;срабатывание кнопки, начать отiёт заново

C 100B 00605 BCF INTCON,0

D 0AB8 00606 INCF TMR_DREBEZG,F ;увел время прошедшее после отпускания кнопки

E 3004 00607 MOVLW O_OFF_KN ;проверяем может хватит блокировать кнопки?

F 0238 00608 SUBWF TMR_DREBEZG,W

1D03 00609 SKPZ

0008 00610 RETURN ;нет, рано разблокировать

10B4 00611 BCF ON_KN

MPASM 5.03 ZY_LIT.ASM 11-12-2006 19:18:31 PAGE 13OBJECT CODE LINE SOURCE TEXT

VALUE

1534 00612 BSF OFF_KN

1434 00613 BSF T_DREBEZG ;хватит блокировать включаем кнопки

0195 01B8 00614 CLRF TMR_DREBEZG ;очищаем рабочие ячейки для след раза

01B9 00615 CLRF TMR_CLR_KN ;очищаем рабочие ячейки для след раза

0008 00616 RETURN

00617 ;-------------------------------------------------------------------

00618 TIM_MIG

0AB7 00619 INCF TMR_DIOD,F ;увел время после последнего переключения

3007 00620 MOVLW O_TIM_03S ;проверяем надо сделать переключение

A 0237 00621 SUBWF TMR_DIOD,W ;сегмента индикатора

B 1D03 00622 SKPZ

C 0008 00623 RETURN ;нет, рано

D 01B7 00624 CLRF TMR_DIOD ;очищаем рабочие ячейки для след раза

E 1DAF 00625 BTFSS SEG_MIG ;пора, проверка сегмент горел?

F 29A2 00626 GOTO $+3 ;нет, переходим к его зажиганию

A0 11AF 00627 BCF SEG_MIG ;горел значит гасим его

01A1 29A3 00628 GOTO $+2

A2 15AF 00629 BSF SEG_MIG ;зажигаем сегмент

01A3 0008 00630 RETURN

00631 ;--------------------------------------------------------------------

A4 00632 IZM_EMK_RAZ ;измерение ёмкости при разряде

A4 0ABA 00633 INCF TMR_ZAR,F ;ждём 12сек и прибавляем 1 мА/ч

01A5 1103 00634 CLRZ

A6 30F0 00635 MOVLW O_EMK ;

01A7 023A 00636 SUBWF TMR_ZAR,W

A8 1D03 00637 SKPZ

A9 0008 00638 RETURN

01AA 01BA 00639 CLRF TMR_ZAR ;очищаем рабочие ячейки для след. раза

AB 0FAB 00640 INCFSZ EMK_R_L,F ;увеличение наiитанной ёмкости

01AC 0008 00641 RETURN

AD 0AAC 00642 INCF EMK_R_H,F

AE 0008 00643 RETURN

00644 ;--------------------------------------------------------------------

AF 00645 IZM_EMK_ZAR ;измерение ёмкости при заряде

AF 0ABA 00646 INCF TMR_ZAR,F ;ждём 12сек и прибавляем 1 мА/ч

01B0 1103 00647 CLRZ

B1 30F0 00648 MOVLW O_EMK ;

01B2 023A 00649 SUBWF TMR_ZAR,W

B3 1D03 00650 SKPZ

B4 0008 00651 RETURN

B5 01BA 00652 CLRF TMR_ZAR ;очищаем рабочие ячейки для след. раза

01B6 0FAD 00653 INCFSZ EMK_Z_L,F ;увеличение наiитанной ёмкости

01B7 0008 00654 RETURN

B8 0AAE 00655 INCF EMK_Z_H,F

B9 0008 00656 RETURN

00657 ;--------------------------------------------------------------------

BA 00658 TIM_AVAR ;

BA 192A 00659 BTFSC AKK_ERR

BB 01BC 00660 CLRF TMR_AVAR

BC 0ABC 00661 INCF TMR_AVAR,F ;увел время

01BD 3014 00662 MOVLW O_AVAR ;проверяем может хватит ?

01BE 023C 00663 SUBWF TMR_AVAR,W

BF 1D03 00664 SKPZ5.03 ZY_LIT.ASM 11-12-2006 19:18:31 PAGE 14OBJECT CODE LINE SOURCE TEXT

VALUE

C0 0008 00665 RETURN

C1 11AA 00666 BCF ADC_AVAR ;

01C2 01BC 00667 CLRF TMR_AVAR ;очищаем рабочие ячейки для след. раза

C3 0008 00668 RETURN

00669 ;------------------------------------------------------------------

C4 00670 ALARM_4 ;4 коротких пика после очередного под-цикла

C4 0ABB 00671 INCF TMR_PI,F ;увел время пика или паузы

C5 3007 00672 MOVLW O_TIM_03S ;проверяем может хватит?

01C6 023B 00673 SUBWF TMR_PI,W

C7 1D03 00674 SKPZ

C8 0008 00675 RETURN

C9 01BB 00676 CLRF TMR_PI ;очищаем рабочие ячейки для след. раза

01CA 1FB4 00677 BTFSS PAUSE_PI ;пора переключится, включим пищалку или выключим?

CB 29CF 00678 GOTO $+4 ;

CC 13B4 00679 BCF PAUSE_PI ;выключим

CD 0197 00680 CLRF CCP1CON

CE 29D2 00681 GOTO $+4

CF 17B4 00682 BSF PAUSE_PI ;включим

D0 300C 00683 MOVLW B'00001100'

D1 0097 00684 MOVWF CCP1CON

D2 0ABE 00685 INCF COUNT_PI,F ;iитаем сколько было пиков и пауз в сумме

D3 3008 00686 MOVLW O_PI_4 ;должно быть 4 пика + 3 паузы = 7

01D4 023E 00687 SUBWF COUNT_PI,W

D5 1D03 00688 SKPZ

D6 0008 00689 RETURN

D7 12B4 00690 BCF Z_R_PI ;всё пропикали,

01D8 01BE 00691 CLRF COUNT_PI ;сбрасываем задействованные регистры

D9 13B4 00692 BCF PAUSE_PI

DA 0197 00693 CLRF CCP1CON ;и выключаем пищалку

DB 0008 00694 RETURN

00695 ;------------------------------------------------------------------

DC 00696 ALARM_5 ;5 длинных пика после окончания всего цикла

DC 12B4 00697 BCF Z_R_PI

DD 0ABB 00698 INCF TMR_PI,F ;увел время пика или паузы

DE 3014 00699 MOVLW O_TIM_1S ;проверяем может хватит?

01DF 023B 00700 SUBWF TMR_PI,W

E0 1D03 00701 SKPZ

E1 0008 00702 RETURN

E2 01BB 00703 CLRF TMR_PI ;очищаем рабочие ячейки для след. раза

01E3 1FB4 00704 BTFSS PAUSE_PI ;пора переключится, включим пищалку или выключим?

01E4 29E8 00705 GOTO $+4 ;

E5 13B4 00706 BCF PAUSE_PI ;выключим

01E6 0197 00707 CLRF CCP1CON

E7 29EB 00708 GOTO $+4

01E8 17B4 00709 BSF PAUSE_PI ;включим

01E9 300C 00710 MOVLW B'00001100'

EA 0097 00711 MOVWF CCP1CON

01EB 0ABE 00712 INCF COUNT_PI,F ;iитаем сколько было пиков и пауз в сумме

EC 300A 00713 MOVLW O_PI_5 ;должно быть 4 пика + 3 паузы = 7

01ED 023E 00714 SUBWF COUNT_PI,W

EE 1D03 00715 SKPZ

EF 0008 00716 RETURN

F0 1334 00717 BCF END_PI ;всё пропикали, 5.03 ZY_LIT.ASM 11-12-2006 19:18:31 PAGE 15OBJECT CODE LINE SOURCE TEXT

VALUE

F1 01BE 00718 CLRF COUNT_PI ;сбрасываем задействованные регистры

F2 13B4 00719 BCF PAUSE_PI

F3 0197 00720 CLRF CCP1CON ;и выключаем пищалку

F4 0008 00721 RETURN

00722 ;-----------------------------------------------------------------

F5 00723 SOS ;подача сигнала SOS

01F5 1835 00724 BTFSC SHORT_PI

F6 2A00 00725 GOTO T_SHORT_PI

F7 18B5 00726 BTFSC SHORT_PS

F8 2A1C 00727 GOTO T_SHORT_PS

F9 19B5 00728 BTFSC LONG_PI

FA 2A2E 00729 GOTO T_LONG_PI

FB 1935 00730 BTFSC LONG_PS

FC 2A41 00731 GOTO T_LONG_PS

FD 1A35 00732 BTFSC PAUSE_SL

FE 2A50 00733 GOTO T_PAUSE_SL

FF 0008 00734 RETURN

00735 ;---------------------------------------

00736 T_SHORT_PI

300C 00737 MOVLW B'00001100'

0097 00738 MOVWF CCP1CON

0ABB 00739 INCF TMR_PI,F ;увел время пика

0203 3002 00740 MOVLW O_TIM_01S ;проверяем может хватит?

0204 023B 00741 SUBWF TMR_PI,W

1D03 00742 SKPZ

0206 0008 00743 RETURN

01BB 00744 CLRF TMR_PI ;очищаем рабочие ячейки для след. раза

0208 0197 00745 CLRF CCP1CON

1035 00746 BCF SHORT_PI

A 14B5 00747 BSF SHORT_PS

020B 0ABE 00748 INCF COUNT_PI,F ;iитаем сколько было пиков

020C 3003 00749 MOVLW O_PI_SOS ;

020D 023E 00750 SUBWF COUNT_PI,W

E 1D03 00751 SKPZ

F 0008 00752 RETURN

10B5 00753 BCF SHORT_PS

0211 01BE 00754 CLRF COUNT_PI ;сбрасываем задействованные регистры

0212 16B5 00755 BSF SIMVOL_S1

1F35 00756 BTFSS SIMVOL_O

2A19 00757 GOTO NEXT_O

12B5 00758 BCF SIMVOL_S1

1335 00759 BCF SIMVOL_O

1635 00760 BSF PAUSE_SL

0008 00761 RETURN

00762 NEXT_O

1535 00763 BSF LONG_PS

A 1635 00764 BSF PAUSE_SL

B 0008 00765 RETURN

00766 ;--------