Устройства для тестирования аккумуляторов
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
?ать кнопки?
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 ;--------