G
Guest
Guest
В настоящее время
я с помощью PIC16F877 создать пульсирующие (например: 10101010), которые получают от клавиатуры на ИК-передатчик для передачи.Я хотел бы использовать эту функцию с PIC16F877 который PWM генерировать несущую частоту 38KHZ совместить с моим пульсирующим (10101010) для передачи сигнала по ИК transmiter для ИК-приемника 38KHZ.Приложение ниже простого кодирования для передачи данных (10101010), не используя ШИМ output.SO а может ли кто-нибудь поможет мне ИЗМЕНЕНИИ КОДИРОВАНИЯ ДЛЯ OUPUT ГОДА НА PIN PWM PIC16F877 генерировать 38KHZ несущей частоты !!!!!! !!!!!!!
Список P = 16f877, F = inhX32, X = Off
включить <p16f877.inc>__CONFIG _CP_OFF
И _PWRTE_ON
И _XT_OSC
И _WDT_OFF
ERRORLEVEL -302; Подавляет банка предупреждениеTMRO EQU 1
Статус EQU 3
PORTA EQU 5
PORTB EQU 6
TRISA EQU 85H
TRISB EQU 86H
OPTION_R EQU 81H
ZEROBIT EQU 2
COUNT EQU H'0C '
TEMP EQU H'0D '
;----------------------------------ORG 0x00
GOTO НАЧАЛО
; Подпрограмма РАЗДЕЛ ----------------
; 2.5mS ВТОРОЙ DELAY
DELAY1 CLRF TMR0
LOOPA MOVF TMR0, W
SUBLW .1
BTFSS STATUS, ZEROBIT
GOTO LOOPA
RETLW 0
; 5mS ВТОРОЙ DELAY ------------------
DELAY2 CLRF TMR0
LOOPB MOVF TMR0, W
SUBLW .3
BTFSS STATUS, ZEROBIT
GOTO LOOPB
RETLW 0
; 7.5mS ВТОРОЙ DELAY -----------------
DELAY3 CLRF TMR0
LOOPC MOVF TMR0, W
SUBLW .6
BTFSS STATUS, ZEROBIT
GOTO LOOPC
RETLW 0
; КОНФИГУРАЦИЯ СЕКЦИЯ --------------
НАЧАЛО БСФ STATUS, 5
MOVLW B'00011110 '
MOVWF TRISA
MOVLW B'00000000 '
MOVWF TRISB
CLRF TRISC
MOVLW B'00000010 '
MOVWF OPTION_R
РМДС СТАТУС, 5
CLRF PORTA
CLRF PORTB
; Программа начинается СЕЙЧАС -----------------
BEGIN BTFSC PORTA, 0
GOTO BEGIN
MOVLW B'10101010 '
MOVWF TEMP
РМДС PORTB, 1
CALL DELAY1
БСФ PORTB, 1
CALL DELAY3
TESTA0 РМДС PORTB, 1
CALL DELAY1
BTFSC TEMP, 0
GOTO SETA0
GOTO CLRA0
SETA0 БСФ PORTB, 1
CALL DELAY2
GOTO TESTA1
CLRA0 БСФ PORTB, 1
CALL DELAY1
TESTA1 РМДС PORTB, 1
CALL DELAY1
BTFSC TEMP, 1
GOTO SETA1
GOTO CLRA1
SETA1 БСФ PORTB, 1
CALL DELAY2
GOTO TESTA2
CLRA1 БСФ PORTB, 1
CALL DELAY1
TESTA2 РМДС PORTB, 1
CALL DELAY1
BTFSC ТЕМР, 2
GOTO SETA2
GOTO CLRA2
SETA2 БСФ PORTB, 1
CALL DELAY2
GOTO TESTA3
CLRA2 БСФ PORTB, 1
CALL DELAY1
TESTA3 РМДС PORTB, 1
CALL DELAY1
BTFSC TEMP, 3
GOTO SETA3
GOTO CLRA3
SETA3 БСФ PORTB, 1
CALL DELAY2
GOTO TESTA4
CLRA3 БСФ PORTB, 1
CALL DELAY1
TESTA4 РМДС PORTB, 1
CALL DELAY1
BTFSC ТЕМР, 4
GOTO SETA4
GOTO CLRA4
SETA4 БСФ PORTB, 1
CALL DELAY2
GOTO TESTA5
CLRA4 БСФ PORTB, 1
CALL DELAY1
TESTA5 РМДС PORTB, 1
CALL DELAY1
BTFSC ТЕМР, 5
GOTO SETA5
GOTO CLRA5
SETA5 БСФ PORTB, 1
CALL DELAY2
GOTO TESTA6
CLRA5 БСФ PORTB, 1
CALL DELAY1
TESTA6 РМДС PORTB, 1
CALL DELAY1
BTFSC ТЕМР, 6
GOTO SETA6
GOTO CLRA6
SETA6 БСФ PORTB, 1
CALL DELAY2
GOTO TESTA7
CLRA6 БСФ PORTB, 1
CALL DELAY1
TESTA7 РМДС PORTB, 1
CALL DELAY1
BTFSC ТЕМР, 7
GOTO SETA7
GOTO CLRA7
SETA7 БСФ PORTB, 1
CALL DELAY2
CLRF PORTB
GOTO BEGIN
CLRA7 БСФ PORTB, 1
CALL DELAY1
CLRF PORTB
GOTO BEGIN
КОНЕЦ
я с помощью PIC16F877 создать пульсирующие (например: 10101010), которые получают от клавиатуры на ИК-передатчик для передачи.Я хотел бы использовать эту функцию с PIC16F877 который PWM генерировать несущую частоту 38KHZ совместить с моим пульсирующим (10101010) для передачи сигнала по ИК transmiter для ИК-приемника 38KHZ.Приложение ниже простого кодирования для передачи данных (10101010), не используя ШИМ output.SO а может ли кто-нибудь поможет мне ИЗМЕНЕНИИ КОДИРОВАНИЯ ДЛЯ OUPUT ГОДА НА PIN PWM PIC16F877 генерировать 38KHZ несущей частоты !!!!!! !!!!!!!
Список P = 16f877, F = inhX32, X = Off
включить <p16f877.inc>__CONFIG _CP_OFF
И _PWRTE_ON
И _XT_OSC
И _WDT_OFF
ERRORLEVEL -302; Подавляет банка предупреждениеTMRO EQU 1
Статус EQU 3
PORTA EQU 5
PORTB EQU 6
TRISA EQU 85H
TRISB EQU 86H
OPTION_R EQU 81H
ZEROBIT EQU 2
COUNT EQU H'0C '
TEMP EQU H'0D '
;----------------------------------ORG 0x00
GOTO НАЧАЛО
; Подпрограмма РАЗДЕЛ ----------------
; 2.5mS ВТОРОЙ DELAY
DELAY1 CLRF TMR0
LOOPA MOVF TMR0, W
SUBLW .1
BTFSS STATUS, ZEROBIT
GOTO LOOPA
RETLW 0
; 5mS ВТОРОЙ DELAY ------------------
DELAY2 CLRF TMR0
LOOPB MOVF TMR0, W
SUBLW .3
BTFSS STATUS, ZEROBIT
GOTO LOOPB
RETLW 0
; 7.5mS ВТОРОЙ DELAY -----------------
DELAY3 CLRF TMR0
LOOPC MOVF TMR0, W
SUBLW .6
BTFSS STATUS, ZEROBIT
GOTO LOOPC
RETLW 0
; КОНФИГУРАЦИЯ СЕКЦИЯ --------------
НАЧАЛО БСФ STATUS, 5
MOVLW B'00011110 '
MOVWF TRISA
MOVLW B'00000000 '
MOVWF TRISB
CLRF TRISC
MOVLW B'00000010 '
MOVWF OPTION_R
РМДС СТАТУС, 5
CLRF PORTA
CLRF PORTB
; Программа начинается СЕЙЧАС -----------------
BEGIN BTFSC PORTA, 0
GOTO BEGIN
MOVLW B'10101010 '
MOVWF TEMP
РМДС PORTB, 1
CALL DELAY1
БСФ PORTB, 1
CALL DELAY3
TESTA0 РМДС PORTB, 1
CALL DELAY1
BTFSC TEMP, 0
GOTO SETA0
GOTO CLRA0
SETA0 БСФ PORTB, 1
CALL DELAY2
GOTO TESTA1
CLRA0 БСФ PORTB, 1
CALL DELAY1
TESTA1 РМДС PORTB, 1
CALL DELAY1
BTFSC TEMP, 1
GOTO SETA1
GOTO CLRA1
SETA1 БСФ PORTB, 1
CALL DELAY2
GOTO TESTA2
CLRA1 БСФ PORTB, 1
CALL DELAY1
TESTA2 РМДС PORTB, 1
CALL DELAY1
BTFSC ТЕМР, 2
GOTO SETA2
GOTO CLRA2
SETA2 БСФ PORTB, 1
CALL DELAY2
GOTO TESTA3
CLRA2 БСФ PORTB, 1
CALL DELAY1
TESTA3 РМДС PORTB, 1
CALL DELAY1
BTFSC TEMP, 3
GOTO SETA3
GOTO CLRA3
SETA3 БСФ PORTB, 1
CALL DELAY2
GOTO TESTA4
CLRA3 БСФ PORTB, 1
CALL DELAY1
TESTA4 РМДС PORTB, 1
CALL DELAY1
BTFSC ТЕМР, 4
GOTO SETA4
GOTO CLRA4
SETA4 БСФ PORTB, 1
CALL DELAY2
GOTO TESTA5
CLRA4 БСФ PORTB, 1
CALL DELAY1
TESTA5 РМДС PORTB, 1
CALL DELAY1
BTFSC ТЕМР, 5
GOTO SETA5
GOTO CLRA5
SETA5 БСФ PORTB, 1
CALL DELAY2
GOTO TESTA6
CLRA5 БСФ PORTB, 1
CALL DELAY1
TESTA6 РМДС PORTB, 1
CALL DELAY1
BTFSC ТЕМР, 6
GOTO SETA6
GOTO CLRA6
SETA6 БСФ PORTB, 1
CALL DELAY2
GOTO TESTA7
CLRA6 БСФ PORTB, 1
CALL DELAY1
TESTA7 РМДС PORTB, 1
CALL DELAY1
BTFSC ТЕМР, 7
GOTO SETA7
GOTO CLRA7
SETA7 БСФ PORTB, 1
CALL DELAY2
CLRF PORTB
GOTO BEGIN
CLRA7 БСФ PORTB, 1
CALL DELAY1
CLRF PORTB
GOTO BEGIN
КОНЕЦ