سلام
کد:
$regfile = "m16def.dat"
$crystal = 8000000
Config Portb = Output
Config Porta = Output
Dim Col As Byte
Dim Scan As Byte
Dim Refresh As Byte
Dim Index As Byte
Dim S As Byte
Do
For S = 0 To 7
Prog: ' nomayesh A
For Refresh = 1 To 10
Scan = &B00000001
For Col = 0 To 7
Index = S + Col
Porta = Scan
Portb = Lookup(index , Gelayof1)
Waitms 2
Rotate Scan , Left
Porta = &H00
Next Col
Next Refresh
Next S
Loop
End 'end program
Gelayof1:
Data &B10000011
Data &B11110101
Data &B11110110
Data &B11110101
Data &B10000011
Data &B11111111
Data &B11111111
Data &B11111111
Data &B11111111
Data &B10000011
Data &B11110101
Data &B11110110
Data &B11110101
Data &B10000011
Data &B11111111
Data &B11111111
Data &B11111111
Data &B11111111
روش های زیادی بری نوشتن برنامه تابلو وجود داره که یکی از اونا برنامه خودت و من بود ،
برنامه خودت دو تا مشکل داره :
For Col = 0 To 4 : با این دستور حلقه :
For Col = 0 To 4
Index = S + Col
Portb = Lookup(index , Gelayof1)
Porta = Scan
Waitms 1
Rotate Scan , Left
Porta = &H00
Next Col
5 بار بیشتر تکرار نمیشه ، یهنیی دستور Rotate Scan , Left عدد B00000001 رو تا B00010000 بیشتر شیفت نمیده ، در نتیجه به چهار تا از ستون ها هیچ کدی نمیرسه ، این مورد توی تمام برنامه وجود داره
اول شما باید پایه led رو روشن کنید و بعد داده رو بفرستید
Porta = Scan
Portb = Lookup(index , Gelayof1)
شاید در نگاه اول فرق چندانی نداشته باشه ، اما در نور تابلو و نمایش کارکتر ها مشکل بوجود میاد .
3- شاید کد های ایجاد شده مشکل داشته باشه ، نرم افزار رو برای دانلود بزار .