Synteza 2m 144-146 Mhz zbudowana w oparciu o SAA 1057 sterowana mikroprocesorem AT89C2051 :
Jako wyświetlacza użyto standardowego wyświetlacza LCD 1*16
Program napisany dla AT89C2051 w Bascomie
Generator i synteza identyczne jak w syntezie wg SP6HUK (powielanie częstotliwości x2 w nadajniku i odbiorniku)
Wszelkie dane potrzebne do wykonania sterownika można odczytać z programu przedstawionego poniżej !!! :
Program autorstwa SQ8JMD:
‚Program obslugi saa1057 z 89c2051
$regfile = „89C2051.DAT”
$crystal = 12000000
Config Scl = P3.0
Config Sda = P3.1
Config Lcd = 16 * 2
Config Debounce = 10
Dim Freq As Long
Dim Freq_h As Byte
Dim Freq_l As Byte
Dim Temp As Long
Dim Shift_bit As Bit
Dim Tx_bit As Bit
Dim Temp2 As String * 3
Dim Temp3 As String * 3
Dim Freq_temp As String * 6
Freq = 134800 ‚+10700 daje freq wyjsciowa
Shift_bit = 0
Up_kl Alias P3.2
Down_kl Alias P3.3
Tx_kl Alias P3.4
Shift_kl Alias P3.5
Tx_out Alias P3.7
‚Tu sie program zaczyna…
Gosub Ini
Gosub Wyslij
Gosub Pokaz
Do
Debounce Up_kl , 0 , Up , Sub
Debounce Down_kl , 0 , Down , Sub
Debounce Tx_kl , 0 , Tx , Sub
Debounce Shift_kl , 0 , Shift_ , Sub
Loop
Up:
Freq = Freq + 25
Gosub Pokaz
Gosub Wyslij
Waitms 100
If Up_kl = 0 Then
Waitms 400
Else
Return
End If
W_gore:
Freq = Freq + 25
Gosub Pokaz
Gosub Wyslij
Waitms 250
If Up_kl = 0 Then Goto W_gore
Return
Down:
Freq = Freq – 25
Gosub Pokaz
Gosub Wyslij
Waitms 100
If Down_kl = 0 Then
Waitms 400
Else
Return
End If
W_dol:
Freq = Freq – 25
Gosub Pokaz
Gosub Wyslij
Waitms 250
If Down_kl = 0 Then Goto W_dol
Return
Tx:
Tx_bit = 1
Freq = Freq + 10700
If Shift_bit = 1 Then Freq = Freq – 600
If Shift_bit = 1 Then Gosub Pokaz
Tx_out = 0
Gosub Wyslij
Petla:
If Tx_kl = 0 Then Goto Petla
Tx_out = 1
Tx_bit = 0
Freq = Freq – 10700
If Shift_bit = 1 Then Freq = Freq + 600
Gosub Pokaz
Gosub Wyslij
Return
Shift_:
Shift_bit = Not Shift_bit
Gosub Pokaz_
Return
Ini:
‚Inicjalizacja syntezy z nastepujacymi parametrami:
‚FM,12.5kHz krok, wzmocnienie petli pradowej 0.23
‚tryb przesylania danych asynchroniczny, szyna danych zawsze wlaczona
‚na nozce test zawsze stan H, detektor fazy auto.
I2cstart
I2cwbyte 228
I2cwbyte 0
I2cstop
Return
Wyslij:
Temp = Freq / 25
Freq_h = High(temp)
Freq_l = Low(temp)
I2cstart
I2cwbyte Freq_h
I2cwbyte Freq_l
I2cstop
Return
Pokaz:
Cls
Temp = Freq
If Tx_bit = 0 Then Temp = Freq + 10700
Freq_temp = Str(temp)
Temp2 = Left(freq_temp , 3)
Temp3 = Right(freq_temp , 3)
Lcd Temp2
Lcd „.”
Lcd Temp3
Pokaz_:
Home
Lowerline
Lcd ” ”
If Shift_bit = 1 Then
Home
Lowerline
Lcd „-”
End If
Return
Jeśli znalazłeś jakieś błędy lub masz jakieś pytania ,pomysły to napisz do mnie !!!