#include #include //#include void main() { int port=2; int x, y,i,n,m,check,color,coloro=0; int quit=0,Dotemp; int c; char di1[5]="@01\r", di2[6]; char do1[7]="@0100\r"; int DiCT[4] = {1, 2, 4, 8}; int DoCT[5]= {1,2,4,8,16},doON[5]={0,0,0,0,0}; InitLib(); InitLCD(); //draw manu Line(12,28,118,28, 1); Box(12, 12, 118, 44, 1); SetCursorLine(2); SetCursorAt(7, 5); GetCursorAt(&x, &y); TextOutAt(1,1, "i-7065D q:quit"); TextOutAt(3,3, "Di:"); TextOutAt(3,5, "Do:"); for(i=0;i<5;i++) lamp(7+i,5,coloro); TextOutAt(1,7, ">:right <:left"); TextOutAt(1,8, "^:on v:off"); InstallCom(port,115200L,8,0,1); ClearCom(port); //show Di while(!quit) { ClearCom(port); for (i=0;i<4;i++) { ToCom(port,di1[i]); } Print(" <--di1[]\n\r"); for (i=0;i<5;i++) { if(IsCom(port)) di2[i]=ReadCom(port); } if (di2[4]>64) m=55; //a~f else m=48; //0~9 n=(int)(di2[4]-m); TextOutAt(7,3, " "); for(i=0;i<4;i++) { check=n & DiCT[i]; if (check==0) color=0; else color=1; lamp(7+i,3,color); } ClearCom(port); for (i=0;i<7;i++) ToCom(port,do1[i]); if(Kbhit()) { Print("q=%d",quit); c=Getch(); if(c=='Q'||c=='q') quit=1; else { if(c==137 && x<11) x++;//right key if(c==138 && x>7) x--;//left key SetCursorAt(x,y); if(c==140||c==139) //Up key or down key, Do ON OFF { if(c==140) coloro=1; else coloro=0; lamp(x,y,coloro); doON[4-(x-7)]=coloro; Dotemp=0; for(i=0;i<5;i++) Dotemp=DoCT[i]*doON[4-i]+Dotemp; if (Dotemp<16) { do1[3]='0'; if(Dotemp<10) do1[4]=(char)(Dotemp+48); else do1[4]=(char)(Dotemp+55); } else { do1[3]='1'; if(Dotemp-16<10) do1[4]=(char)(Dotemp-16+48); else do1[4]=(char)(Dotemp-16+55); } ClearCom(port); for (i=0;i<7;i++) ToCom(port,do1[i]); } } }//end if }//while loop ClrScrn(); //Clear GraphicSW_Page and TextSW_Page. CloseLCD(); }