Dijital ton kontrol devresi pic16f628 mikro denetleyici üzerine kurulu picbasic ile ds1844 ve lm1036 kullanımı iyi bir örnek kaynak .bas .hex yazılımları ve proteus isis ares pcb simulasyon dosyaları bulunuyor cdrom sürücü, mp4 oynatıcı ya da farklı ses kaynaklarında kullanabilirsiniz.
Merhabalar sizlerle PIC16f628a ve DS1844‘lü dijital ton kontrol uygulamasını paylaşıyorum devreyi uzun zaman önce tasarlamıştım board üzerinde denemiştim öylece duruyordu. Geçenlerde bir arkadaşım bitirme projesi ihtiyacı duyduğundan uygulama gerçekleşme imkanı buldu ve arkadaşım uygulamayı bitirme projesi olarak yaptı.
Devrede ton kontrol kısmında lm1036 denetleyici olarak 16f628a ve ayar için ds1844 dijital potans entegresi kullandım. DS1844 piyasada bulunmuyor galiba ben bir ara sample istemiştim o yüzden elimde vardı. Devre üzerinde bulunan mute ,+ ,– ve menu + tuşları ile bas, tiz, balans volüme kontrolü yapıyor.
Yapılan ayarlar dahili e-eproma kayıt ediliyor ve tekrar açılışta aynı değerler yükleniyor.Bütün ayarlar lcdde bar şeklinde görüntüleniyor ayrıca 5 saniye hiç bir tuşa basılmasa lcd üzerinde logo yazısı görüntülenir.
Tekrar menüye dönmek için menü tuşuna basmak yeterlidir Program kodları proton pic basic ile yazılmıştır.Devre ,pcb ve yazılım tasarımı bana aittir kodlar üzerinde oynama yapılarak devre geliştirilebilir. Örnek olarak mute tuşunu menü – olarak kullanıp menüler arasında ileri geri yapılabilir
LM1036‘da kontrol entegrenin üzerinde bulunan bas,tiz,ses ve balans girişlerine 0-5 volt ayarlı gerilim uygulanması ile sağlanır. Fakat entegre 9-16v gerilimle çalıştığından bu gerilim entegre içerisinde bulunan dahili gerilim regülatörü ile sağlanır. Bu regülatör çıkışı 17 nolu pinden alınır. Buradan çıkan 5 volt potansiyometreler üzerinden bas, tiz, balans, ses girişlerine uygulanarak ton kontrol ayarı sağlanır.
Lm1035 içinde bu işlemler aynıdır. Yani entegre kontrolü için bas,tiz,balans,ses girişlerine 0-5 volt ayarlı gerilim vermek gerekli benim projemde bu gerilimler ds1844 dörtlü dijital potansiyometre entegresi ile sağlanıyor.Ds1844 entegresi her bir potansiyometreyi 64 adımda kontrol ediyor. yani 0dan64 adıma 0-5 v ayarlı gerilim sağlıyor.Ds1844 piyasada yok bildiğim kadarıyla bunu yerine ad5204 entegresi de kullanılabilir.Ad5204’ün piyasada olması lazım tam emin değilim. Veya bilen arkadaşlar bir tane entegre önerebilir.
PROTON PİC-BASİC YAZILIMI
'***************************** '* Name : dijital ton kontrol.bas * '* Author : Erhan YILMAZ * '* Notice : * '* : All Rights Reserved * '* Date : 04.10.2008 * '* Version : 1.0 * '* Notes : * '* : * '***************************** Device = 16F628A XTAL=4 Config CP_OFF , PWRTE_ON , WDT_OFF , LVP_OFF , MCLRE_OFF , XT_OSC Declare LCD_DTPIN PORTB.4 Declare LCD_ENPIN PORTB.1 Declare LCD_RSPIN PORTB.3 Declare LCD_INTERFACE 4 Declare LCD_LINES 2 ON_INTERRUPT GoTo kesme Print $FE,$40,$18,$18,$18,$18,$18,$18,$18,$18 ;yarım sağ bar Print $FE,$48,$1B,$1B,$1B,$1B,$1B,$1B,$1B,$1B ;tam bar Print $FE,$50,$03,$03,$03,$03,$03,$03,$03,$03 ;yarım sol bar Print $FE,$58,$02,$04,$08,$1F,$08,$04,$02,$00 ;sol ok Print $FE,$60,$08,$04,$02,$1F,$02,$04,$08,$00 ;sag ok Dim menu As Byte Dim bas As Byte Dim bas1 As Byte Dim vol As Byte Dim vol1 As Byte Dim treb As Byte Dim treb1 As Byte Dim bal As Byte Dim deger As Byte Dim barval As Byte Dim pad As Byte Dim bar1 As Byte Dim bar2 As Byte Dim temp As Byte Dim sayac As Byte Dim ses_durum As Bit ses_durum=1 menu=1 Symbol azbut = PORTA.2 Symbol artbut = PORTA.3 Symbol modebut = PORTA.4 Symbol mutebut = PORTA.5 Declare SDA_PIN PORTA.1 Declare SCL_PIN PORTA.0 bas=ERead 0 vol=ERead 1 treb=ERead 2 bal=ERead 3 GoSub gonder Print At 1,1," MARMARA " Print At 2,1," UNIVERSITESI " DelayMS 2000 Cls TRISA=%01111100 TRISB=%00000000 PORTB.0=1 CMCON=7 INTCON=$A0 OPTION_REG=$87 ana: If modebut=0 Then sayac=0:menu=menu+1 If mutebut=0 Then sayac=0:GoSub mute If menu=1 Then GoSub vol_menu If menu=2 Then GoSub bas_menu If menu=3 Then GoSub treb_menu If menu=4 Then GoSub bal_menu If menu=5 Then menu=0 DelayMS 200 GoTo ana vol_menu: If azbut=0 Then sayac=0:GoSub vol_az If artbut=0 Then sayac=0:GoSub vol_art Print At 1,1,"VOLUME ",DEC2 vol," " barval=vol/2 GoSub bar Return bas_menu: If azbut=0 Then sayac=0:GoSub bas_az If artbut=0 Then sayac=0:GoSub bas_art Print At 1,1,"BASS ",DEC2 bas," " barval=bas/2 GoSub bar Return treb_menu: If azbut=0 Then sayac=0:GoSub treb_az If artbut=0 Then sayac=0:GoSub treb_art Print At 1,1,"TREBLE ",DEC2 treb," " barval=treb/2 GoSub bar Return bal_menu: If azbut=0 Then sayac=0:GoSub bal_az If artbut=0 Then sayac=0:GoSub bal_art Print At 1,1,"BALANCE " barval=bal/2 GoSub bal_bar Return mute: sayac=0 menu=0 Print At 1,1,"MUTE " If ses_durum=1 Then ses_durum=0 Else ses_durum=1 EndIf If ses_durum=1 Then PORTB.0=1 Print At 2,1,"SES ACIK " ElseIf PORTA.7=0 Then PORTB.0=0 Print At 2,1,"SES KAPALI " EndIf DelayMS 200 Return vol_art: vol=vol+1 If vol=64 Then vol=63 GoSub gonder Return vol_az: vol=vol-1 If vol=255 Then vol=0 GoSub gonder Return bas_art: bas=bas+1 If bas=64 Then bas=63 GoSub gonder Return bas_az: bas=bas-1 If bas=255 Then bas=0 GoSub gonder Return treb_art: treb=treb+1 If treb=64 Then treb=63 GoSub gonder Return treb_az: treb=treb-1 If treb=255 Then treb=0 GoSub gonder Return bal_art: bal=bal+1 If bal=64 Then bal=63 GoSub gonder Return bal_az: bal=bal-1 If bal=255 Then bal=0 GoSub gonder Return bar: bar1 = barval/2 bar2 = barval // 2 pad =16-(bar1+bar2) Print At 2,1, Rep $01\bar1,Rep $00\bar2,Rep " "\pad Return bal_bar: If barval>28 Then barval=28 If barval<=14 Then GoSub sol If barval>=15 Then GoSub sag Return sol: temp =14-barval bar1 = temp/2 bar2 = temp // 2 pad = 7-(bar2+bar1) Print At 2,1, Rep " "\pad,Rep $02\bar2,Rep $01\bar1,$03,$04,Rep " "\$07 Return sag: temp=barval-15 bar1 = temp/2 bar2 = temp // 2 pad = 7-(bar2+bar1) Print At 2,1,Rep " "\$07,$03,$04,Rep $01\bar1, Rep $00\bar2 ,Rep " "\pad Return kesme: INTCON.2=0 sayac=sayac+1 If sayac<>100 Then GoTo kesme_sonu sayac=0 menu=0 Print At 1,1," MARMARA " Print At 2,1," UNIVERSITESI " kesme_sonu: Context Restore gonder: treb1=treb+64 vol1=vol+128 bas1=bas+192 BusOut $50,[bal,treb1,vol1,bas1] EWrite 0 ,[bas] EWrite 1 ,[vol] EWrite 2 ,[treb] EWrite 3 ,[bal] Return End
Ekleme 11-07-2009
Arkadaşlar bir arkadaşın uyarısı üzerine fark ettim devre şeması ile pcb arasında küçük farklar varmış onları düzelttim
Dosya indirme LINK listesi (TXT formatında) link-7366.zip şifre-pass: 320volt.com
0 Yorumlar