۱۱-آذر-۱۳۸۸, ۱۸:۴۱:۰۰
۱۱-آذر-۱۳۸۸, ۱۹:۲۲:۲۳
اینم کنترل سه رنگ
فقط کافیه LED ها رو به پایه های 21 و 19 و 18 وصل کنی !
6 کلید هم برای تنظیم نورها باید بین پایه های 1 تا 6 و زمین قرار بگیرن !
نقشه برنامه فوق :
ال سی دی رو هم طبق برنامه وصل کنین دیگه !
کد php:
$regfile = "m16def.dat" : $crystal = 1000000
Config Lcdpin = Pin , Db7 = Pinc.5 , Db6 = Pinc.4 , Db5 = Pinc.3 , Db4 = Pinc.2 , E = Pinc.1 , Rs = Pinc.0
Config Lcd = 16 * 2 : Cursor Off : Cls
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 64
Config Timer2 = Pwm , Compare Pwm = Clear Down , Prescale = 64
Start Timer1 : Start Timer2
Ddrd = 255 : Ddrb = 0 : Portb = 255
Dim R As Byte , G As Byte , B As Byte
'===============================================================================
Do
Debounce Pinb.0 , 0 , Incr_r , Gosub
Debounce Pinb.1 , 0 , Decr_r , Gosub
Debounce Pinb.2 , 0 , Incr_g , Gosub
Debounce Pinb.3 , 0 , Decr_g , Gosub
Debounce Pinb.4 , 0 , Incr_b , Gosub
Debounce Pinb.5 , 0 , Decr_b , Gosub
Loop
'===============================================================================
Incr_r:
If R <> 255 Then Incr R
Pwm1a = R
Home : Lcd "R=" ; R ; " "
Return
Decr_r:
If R <> 0 Then Decr R
Pwm1a = R
Home : Lcd "R=" ; R ; " "
Return
'===============================================================================
Incr_g:
If G <> 255 Then Incr G
Pwm1b = G
Locate 1 , 9 : Lcd "G=" ; G ; " "
Return
Decr_g:
If G <> 0 Then Decr G
Pwm1b = G
Locate 1 , 9 : Lcd "G=" ; G ; " "
Return
'===============================================================================
Incr_b:
If B <> 255 Then Incr B
Compare2 = B
Locate 2 , 1 : Lcd "B=" ; B ; " "
Return
Decr_b:
If B <> 0 Then Decr B
Compare2 = B
Locate 2 , 1 : Lcd "B=" ; B ; " "
Return
'===============================================================================
فقط کافیه LED ها رو به پایه های 21 و 19 و 18 وصل کنی !
6 کلید هم برای تنظیم نورها باید بین پایه های 1 تا 6 و زمین قرار بگیرن !
نقشه برنامه فوق :
ال سی دی رو هم طبق برنامه وصل کنین دیگه !
۱۱-آذر-۱۳۸۸, ۲۲:۳۱:۵۹
آقای nader875 امیدوارم مشکلتون با زحمتی که علی آقا کشیدن حل بشه
هدف من خورده گرفتن نبود. منظورم میزان اعتباری که میشد بهش قائل شد، بود
2)اگه کسی فقط دو بار واسه LCD برنامه نوشته باشه متوجه میشه که انقدر لازم نیست از دستور locate استفاده كنه چون خودبخود كاراكتر بعدي يه دونه اون ورتر قرار ميگیره
هدف من خورده گرفتن نبود. منظورم میزان اعتباری که میشد بهش قائل شد، بود
(۱۱-آذر-۱۳۸۸, ۱۸:۴۱:۰۰)mehrdadgh نوشته است: [ -> ]اون فروم سایت بیسکامه !!!!!!!!!!!!!!!!!1) برنامه ای که علی آقا گذاشتن ببینین چند سطر داره برنامه ای که اونا گذاشتن!
2)اگه کسی فقط دو بار واسه LCD برنامه نوشته باشه متوجه میشه که انقدر لازم نیست از دستور locate استفاده كنه چون خودبخود كاراكتر بعدي يه دونه اون ورتر قرار ميگیره
کد php:
.
.
.
Locate 1 , 5
Lcd ":"
Waitms 30
Locate 1 , 6
Lcd "/"
Waitms 30
Locate 1 , 7
Lcd "/"
Waitms 30
Locate 1 , 8
Lcd "w"
Waitms 30
Locate 1 , 9
Lcd "w"
Waitms 30
.
.
.
۰۳-دى-۱۳۸۸, ۱۲:۳۵:۱۳
با سلام
منم تونستم با تایمر یک و تایمر دو یک خروجی برای rgb درست کنم ولی این پروژه که در سایت بیسکام گذاشته واقعا جالبه چون فقط از تایمر صفر استفاده کرده ولی ازش چیزی سردر نیاوردم .لطفا در این مورد منوهم راهنمایی کنید
منم تونستم با تایمر یک و تایمر دو یک خروجی برای rgb درست کنم ولی این پروژه که در سایت بیسکام گذاشته واقعا جالبه چون فقط از تایمر صفر استفاده کرده ولی ازش چیزی سردر نیاوردم .لطفا در این مورد منوهم راهنمایی کنید
۰۴-دى-۱۳۸۸, ۲۲:۰۹:۴۸
منم یه پروژه تو کتاب avr دیدم که میاد با پورت پرینتر و میکرو یه RGB led رو کنترل میکنه. اگه میخوایین تا بذارم.
۰۵-دى-۱۳۸۸, ۰۰:۰۷:۵۳
پرسش و نیکی !
۰۵-دى-۱۳۸۸, ۲۰:۴۱:۲۹
چشم.
تا آخر همین هفته.
تا آخر همین هفته.
۱۰-دى-۱۳۸۸, ۰۱:۱۸:۱۸
با سلام خدمت اساتید عزیز
ماشالله می بینم که به فروم سایت بیسکام ایراد میگیرید
اگه یکم بیشتر به برنامه دقت کنید و اون برنامه رو اجرا کنید متوجه میشید که نویسندش خیلی هم گاگول نبوده و منظورش از نوشتن برنامه به این صورت .
.
.
Locate 1 , 5
Lcd ":"
Waitms 30
Locate 1 , 6
Lcd "/"
Waitms 30
Locate 1 , 7
Lcd "/"
Waitms 30
Locate 1 , 8
Lcd "w"
Waitms 30
Locate 1 , 9
Lcd "w"
Waitms 30
.
.
.
افکتی بوده که اون دستور تاخیر ایجاد می کنه منتها بصورت ساده
ماشالله می بینم که به فروم سایت بیسکام ایراد میگیرید
اگه یکم بیشتر به برنامه دقت کنید و اون برنامه رو اجرا کنید متوجه میشید که نویسندش خیلی هم گاگول نبوده و منظورش از نوشتن برنامه به این صورت .
.
.
Locate 1 , 5
Lcd ":"
Waitms 30
Locate 1 , 6
Lcd "/"
Waitms 30
Locate 1 , 7
Lcd "/"
Waitms 30
Locate 1 , 8
Lcd "w"
Waitms 30
Locate 1 , 9
Lcd "w"
Waitms 30
.
.
.
افکتی بوده که اون دستور تاخیر ایجاد می کنه منتها بصورت ساده
۱۰-دى-۱۳۸۸, ۰۱:۵۴:۱۴
بازم دستور LOCATE ها رو اضافه گذاشته !
شما LOCATE ها رو پاک کن و برنامه رو تست کن و ببین که هیچ فرقی نمی کنه !
تازه می تونست متنشو تو یه رشته بریزه و تو یه حلقه بندازه و هر بار یه کارکترش رو نشون می داد !
اینطوری خط های برنامه خیلی خیلی کمتر می شد !
مخصوصا اگه قرار باشه متن طولانی باشه !
شما اگه متن زیر رو بنویسی با همین روش تو فکر می کنی چن خط می شه :
کد php:
WWW.IRANLED.COM
چون 15 کارکتره و هر کارکتر 3 خط می شه که در کل باید 45 خط بنویسه !
چقدرهم باید دقت کنی !
البته اگه LOCATE ها رو حذف کنیم می شه 30 خط که بازم زیاده !
حالا برنامه منو ببین که چند خط شده !!!
کد php:
$regfile = "m32def.dat" : $crystal = 1000000
Config Lcdpin = Pin , Db4 = Pinc.3 , Db5 = Pinc.2 , Db6 = Pinc.1 , Db7 = Pinc.0 , E = Pinc.4 , Rs = Pinc.5
Config Lcd = 16 * 2 : Cursor Off : Cls
Dim Ss As String * 16 , B As Byte
Ss = "WWW.IRANLED.COM "
For B = 1 To 15
Lcd Mid(ss , B , 1 )
Waitms 50
Next
End
اگه از کانفیگ های برنامه که همیشه هستش بگذریم اصل برنامه واسه اون قسمت فقط پنج خط شده !
کد php:
Ss = "WWW.IRANLED.COM "
For B = 1 To 15
Lcd Mid(ss , B , 1 )
Waitms 50
Next
چون فقط کافیه متغییر SS رو برابر متنمون قرار بدیم و دنگ فنگ برنامه فروم بسکام رو نداریم !
این برنامه و تستش در پروتئوس واسه اینکه باور کنید می شه کوتاهتر نوشت :
چقدر خوبه با تفکر به قضایا نگاه کنیم !
۱۲-دى-۱۳۸۸, ۰۱:۰۶:۵۷
جناب مدیر محترم سلام
درسته ما از بیسکام هیچی نمی دونیم
ولی شما بهتر می دونی که به روشهای دیگه هم می شه این کار رو انجام داد
من هم گفتم
{ افکتی بوده که اون دستور تاخیر ایجاد می کنه منتها بصورت ساده}
شاید نویسنده برنامه قصد خواصی داشته !؟!
با این حساب شما باید برای همه برنامه ایراد بگیری ، حتما بقیه برنامه رو هم خوندی مگه نه ؟
شما بهتر می دونی که اصلا کل این برنامه رو می شه توی چند خط تمومش کرد
پس به قول خودت
{{ چقدر خوبه با تفکر به قضایا نگاه کنیم ! }}
راستی خدمتتون عرض کنم من نیومدم جنگ و دوا سر یه موضوع به این بی ارزشی راه بدازم
راستش من اگه یه روزی ( اگه روزی معلوماتم زیاد شد ، که خوشبختانه هیچ کس نمی تونه بگه من علامه هستم وهمه چیز رو بلدم ) خواستم چیزی به کسی یاد بدم ، می گم بچه ها این برنامه رو می شه از این روش هم نوشت
بابت مثالهای که گذاشتید از طرف خودم تشکر می کنم .
سعی می کنم یاد بگیرم
درسته ما از بیسکام هیچی نمی دونیم
ولی شما بهتر می دونی که به روشهای دیگه هم می شه این کار رو انجام داد
من هم گفتم
{ افکتی بوده که اون دستور تاخیر ایجاد می کنه منتها بصورت ساده}
شاید نویسنده برنامه قصد خواصی داشته !؟!
با این حساب شما باید برای همه برنامه ایراد بگیری ، حتما بقیه برنامه رو هم خوندی مگه نه ؟
شما بهتر می دونی که اصلا کل این برنامه رو می شه توی چند خط تمومش کرد
پس به قول خودت
{{ چقدر خوبه با تفکر به قضایا نگاه کنیم ! }}
راستی خدمتتون عرض کنم من نیومدم جنگ و دوا سر یه موضوع به این بی ارزشی راه بدازم
راستش من اگه یه روزی ( اگه روزی معلوماتم زیاد شد ، که خوشبختانه هیچ کس نمی تونه بگه من علامه هستم وهمه چیز رو بلدم ) خواستم چیزی به کسی یاد بدم ، می گم بچه ها این برنامه رو می شه از این روش هم نوشت
بابت مثالهای که گذاشتید از طرف خودم تشکر می کنم .
سعی می کنم یاد بگیرم
۱۲-دى-۱۳۸۸, ۰۱:۲۷:۱۸
بین همه برنامه نویسها ، برنامه نویسی خوبتره که در کمترین خط ، بتونه دقیقترین و بی نقص ترین برنامه را بنویسه.