#include "mbed.h" #include "TextLCD.h" TextLCD lcd(D8,D9,D10,D11,D12,D13); BusOut sigout(D0,D1,D2,D3);//scan lines BusIn sigin(D4,D5,D6,D7);//return lines BusOut Lcd_pins(D8,D9,D10,D11,D12,D13); int read; int main() { sigin.mode(PullDown); sigout=0xF; while(sigin!=0); while(1) { sigout=0xF; while(sigin==0); sigout=0x1; if((sigin&0x1)==0x1) { while((sigin&0x1)==0x1) { read=0; } } else if((sigin&0x2)==0x2) { while((sigin&0x2)==0x2) { read=4; } } else if((sigin&0x4)==0x4) { while((sigin&0x4)==0x4) { read=8; } } else if((sigin&0x8)==0x8) { while((sigin&0x8)==0x8) { read=12; } } else { sigout=0x2; if((sigin&0x1)==0x1) { while((sigin&0x1)==0x1) { read=1; } } else if((sigin&0x2)==0x2) { while((sigin&0x2)==0x2) { read=5; } } else if((sigin&0x4)==0x4) { while((sigin&0x4)==0x4) { read=9; } } else if((sigin&0x8)==0x8) { while((sigin&0x8)==0x8) { read=13; } } else { sigout=0x4; if((sigin&0x1)==0x1) { while((sigin&0x1)==0x1) { read=2; } } else if((sigin&0x2)==0x2) { while((sigin&0x2)==0x2) { read=6; } } else if((sigin&0x4)==0x4) { while((sigin&0x4)==0x4) { read=10; } } else if((sigin&0x8)==0x8) { while((sigin&0x8)==0x8) { read=14; } } else { sigout=0x8; if((sigin&0x1)==0x1) { while((sigin&0x1)==0x1) { read=3; } } else if((sigin&0x2)==0x2) { while((sigin&0x2)==0x2) { read=7; } } else if((sigin&0x4)==0x4) { while((sigin&0x4)==0x4) { read=11; } } else if((sigin&0x8)==0x8) { while((sigin&0x8)==0x8) { read=15; } } else { read=0; } } } } } Lcd_pins=read; } } }