Пт май 13, 2016 10:45:27
Пт май 13, 2016 14:23:42
INT_TMR2 ; прерывание по таймеру 2
BCF PIR1,TMR2IF ; очистка TMR2IF
BTFSS ADCON0, GO ; пропустить след. строку если преобразование АЦП запущенно GO бит равен 1
INCF ADC_TADs_COUNTER ; увеличение на едницу задержки между преобразованиями. счет до 254
BTFSC STATUS, C ; переполнение счетчика времени выше 255, тогда стартуем преобразование АЦП
BSF ADCON0, GO ; Start conversion АЦП
TSTFSZ INT_TMR2_COUNTER ; TEST 0
DECF INT_TMR2_COUNTER,F ; INT_COUNT = INT_COUNT - 1; ( F = 1 откуда взяли туда и пишем ) ( W = 0 пишем в WREG )
GOTO INT_ENDH
INT_ADC
BCF PIR1, ADIF
MOVFF ADRESH, ADC_RESULT
CLRF ADC_TADs_COUNTER
GOTO INT_ENDL
Пт май 13, 2016 14:38:00
Пт май 13, 2016 14:53:12
Пт май 13, 2016 15:06:37
Пт май 13, 2016 15:50:44
Пт май 13, 2016 16:02:21
Сб май 14, 2016 11:36:01
Сб май 14, 2016 11:38:41
Сб май 14, 2016 11:47:13
Пн июл 11, 2016 17:56:22
KyJek писал(а):...
Теперь все заработало...
Чт дек 27, 2018 05:16:40
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; I2C ENABLE
CLRF SSPSTAT
CLRF SSPCON1
CLRF SSPCON2
CLRF SSPADD
CLRF SSPBUF
MOVLW 3FH ;DEC 63 (MIN = 3 FOR TIC48)
MOVWF SSPADD
MOVLW B'10000000'
MOVWF SSPSTAT
MOVLW B'00001000'
MOVWF SSPCON1
BSF SSPCON1,SSPEN ; SSP ON/OFF
MAIN_BATTERY1
;BSF SSPCON2,ACKEN
BSF SSPCON2,SEN,0 ; START
BTFSC SSPCON2,SEN,0
BRA $-2
BCF PIR1,SSPIF,0
MOVLW 0X78 ; ADRESS 0X7A 0X78
MOVWF SSPBUF,0
BTFSC SSPCON2,ACKSTAT
BRA $-2
BCF PIR1,SSPIF,0
BSF SSPCON2,ACKEN
MOVLW UPPER LCD_INIT_BYTE
MOVWF TBLPTRU
MOVLW HIGH LCD_INIT_BYTE
MOVWF TBLPTRH
MOVLW LOW LCD_INIT_BYTE
MOVWF TBLPTRL
MOVLW .36 ; КОМАНД
MOVWF COUNTER
INIT2 TBLRD*+
MOVF TABLAT,W
MOVWF SSPBUF
BTFSC SSPCON2,ACKSTAT
BRA $-2
BCF PIR1,SSPIF
BSF SSPCON2,ACKEN
DECFSZ COUNTER,F
BRA INIT2
CALL STOP_BIT
BSF SSPCON2,SEN,0 ; START
BTFSC SSPCON2,SEN,0
BRA $-2
BCF PIR1,SSPIF,0
MOVLW 0X78 ; ADRESS
MOVWF SSPBUF,0
BTFSC SSPCON2,ACKSTAT
BRA $-2
BCF PIR1,SSPIF,0
BSF SSPCON2,ACKEN
MOVLW 0X40 ; DATS 40 DAT C0 COM 80
MOVWF SSPBUF,0
BTFSC SSPCON2,ACKSTAT
BRA $-2
BCF PIR1,SSPIF,0
BSF SSPCON2,ACKEN
MOVLW UPPER MUSOR
MOVWF TBLPTRU
MOVLW HIGH MUSOR
MOVWF TBLPTRH
MOVLW LOW MUSOR
MOVWF TBLPTRL
MOVLW .255
MOVWF COUNTER
INIT22 TBLRD*+
MOVF TABLAT,W
MOVWF SSPBUF
BTFSC SSPCON2,ACKSTAT
BRA $-2
BCF PIR1,SSPIF
BSF SSPCON2,ACKEN
DECFSZ COUNTER,F
BRA INIT22
CALL STOP_BIT
MAIN_BATTERY2
BRA MAIN_BATTERY2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; УСЛОВИЕ "СТОП"
STOP_BIT
BSF SSPCON2,PEN,0
BTFSC SSPCON2,PEN,0
BRA $-2
RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ORG 4000H
LCD_INIT_BYTE ; 36 BYTE
DB 0X80,0XA8,0X80,0X3F,0X80,0XD3,0X80,0X00,0X80,0X40,0X80,0XA1,0X80,0XC8,0X80,0XDA,0X80,0X12,0X80,0X81,0X80, 0X7F,0X80,0XA4,0X80,0XA6,0X80,0XD5,0X80,0X80,0X80,0X8D,0X80,0X14,0X80,0XAF
MUSOR
DB 0X80, 0XA8, 0X80, 0X3F, 0X80, 0XD3, 0X80, 0X00, 0X80, 0X40, 0X80, 0XA1, 0X80, 0XC8, 0X80, 0XDA, 0X80, 0X12, 0X80, 0X81, 0X80, 0X7F, 0X80, 0XA4, 0X80, 0XA6, 0X80, 0XD5, 0X80, 0X80, 0X80, 0X8D, 0X80, 0X14, 0X80, 0XAF
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; I2C ENABLE
CLRF SSPSTAT
CLRF SSPCON1
CLRF SSPCON2
CLRF SSPADD
CLRF SSPBUF
MOVLW 3FH ;DEC 63 (MIN = 3 FOR TIC48)
MOVWF SSPADD
MOVLW B'10000000'
MOVWF SSPSTAT
MOVLW B'00001000'
MOVWF SSPCON1
BSF SSPCON1,SSPEN ; SSP ON/OFF
MAIN_BATTERY1
BSF SSPCON2,SEN,0 ; START
BTFSC SSPCON2,SEN,0
BRA $-2
BCF PIR1,SSPIF,0
MOVLW 0X78 ; ADRESS 0X7A 0X78
MOVWF SSPBUF,0
BTFSS PIR1,SSPIF
BRA $-2
BCF PIR1,SSPIF,0
MOVLW UPPER LCD_INIT_BYTE
MOVWF TBLPTRU
MOVLW HIGH LCD_INIT_BYTE
MOVWF TBLPTRH
MOVLW LOW LCD_INIT_BYTE
MOVWF TBLPTRL
MOVLW .36 ; КОМАНД
MOVWF COUNTER
INIT2 TBLRD*+
MOVF TABLAT,W
MOVWF SSPBUF,0
BTFSS PIR1,SSPIF
BRA $-2
BCF PIR1,SSPIF
DECFSZ COUNTER,F
BRA INIT2
CALL STOP_BIT
NOP
BRA $-2