امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
lcdگرافیکی ازنوعsed
نویسنده پیام
belanko آفلاین
كاربر تک ستاره
*

ارسال‌ها: 31
موضوع‌ها: 7
تاریخ عضویت: بهمن ۱۳۸۸

تشکرها : 21
( 20 تشکر در 16 ارسال )
ارسال: #1
lcdگرافیکی ازنوعsed
سلام به همه مهندسین فروم.
بعد از کلی زور زدن وخوندن مطالب بسیار در مورد میکرو بالاخره یک برنامه نوشتم که اون چیزی رو که میخام با زدن کلید مربوطه،روی glcdنشون بده.
این برنامش هست!
کد php:
$regfile "m32def.dat"
$crystal 8000000


$lib 
"glcdKS108.lbx"
Config Graphlcd 128 64sed Dataport Porta Controlport Portc Ce Ce2 Cd Rd Reset Enable 2
Cls

Config Adc 
Single Prescaler Auto Reference Internal

Start Adc


Config Portd.3 
Input 'switch echo
Config Portd.2 = Output '
relay led echo

Config Portd.4 Input 'switch wireless
Config Portd.1 = Output '
relay wireless
Config Portd.0 
Output 'led wireless





Main:





Portd.3 = 1
Portd.4 = 1



Debounce Pind.3 , 0 , M1
If Pind.3 = 1 Then Portd.2 = 0
If Pind.3 = 1 Then Cls


Debounce Pind.4 , 0 , M2
If Portd.4 = 1 Then Goto M3
If Pind.4 = 1 Then Cls





M1:
Set Portd.2
Showpic 0 , 0 , M4
Waitms 1000
Cls
Showpic 100 , 0 , M5
lcdat 2,1,"mohammad"
Debounce Pind.4 , 0 , M2
If Portd.4 = 1 Then Goto M3

Goto Main



M2:
Portd.0 = 1
Showpic 0 , 0 , M4
Waitms 1000
Portd.1 = 1
Cls
Showpic 100 , 10 , M5

Return





M3:
Portd.1 = 0
Portd.0 = 0

Goto Main





M4:
$bgf "bnnnn.bgf"

M5:
$bgf "bnnnn1.bgf" 
طرز کارش هم اینطوری هست که با زدن یک کلیدزیر شاخه m1رو اجرا میکنه وبا زدن یک کلید دیگه میاد وm2رو اجرا میکنه.
حالا مشکلی که هست اینه که وقتی می خام با دستور"lcdat 2,1,"mohammad یک متن بنویسم،روی lcdنشون نمیده ومیریزه به هم.
ومشکل دوم اینه که تو زیر شاخه m2 فقط تا سه خط اولش اجرا میشه وبقیش رواجرا نمی کنه.
حالا از دوستان خواهش میکنم در جهت رفع این مشکل نظر بدن.
ممنونHeart


فرمان دادم بدنم را بدون تابوت ومومیایی به خاک بسپارند تا اجزاء بدنم ذرات خاک ایران را تشکیل دهد.(کورش کبیر)

[تصویر:  7142856ed0dce7f5a52360bab7054ed3.jpg]
۱۲-شهریور-۱۳۸۹, ۲۳:۰۶:۳۹
ارسال‌ها
پاسخ
تشکر شده توسط : WhiteNoise
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #2
RE: lcdگرافیکی ازنوعsed
یکم برنامتو تشریع می کنی !
نمیشه فهمید چی به چیه !!

این حلقه اصلی برنامه ات کدومه !!

واسه M2 از gosub استفاده نکردی که return گذاشتی و احتمالا ایراد اینه !!!

فکر کنم بشه برنامتو اینجوری کردش :

کد php:
$regfile "m32def.dat"
$crystal 8000000

$lib 
"glcdKS108.lbx"
Config Graphlcd 128 64sed Dataport Porta Controlport Portc Ce Ce2 Cd Rd Reset Enable 2
Cls

Config Adc 
Single Prescaler Auto Reference Internal

Start Adc


Config Portd.3 
Input                                      'switch echo
Config Portd.2 = Output                                     '
relay led echo

Config Portd.4 Input                                      'switch wireless
Config Portd.1 = Output                                     '
relay wireless
Config Portd.0 
Output                                     'led wireless
Portd.3 = 1
Portd.4 = 1

Main:

   Portd.1 = 0
   Portd.0 = 0

do
   Debounce Pind.3 , 0 , M1
   Debounce Pind.4 , 0 , M2 , Gosub
Loop

M1:
   Set Portd.2
   Showpic 0 , 0 , M4
   Waitms 1000
   Cls
   Showpic 100 , 0 , M5
   Lcdat 2 , 1 , "mohammad"
Goto Main

M2:
   Portd.0 = 1
   Showpic 0 , 0 , M4
   Waitms 1000
   Portd.1 = 1
   Cls
   Showpic 100 , 10 , M5
Return

M4:
$bgf "bnnnn.bgf"

M5:
$bgf "bnnnn1.bgf" 
۱۳-شهریور-۱۳۸۹, ۰۰:۱۲:۰۷
ارسال‌ها
پاسخ
تشکر شده توسط : رسول, reza555, salehjg, WhiteNoise
belanko آفلاین
كاربر تک ستاره
*

ارسال‌ها: 31
موضوع‌ها: 7
تاریخ عضویت: بهمن ۱۳۸۸

تشکرها : 21
( 20 تشکر در 16 ارسال )
ارسال: #3
RE: lcdگرافیکی ازنوعsed
ببین مهندس،هدف من ازنوشتن این برنامه اینه:
در مدارما دوتا کلید ویک GLCD ودوتا رله ودوتاled داریم،حالا: 1- با زدن کلید شماره یک، یک عکس بزرگ روی lcdظاهر شود که نشان دهنده این است که کلید 1زده شده وپس از یک ثانیه عکس بزرگ برود ویک عکس کوچک کنار صفحه بماند که همواره نشان بده هنوز کلید1روشن است.
البته در همان لحظه که کلید1روشن می شود باید یک رله ویه ledهم روشن شود.
2-حال فرض بر این است که کلید 1خاموش است و این بارکلید2را میزنیم وهمان مراحل کلید یک باید تکرار شود منتها فقط رله2 یک ثانیه دیرتر روشن شود یعنی یک تاخیر در روشن شدنش داشته باشد ولی ledومراحل روی lcdباید در همان لحظه اتفاق بیافتد.
این تا اینجای کار!!!!!!!!!
حالا چون ما2تا کلید داریم پس واضح است که 4حالت رخ می دهد.دوحالتش که تشریح شد.
می مونه دو حالت دیگه یعنی یکبار کلید1وسپس 2روشن شود(باهم) یااینکه کلید2وسپس1روشن شود(باز هم باهم) که در هرحال باید همه مراحل حالت یک ودو که در بالا اشاره شد انجام شود. در این حالت بعد از نشان دادن پشت سرهم عکس های بزرگ مربوط به هر کلیدکه می آیندویک ثانیه بعد می روند باید عکس های کوچک همزمان روی صفحه بمانند که بیننده با نگاه بهlcdمتوجه شود که هر دوکلید همزمان روشن هستند.
حالا من برنامشو نوشتم ولی یه جاهایی برنامه قاطی میشه.فایل شبیه سازیش رو هم آماده کردم اگه لازم هست بزارم ولی بلد نیستم چطوری باید بیارمش تو تاپیک!!!
دوستان لطفا راهنمایی کنن028Exclamation

فرمان دادم بدنم را بدون تابوت ومومیایی به خاک بسپارند تا اجزاء بدنم ذرات خاک ایران را تشکیل دهد.(کورش کبیر)

[تصویر:  7142856ed0dce7f5a52360bab7054ed3.jpg]
۱۵-شهریور-۱۳۸۹, ۰۰:۱۶:۱۳
ارسال‌ها
پاسخ
تشکر شده توسط : WhiteNoise


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  شمارنده معکوس رو Lcdگرافیکی حین خاموش روشن شدن led های یک پورت armin111 1 3,433 ۰۷-بهمن-۱۳۹۵, ۰۹:۵۸:۱۹
آخرین ارسال: aKaReZa75
  نشان دادن ميزان متغير در ال سي دي گرافيكي ازنوعSED 0098 8 5,515 ۲۵-آذر-۱۳۹۰, ۲۳:۴۳:۲۰
آخرین ارسال: farshid_63

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS