سلام
من میخواستم ببینم که کسی یه آمپلی فایر کوچیک برای بلندگو8اهمی برای تقویت خروجی میکرو کنترلر داره
در ضمن برنامه ای که من استفاده کرده ام اینه:
من میخواستم ببینم که کسی یه آمپلی فایر کوچیک برای بلندگو8اهمی برای تقویت خروجی میکرو کنترلر داره
در ضمن برنامه ای که من استفاده کرده ام اینه:
کد:
$regfile = "m8def.dat" $crystal = 16000000 $hwstack = 64 $swstack = 64 $framesize = 64 'LCD Config Lcdpin = Pin , Db4 = Pind.2 , Db5 = Pind.3 , Db6 = Pind.4 , Db7 = _ Pind.5 , E = Pind.1 , Rs = Pind.0 Config Lcd = 16 * 2 Cursor Off : Cls Deflcdchar 0 , 32 , 32 , 31 , 31 , 31 , 31 , 31 , 32 'First # Deflcdchar 1 , 32 , 32 , 18 , 26 , 30 , 26 , 18 , 32 'Play/Pause >| Deflcdchar 2 , 32 , 32 , 2 , 6 , 14 , 6 , 2 , 32 'Back << Deflcdchar 3 , 32 , 32 , 8 , 12 , 14 , 12 , 8 , 32 'Forward >> 'PWM Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Prescale = 1 'Constants Const Msbl = 0 'Variables Dim Indat(512) As Byte 'Memory buffer Dim Dat As Byte Dim Resp As Byte Dim I As Word Dim Addr As Long Dim Address As Long Dim Fat As String * 5 Dim Firstaddr As Long Dim Play As Bit 'Aliases Cs Alias Portc.5 Clk Alias Portc.3 Miso Alias Pinc.2 'Mcu inp <- MMC Mosi Alias Portc.4 'Mcu out -> MMC 'Declarations Declare Sub Minit Declare Sub Mread(byval Addr As Long) Declare Sub Msearch Declare Sub Mfirstfile Declare Sub Menu Config Pinc.5 = Output Config Pinc.3 = Output Config Pinc.4 = Output Config Pinc.2 = Input Waitms 300 Config Spi = Soft , Din = Pinc.2 , Dout = Portc.4 , Ss = Portc.5 , Clock = Portc.3 Spiinit 'Keys Config Pind.6 = Input Config Pind.7 = Input Config Pinb.2 = Input Config Pinb.3 = Input 'Set Pullup Portd.6 = 1 Portd.7 = 1 Portb.2 = 1 Portb.3 = 1 'Alias First_key Alias Pind.6 Play_key Alias Pind.7 Prev_key Alias Pinb.2 Next_key Alias Pinb.3 '_______________________________________________________________________________ 'Main Prog Start Here: For I = 1 To 100 Pwm1a = 0 Waitms 1 Pwm1a = 64 Waitms 1 Next I Cls : Lcd " Search Card..." Call Minit Call Msearch Call Mfirstfile Call Menu 'Adrrr = 281600 '256MB Micro SD FAT16 Start Addr 'Adrrr = 265728 '1GB Micro SD FAT16 Start Addr 'Adrrr = 396288 '1GB DVRS MMC FAT16 Start Addr 'Adrrr = 2113024 '1GB DVRS MMC FAT32 Start Addr 'FAT Addr 'Adrrr = 19968 '256 Micro SD FAT16/32 Addr 'Adrrr = 0 '1GB Micro SD FAT16/32 Addr 'Adrrr = 130560 '1GB DVRS MMC FAT16/32 Addr Xloop: Set Cs Shiftout Mosi , Clk , Dat , Msbl End '_______________________________________________________________________________ 'Init SD/MMC By Diol [Compsys1.com] Sub Minit Set Cs Dat = &HFF For I = 1 To 10 Shiftout Mosi , Clk , Dat , Msbl Next I Resp = 255 Reset Cs Cmd0: Dat = &H40 Shiftout Mosi , Clk , Dat , Msbl Addr = &H00000000 Shiftout Mosi , Clk , Addr , Msbl Dat = &H95 Shiftout Mosi , Clk , Dat , Msbl While Resp <> &H01 Shiftin Miso , Clk , Resp , Msbl Wend Set Cs Waitms 50 Reset Cs Dat = &HFF Cmd1: While Resp <> &H00 Set Cs Shiftout Mosi , Clk , Dat , Msbl Shiftin Miso , Clk , Resp , Msbl Reset Cs Dat = &H41 Shiftout Mosi , Clk , Dat , Msbl Addr = 0 Shiftout Mosi , Clk , Addr , Msbl Dat = &HFF Shiftout Mosi , Clk , Dat , Msbl Shiftout Mosi , Clk , Dat , Msbl Shiftin Miso , Clk , Resp , Msbl Wend Dat = &HFF Set Cs End Sub '_______________________________________________________________________________ 'Read SD/MMC Sector By Diol [Compsys1.com] Sub Mread(byval Addr As Long) Set Cs Dat = &HFF Shiftout Mosi , Clk , Dat , Msbl Shiftin Miso , Clk , Resp , Msbl Reset Cs Dat = &H51 Shiftout Mosi , Clk , Dat , Msbl Shiftout Mosi , Clk , Addr , Msbl Dat = &HFF Shiftout Mosi , Clk , Dat , Msbl Shiftin Miso , Clk , Resp , Msbl While Resp <> 0 Shiftin Miso , Clk , Resp , Msbl Wend While Resp <> &HFE Shiftin Miso , Clk , Resp , Msbl Wend Dim Stn As Byte , A As String * 20 , C As Byte , J1 As Byte For I = 1 To 512 Shiftin Miso , Clk , Resp , Msbl Indat(i) = Resp If Play = 1 Then Pwm1a = Resp Waitus 30 End If Next I Shiftin Miso , Clk , Resp , Msbl Shiftin Miso , Clk , Resp , Msbl Set Cs End Sub '_______________________________________________________________________________ 'Search FAT Table Of SD/MMC By Sasan Sub Msearch Address = 0 Do Call Mread(address) For I = 1 To 512 'M is First Char Of "MSDOS5.0" In FAT Sector If Indat(i) = "M" Then Exit Do Next I Address = Address + 512 Home L : Lcd "Addr:" ; Address Loop Cls : Lcd "MMC OK" Lowerline Lcd "MMC FAT: " '------------------------ Byte 55 to 59 Contain "FAT16" String, IF FATis16 For I = 55 To 59 Fat = Fat + Chr(indat(i)) Next I If Fat = "FAT16" Then Lcd "FAT16" End If '------------------------ Byte 83 to 87 Contain "FAT32" String, IF FATis32 For I = 83 To 87 Fat = Fat + Chr(indat(i)) Next I If Fat = "FAT32" Then Lcd "FAT32" End If Wait 2 End Sub '_______________________________________________________________________________ 'Find First File Address Of SD/MMC By Sasan Sub Mfirstfile Cls : Lcd " Search File..." Address = 0 Do Call Mread(address) For I = 1 To 512 '1 is Last Char Of "F1" In First File Sector If Indat(i) = "1" And Indat(i -1) = "F" Then Exit Do Next I Address = Address + 512 Home L : Lcd "Addr:" ; Address Loop Cls : Lcd "First File:" Lowerline Lcd Address Firstaddr = Address 'Copy FirstFile Addr Wait 2 End Sub '_______________________________________________________________________________ Sub Menu Address = Firstaddr Play = 1 Cls : Lcd " Wave Player" Lowerline Lcd Chr(0) ; Spc(4) ; Chr(1) ; Spc(4) ; Chr(2) ; Spc(4) ; Chr(3) Do 'Read Keys If Play_key = 0 Then 'Pause Waitms 300 Do If Play_key = 0 Then Exit Do 'Play Loop Waitms 300 End If If First_key = 0 Then Address = Firstaddr 'First If Prev_key = 0 Then 'Prev If Address > Firstaddr Then Address = Address - 1048576 Waitms 50 End If If Next_key = 0 Then 'Next Address = Address + 1048576 Waitms 50 End If Call Mread(address) Address = Address + 512 Loop End Sub
دیدگاه