السلام عليكم ورحمة الله وبركاته
بسم الله ماشاء الله لاقوة الا بالله …نرجو من الله ان يبارك لك وينفعك بما علمك
سنجرب ونعاود الكرة لتكملة البرنامج ان شاء الله
السلام عليكم ورحمة الله وبركاته
جزاكم الله بكل خير اخي الحبيب تم تصحيح الكود كالتالي
-------------------------------------
[SIZE=2][LEFT]scan_swich:
if up = [/size]0 then sw_up
if down = 0 then sw_down
if stor = 0 then sw_stor
return
sw_up:
pause 300
if up = 0 then sw_up
wa = wa + 1
return
sw_down:
pause 300
if down = 0 then sw_down
wa = wa - 1
return
sw_stor:
pause 300
if stor = 0 then sw_stor
ewrite 1,[wa]
return
--------------------------------------[/left]
السلام عليكم ورحمة الله وبركاته
هذه صورة البورد بعد تجميعها
وان شاء الله حين يتم تصحيح كل الأخطاء البرمجيه سنضع الملف كامل تحت يد الأخوة الزملاء ونساعد كل من يحتاج اليه
[SIZE=2]
scan_swich:
if up =
[/size]
[SIZE=2]
if down =
[/size]
[SIZE=2]
if stor =
[/size]
[SIZE=2]
[LEFT]return
sw_up:
pause 1[/size]00
gosub display
[SIZE=2]
[LEFT]if up = 0 then sw_up
wa = wa + 1
sw_down:
pause 100[LEFT]gosub display[/left]
[LEFT]if down = 0 then sw_down
wa = wa - 1
sw_stor:
pause 100
gosub display
ewrite 1,[wa]
return
[/left]
[/left]
[/size]
[/left]
السلام عليكم ورحمة الله وبركاته
جزاكم الله عني خير الجزاء ونرجو من الله ان يجعل جهدك هذا في سجل حسناتك
جربت الكود ولكنه يجعل الشاشة تومض كفلاش متقطع في حالة ضغط الزر
وأظن ان في بارامترات الأمر Button مايحل هذه المسئلة
وجزاكم الله بكل خير
السلام عليكم لا اعتقد لا اعتقد ان ذلك في هو الحال button ممكن تصغر الpause
يعني ممكن البرنامج التالي
if up =
0 then sw_up
[SIZE=2]
if down =
[/size]
0 then sw_down
[SIZE=2]
if stor =
[/size]
[LEFT]0 then sw_stor[SIZE=2]
return
sw_up:
[LEFT]pause 1[/size]0
gosub display
[/left]
[SIZE=2]
[LEFT]if up = 0 then sw_up
wa = wa + 1
sw_down:
pause 10
[LEFT]if down = 0 then sw_down
wa = wa - 1
[LEFT]return
sw_stor:
pause 10
gosub display
if stor = 0 then sw_stor
ewrite 1,[wa]
return[/left]
[/left]
[/left]
[/size][/left]
السلام عليكم ورحمة الله وبركاته
بارك الله فيك اخي الحبيب تمت التجربه وكان الفلاش اسرع اي اشبه برعشة تظهر عند ضغط الزر
وهذا عند زمن 10 مللي ثانية
وتم تغيير الزمن الي 1 مللي ثانية فثبتت القراءة عند ضغط الزر
نرجو من الله ان يجزيك بكل خير وهنا نكون انتهينا من الشق الأول في البرنامج الشق الثاني هو استخدام خاصية PWM نريد ان نتحكم بها في سرعة الموتور أوإضاءة االمبات فما هي القيم المناسبة لهذا
وجزاكم الله بكل خير
اخي عبادة انا اعتقدالأن يجب ان تستخدم البرمجة للpwm بدل استخدام الأمر الجاهز الذي هو بالبيك بيسك ,
ما هو نوع المايكرومونترولر الذي المشروع؟
ما التردد الذي تريده؟
السلام عليكم ورحمة الله وبركاته
جزاكم الله بكل خير علي سعة صدرك وتحملك لكثرة الأسئله
هذا نموذج الهارد وير المستخدم
وفيه استخدم PIC16F84 واظن ان تردد 1000 هرتز يكفي او نجرب به حتي نصل الي القيمة المناسبة
وجزاكم الله بكل خير
السلام عليكم اعتقد ان الأمر الموجود بال Picbasic لا يفي بالغرض في هذا المشروع يجب استخدام التايمر لعمل الpwm ذلك لأن ال امر ال Pwm يشغل المايكرو كونترولر بالمقابل التايمر لا
السلام عليكم ورحمة الله وبركاته
فكيف نقوم بذلك
وهل يصح هذا البرنامج التالي ليوفي بالغرض
device=16f84a
DEFINE OSC 4
TRISB = %00000000
Dim StordVal as byte
dim a as byte
Speed=eread 1
for a=0 to 1
if a=0 then
portb=Speed dig 0
porta=%01
delayms 50
porta=%11
endif
if a=1 then
portb=Speed dig 1
porta=%10
delayms 50
porta=%11
endif
next a
gosub ButnChk
goto main
[LEFT]ButnChk:
if porta.2=0 then Speed=Speed+1
if porta.3=0 then Speed=Speed-1
if porta.4=0 then ewrite 1,[Speed]
return
end
وجزاكم الله بكل خير[/left]
اخي برنامجك الأصلي يعمل على شغل المايكروكونترولر وحساب الزمن يكون صعب بما اننا لم نستخدم الأسمبلي ان شاء الله سأقول لك كيف يتم عن طريق التايمر
و السلام عليكم
بارك الله فيك اخي الحبيب وفي انتظار رأيك ان شاء الله
بارك الله بك ونحن بانتظار المزيد
السلام عليكم
منأسف للتأخر بالرد بسبب السفر
الكود والسميوليشن بالملحقات
بارك الله فيك اخي الحبيب وجزاكم بكل خير تم التحميل وبعد التجربه بإذن الله لنا نقاش فيه
نرجو من الله ان يعيننا علي ذكره وشكره وحسن عبادته
وان يتقبل منا الصيام والقيام وكل عمل يرضي به عنا…اللهم امين
thanks for you
الاخ الفاضل :
مشكور على كل هذه المجهودات العظيمة ولكن لدى استفسار بسيط
الا يكفى ان نكتب الامرlcd_init(portb)بدلا من كل هذه الاوامرdefine LCD_DREG PORTB
define LCD_DBIT 4
define LCD_RSREG PORTB
define LCD_RSBIT 2
define LCD_EREG PORTB
define LCD_EBIT 3
define LCD_BITS 4
define LCD_LINES 2
فانا أعتقد ان المبرمج يفهم تلقائيا ان الشاشة تعمل ب4bit واذا اردنا العمل باستخدام8bit فإننا نكتب الامرlcd8_init(portb).ام انه لابد من تعريفها كل طرف على حدى.
وشكرا لسعة صدرك فانا بدأت فى تعلمها حديثا
استاذ كبير وعمل اكثر من رائع
اخى جزاك الله خيرا ولكن كيف يمكننى الحصول على هذا البرنامج او البيك بيسيك برو كومبيلر وبالمناسبه انا لدى برنامج بيك بيسك بروتون ولكن اتمنى ان اتابع معكم على نفس البرنامج اللذى تقترحه