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

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

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

-----------------------

C 00767 T_SHORT_PS

C 0ABB 00768 INCF TMR_PI,F ;увел время паузы

021D 3002 00769 MOVLW O_TIM_01S ;проверяем может хватит?

E 023B 00770 SUBWF TMR_PI,W

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

VALUE

F 1D03 00771 SKPZ

0008 00772 RETURN

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

300C 00774 MOVLW B'00001100'

0097 00775 MOVWF CCP1CON

10B5 00776 BCF SHORT_PS

15B5 00777 BSF LONG_PI

1AB5 00778 BTFSC SIMVOL_S1

2A2B 00779 GOTO $+4

1435 00780 BSF SHORT_PI

11B5 00781 BCF LONG_PI

A 0008 00782 RETURN

B 1F35 00783 BTFSS SIMVOL_O

C 0008 00784 RETURN

D 2A28 00785 GOTO $-5

00786 ;--------------------------------

E 00787 T_LONG_PI

E 0ABB 00788 INCF TMR_PI,F ;увел время

022F 3007 00789 MOVLW O_TIM_03S ;проверяем может хватит?

0230 023B 00790 SUBWF TMR_PI,W

1D03 00791 SKPZ

0232 0008 00792 RETURN

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

0234 0197 00794 CLRF CCP1CON

11B5 00795 BCF LONG_PI

14B5 00796 BSF SHORT_PS

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

3003 00798 MOVLW O_PI_SOS ;

023E 00799 SUBWF COUNT_PI,W

A 1D03 00800 SKPZ

B 0008 00801 RETURN

023C 10B5 00802 BCF SHORT_PS

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

023E 1535 00804 BSF LONG_PS

F 1735 00805 BSF SIMVOL_O

0008 00806 RETURN

00807 ;-------------------------------

00808 T_LONG_PS

0ABB 00809 INCF TMR_PI,F ;увел время паузы

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

0243 023B 00811 SUBWF TMR_PI,W

1D03 00812 SKPZ

0245 0008 00813 RETURN

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

0247 300C 00815 MOVLW B'00001100'

0097 00816 MOVWF CCP1CON

1135 00817 BCF LONG_PS

A 1435 00818 BSF SHORT_PI

B 1B35 00819 BTFSC SIMVOL_O

C 0008 00820 RETURN

D 1035 00821 BCF SHORT_PI

E 15B5 00822 BSF LONG_PI

F 0008 00823 RETURN5.03 ZY_LIT.ASM 11-12-2006 19:18:31 PAGE 17OBJECT CODE LINE SOURCE TEXT

VALUE

;-------------------------------

00825 T_PAUSE_SL

0ABB 00826 INCF TMR_PI,F ;увел время паузы

0251 300F 00827 MOVLW O_TIM_07S ;проверяем может хватит?

0252 023B 00828 SUBWF TMR_PI,W

1D03 00829 SKPZ

0254 0008 00830 RETURN

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

300C 00832 MOVLW B'00001100'

0097 00833 MOVWF CCP1CON

1235 00834 BCF PAUSE_SL

0259 1435 00835 BSF SHORT_PI

A 0008 00836 RETURN

00837

00838 ;==========================================================

00839 ;======== ПОДГОТОВКА К ВЫВОДУ ВЫБРАННОЙ ИНФЫ НА ИНДИКАТОР =========

00840 ;==========================================================

B 00841 IND_EMK

B 082B 00842 MOVFW EMK_R_L ;преобразование ёмкости разряда из

C 00C2 00843 MOVWF BIT_L ;двоичной формы в десятичную для вывода на

D 082C 00844 MOVFW EMK_R_H ;индикатор

025E 00C1 00845 MOVWF BIT_H

F 229E 00846 CALL BC2_BCD

3024 00847 MOVLW EMK_R_1K

0084 00848 MOVWF FSR

0262 2290 00849 CALL VX_BCD

00850 ;-----------------------

082D 00851 MOVFW EMK_Z_L ;преобразование ёмкости заряда из

00C2 00852 MOVWF BIT_L ;двоичной формы в десятичную для вывода на

082E 00853 MOVFW EMK_Z_H ;индикатор

0266 00C1 00854 MOVWF BIT_H

229E 00855 CALL BC2_BCD

3027 00856 MOVLW EMK_Z_1K

0084 00857 MOVWF FSR

A 2290 00858 CALL VX_BCD

00859 ;==========================================================

026B 1F06 00860 BTFSS KN_Z_R ;нажата ли кнопка заряда?

C 2A71 00861 GOTO $+5 ;если да, то показываем ёмкость заряда

D 3024 00862 MOVLW EMK_R_1K ;запоминаем первую выводимую цифру

E 0084 00863 MOVWF FSR

F 2287 00864 CALL V_SEG ;запуск прогу распредел. цифр по сегментам

2A75 00865 GOTO KOD_MIG

3027 00866 MOVLW EMK_Z_1K ;запоминаем первую выводимую цифру

0084 00867 MOVWF FSR

2287 00868 CALL V_SEG ;запуск прогу распредел. цифр по сегментам

2A75 00869 GOTO KOD_MIG

00870

00871 KOD_MIG ;проверка какие сегменты мигают

300A 00872 MOVLW 0XA ;код тушения цифры во время мигания

19AF 00873 BTFSC SEG_MIG ;должны ли щас гореть мигающие сегменты?

0008 00874 RETURN ;да, всё должно гореть

182F 00875 BTFSC SEG1_MIG ;нет, проверяем какой сегмент не должен гореть?

00A0 00876 MOVWF IND_SEG1 ;и гасим его.

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

VALUE

A 18AF 00877 BTFSC SEG2_MIG

B 00A1 00878 MOVWF IND_SEG2

C 192F 00879 BTFSC SEG3_MIG

D 00A2 00880 MOVWF IND_SEG3

E 1CAA 00881 BTFSS CTRL_PUSK

F 0008 00882 RETURN

0280 192A 00883 BTFSC AKK_ERR ;проверяем сработала 1 аварийная ситуация?

0281 2A83 00884 GOTO GASHEN_IND

0008 00885 RETURN ;просто выходим

0283 00886 GASHEN_IND ;гашение всех цифр

00A0 00887 MOVWF IND_SEG1 ;и гасим его.

00A1 00888 MOVWF IND_SEG2 ;и гасим его.

00A2 00889 MOVWF IND_SEG3 ;и гасим его.

0008 00890 RETURN

00891 ;--------------------------------------------------------------------------

00892 V_SEG ;перенос выбранной ёмкости в сегменты индикатора

0287 0800 00893 MOVFW INDF

00A0 00894 MOVWF IND_SEG1

0A84 00895 INCF FSR,F

A 0800 00896 MOVFW INDF

B 00A1 00897 MOVWF IND_SEG2

C 0A84 00898 INCF FSR,F

D 0800 00899 MOVFW INDF

E 00A2 00900 MOVWF IND_SEG3

028F 0008 00901 RETURN

00902 ;-------------------------

00903 VX_BCD ;перенос результата преобразования

0846 00904 MOVFW SEG_1K ;из временных ячеек в выбранные

0291 0080 00905 MOVWF INDF

0A84 00906 INCF FSR,F

0845 00907 MOVFW SEG_100

0080 00908 MOVWF INDF

0A84 00909 INCF FSR,F

0844 00910 MOVFW SEG_10

0080 00911 MOVWF INDF

0008 00912 RETURN

00913 ;==========================================================

00914 ;============ СЛУЖЕБНЫЕ ПОДПРОГРАММЫ =========================

00915 ;==========================================================

00916 DELAY_10 ;задержка на 10мкс

0299 3006 00917 MOVLW D'6'

A 00C0 00918 MOVWF fCOUNTER

B 00919 D_LOOP10

B 0BC0 00920 decfsz fCOUNTER,F

C 2A9B 00921 goto D_LOOP10

D 0008 00922 RETURN

00923 ;========================================================================

00924 ;Программа преобразования bc в bcd. 16-разрядные данные

029E 00925 BC2_BCD ; Takes number in BIT_H:BIT_L

00926 ; Returns decimal in

00927 ; SEG_1K0:SEG_1K:SEG_100:SEG_10:SEG_1

00928

E 0E41 00929 swapf BIT_H,w

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

F 38F0 00930 IORLW b'11110000'

A0 00C6 00931 movwf SEG_1K

A1 07C6 00932 addwf SEG_1K,f

A2 3EE2 00933 addlw 0xE2

A3 00C5 00934 movwf SEG_100

A4 3E32 00935 addlw 0x32

A5 00C3 00936 movwf SEG_1

00937

A6 0841 00938 movf BIT_H,w

A7 390F 00939 andlw 0x0F

A8 07C5 00940 addwf SEG_100,f

A9 07C5 00941 addwf SEG_100,f

AA 07C3 00942 addwf SEG_1,f

AB 3EE9 00943 addlw 0xE9

AC 00C4 00944 movwf SEG_10

AD 07C4 00945 addwf SEG_10,f

AE 07C4 00946 addwf SEG_10,f

00947

AF 0E42 00948 swapf BIT_L,w

02B0 390F 00949 andlw 0x0F

B1 07C4 00950 addwf SEG_10,f

B2 07C3 00951 addwf SEG_1,f

00952

B3 0DC4 00953 rlf SEG_10,f

B4 0DC3 00954 rlf SEG_1,f

B5 09C3 00955 comf SEG_1,f

B6 0DC3 00956 rlf SEG_1,f

00957

B7 0842 00958 movf BIT_L,w

B8 390F 00959 andlw 0x0F

B9 07C3 00960 addwf SEG_1,f

BA 0DC6 00961 rlf SEG_1K,f

00962

BB 3007 00963 movlw 0x07

BC 00C7 00964 movwf SEG_10K

00965

BD 300A 00966 movlw 0x0A ; Ten

BE 00967 Lb1:

BE 07C3 00968 addwf SEG_1,f

BF 03C4 00969 decf SEG_10,f

C0 1C03 00970 btfss 3,0

C1 2ABE 00971 goto Lb1

C2 00972 Lb2:

C2 07C4 00973 addwf SEG_10,f

C3 03C5 00974 decf SEG_100,f

C4 1C03 00975 bt