چطوری باید از شیفت در برنامه بسکام استفاده کرد؟

M.Minoo

عضو جدید
سلام دوستان
من یه برنامه دارم به زبان بسکام که با استفاده از 7سگمنت کلمه ی help رو نمایش میده.می خوام این برنامه رو طوری تغییر بدم که کلمه help حرکت کنه.استاد میگفت باید از دستور شیفت استفاده کرد.
حالا چطوری رو نمیدونم!اخه تازه کارم! این پروژه رو باید تا این هفته تحویل بدم. لطفا کمکم کنید.حتما این برنامه واسه شما اسونه
این برنامست:

$regfile = "m16def.dat"
$crystal = 1000000
Config Porta = Output
Config Portb = Output
Portb = &B00001111
Dim I As Byte
Do
For I = 0 To 3
Porta = Lookup(i , Dt)
Reset Portb.i
Waitms 5
Set Portb.i
Next
Loop
End
Dt:
data &b01110110,01111001,00111000,01110011
 

M.Minoo

عضو جدید
البته اینم اضاف کنم که این برنامه رو با بسکام و پروتئوس پیاده سازی کردیم وران شدو می خوام که کلمه help از چب به راست حرکت کنه مثلا این طوری نشون بده
HELP
PHEL
LPHE
ELPH
HELP
 

Army Of One

عضو جدید
$regfile = "m16def.dat"
$crystal = 1000000
Config Porta = Output
Config Portb = Output
Portb = &B00001111
Dim I As Byte , M As Byte , K As Byte , J As Byte
Do
For K = 0 To 3
For I = 0 To 3
M = K + I
J = 7 - M
Porta = Lookup(j , Dt)
Reset Portb.i
Waitms 5
Set Portb.i
Next
Next
Loop
End
Dt:
Data &B01110011 , &B00111000 , &B01111001 , &B01110110 , &B01110011 , &B00111000 , &B01111001 , &B01110110
 

Army Of One

عضو جدید
برنامه بالایی جهتش وارونه بود سرعت حرکت HELP هم توش زیاد بود یه حلقه For-Next اضافه کردم واسه تنظیم سرعتش.

$regfile = "m16def.dat"
$crystal = 1000000
Config Porta = Output
Config Portb = Output
Portb = &B00001111
Dim I As Byte , M As Byte , K As Byte , L As Byte
Do
For K = 3 To 0 Step -1
For L = 0 To 70
For I = 3 To 0 Step -1
M = K + I
Porta = Lookup(m , Dt)
Reset Portb.i
Waitms 5
Set Portb.i
L = L + 1
Next
Next
Next
Loop
End
Dt:
Data &B01111001 , &B00111000 , &B01110011 , &B01110110 , &B01111001 , &B00111000 , &B01110011


فایل بسکام + شبیه سازی در پروتئوس:
مشاهده پیوست help3.zip
 
آخرین ویرایش:
بالا