I am newbie in bascom and still learn about bascom language compiler.
I found below code on internet, i trying to tested it on proteus, but it doesn't working, mean is the LCD doesn't appears on.
Could some one here can help me, I want to control from AT90S2313 to TSA5511.
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- $Regfile="2313def.dat" 'Atmega AT90S2313
- $Crystal=4000000
- $hwstack=30
- $swstack=30
- $framesize=30
- $sim
- Config Lcd = 16 * 2
- Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portd.4 , Rs = Portd.6
- Cursor Off
- Cls
- Locate 2 , 1 : Lcd " Test LCD "
- Reset Portd.5 'LCD R/w
- Config Portd = Output
- Config Pinb.2 = Input
- Config Pinb.1 = Input
- Config Pinb.0 = Input
- Set Pinb.0
- Set Pinb.1 'pull - Up
- Set Pinb.2 'pull - UP
- Config Sda = Portd.0
- Config Scl = Portd.1
- Config I2cdelay = 100
- Dim Wyswietlanaf As Word
- Dim W As String * 6
- Dim Reszta As Byte
- Dim Dzielnik As Word
- Dim Dzielh As Byte
- Dim Dziell As Byte
- Dim Key As Byte
- Dzielnik = 0
- Waitms 100
- If Pinb.0 = 0 Then : Gosub Rst : End If
- Readeeprom Dzielh , 3
- Waitms 50
- Readeeprom Dziell , 4
- Waitms 50
- Dzielnik = Makeint(dziell , Dzielh)
- Gosub Wyslij
- '------------------------------------------------------------------------------
- Do
- Waitms 100
- If Pinb.2 = 0 Then : Gosub Zwieksz_czestotliwosc : End If
- If Pinb.1 = 0 Then : Gosub Zmniejsz_czestotliwosc : End If
- Loop
- '------------------------------------------------------------------------------
- Wyslij:
- Wyswietlanaf = Dzielnik
- Wyswietlanaf = Wyswietlanaf * 5
- 'Freq = Str ( value )
- ' Freq = Format ( freq , "00.0" )
- W = Str(wyswietlanaf)
- W = Format(w , " 00.00")
- ' Locate 1 , 1 : Lcd Scale
- Locate 1 , 1 : Lcd "F:" ; W ; " MHz"
- Dzielh = High(dzielnik)
- Dziell = Low(dzielnik)
- I2cstart
- I2cwbyte &B11000000
- I2cwbyte Dzielh
- I2cwbyte Dziell
- I2cwbyte &B10001110
- I2cwbyte &B00000000
- I2cstop
- Return
- '------------------------------------------------------------------------------
- Zwieksz_czestotliwosc:
- If Dzielnik < 2160 Then
- Dzielnik = Dzielnik + 1
- End If
- Gosub Wyslij
- Waitms 400
- While Pinb.2 = 0
- If Dzielnik < 2160 Then
- Dzielnik = Dzielnik + 1
- End If
- Gosub Wyslij
- Waitms 100
- Wend
- Writeeeprom Dzielh , 3
- Waitms 50
- Writeeeprom Dziell , 4
- Waitms 50
- Return
- '------------------------------------------------------------------------------
- Zmniejsz_czestotliwosc:
- If Dzielnik > 1750 Then
- Dzielnik = Dzielnik - 1
- End If
- Gosub Wyslij
- Waitms 400
- While Pinb.1 = 0
- If Dzielnik > 1750 Then
- Dzielnik = Dzielnik - 1
- End If
- Gosub Wyslij
- Waitms 100
- Wend
- Writeeeprom Dzielh , 3
- Waitms 50
- Writeeeprom Dziell , 4
- Waitms 50
- Return
- '------------------------------------------------------------------------------
- Rst:
- Dzielnik = 1750
- Dzielh = High(dzielnik)
- Dziell = Low(dzielnik)
- Writeeeprom Dzielh , 3
- Waitms 50
- Writeeeprom Dziell , 4
- Waitms 50
- Return
Thank you.
Regards,
Weako.