اطلاعیه

Collapse
No announcement yet.

خاموش کردن اتوماتیک نور پشت زمینه LCD

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

    خاموش کردن اتوماتیک نور پشت زمینه LCD

    سلام دوستان
    من یه برنامه نوشتم که داره درست کار میکنه ولی میخوام که نور پشت زمینه LCD رو به این برنامه اضافه کنم که بعد از مدتی خاموش بشه و هر بار که دستور RUN و STOPو BEMETAL اجرا میشه صفحه برای 15 ثانیه روشن بمونه و بعد خاموش بشه من سورس برنامه رو میزارم دوستان کمک کنن
    ممنون از دوستان

    $regfile = "M8def.dat"
    $crystal = 8000000
    Config Pind.0 = Input
    Config Pind.1 = Input
    Config Portb.0 = Output
    Config Portb.6 = Output
    Config Portb.7 = Output
    Config Debounce = 30
    Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , _
    Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4
    Config Lcd = 16 * 2
    Cls
    Cursor Off
    Locate 1 , 4
    Lcd "DESIGN OF"
    Waitms 150
    Home L
    Locate 2 , 1
    Lcd "ALI REZA"
    Waitms 400
    Cls
    Locate 1 , 5
    Lcd "PELIKAN"
    Locate 2 , 4
    Lcd "Ref . Sys"
    Waitms 400
    Cls
    Locate 1 , 3
    Lcd "TIMER 500 ms"
    Locate 2 , 5
    Lcd "ver:3.0"
    Waitms 400
    Cls
    Do
    Debounce Pind.0 , 0 , Khamosh , Sub
    Debounce Pind.0 , 1 , Roshan , Sub
    Debounce Pind.1 , 1 , Bemetal1 , Sub
    Loop
    End


    Roshan:
    Locate 1 , 4
    Lcd "TIMER RUN"
    Waitms 20
    Set Portb.6
    Waitms 50
    Set Portb.7
    Return


    Khamosh:
    Reset Portb.6
    Reset Portb.7
    Locate 1 , 4
    Lcd "TIMER OFF"
    Return


    Bemetal1:
    Set Portb.0
    Waitms 100
    Reset Portb.0
    Home L
    Lcd "desConnect Shunt"
    Return

    #2
    پاسخ : خاموش کردن اتوماتیک نور پشت زمینه LCD

    اگه پایه های بی کاری داره 4 تا پایه رو خروجی تعریف کن با هم موازی کن
    و به تغذیه ال سی دی بده همون led بک گراند موقع روشن شدن ست کن و بعد از 15 ثانیه ریست کن
    اگه یه پایه بیکاره باید از ترانزیستور نیمه قدرت با جریان حدود 200 میلی امپر استفاده کنی مثل bc139
    البته فکر کنم c945 هم بتونه درایو کنه :bye
    [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

    دیدگاه


      #3
      پاسخ : خاموش کردن اتوماتیک نور پشت زمینه LCD

      میخوام از زمانی که دستگاه به برق وصل میشه LCD روشن بشه و تا زمانی که به دستور کلید ها میرسه روشن باشه حالا اگر وضعیت کلید خاموش باشه LCD هم به از 15 ثانیه خاموش بشه ولی اگر کلید در وضعیت روشن قرار گرفت مدار کارشو انجام بده و هم نور پشت زمینه روشن بشه و بعد از 15 ثانیه خاموش بشه . بطور کلی اگه بخوام بگم , نور پشت زمینه زمان اجرای هر دستوری روشن بشه و بعد 15 ثانیه خاموش بشه

      دیدگاه


        #4
        پاسخ : خاموش کردن اتوماتیک نور پشت زمینه LCD

        یه سوال هنوز این برنامر نخوندم خودت نوشتی یا نه ؟
        :bye
        [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

        دیدگاه


          #5
          پاسخ : خاموش کردن اتوماتیک نور پشت زمینه LCD

          آره . چطور؟

          دیدگاه


            #6
            پاسخ : خاموش کردن اتوماتیک نور پشت زمینه LCD

            یه حلقه دو لوپ بزار خارج از متن اصلی
            تو حلقه بنویس اگه کلیدی فشار داده شد
            متغیر a=0
            در هر بار چر خش حلقه 50 میلی ثانیه wait بزار
            در هر حلقه incer a یادت نره
            وقتی a به یه عدد مثل 1000 رسید ریسد تکن پایه های تغذیه بک گراند ال سیدی
            اگه aکوچکتر از 1000 بود ست کن تغذیه ال سی دی رو
            اگه هر کیلی دی فشار دادده شده a=0
            خدت بشین بنویس
            تو 4 خط میشه نوشت
            متغیرت هم از نوع ورد باشه :bye
            [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

            دیدگاه


              #7
              پاسخ : خاموش کردن اتوماتیک نور پشت زمینه LCD

              دوست عزیز ممنون که پیگیر هستی
              من امروز اینقدر دستورات مختلف رو تست کردم که دیگه قاطی کردم میشه لطف کنی این توضیحی که دادی ,
              دستورشو بنویسی در ضمن من تو برنامه LOOP دارم که؟

              دیدگاه


                #8
                پاسخ : خاموش کردن اتوماتیک نور پشت زمینه LCD

                اگه میخوای در حین اینکه ال-سی-دی توی اون 15 ثانیه هست کار دیگه ای هم بکنی , باید از تایمر استفاده کنی . مثلا یه متغیر Flag تعریف کنی که هر بار که کلید فشار داده شد اون flag رو صفر کنه و توی تایمرت توی هر بار Overflow شدن اگر این Flag از یه عددی (متناسب با فرکانس تایمر - چند بیتی بودن تایمر و 15 ثانیه) بیشتر بود BACKLIGHT رو خاموش کنه و در غیر این صورت روشن کنه و متغیر Flag رو یه دونه افزایش بده .
                فرق ما با جهان غرب در اینه که اونا هیچی نمیدونن! و تحقیق میکنند ولی ما همه چیزو می دونیم! و تحقیق برای ما معنی نداره!!!!!!!!!!!! .(از یه آدم اینکاره)

                دیدگاه


                  #9
                  پاسخ : خاموش کردن اتوماتیک نور پشت زمینه LCD

                  دوست عزیز من برنامه نویسییم زیاد قوی نیست لطفا اینارو که گفتی بصورت دستور بنویسی ؟ که تست کنم .آخه برنامه فردا باید تحویل بدم

                  دیدگاه


                    #10
                    پاسخ : خاموش کردن اتوماتیک نور پشت زمینه LCD

                    اینو چک کن ببین میشه ؟ فقط کلاک میکرو باید روی 8000000 مگ فیوز بیتاش تنظیم باشه و توی خط 4ام به جای پرت b.0 پورت ال-سی-دی رو بذاری .
                    $regfile = "M8def.dat"
                    $crystal = 8000000

                    '458 = ((8000000/1024/256)*15)
                    Lcd_bl_delay Alias 458
                    'the pin number that is connectet to the Backlight of lcd . for example PORTB.0
                    Lcd_bl_port Alias Portb.0


                    Config Pind.0 = Input
                    Config Pind.1 = Input
                    Config Portb.0 = Output
                    Config Portb.6 = Output
                    Config Portb.7 = Output
                    Config Debounce = 30
                    Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , _
                    Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4
                    Config Lcd = 16 * 2
                    Cls
                    Cursor Off

                    'Config The Timer0 as a timer
                    Config Timer0 = Timer , Prescale = 1024
                    Enable Interrupts
                    Enable Ovf0
                    On Timer0 Lcd_bl_control
                    Start Timer0

                    'The values
                    Dim Lcd_bl_flag As Long
                    Lcd_bl_flag = Lcd_bl_delay + 1

                    Locate 1 , 4
                    Lcd "DESIGN OF"
                    Waitms 150
                    Home L
                    Locate 2 , 1
                    Lcd "ALI REZA"
                    Waitms 400
                    Cls
                    Locate 1 , 5
                    Lcd "PELIKAN"
                    Locate 2 , 4
                    Lcd "Ref . Sys"
                    Waitms 400
                    Cls
                    Locate 1 , 3
                    Lcd "TIMER 500 ms"
                    Locate 2 , 5
                    Lcd "ver:3.0"
                    Waitms 400
                    Cls
                    Do
                    Debounce Pind.0 , 0 , Khamosh , Sub
                    Debounce Pind.0 , 1 , Roshan , Sub
                    Debounce Pind.1 , 1 , Bemetal1 , Sub
                    Loop
                    End


                    Roshan:

                    'Reset the timer counter
                    lcd_bl_flag=0

                    Locate 1 , 4
                    Lcd "TIMER RUN"
                    Waitms 20
                    Set Portb.6
                    Waitms 50
                    Set Portb.7
                    Return


                    Khamosh:

                    'Reset the timer counter
                    lcd_bl_flag=0

                    Reset Portb.6
                    Reset Portb.7
                    Locate 1 , 4
                    Lcd "TIMER OFF"
                    Return


                    Bemetal1:

                    'Reset the timer counter
                    lcd_bl_flag=0

                    Set Portb.0
                    Waitms 100
                    Reset Portb.0
                    Home L
                    Lcd "desConnect Shunt"
                    Return

                    'Timer Overflow Sub
                    Lcd_bl_control:

                    If Lcd_bl_flag > Lcd_bl_delay Then
                    Lcd_bl_port = 0
                    Else
                    Lcd_bl_port = 1
                    Incr Lcd_bl_flag
                    End If
                    Return
                    فرق ما با جهان غرب در اینه که اونا هیچی نمیدونن! و تحقیق میکنند ولی ما همه چیزو می دونیم! و تحقیق برای ما معنی نداره!!!!!!!!!!!! .(از یه آدم اینکاره)

                    دیدگاه


                      #11
                      پاسخ : خاموش کردن اتوماتیک نور پشت زمینه LCD

                      با سلام خدمت شما دوستان و AlirezaT
                      دیشب این قدر خسته بودم که برنامه ای که زحمتشو کشیده بودی نتونستم تست کنم بعد که صبح به دوستم زنگ زدم که بریم دانشگاه , گفت که امروز دانشگاه تعطیله بخاطر آلودگی هوا. به هرحال صبح برنامه رو تست کردم البته با پروتئوس . یه تغییراتی توی پورت b.0 دادم چون اون پین رو توی مدار استفاده کردم و شما که زحمت برنامه رو کشیده بودی از اون پورت استفاده کرده بودی به هر حال من همون پورت b.0 رو برای back light استفاده کردم .شما گفتین که کلاک میکرو روی 8000000 مگاهرتز که من فکر می کنم باید 8مگاهرتز باشه درسته؟ من توی تنظیمات کلاک در پروتئوس clock frequency رو روی 8mhz گذاشتم اجرای برنامه خیلی سریعتر انجام شد که مهم نیست ولی پورت b.0 که برای backlight در نظر گرفتین از زمان دستور اول روشن میشه و یک سره باقی میمونه در صورتی که بایستی در 15 ثانیه خاموش شه . آیا برای اجرا شدن TIMER0 در پروتئوس باید کار خاصی کنم؟ که این پورت B.0 دائم روشن میمونه
                      لطف کن برنامه رو بررسی کن . با تشکر

                      دیدگاه


                        #12
                        پاسخ : خاموش کردن اتوماتیک نور پشت زمینه LCD

                        موضوع تاپیک چی بود به کجا رسیده
                        واسه خاموش و روشن کردن backlight lcd باید بیس یه ترانزیستور c945.و بیس رو بدی به یه مفاومت 470 اهم و بدی به پایه میکرو.
                        کالکتور رو بدی به تغذیه و امیتر رو وصل کنی به پایه 15 ال سی دی
                        علم چندانکه بیشتر خوانی چون عمل در تو نیست نادانی

                        دیدگاه


                          #13
                          پاسخ : خاموش کردن اتوماتیک نور پشت زمینه LCD

                          با سلام اٌمید حبیبی عزیز
                          موضوع روشن کردن نور پشت زمینه lcd نیست , موضوع چطور روشن شدن نور پشت زمینه lcd هست
                          با یک مثال موضوع رو روشن می کنم حتما بعضی از دستگاهها رو دیدی که lcd داره دار میکنه ولی نور پشت زمینش خاموشه و زمانی که هر کلیدی که مربوط به اون دستگاه میشه رو بزنی نور پشت زمینه روشن میشه و زمانی که کارت تموم شد بعد از مدتی مثلا 15 ثانیه نور پشت زمینه خاموش میشه و این حالت همین طور ادامه داره.امیدوارم منظورمو رسونده باشم

                          دیدگاه


                            #14
                            پاسخ : خاموش کردن اتوماتیک نور پشت زمینه LCD

                            سلام
                            دوستانی که بیسیک کار میکنن میتونن کمک کنند

                            دیدگاه


                              #15
                              پاسخ : خاموش کردن اتوماتیک نور پشت زمینه LCD


                              oo: oo: oo: oo:

                              با درود . . .

                              خیلی ساده تر از ایناست. به شکل توجه کنید: (به جای 10 کیلو 3.3 بزارید)



                              اینم برنامه:

                              $regfile = "M8def.dat"
                              $crystal = 1000000

                              Config Timer0 = Timer , Prescale = 1024
                              Enable Interrupts
                              Timer0 = 157
                              Enable Ovf0
                              On Timer0 Light
                              Start Timer0

                              Dim A As Byte

                              Ddrd.0 = 1 : Portd.0 = 0
                              Ddrb.0 = 0 : Portb.0 = 1

                              L1 Alias Portd.0
                              Sw Alias Pinb.0

                              Do

                              If Sw = 0 Then
                              Waitms 50 : Set L1 : A = 0 : End If

                              Loop

                              End

                              '******************************************** ******************

                              Light:
                              Timer0 = 157
                              If A > 50 Then
                              Reset L1
                              Else
                              Set L1
                              Incr A
                              End If
                              Return



                              بدرود . . .

                              درد من تنهایی نیست؛ بلکه مرگ ملتی است که گدایی را قناعت، بی‏عرضگی را صبر، و با تبسمی بر لب این حماقت را حکمت خداوند می‏ نامند! "گاندی"

                              به دلیل وجود برخی مشکلات و بی احترامی ها این اکانت رو غیر فعال کردم. همیشه سر بلند باشید.
                              بدرود . . .

                              دیدگاه

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