سلام محسن جان.
خیلی خوب توضیح دادی.
اینکه اول یک کلید ساده , بعد دو در دو , بعد 4*4 رو توضیح دادی و اینکه فایل شبیه سازی رو هم گذاشتی خیلی خوب بود.
به قولی "روان و قابل فهم"

ممنون.
منم شماتیک و کد بیسیک کیبورد 2*2 رو به همون صورت که با c نوشتی رو میذارم واسه اونهایی که با bascom راحت ترن.(فقط اینجا کیبورد رو به پورت A وصل کردم.)
کد: انتخاب همه
$regfile = "m32def.dat"
'---------------------------config input , output----------------------
Config Porta.0 = Output
Config Porta.1 = Output
Config Porta.2 = Input
Config Porta.3 = Input
'------------------------------lcd config---------------------------------
Config Lcdpin = Pin , Db4 = Pinb.3 , Db5 = Pinb.2 , Db6 = Pinb.1 , Db7 = Pinb.0 , E = Pinb.4 , Rs = Pinb.5
Config Lcd = 16 * 2 : Cursor Off : Cls
'-------------------------------------------------------------------------
Dim Col As Byte
Dim Row As Byte
'--------------------------------start-------------------------------------
Do
Porta.0 = 0
Porta.1 = 0
Porta.2 = 1
Porta.3 = 1
Row = 0 'satr
Col = 0 'sotoon
If Pina.2 = 0 Then
Col = 1 'sotone 1
Porta.0 = 1
Porta.1 = 0
If Pina.2 = 1 Then
Row = 1
End If
Porta.0 = 0
Porta.1 = 1
If Pina.2 = 1 Then
Row = 2
End If
End If
If Pina.3 = 0 Then
Col = 2 'sotone 2
Porta.0 = 1
Porta.1 = 0
If Pina.3 = 1 Then
Row = 1
End If
Porta.0 = 0
Porta.1 = 1
If Pina.3 = 1 Then
Row = 2
End If
End If
'----------------------------show outputs on lcd--------------------------
Locate 1 , 1
Lcd "satr:"
Locate 1 , 7
Lcd Row
Locate 2 , 1
Lcd "soton:"
Locate 2 , 7
Lcd Col
Loop
end
خوب کیبورد که ok شد حالا بریم سراغ lcd .
.