'****************************** ' Graphic LCD Ver 0.0.1.2 ' AT90S8535 ' LCD chip is SG12864A ' tsuneo.ito JA4LAO ' 2008.12.19 '****************************** $lib "glcdKS108.lbx" ' Config Graphlcd = 128 * 64sed , Dataport = Portc , Controlport = Portb , Ce = 1 , Ce2 = 0 , Cd = 4 , Rd = 3 , Reset = 2 , Enable = 5 Config Adc = Single , Prescaler = Auto Config Porta.0 = Input 'AD S-meter Config Porta.1 = Input 'AD P-meter Config Porta.2 = Output '7_sg dataout Config Porta.3 = Output Config Porta.4 = Input Config Porta.5 = Output Config Porta.6 = Input 'RE Config Porta.7 = Input Config Portd.4 = Output 'RESET Config Portd.5 = Output 'SCLK Config Portd.6 = Output 'SDIO Config Portd.7 = Output 'FUD Config Debounce = 1 Dim D_com1 As Byte Dim D_com2 As Long Dim D_com3 As Long Dim D_com4 As Byte Dim Freq_d As Long Dim Fpara2 As Long Dim Fpara3 As Long Dim Freq As Long Dim Q As Long Dim I As Byte Dim W As Word Dim X As Word Dim N As Byte Dim Band_f As Byte Dim Step_f As Word Dim H As Byte Dim K As Byte Dim L As Byte Dim O As Byte Dim P As Byte Dim R As Byte Dim Freq_hyouji As Long Dim Band_data(8) As Long Dim Freq_1 As Long Dim Freq_data As Long Dim Hyoujidata As String * 9 Dim F_data(3) As String * 3 Cls Setfont Font8x8 Gosub Syoki_gamen D_com1 = &B00000000 D_com2 = &B00000000000000000000000000000000 'CFR-1 D_com3 = &B00000001000000000000000000000000 D_com4 = &B00000100 Band_data(1) = 75060000 '3.5M Band_data(2) = 78560000 '7M Band_data(3) = 85560000 '14M Band_data(4) = 89626000 '18M Band_data(5) = 92560000 '21M Band_data(6) = 96450000 '24M Band_data(7) = 99560000 '28M Band_data(8) = 121560000 '50M Freq_1 = 71560000 'IF Freq Fpara3 = 440000000 'Ref_freq Band_f = 2 Step_f = 100 Gosub Re_set Gosub Dds_out Do Debounce Pina.6 , 1 , Updown , Sub Waitms 1 Debounce Pind.3 , 0 , Sw_1 , Sub 'frq_up Debounce Pind.2 , 0 , Sw_2 , Sub 'frq_down Debounce Pind.1 , 0 , Sw_3 , Sub 'Freq_step W = Getadc(0) X = W / 70 Setfont Font8x8 N = 1 For I = 1 To 15 If I =< X Then Lcdat 7 , N , ">" Else Lcdat 7 , N , " " End If N = N + 8 Next I Loop End Updown: If Pina.7 = 1 Then Band_data(band_f) = Band_data(band_f) + Step_f Else Band_data(band_f) = Band_data(band_f) - Step_f End If Gosub Dds_out Return Dds_out: Gosub Lcd_hyouji Gosub Data_set Gosub Reg1_set Gosub Reg2_set Gosub Data_out Gosub 7seg_out Gosub F_hyouji Return Fud_sub: Set Portd.7 : Waitus 20 : Reset Portd.7 : Waitus 10 Return Re_set: Set Portd.4 : Waitms 10 : Reset Portd.4 : Waitms 10 Return Reg1_set: Shiftout Portd.6 , Portd.5 , D_com1 , 1 , 8 'set cfr1 Shiftout Portd.6 , Portd.5 , D_com2 , 1 , 32 'set cfr1_data Gosub Fud_sub Return Reg2_set: Shiftout Portd.6 , Portd.5 , D_com3 , 1 , 32 'set cfr2 cfr3_data Gosub Fud_sub Return Data_out: Shiftout Portd.6 , Portd.5 , D_com4 , 1 , 8 'set ftw0 Shiftout Portd.6 , Portd.5 , Freq , 1 , 32 'set ftw0_data Gosub Fud_sub Return Data_set: Q = 0 Fpara2 = Freq_d For I = 0 To 31 Q = Q * 2 Fpara2 = Fpara2 * 2 If Fpara2 >= Fpara3 Then Fpara2 = Fpara2 - Fpara3 Q = Q + 1 End If Next I Freq = Q Return F_hyouji: Freq_d = Band_data(band_f) Freq_hyouji = Freq_d - Freq_1 Hyoujidata = Str(freq_hyouji) K = Len(hyoujidata) Setfont Font16x8 Select Case K Case 7 L = 1 : H = 52 : O = 2 Lcdat 1 , 44 , " " Case 8 L = 2 : H = 44 : O = 3 Case 9 L = 3 : H = 44 : O = 4 Case Else End Select F_data(1) = Mid(hyoujidata , 1 , L) F_data(2) = Mid(hyoujidata , O , 3) F_data(3) = Right(hyoujidata , 3) P = Val(f_data(1)) If P < 10 Then Lcdat 1 , 1 , "LSB" Else Lcdat 1 , 1 , "USB" End If Lcdat 1 , H , F_data(1) ; "." ; F_data(2) ; "." ; F_data(3) Return Syoki_gamen: Lcdat 3 , 1 , "VFO A" Lcdat 4 , 1 , " A=B " Lcdat 4 , 45 , "RIT=" ; "800" ; "Hz" Lcdat 6 , 1 , "123456789+20+40" 'Lcdat 7 , 1 , ">>>>>>>>>>>" Lcdat 8 , 1 , " 3 7 10 15 20W" Return Lcd_hyouji: Freq_d = Band_data(band_f) Freq_hyouji = Freq_d - Freq_1 Return Sw_1: Incr Band_f If Band_f > 8 Then Band_f = 1 'Gosub Bpf_set Gosub Dds_out Return Sw_2: Decr Band_f If Band_f < 1 Then Band_f = 8 'Gosub Bpf_set Gosub Dds_out Return Sw_3: Step_f = Step_f * 10 If Step_f > 10000 Then Step_f = 10 Lcdat 3 , 48 , " " Select Case Step_f Case 10 R = 108 Case 100 R = 100 Case 1000 R = 84 Case 10000 R = 76 End Select Lcdat 3 , R , "$" Return 7seg_out: Set Porta.2 Waitms 7 Reset Porta.2 Set Porta.3 Waitus 10 Shiftout Porta.5 , Pina.4 , Freq_hyouji , 0 , 32 , 50 Waitus 10 Reset Porta.3 Return $include "font16x8.font" $include "font8x8.font"