دورة بيك بيسيك عمليه

السلام عليكم ورحمة الله وبركاته
بسم الله ماشاء الله لاقوة الا بالله …نرجو من الله ان يبارك لك وينفعك بما علمك
سنجرب ونعاود الكرة لتكملة البرنامج ان شاء الله

السلام عليكم ورحمة الله وبركاته
جزاكم الله بكل خير اخي الحبيب تم تصحيح الكود كالتالي

-------------------------------------

[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]

0 then sw_up

[SIZE=2]

if down =

[/size]

0 then sw_down

[SIZE=2]

if stor =

[/size]

0 then sw_stor

[SIZE=2]

[LEFT]return

sw_up:

pause 1[/size]00

gosub display

[SIZE=2]

[LEFT]if up = 0 then sw_up

wa = wa + 1

return
sw_down:

pause 100[LEFT]gosub display[/left]

[LEFT]if down = 0 then sw_down

wa = wa - 1

return
sw_stor:
pause 100
gosub display

if stor = 0 then sw_stor
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

return
sw_down:

pause 10

gosub display

[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

TRISA = %11100
TRISB = %00000000

dim Speed as byte
Dim StordVal as byte
dim a as byte

Speed=eread 1

Main:
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).ام انه لابد من تعريفها كل طرف على حدى.

وشكرا لسعة صدرك فانا بدأت فى تعلمها حديثا

استاذ كبير وعمل اكثر من رائع

اخى جزاك الله خيرا ولكن كيف يمكننى الحصول على هذا البرنامج او البيك بيسيك برو كومبيلر وبالمناسبه انا لدى برنامج بيك بيسك بروتون ولكن اتمنى ان اتابع معكم على نفس البرنامج اللذى تقترحه