' Heimradio SI4735, FM Preselecties voor:   ATtiny2313   met LCD 2 x 16 karakters
'                                     _____ +----v----+
'                                     RESET [1      20] VCC < moet 3,3 volt zijn (pin 8 van waar ATtiny25 zat op print heimradio)
'                   naar LCD RS pin 4 < PD0 [2      19] PB7 > naar LCD DB7 pin 14
'                    naar LCD E pin 6 < PD1 [3      18] PB6 > naar LCD DB6 pin 13
'                                (XTAL2)PA1 [4      17] PB5 > naar LCD DB5 pin 12
'                                (XTAL1)PA0 [5      16] PB4 > naar LCD DB4 pin 11
'                                       PD2 [6      15] PB3 > naar PB3 (pin 2 van waar ATtiny25 zat op print heimradio)
'                                       PD3 [7      14] PB2
'                                       PD4 [8      13] PB1 > naar PB1 (pin 6 van waar ATtiny25 zat op print heimradio)
'                                       PD5 [9      12] PB0 > naar PB0 (pin 5 van waar ATtiny25 zat op print heimradio)
'                                       GND [10     11] PD6
'                                           +---------+
'
'
' Aansluitng LCD:
' VSS pin 1   Massa
' VDD pin 2   +5 volt, moet 5 volt zijn anders werkt de display niet.
' Contrast pin 3
' R/W pin 5   Massa
' RS  pin 4   Portd.0
' E   pin 6   Portd.1
' DB4 pin 11  Portb.4
' DB5 pin 12  Portb.5
' DB6 pin 13  Portb.6
' DB7 pin 14  Portb.7

$regfile = "attiny2313.dat"

$crystal = 8000000

Dim F As Word
Dim H As Byte
Dim L As Byte
Dim X As Byte
Dim Y As Byte

Declare Sub Uitgave
Portb.1 = 1                                                 'Pullupweerstand ingangpoortb.1
S1 Alias Pinb.1
X = 1
Y = 1

  Config Scl = Portb.3
  Config Sda = Portb.0

  I2cinit

  Waitms 500
  I2cstart
  I2cwbyte 34
  I2cwbyte &H01
  I2cwbyte &H10
  I2cwbyte &H05
  I2cstop
  Waitms 1000

Uitgave

Hoofd:

   If S1 = 0 Then X = X + 1

   If X > 8 Then X = 1

   If X <> Y Then Uitgave : Y = X

Goto Hoofd

Sub Uitgave

   Select Case X

    Case 1 : F = 10140
     Cls
     Locate 1 , 1 : Lcd "Studio Brussel"
     Locate 2 , 1 : Lcd "Frequentie 101.4"

    Case 2 : F = 10200
     Cls
     Locate 1 , 1 : Lcd "MNM"
     Locate 2 , 1 : Lcd "Frequentie 102.0"

    Case 3 : F = 10250
     Cls
     Locate 1 , 1 : Lcd "Q-Music"
     Locate 2 , 1 : Lcd "Frequentie 103.1"                  ' slecht

    Case 4 : F = 10460
     Cls
     Locate 1 , 1 : Lcd "Nostalgie"
     Locate 2 , 1 : Lcd "Frequentie 104.6"

    Case 5 : F = 9840
     Cls
     Locate 1 , 1 : Lcd "Joe FM "                           'slecht
     Locate 2 , 1 : Lcd "Frequentie 93.5"

    Case 6 : F = 9170
     Cls
     Locate 1 , 1 : Lcd "Radio 1"
     Locate 2 , 1 : Lcd "Frequentie 91.7"

    Case 7 : F = 9790
     Cls
     Locate 1 , 1 : Lcd "Radio 2 Limburg"
     Locate 2 , 1 : Lcd "Frequentie 97.9"

    Case 8 : F = 9240
     Cls
     Locate 1 , 1 : Lcd "Radio 2 Brabant"
     Locate 2 , 1 : Lcd "Frequentie 92.4"

    End Select

    I2cstart
    I2cwbyte 34
    I2cwbyte &H20
    I2cwbyte &H00
    H = High(f)
    L = Low(f)
    I2cwbyte H
    I2cwbyte L
    I2cwbyte &H00
    I2cstop

    Waitms 250

End Sub

End