تشکر بابت آموزش زبان بیسیکAVR
من توانستم چند برنامه ساده را به زبان بیسیک بنویسم.حالا برنامه ای را منویسم که در آن از میکرو مگا8 و محیط بسکام استفاده می کنم ولی به اشکالاتی برخورد کرده ام که امیدوارم با کمک شما رفع گردد.بدین صورت که یک برنامه یا بهتر بگویم زیر برنامه تحت نام GREEN یا سبز و یک برنامه تحت عنوان RED یا قرمز نوشته ام .مدار شامل یک کلید سه پایه دو حالته الاکلنگی (حالت1وحالت2) میباشد که پایه وسط این کلید به پین شماره 23 مگا8 وصل است وLCD2X16 بعد از روشن شدن ابتدا عبارت NAME OF GOD را مینویسد و پاک میشود سپس کلمه GREEN نوشته می شود و 2 ثانیه بعد پاک می شود و بعد کلمه RED نوشته شده و 2 ثانیه بعد پاک می شود و دوباره کلمه GREEN و بعدRED و دوباره(حالت DO-LOOP).می خواهم با زدن کلید از حالت 1 به2 زمانی که کلمه GREEN روی LCD وجود دارد برنامه GREEN اجرا شود و مدار را که خاموش کردم و دوباره روشن کردم و سیکل تکرار شد و کلمه RED روی LCD نوشته شد با زدن کلید برنامه RED اجرا شود.آیا لازم است برای همه حالات این برنامه میکرو و کریستال را تعریف کنم.لطفا مر راهنمایی کنید. فایل هر دو زیر برنامه را در این متن نیز فرار میدهم.با تشکر
RED:
$regfile = "m8def.dat"
$crystal = 8000000
Config Timer1 = Timer , Prescale = 1
Stop Timer1
Config Portb = Output
Config Portd = Output
Portb.1 = 0
Portd.6 = 0
Portd.7 = 0
Dim A As Word
Startline1:
Start Timer1
A = 0
Portb.1 = 1
Do
A = A + 1
Loop Until A = 100
Portb.1 = 0
A = 0
Do
A = A + 1
Loop Until A = 45
A = 0
Portd.6 = 1
Do
A = A + 1
Loop Until A = 45
A = 0
Portd.6 = 0
Do
A = A + 1
Loop Until A =300
A = 0
Portd.7 = 1
Do
A = A + 1
Loop Until A = 45
A = 0
Portd.7 = 0
Do
A = A + 1
Loop Until A = 465
Stop Timer1
Goto Startline1
GREEN:
$regfile = "m8def.dat"
$crystal = 8000000
Config Timer1 = Timer , Prescale = 1
Stop Timer1
Config Portb = Output
Config Portd = Output
Portb.1 = 0
Portd.6 = 0
Portd.7 = 0
Dim A As Word
Startline1:
Start Timer1
A = 0
Portb.1 = 1
Do
A = A + 1
Loop Until A = 27
Portb.1 = 0
A = 0
Do
A = A + 1
Loop Until A = 4
A = 0
Portd.6 = 1
Do
A = A + 1
Loop Until A = 12
A = 0
Portd.6 = 0
Do
A = A + 1
Loop Until A = 53
A = 0
Portd.7 = 1
Do
A = A + 1
Loop Until A = 12
A = 0
Portd.7 = 0
Do
A = A + 1
Loop Until A = 158
Stop Timer1
Goto Startline1
من توانستم چند برنامه ساده را به زبان بیسیک بنویسم.حالا برنامه ای را منویسم که در آن از میکرو مگا8 و محیط بسکام استفاده می کنم ولی به اشکالاتی برخورد کرده ام که امیدوارم با کمک شما رفع گردد.بدین صورت که یک برنامه یا بهتر بگویم زیر برنامه تحت نام GREEN یا سبز و یک برنامه تحت عنوان RED یا قرمز نوشته ام .مدار شامل یک کلید سه پایه دو حالته الاکلنگی (حالت1وحالت2) میباشد که پایه وسط این کلید به پین شماره 23 مگا8 وصل است وLCD2X16 بعد از روشن شدن ابتدا عبارت NAME OF GOD را مینویسد و پاک میشود سپس کلمه GREEN نوشته می شود و 2 ثانیه بعد پاک می شود و بعد کلمه RED نوشته شده و 2 ثانیه بعد پاک می شود و دوباره کلمه GREEN و بعدRED و دوباره(حالت DO-LOOP).می خواهم با زدن کلید از حالت 1 به2 زمانی که کلمه GREEN روی LCD وجود دارد برنامه GREEN اجرا شود و مدار را که خاموش کردم و دوباره روشن کردم و سیکل تکرار شد و کلمه RED روی LCD نوشته شد با زدن کلید برنامه RED اجرا شود.آیا لازم است برای همه حالات این برنامه میکرو و کریستال را تعریف کنم.لطفا مر راهنمایی کنید. فایل هر دو زیر برنامه را در این متن نیز فرار میدهم.با تشکر
RED:
$regfile = "m8def.dat"
$crystal = 8000000
Config Timer1 = Timer , Prescale = 1
Stop Timer1
Config Portb = Output
Config Portd = Output
Portb.1 = 0
Portd.6 = 0
Portd.7 = 0
Dim A As Word
Startline1:
Start Timer1
A = 0
Portb.1 = 1
Do
A = A + 1
Loop Until A = 100
Portb.1 = 0
A = 0
Do
A = A + 1
Loop Until A = 45
A = 0
Portd.6 = 1
Do
A = A + 1
Loop Until A = 45
A = 0
Portd.6 = 0
Do
A = A + 1
Loop Until A =300
A = 0
Portd.7 = 1
Do
A = A + 1
Loop Until A = 45
A = 0
Portd.7 = 0
Do
A = A + 1
Loop Until A = 465
Stop Timer1
Goto Startline1
GREEN:
$regfile = "m8def.dat"
$crystal = 8000000
Config Timer1 = Timer , Prescale = 1
Stop Timer1
Config Portb = Output
Config Portd = Output
Portb.1 = 0
Portd.6 = 0
Portd.7 = 0
Dim A As Word
Startline1:
Start Timer1
A = 0
Portb.1 = 1
Do
A = A + 1
Loop Until A = 27
Portb.1 = 0
A = 0
Do
A = A + 1
Loop Until A = 4
A = 0
Portd.6 = 1
Do
A = A + 1
Loop Until A = 12
A = 0
Portd.6 = 0
Do
A = A + 1
Loop Until A = 53
A = 0
Portd.7 = 1
Do
A = A + 1
Loop Until A = 12
A = 0
Portd.7 = 0
Do
A = A + 1
Loop Until A = 158
Stop Timer1
Goto Startline1
دیدگاه