اطلاعیه

Collapse
No announcement yet.

تولید صدای اعداد توسط میکرو

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #16
    پاسخ : تولید صدای اعداد توسط میکرو

    پس ISD5216 و APR9301 و APR9600 و... که گفتین به درد نمی خورن؟

    دیدگاه


      #17
      پاسخ : تولید صدای اعداد توسط میکرو

      دایی جان پس ISD5216 و APR9301 و APR9600 و... که گفتین ، به درد نمی خورند؟ قابل آدرس دهی نیستن؟
      یه سوال هم راجع به 1 منطقی داشتم. تو avr از چه ولتاژی به بالا 1 حساب میشه. علی آقا یه جوابی دادند اما کاملش نکردند.
      یکی یه فرمولی دد که 0.6Vcc که طبق این میشه 3 ولت. اما من عملا با mega8 تست کردم به این صورت که یه دستور شرطی نوشتم که اگه فلان پایه 1 شد فلان پایه را 1 کن. دیدم وقتی ولتاژ به حدود 1.6 ولت می رسه دستور شرطی اجرا میشه.
      چرا بدرد نمی خورن دایی؟!
      من همچین چیزی نگفتم.
      گفتم اگه می خوای قیمت رو پایین بیار خوب نیستن!
      چون این ای سی ها بیشترشون بالای 10 تومن هستن :biggrin:
      خیلی ساده هم آدرس دهی میشن.
      توی دیتا شیت AVRآ‌ها قسمت Electrical charastristic نوشته چه ولتاژی بعنوان یک محسوب میشه. خودت نگاه کن. گمونم از 1.8 ولت به بالا میشه 1 اگه تغذیه 5 ولت باشه.
      با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

      دیدگاه


        #18
        پاسخ : تولید صدای اعداد توسط میکرو

        دا یی جان توی دیتا شیت میکرو نوشته یک منطقی 0.6Vcc هست. اما پس چرا عملا رو 1.6 جواب میده؟

        دیدگاه


          #19
          پاسخ : تولید صدای اعداد توسط میکرو

          حتی رو دو تا آی سی تست کردم هم mega8 هم mega16 امتحان کردم رو جفتش تقریبا 1.7 هست.

          دیدگاه


            #20
            پاسخ : تولید صدای اعداد توسط میکرو

            میکرو شما ال هست؟

            دیدگاه


              #21
              پاسخ : تولید صدای اعداد توسط میکرو

              نه. ال نیست

              دیدگاه


                #22
                پاسخ : تولید صدای اعداد توسط میکرو

                می گم من یه فلشر ساختم گه تغذیه اش 12 ولت هست.با یهattiny 15L که از 3 تا پرت خروجیش به 3 تا IRF540
                وصل کردم. که اینا یکی یکی 3 تا تابلو ال ای دی را روشن خاموش کنند. حالا مشکلی که هست اینه که یکی از تابلوها یه کم بزرگتر از
                دو تابلوی دیگر هست . فلشر 2 تابلوی کوچکتر را به درستی خاموش روشن می کنه اما تا می رسه به تابلوی بزرگتر فلشر قاطی می کنه.
                من گفتم شاید چون تابلوی بزرگتر زیلدتر جریان می کشه ولتاژ تغذیه میکرو افت می کنه (با توجه به این که منیع تغذیه سوئیچینگ 12 ولت 30
                آ مپر گذاشتم که بعید مدونم با 3-4 آمپری که تابلو می کشه ولتاژش افت کنه) برای همین اومدم تغذیه میکرو را مستقل کردم.اما مشکل
                همچنان ادامه داره. چرا؟؟؟؟؟؟؟؟!!!!!!!!!

                دیدگاه


                  #23
                  پاسخ : تولید صدای اعداد توسط میکرو

                  از تریستور و اپتوکوپلر استفاده کن

                  دیدگاه


                    #24
                    پاسخ : تولید صدای اعداد توسط میکرو

                    نوشته اصلی توسط علی علی پور ریکنده
                    از تریستور و اپتوکوپلر استفاده کن
                    این جواب مال کدوم بحثه؟ فلشر؟ یا یک منطقی؟ احتمالا مربوط به فلشر هست؟ چرا اپتوکوپلر و تریستور؟ به نظر شما الان مشکل از چیه؟

                    دیدگاه


                      #25
                      پاسخ : تولید صدای اعداد توسط میکرو

                      من یه آی سی ضبط صدا isd1730 خریدم. اما فکر کنم قابل آدرس دهی نباشه. چون تو دیتاشیتش حرفی از آدرس دهی نزده و خیلی هم ارزن خریدم 3000 تومن.

                      دیدگاه


                        #26
                        پاسخ : تولید صدای اعداد توسط میکرو

                        چرا از mmc استفاده نمیکنی و فایل wav?
                        همون چیزی که دایی
                        گفت
                        یعد ها هم خیلی به دردت میخوره
                        من این کار رو کردم با بیسیک
                        علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

                        دیدگاه


                          #27
                          پاسخ : تولید صدای اعداد توسط میکرو

                          اتفاقا آی سی که خریدی قابل آدرس دهیه!
                          در این فایل کامل توضیح داده:
                          http://www.vla.com.br/news/I1700%20Design%20Guide%20Rev%201.1.pdf
                          اما مشکل فلاشرت دقیقا مشخص نیست چیه. احتمالا باید شماتیک بزاری و مشکل رو بهتر توصیف کنی.
                          با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

                          دیدگاه


                            #28
                            پاسخ : تولید صدای اعداد توسط میکرو

                            نوشته اصلی توسط اٌمید حبیبی
                            چرا از mmc استفاده نمیکنی و فایل wav?
                            همون چیزی که دایی
                            گفت
                            یعد ها هم خیلی به دردت میخوره
                            من این کار رو کردم با بیسیک
                            من هم مایلم هم با روش شما و هم با آی سی ضبط و پخش این کار را بکنم. من هم با بیسیک کار می کنم. ممنون میشم اگه بیشتر راهنمایی کنید.

                            دیدگاه


                              #29
                              پاسخ : تولید صدای اعداد توسط میکرو

                              آقا آمید پس جواب ندادین.

                              دیدگاه


                                #30
                                پاسخ : تولید صدای اعداد توسط میکرو

                                ابن فدر سادست که من کدش رو کامل میزارم
                                تو این کد من خودم یه صدای انگلیسی 0 تا 9 رو بدون کوچکترین وقفه و پشت سر هم پخش کردم(یه کالر ایدی ساختم میخواستم شکاره رو بخونه)

                                فقط بگم این رو من با vs1003 پخش کردم و فرمت mp3 رو پخش کردم چون کیفیت صدا واسم مهم بود
                                کل خیلی طولانی هست ولی به جز کد main باقیش رو نظمه و فقط main یه کم coment داره :icon_razz: و یه سری از توابع مهم نیست و واسه چیزهای دیگست و جدی نگیر
                                :read:
                                کد:
                                '          **** In The Name Of God ****
                                
                                'desined by O&H team's  Omid Habibi & H.Ir [iran-shiraz]
                                
                                '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                                
                                '#####desined by O&H team --> Omid Habibi & H.Ir [IRAN-SHIRAZ]#####
                                
                                
                                
                                
                                'something about our injucate board
                                'this board have this compo nent
                                'VS1003  RFM12bp  RFM12B  MMC  LCD2*16 DS1307 lm386
                                
                                'All the hardwere have code and tested
                                'vs1003 for this component we wrote the play and recorder code even u can
                                'choice the track with mmc_fat engine
                                
                                'for rfm12 i wrote the send & recive code and find the sub for test mode
                                
                                '####attention
                                'some code was wrote but hav'nt a hardwere because we made this board embedde
                                'you can find the pcb & schematic for other code in the www.eca.ir
                                'the pcb & schematic like MT88E43 for caller-id  and some thing elese like
                                'AD7780 even you can ask your question about this componnent of our teacher like
                                'MR.Ahmad Koohestani about analog component (for example ad7780 & other's ;)
                                '                www.eca.ir
                                '         you can visit me---^     ;)
                                
                                '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                                '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                                '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                                
                                $regfile = "M64def.dat"
                                $crystal = 14745600
                                
                                $swstack = 256
                                $hwstack = 256
                                $framesize = 512
                                
                                $baud = 1200                        'it's find for Caller_id mt88e43
                                
                                ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
                                Config Porta = Output
                                Config Portb = Output
                                Config Portc = Output
                                Config Porte = Output
                                Config Portf = Input                    '***b careful it's conected to mmc ;( first disconect pin in moterboard
                                Config Portg = Output
                                
                                ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
                                
                                Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.3 , Rs = Porta.2
                                Config Lcd = 16 * 2
                                Cursor Off : Cls
                                
                                '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                                
                                '$lib "mcsbyte.lbx"                     ' for smaller code
                                $lib "ds1307clock.lib"                   ' modified lib
                                Config Sda = Portd.1 : Config Scl = Portd.0
                                Const Ds1307w = &HD0                    ' Addresses of Ds1307 clock
                                Const Ds1307r = &HD1
                                Config Clock = Soft                     ' this will dim the bytes automatic
                                
                                '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                                Dim Vs_w As Byte
                                Dim Vs_r As Byte
                                Dim Vs_mode_ad As Byte
                                Dim Vs_bass_ad As Byte
                                Dim Vs_clock_ad As Byte
                                Dim Vs_aiaddr_ad As Byte
                                Dim Vs_vol_ad As Byte
                                Dim Vs_command As Byte
                                
                                Dim Data_high As Byte
                                Dim Data_low As Byte
                                Dim Buffer(512) As Byte
                                Dim S As String * 50
                                Dim S2 As String * 50
                                
                                Dim Spi_rec As Word
                                Dim Spi_val As Word
                                Dim Cmd_and As Word
                                Dim Send_data As Word
                                Dim Rec_data As Byte
                                Dim Rec As Word
                                Dim Rf_buffer(11) As Byte
                                
                                Dim Weekday As Byte
                                
                                Dim L As Long , D As Double
                                Dim B As Byte , Chk As Byte , J As Byte
                                Dim Ff As Byte
                                
                                Dim Hdat0 As Byte : Hdat0 = 7
                                Dim Hdat1 As Byte : Hdat1 = 8
                                '---------------------------------------------------------------------------------
                                Declare Sub Vs_reset()
                                Declare Sub Vs_init()
                                Declare Sub Vs_read()
                                Declare Sub Vs_write()
                                Declare Sub Vs_play()
                                Declare Sub Vs_record()
                                
                                Declare Sub Mmc_init()
                                Declare Sub Mmc_dir()
                                Declare Function Mmc_dir_select(s_dir As String)as String
                                
                                Declare Function Rf_wrt_cmd(byval Cmd As Word) As Word
                                Declare Sub Rf_init()
                                Declare Sub Rf_send(byval Abyte As Byte)
                                Declare Sub Rf_port_init()
                                Declare Sub Rf_recv()
                                Declare Sub Rf_data()
                                Declare Sub Rf_send_test()
                                Declare Sub Rf_recive_test()
                                
                                Declare Sub Clk_start()
                                
                                Declare Sub Ad7780()
                                
                                Declare Sub Main_menu()
                                
                                Declare Sub Caller_id()
                                '--------------------------------------------------------------------------------------
                                '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                                
                                Dreq Alias Pinb.5                      'b.5
                                Xrst Alias Portb.6                     'b.6
                                Xdcs Alias Portb.4                     'b.4
                                Xcs Alias Portb.0
                                Mosi Alias Portb.2
                                Sclk Alias Portb.1
                                Miso Alias Pinb.3
                                
                                Rf_sck Alias Portc.1
                                Rf_sdo Alias Pinc.0
                                Rf_sdi Alias Portc.2
                                Rf_sel Alias Portc.3
                                Rf_int Alias Pinc.4
                                Rf_tx Alias Portc.5
                                Rf_rx Alias Portc.6
                                
                                Mmc_gnd Alias Porta.1
                                Mmc_vcc Alias Porta.0
                                Led_blue Alias Portg.0
                                Led_red Alias Portg.1
                                Key_down Alias Pine.7
                                Key_up Alias Pine.6
                                
                                Config Key_up = Input : Config Key_down = Input : Set Porte.6 : Set Porte.7
                                
                                Config Mmc_vcc = Output
                                Config Mmc_gnd = Output
                                
                                Config Dreq = Input
                                Config Xcs = Output
                                Config Xdcs = Output
                                Config Xrst = Output
                                Config Mosi = Output
                                Config Miso = Input
                                Config Sclk = Output
                                
                                Config Rf_sck = Output
                                Config Rf_sdo = Input
                                Config Rf_sdi = Output
                                Config Rf_sel = Output
                                Config Rf_int = Input
                                Config Rf_tx = Output
                                Config Rf_rx = Output
                                Reset Rf_tx : Reset Rf_rx
                                
                                
                                Config Debounce = 150
                                
                                ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
                                '$include "Config_AVR-DOS.BAS"
                                $include "AVR-DOS.BAS"
                                $include "Config_MMC.bas"
                                
                                
                                If _min > 59 Then Call Clk_start
                                If _sec > 59 Then Call Clk_start
                                If _hour > 23 Then Call Clk_start
                                
                                Main:
                                '*******************************************************************************
                                '           it's my main program
                                '             by:omid habibi
                                '                ;)
                                
                                
                                'write your code here
                                
                                
                                'Do : Call Vs_play : Loop
                                'for example  ---^
                                Call Main_menu
                                
                                Cls : Lcd "Start" : Waitms 1
                                
                                Call Mmc_init
                                Cls : Lcd "Start2" : Waitms 1
                                'Call Vs_reset
                                Cls : Lcd "Start3" : Waitms 1
                                Call Vs_init
                                Cls : Lcd "Start4" : Waitms 1
                                
                                
                                
                                Dim Play_count As Byte
                                Dim Sss As String * 1
                                
                                
                                Replay_sound:
                                Cls : Home
                                Lcd "s is " ; S
                                Wait 2
                                
                                For Play_count = 0 To 9
                                Sss = Str(play_count)
                                S = Sss + ".MP3"
                                Ff = Freefile()
                                Cls : Home
                                Lcd "playing " : Lowerline : Lcd S ; " <<"
                                Open S For Binary As #ff                  ' should be 32 for binary
                                'Open "1.mp3" For Binary As #ff
                                Set Portg.0
                                Reset Portg.1
                                
                                                    'this is how simple it is
                                'Time$ = "00:00:00"
                                
                                Do
                                
                                Incr B
                                If B > 30 Then
                                
                                Toggle Portg
                                Incr _sec
                                If _sec > 59 Then
                                Incr _min
                                _sec = 0
                                End If
                                Locate 1 , 9 : Lcd Time$
                                
                                B = 0
                                End If
                                
                                
                                Get #ff , Buffer(1) , , 512
                                
                                  Reset Xdcs
                                  For L = 1 To 512
                                  Reset Xdcs
                                  Shiftout Mosi , Sclk , Buffer(l) , 1
                                  Set Xdcs
                                  Bitwait Dreq , Set
                                  Next L
                                  Set Xdcs
                                 If Key_down = 0 Then
                                  Vs_command = 0 : Data_high = 9 : Data_low = 0 : Call Vs_write
                                  Lowerline : Lcd "   bus   "
                                 End If
                                 If Key_up = 0 Then Goto Main
                                Loop Until Eof(#ff) <> 0
                                Close #ff
                                Next Play_count
                                
                                
                                
                                
                                Goto Replay_sound
                                '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                                
                                
                                
                                
                                
                                Call Main_menu
                                'this is all of my hardwere
                                'it;s was tested and it work's ;)
                                'for first time plz dont tuch the code and test your mainboard
                                'then you can play with code and be a perfect ;)
                                'i hope this code and hardwere be well for yourself
                                
                                'desined by O&H team's  omid habibi & havzhin iranpanah [iran-shiraz]
                                
                                
                                
                                '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                                '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                                
                                Sub Main_menu
                                
                                
                                Local All_sub_menu As Byte , Select_sub_menu As Byte
                                Dim Sub_menu(13) As String * 12
                                
                                
                                Remain:
                                Set Led_blue : Reset Led_red
                                All_sub_menu = 10                      'number of menu show
                                
                                Sub_menu(1) = ".MP3 player"
                                Sub_menu(2) = ".Caller ID "
                                Sub_menu(3) = ".RFM12 SEND"
                                Sub_menu(4) = ".RFM12 Recv"
                                Sub_menu(5) = ".MEMORY DIR"
                                Sub_menu(6) = ".RTC CLICK"
                                Sub_menu(7) = ".Ad7780 IC"
                                Sub_menu(8) = ".Recording "
                                Sub_menu(9) = ">>>>>>EXIT<<<<<"
                                Sub_menu(10) = ">>>>>>>><<<<<<<"
                                
                                
                                Select_sub_menu = 1 : Cls : Home : Lcd ">>1" ; Sub_menu(1) : Lowerline : Lcd "2" ; Sub_menu(2) : Locate 1 , 15 : Lcd "<<"
                                'Select_sub_menu = 7:Cls : Home : Lcd ">>7" ; Sub_menu(7) : Lowerline : Lcd "8" ; Sub_menu(8) : Locate 1 , 15 : Lcd "<<"
                                
                                
                                Do
                                
                                If Key_up = 0 Then
                                 Waitms 100
                                 If Key_up = 0 Then
                                  Toggle Portg
                                  Incr Select_sub_menu
                                   B = Select_sub_menu + 1
                                
                                  If B > All_sub_menu Then : B = All_sub_menu : Select_sub_menu = 1 : End If
                                
                                
                                
                                
                                  Cls : Home : Lcd ">>" ; Select_sub_menu ; Sub_menu(select_sub_menu) : Locate 1 , 15 : Lcd "<<" : Locate 2 , 1 : Lcd B ; Sub_menu(b)
                                 Waitms 100
                                 End If
                                End If
                                
                                Debounce Key_down , 0 , Sub_menu_chek
                                
                                Loop
                                
                                Sub_menu_chek:
                                
                                Cls : Home : Lcd "Processing..." : Lowerline : Lcd "choice is  " ; Select_sub_menu : Waitms 300 : Cls
                                Select Case Select_sub_menu
                                
                                Case 1
                                S = Mmc_dir_select(s) : Call Vs_init : Call Vs_play
                                
                                Case 2
                                Call Caller_id
                                
                                Case 3
                                Call Rf_send_test
                                
                                Case 4
                                Call Rf_recive_test
                                
                                Case 5
                                Call Mmc_dir
                                
                                Case 6
                                Cls : Home : Lcd "  " ; Time$ : Lowerline : Lcd "  " ; Date$ : Wait 3
                                
                                Case 7
                                Call Ad7780
                                
                                
                                Case 8
                                Call Vs_init
                                Call Vs_record
                                Do
                                Vs_command = 8
                                Call Vs_read
                                Home
                                Lcd Bin(data_high) ; Bin(data_low)
                                Lowerline
                                Vs_command = 9
                                Call Vs_read
                                Lcd Bin(data_high) ; Bin(data_low)
                                If Key_up = 0 Then Goto Remain
                                Toggle Portg
                                Loop
                                
                                
                                Case 9
                                Exit Sub
                                
                                End Select
                                
                                Goto Remain
                                
                                
                                
                                
                                
                                
                                
                                End Sub
                                
                                
                                
                                
                                
                                
                                '_______________________________________________________________________________
                                '_______________________________________________________________________________
                                
                                
                                '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                                
                                
                                
                                
                                Function Mmc_dir_select(s_dir As String * 16) As String * 16
                                
                                
                                Call Mmc_init                        'create file.list in MMC
                                
                                
                                
                                Local All_mp3_menu As Byte , Select_mp3_menu As Byte , Number_mp3 As Byte
                                Dim Sub_mp3(50) As String * 12
                                
                                S = Dir( "*.mp3")
                                Number_mp3 = 0
                                While Len(s) > 0
                                S = Dir() : Incr Number_mp3                 'here b is number of the mp3 file's
                                If Len(s) < 13 Then Sub_mp3(number_mp3) = S
                                Wend
                                
                                
                                Sub_mp3(number_mp3 + 1) = Str(number_mp3) + " MP3 File"
                                'Sub_mp3(number_mp3 + 2) = "------------"
                                
                                Remain_mp3:
                                Set Led_blue : Reset Led_red
                                All_mp3_menu = Number_mp3 + 1                'number of menu show
                                
                                
                                
                                
                                
                                Select_mp3_menu = 1 : Cls : Home : Lcd ">>" ; Sub_mp3(1) : Lowerline : Lcd Sub_mp3(2) : Locate 1 , 15 : Lcd "<<"
                                'Select_sub_menu = 7:Cls : Home : Lcd ">>7" ; Sub_menu(7) : Lowerline : Lcd "8" ; Sub_menu(8) : Locate 1 , 15 : Lcd "<<"
                                
                                
                                Do
                                
                                If Key_up = 0 Then
                                 Waitms 100
                                 If Key_up = 0 Then
                                  Toggle Portg
                                  Incr Select_mp3_menu
                                   B = Select_mp3_menu + 1
                                
                                  If B > All_mp3_menu Then : B = All_mp3_menu : Select_mp3_menu = 1 : End If
                                
                                
                                
                                
                                  Cls : Home : Lcd ">>" ; Sub_mp3(select_mp3_menu) : Locate 1 , 15 : Lcd "<<" : Locate 2 , 1 : Lcd Sub_mp3(b)
                                 Waitms 100
                                 End If
                                End If
                                
                                Debounce Key_down , 0 , Sub_mp3_chek
                                
                                Loop
                                
                                
                                Sub_mp3_chek:
                                If Select_mp3_menu > Number_mp3 Then Goto Remain_mp3
                                Mmc_dir_select = Sub_mp3(select_mp3_menu)
                                
                                
                                
                                
                                
                                
                                End Function
                                
                                '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                                
                                
                                
                                
                                Sub Mmc_init()
                                
                                Set Mmc_vcc : Set Mmc_gnd : Waitms 100
                                B = Drivereset() : B = Driveinit()
                                $external Waitms
                                If Gbdriveerror <> 0 Then
                                Cls : Lcd "Error Config" : Lowerline : Lcd Gbdriveerror : Wait 3
                                End If
                                
                                B = Initfilesystem(1)                    'init file system
                                If B <> 0 Then
                                 Cls : Lcd "  Error MMC" ; B : Wait 3
                                End If
                                End Sub
                                
                                
                                '_______________________________________________________________________________
                                '_______________________________________________________________________________
                                '_______________________________________________________________________________
                                '_______________________________________________________________________________
                                '----------------------------vs_sub and function's------------------------------
                                '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                                Sub Vs_record()
                                
                                       'alan ma roy oon 800 rikhtim yami faghat halate spi ro 1 kardim hala
                                       '800= &b0 0 0 0  1 0 0 0  0 0 0 0   0 0 0 0
                                            '------------------------------------------line in for record     ****
                                             '----------------------------------------filtere bala gozar    *****
                                              '--------------------------------------fal boodane adpcm record ****
                                                '---------------------------------halate spi       ****
                                                 '-------------------------------eshterak gozarie faal sazie sdi
                                                  '-----------------------------tartibe vroodie sdi
                                
                                                             '--------reset soft  ************
                                'Bit 0  == Mode ================^^^^^^^^^^^^
                                'Bit 1  == Status
                                'Bit 2  == boss
                                'Bit 3  == clockf
                                'Bit 4  == decode time
                                'Bit 5  == audata *dadehaye sotie goonagoon
                                'Bit 6  == wram dadehaye ram baray r/w
                                'Bit 7  == hdat0
                                'Bit 8  == hdat1
                                'Bit 9  == aiaddr
                                'Bit 10 == volume
                                'Bit 11 == AICTRL0
                                'Bit 12 == AICTRL1
                                'Bit 13 == AICTRL2
                                'Bit 14 == AICTRL3
                                
                                
                                Reset Xrst
                                Waitms 1
                                Set Xrst
                                Waitus 500
                                
                                Bitwait Dreq , Set
                                
                                
                                
                                Vs_command = 0
                                'data_high = &B01110000                    'for digital input                        '8
                                Data_high = &B00110000                   'for microphone
                                Data_low = 4
                                Call Vs_write
                                
                                
                                End Sub
                                
                                '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                                Sub Vs_play()
                                Call Mmc_init
                                Call Vs_reset
                                Call Vs_init
                                Ff = Freefile()
                                Cls : Home
                                Lcd "playing " : Lowerline : Lcd S ; " <<"
                                Open S For Binary As #ff                  ' should be 32 for binary
                                'Open "1.mp3" For Binary As #ff
                                Set Portg.0
                                Reset Portg.1
                                
                                                    'this is how simple it is
                                'Time$ = "00:00:00"
                                
                                Do
                                
                                Incr B
                                If B > 30 Then
                                
                                Toggle Portg
                                Incr _sec
                                If _sec > 59 Then
                                Incr _min
                                _sec = 0
                                End If
                                Locate 1 , 9 : Lcd Time$
                                
                                B = 0
                                End If
                                
                                
                                Get #ff , Buffer(1) , , 512
                                
                                  Reset Xdcs
                                  For L = 1 To 512
                                  Reset Xdcs
                                  Shiftout Mosi , Sclk , Buffer(l) , 1
                                  Set Xdcs
                                  Bitwait Dreq , Set
                                  Next L
                                  Set Xdcs
                                 If Key_down = 0 Then
                                  Vs_command = 0 : Data_high = 9 : Data_low = 0 : Call Vs_write
                                  Lowerline : Lcd "   bus   "
                                 End If
                                 If Key_up = 0 Then Goto Main
                                Loop Until Eof(#ff) <> 0
                                Close #ff
                                End Sub
                                '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                                Sub Vs_reset()
                                Vs_w = 2 : Vs_r = 3
                                Vs_command = 0 : Data_high = 0 : Data_low = 4
                                Call Vs_write
                                End Sub
                                '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                                Sub Vs_read()
                                Vs_r = 3
                                'Reset Xrst
                                'Waitms 1
                                'Set Xrst
                                'Waitus 500
                                'Bitwait Dreq , Set
                                
                                Reset Xcs
                                Shiftout Mosi , Sclk , Vs_r , 1
                                Shiftout Mosi , Sclk , Vs_command , 1
                                Data_high = 12 : Data_low = 12
                                Shiftin Miso , Sclk , Data_high , 1
                                Shiftin Miso , Sclk , Data_low , 1
                                
                                Set Xcs
                                Waitus 500
                                Bitwait Dreq , Set
                                
                                End Sub
                                '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                                Sub Vs_write()
                                
                                
                                
                                 Vs_w = 2
                                Reset Xcs
                                Shiftout Mosi , Sclk , Vs_w , 1
                                Shiftout Mosi , Sclk , Vs_command , 1
                                
                                Shiftout Mosi , Sclk , Data_high , 1
                                Shiftout Mosi , Sclk , Data_low , 1
                                
                                Set Xcs
                                Waitus 500
                                Bitwait Dreq , Set
                                
                                End Sub
                                
                                '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                                Sub Vs_init()
                                Vs_w = 2
                                Vs_r = 3
                                Vs_mode_ad = 0                       'neshanie sabat
                                
                                
                                'alan ma roy oon 800 rikhtim yami faghat halate spi ro 1 kardim hala
                                '800= &b0000100000000000
                                '---------^line in for record     ****
                                '----------^filtere bala gozar
                                '-----------^fal boodane adpcm record ****
                                '------------^halate spi       ****
                                '-------------^eshterak gozarie faal sazie sdi
                                '--------------^ tartibe vroodie sdi
                                '---------------^
                                
                                ' kole 16 bit in goone ast
                                
                                Vs_bass_ad = 2
                                Vs_clock_ad = 3
                                Vs_aiaddr_ad = 10
                                Vs_vol_ad = 11
                                
                                
                                Set Xcs
                                Set Xdcs
                                Set Xrst
                                Bitwait Dreq , Set
                                
                                
                                
                                
                                
                                Reset Xrst
                                Waitms 1
                                Set Xrst
                                Waitus 500
                                
                                Bitwait Dreq , Set
                                
                                
                                Vs_command = Vs_mode_ad
                                
                                'data_high = &B00110000:data_low = 4
                                Data_high = 8 : Data_low = 0
                                Call Vs_write
                                
                                Vs_command = Vs_clock_ad
                                'data_high = &H80 : data_low = 0
                                Data_high = &B11111011 : Data_low = &B11101000       'for 12mhz crystal
                                Call Vs_write
                                
                                Vs_command = Vs_aiaddr_ad
                                Data_high = 0 : Data_low = 0
                                Call Vs_write
                                
                                Vs_command = Vs_vol_ad
                                Data_high = 0 : Data_low = 0
                                Call Vs_write
                                
                                'Reset Xcs
                                'Spiout Vs_w , 1
                                'Spiout Vs_bass_ad , 1                    'Tanzime Bass va Treble
                                'data_high = &H80
                                'data_low = 0
                                'Spiout data_high , 1
                                'Spiout data_low , 1
                                'Set Xcs
                                'Waitus 500
                                'Bitwait Dreq , Set
                                
                                End Sub
                                علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

                                دیدگاه

                                لطفا صبر کنید...
                                X