Программа для PIC16C(F)84.
Управление синтезатором частоты.

Наконец-то выкладываю обещанную программу для PIC16C(F)84.

 

Назначение - управление MB1501 или МВ1502.

Это простейший вариант и рассчитан всего на одну частоту 418МГц. Но при желании его легко переделать на любую другую,
изменив коэффициенты Кв и Ка, но имейте ввиду, Кв должен быть больше чем коэффициент А.

Fвч=418MHz

если Fкв=12.8MHz, Fср=50кHz, то Коп=256

F=Fср*Ко отсюда:

Ко=8360 - общий коэффициент (прескалер+ДПКД)

Ко=Кв*А+Ка

из них Кв=130 Ка=40 (выбираем A=64)

PORTB,0 - СТРОБ

PORTB,1 - ТАКТ

PORTB,2 - ДАННЫЕ

PORTA,4 - УПРАВЛЕНИЕ (в случае двухчастотного варианта)

Далее идёт текст собственно программы.

Частота кварцевого резонатора для микроконтроллера 32768Гц.


LIST P=PIC16F84

INCLUDE "P16F84.INC"

__FUSES _LP_OSC & _WDT_ON

OZY1 equ 0Ch

OZY2 equ 0Dh

OZY3 equ 0Eh

OZY4 equ 0Fh

OZY5 equ 10h

ORG 0

GOTO START

START BSF STATUS,RP0

MOVLW B'10000'

MOVWF PORTA

MOVLW B'00000000'

MOVWF PORTB

MOVLW B'11011111'

MOVWF TMR0

BCF STATUS,RP0

CALL ZADERZKA

CALL ZADERZKA

CLRF PORTA

CLRF PORTB

MOVLW B'10000010' ;старший разряд определяет коэффициент

MOVWF OZY1 ;деления прескаллера 1 - A=64, 0 - A=128

MOVLW B'00000001' ;загружаем в опорный делитель 256

MOVWF OZY2 ;

MOVLW D'16'

MOVWF OZY4

CALL LOOP

CALL PROG

OPROS CLRWDT

CALL CONTR ;смотрите примечание.

CALL ZADERZKA

GOTO OPROS

VETV CLRWDT

BTFSS STATUS,C

GOTO L

CLRWDT

BSF PORTB,2

RETURN

L BCF PORTB,2

RETURN

ZADERZKA MOVLW D'20'

MOVWF OZY5

ZAD CLRWDT

DECFSZ OZY5,1

GOTO ZAD

RETURN

ZAD0 CLRWDT

CLRWDT

CLRWDT

CLRWDT

CLRWDT

RETURN

PROG MOVLW B'00000000'

MOVWF OZY1

MOVLW B'10000010' ;загружаем в ДПКД 130

MOVWF OZY2

MOVLW B'01010000' ;загружаем в прескаллер 40.

MOVWF OZY3 ;Имейте ввиду, что младший разря равен 0, а отсчёт ведётся со следующего разряда.

MOVLW D'24'

MOVWF OZY4

LOOP CLRWDT

RLF OZY3,1

RLF OZY2,1

RLF OZY1,1

CALL VETV

CALL ZAD0

BSF PORTB,1

CALL ZAD0

BCF PORTB,1

CALL ZAD0

DECFSZ OZY4,1

GOTO LOOP

CALL ZAD0

BSF PORTB,0

CALL ZAD0

BCF PORTB,0

RETURN



;Эта подпрограмма вставляется пи необходимости (см. примечание).

CONTR CLRWDT

BTFSS PORTA,4

GOTO PRM

MOVLW B'F-PRD'

MOVWF OZY2

MOVLW B'F-PRD'

MOVWF OZY3

MOVLW D'24'

MOVWF OZY4

CLRF OZY1

CALL LOOP

GOTO ALF1


PRM CLRWDT

MOVLW B'F-PRM'

MOVWF OZY2

MOVLW B'F-PRM'

MOVWF OZY3

MOVLW D'24'

MOVWF OZY4

CLRF OZY1

CALL LOOP

GOTO ALF0



ALF0 CLRWDT

CALL ZADERZKA

BTFSS PORTA,4

GOTO ALF0

RETURN


ALF1 CLRWDT

CALL ZADERZKA

BTFSC PORTA,4

GOTO ALF1

RETURN

;Конец подпрограммы.

END

Примечание:

Эти строчки программы вставляются при необходимости сделать синтезатор переключаемым на две частоты (например, для радиостанции). F-PRD коэффициент соответствующий частоте передатчика. F-PRM соответственно приёмника. Вычисляются по методике в начале статьи. Если необходимости в переключении нет, то эти строки надо просто удалить из программы.

Дополнения внесены по прсьбе Дмитрия





Hosted by uCoz