سلام
دوستان عزیزم تازه میخوام ارسال و دریافت داده رو از طریق ارتباط SPI انجام بدم . یه مدار برا تست بستم تو پروتئوس و میکروهامو برنامه ریزی کردم اما نمی دونم چرا زمان فشار دادن کلید به جای اینکه کلید فشار داده شده مورد نظرمو تو میکروی اسلیو بده میاد فقط برا ردیف اول عدد 0 و ردیف دوم عدد 8 و ردیف سوم عدد 16 و ردیف چهارم عدد 24 رو برای هر کدوم از کلیدها نشون می ده .
اشکال برنامه نویسیسم کجاست ؟
کد برنامه ها رو هم در زیر براتون می نویسم :
میکرو مستر :
$regfile = "m32def.dat"
$crystal = 8000000
Config Spi = Hard , Interrupt = Off , Data Order = Lsb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 128
Config Kbd = Porta
Dim X As Byte
Spiinit
Do
X = Getkbd()
If X < 16 Then
Spiout X , 1
End If
Loop
End
میکروی اسلیو :
$regfile = "m32def.dat"
$crystal = 8000000
Config Spi = Hard , Interrupt = Off , Data Order = Lsb , Master = No , Polarity = High , Phase = 0 , Clockrate = 128
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Pind.0 , Db5 = Pind.1 , Db6 = Pind.2 , Db7 = Pind.3 , E = Pind.4 , Rs = Pind.5
Dim S As Byte
Spiinit : Cursor Off
Do
Spiin S , 1
Home
Lcd S
Waitms 100
Cls
Loop
End
کسایی که می تونن اصلاح کنن ایراد برنامه منو نظر بدن ممنون و تو خصوصیم هم اگه شد جوابشونو بفرستن و راهنماییم کنن