| ²é¿´: 393 | »Ø¸´: 0 | |||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | |||
sdlj8051½ð³æ (ÖøÃûдÊÖ)
|
[½»Á÷]
[תÌù]ÓÃCÓïÑÔ±àд¼òµ¥µÄ½Ó¿Ú³ÌÐò
|
||
|
ÔÚͨÐÅÖУ¬ÎªÁ˱£Ö¤ÔËÐа²È«¿É¿¿£¬±ê×¼µÄ´®ÐпڱØÐë¾ßÓÐÐí¶àÎÕÊÖÐźźÍ״̬ÐÅÏ¢¡£ÕâÊÇÒòΪͨÐÅ µÄ¸÷¸ö¼ÆËã»úCPU ËٶȲ»Ò»Ñù£¨Õâ»áµ¼Ö¡°´íÖ¡¡±£©ÒÔ¼°·¢ËÍ»ú·¢ËÍÊý¾ÝËٶȱȽÓÊÕ»ú½ÓÊÕËٶȿ죨 Õâ»áµ¼Ö¡°¹ý³å¡±£©¡£Îª½â¾öÕâ¸öÎÊÌ⣬ÎÒÃDzÉÓÃÒ»¸ö¼òµ¥µÄÎÕÊÖÐźţ¬¼´·¢ËÍ»úÿ´Î½ö·¢ËͰë¸ö×Ö½Ú £¨µÍ4 룩µÄÊý¾Ý£¬¶øÁíÍâ°ë¸ö×Ö½Ú£¨¸ß4 룩ÔòÓÃÀ´´«ËÍÐÅÏ¢¡£ÎÒÃÇ¿ÉÒÔ¶ÔÐÅϢ루¸ß4 룩½øÐÐÈç ϼòµ¥µÄ±àÂ룺 ¡¡¡¡ 0H£º·¢Ë͵ÄÊÇеİë¸ö×Ö½ÚÊý¾Ý ¡¡¡¡ 1H£ºÖØÐ·¢ËÍÉϴδ«ËÍ´íÎóµÄÊý¾Ý ¡¡¡¡ 2H£ºÎļþÃû½áÊø ¡¡¡¡ 3H£ºÎļþ½áÊø ¡¡¡¡ ÕâÑù£¬Ã¿µ±·¢ËÍ»ú·¢ËÍÒ»¸ö×Ö½ÚÒԺ󣬾͵ȴý½ÓÊÜ»ú·¢»ØËÍÐźţ¬Õâ»ØËÍÐźžÍÊÇ·¢ËÍ»ú·¢Ë͹ýÀ´µÄ ÄǸö×Ö½Ú¡£·¢ËÍ»ú½ÓÊÕµ½»ØËÍÐźź󣬰ÑËüÓë¸Õ·¢Ë͵Ä×Ö½ÚÏà±È½Ï£¬Èç¹ûÏàͬ£¬¾Í·¢ËÍеİë¸ö×Ö½Ú£¬·ñ Ôò¾ÍÖØÐ·¢ËÍ¡£ÐÂÊý¾ÝÓë¾ÉÊý¾Ýͨ¹ýÐÅϢλÀ´Çø·Ö¡£ÏÂÃæ¾ÍÊÇÎÒÓÃC ÓïÑÔ±àд¿ØÖÆ´®ÐпڵijÌÐò¡£ÒÔÒ»¸ö ·¢ËÍÎļþµÄ³ÌÐòΪÀý£¬½éÉÜÒ»ÏÂÓÃC ÓïÑÔʵÏֶԽӿڵĿØÖÆ¡£ ¡¡¡¡ Ô´³ÌÐòΪ£º ££include "dos.h" ££include "stdlib.h" ££include "stdio.h" ££define PORT 0 void SendFile(char fname); / £ª·¢ËÍÎļþ£ª/ void Send(int s);¡¡ / £ª·¢ËÍÒ»¸ö×Ö½Ú£ª/ void SendFileName(char fname); / £ª·¢ËÍÎļþÃû£ª/ void ReceiveFile(); / £ª½ÓÊÕÎļþ£ª/ void GetFileName(char f); / £ª½ÓÊÕÎļþÃû£ª/ void InitPort(int port,unsigned char para); / £ª³õʼ»¯¶Ë¿Ú£ª/ void SendPort(int port,char c); / £ª¶Ë¿Ú·¢ËÍ£ª/ int ReadPort(int port); / £ª¶Á¶Ë¿Ú×Ö½Ú£ª/ int CheckState(int port); / £ª¼ì²é¶Ë¿Ú״̬£ª/ int Receive(int port,int G); / £ª½ÓÊÕÒ»¸ö×Ö½Ú£ª/ main(argc,argv) ¡¡ int argc; ¡¡ char £ªargv[]; { ¡¡ if(argc<2){¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡ printf("Please input R(receive) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ or S(sent) parametre:" ; ¡¡¡¡¡¡ exit(1); ¡¡ } ¡¡ InitPort(PORT,231); ¡¡ if(argv[1]=='S') / £ª¼ì²éÑ¡ÔñµÄÓÐЧÐÔ£ª/ ¡¡¡¡¡¡ SendFile(argv[2]); ¡¡ else if(argv[1]=='R') ¡¡¡¡¡¡ ReceiveFile(); ¡¡ else{ ¡¡¡¡¡¡ printf("Error parament.Please input again." ; ¡¡¡¡¡¡ exit(1); ¡¡ } } void SendFile(fname) ¡¡ char £ªfname; { ¡¡ FILE £ªfp; ¡¡ int ch,s; ¡¡ if(!(fp=fopen(fname,"rb" )){ ¡¡¡¡¡¡ printf("Can't open the file.\n" ; ¡¡¡¡¡¡ exit(1); ¡¡ } ¡¡ SendFileName(fname); ¡¡ do{ ¡¡¡¡ ch=(int)getc(fp); ¡¡¡¡ if(ferror(fp)){ ¡¡¡¡¡¡ printf("Error reading file.\n" ; ¡¡¡¡¡¡ break; ¡¡¡¡ } ¡¡¡¡ s=ch £¥16; / £ªÈ¡ÎļþÖÐÒ»¸ö×ֽڵĵÍ4 룪/ ¡¡¡¡ Send(s); ¡¡ s=ch/16;¡¡ / £ªÈ¡ÎļþÖÐÒ»¸ö×ֽڵĸß4 룪/ ¡¡¡¡ Send(s); ¡¡ }while(!feof(fp)); ¡¡ s=46; / £ª·¢ËÍÎļþ½áÊøÐÅÏ¢£ª/ ¡¡ Send(s); ¡¡ Send(s); ¡¡ fclose(fp); } void Send(s) ¡¡ int s; { ¡¡ int G; ¡¡ SendPort(PORT,s); ¡¡ G=ReadPort(PORT); / £ªµÈ´ýÎÕÊÖÐźţª/ ¡¡ if(s!=G) ¡¡¡¡¡¡ s=s £«16; ¡¡ do{ ¡¡¡¡¡¡ SendPort(PORT,s); ¡¡¡¡¡¡ G=ReadPort(PORT); / £ªµÈ´ýÎÕÊÖÐźţª/ ¡¡ }while(s!=G); } void SendFileName(fname) ¡¡ char £ªfname; { ¡¡ int s,ch; ¡¡ printf("Now transmit the file.Please wait..." ; ¡¡ while( £ªfname){ ¡¡¡¡¡¡ ch=(int)fname £«£«; ¡¡¡¡¡¡ s=ch £¥16; / £ªÈ¡ÎļþÃûÖÐÒ»¸ö×ֽڵĵÍ4 룪/ ¡¡¡¡¡¡ Send(s); ¡¡¡¡¡¡ s=ch/16; ¡¡¡¡¡¡ Send(s); / £ªÈ¡ÎļþÃûÖÐÒ»¸ö×ֽڵĵÍ4 룪/ ¡¡ } ¡¡ s=32;/ £ª·¢ËÍÎļþÃû½áÊø±êÖ¾£ª/ ¡¡ Send(s); ¡¡ Send(s); } void ReceiveFile(){ ¡¡ FILE £ªfp; ¡¡ char ch; ¡¡ int G1,G2,G3; ¡¡ char fname[15]; ¡¡ GetFileName(fname); ¡¡ printf("Receiving file £¥s.\n",fname); ¡¡ remove(fname); ¡¡ if(!(fp=fopen(fname,"wb" )){ ¡¡¡¡¡¡ printf("Can't open output file.\n" ; ¡¡¡¡¡¡ exit(1); ¡¡ } ¡¡¡¡ / £ªÑ»·Îª¼ì²âÿ´Î½ÓÊܵÄÊý¾ÝÊÇ·ñΪÐÂÊý¾Ý£¬Èç¹û²»ÊÇ£¬ÔòÓô˴νÓÊÕµÄÊý¾Ý¸²¸ÇÉϴνÓÊÕµÄÊý¾Ý£ª/ ¡¡ G1=ReadPort(PORT);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡ G2=Receive(PORT, £¦G1); ¡¡ do{¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡ G3=Receive(PORT, £¦G2); ¡¡¡¡¡¡ ch=(char)(G1 £¥16 £«G2 £ª16); / £ª»Ö¸´·Ö¿ªµÄÊý¾Ý£¬ ¡¡¡¡ ×éºÏ¸ß4 λºÍµÍ4 룪/¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡ putc(ch,fp); ¡¡¡¡¡¡ if(ferror(fp)){ ¡¡¡¡¡¡¡¡ printf("\nError writing file." ; ¡¡¡¡¡¡¡¡ exit(1); ¡¡¡¡¡¡ } ¡¡¡¡¡¡ G2=Receive(PORT, £¦G3); ¡¡¡¡¡¡ G1=G3; ¡¡ }while(G1/16!=48); ¡¡ printf("\nTransmit finished." ; ¡¡ fclose(fp); } int Receive(port,G) ¡¡ int port, £ªG; { ¡¡ int GM; ¡¡ SendPort(port, £ªG); ¡¡ GM=ReadPort(port); ¡¡ if(GM/16==0) ¡¡¡¡¡¡ return GM; ¡¡ else if(GM/16==1){ ¡¡¡¡¡¡ do{ ¡¡¡¡¡¡ £ªG=GM; ¡¡¡¡¡¡ SendPort(port,GM); ¡¡¡¡¡¡ GM=ReadPort(port); ¡¡¡¡¡¡ }while(GM/16==1); ¡¡ } ¡¡ return GM; } void GetFileName(f) ¡¡ char £ªf; { ¡¡ int G1,G2,G3; ¡¡ char ch; ¡¡ G1=ReadPort(PORT); ¡¡ G2=ReadPort(PORT); ¡¡ do{ ¡¡¡¡¡¡ G3=Receive(PORT, £¦G3); ¡¡¡¡¡¡ ch=(char)(G1 £¥16 £«G2/16); ¡¡¡¡¡¡ £ªf=ch; ¡¡¡¡¡¡ £ªf £«£«; ¡¡¡¡¡¡ G2=Receive(PORT, £¦G3); ¡¡¡¡¡¡ G1=G3; ¡¡ }while(G1/16!=32); ¡¡ printf("File name transmit finished.\n" ; } void InitPort(port,para) ¡¡ int port; ¡¡ unsigned char para; { ¡¡ union REGS reg; ¡¡ reg.x.dx=port; ¡¡ reg.h.ah=0; ¡¡ reg.h.al=para; ¡¡ int86(0x14, £¦reg, £¦reg); } void SendPort(port,c) ¡¡ int port; ¡¡ char c; { ¡¡ union REGS reg; ¡¡ reg.x.dx=port; ¡¡ reg.h.al=c; ¡¡ reg.h.ah=1; ¡¡ int86(0x14, £¦reg, £¦reg); ¡¡ if(reg.h.ah £¦128){ ¡¡¡¡¡¡ printf("\nSend mistakes!" ; ¡¡¡¡¡¡ exit(1); ¡¡ } } int ReadPort(port) ¡¡ int port; { ¡¡ union REGS reg; ¡¡ while(!(CheckState(port) £¦256)){ ¡¡¡¡¡¡ if(kbhit()){ / £ªÈç¶Ë¿Ú³¤ÆÚ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ÎÞÊý¾Ý¿ÉÈËΪÖÕÖ¹µÈ´ý£ª/ ¡¡¡¡¡¡ printf("Press any key to exit." ; ¡¡¡¡¡¡ getch(); ¡¡¡¡¡¡ exit(1); ¡¡¡¡¡¡ } ¡¡ } ¡¡ reg.x.dx=port; ¡¡ reg.h.ah=2; ¡¡ int86(0x14, £¦reg, £¦reg); ¡¡ if(reg.h.ah £¦128){ ¡¡¡¡¡¡ printf("\nRead mistake!" ; ¡¡¡¡¡¡ exit(1); ¡¡ } ¡¡ return reg.h.al; } int CheckState(port) ¡¡ int port; { ¡¡ union REGS reg; ¡¡ reg.x.dx=port; ¡¡ reg.h.ah=3; ¡¡ int86(0x14, £¦reg, £¦reg); ¡¡ return reg.x.ax; } ¡¡¡¡ ÒÔÉϳÌÐò¿É´«Ë͸÷ÖÖ¸ñʽµÄÎļþ£¬Ò²ÓÐÒ»¶¨µÄ×Ô¶¯¾À´íÄÜÁ¦£¬µ«¶ÔÓÚÒì³£Çé¿öµÄ´¦ÀíÄÜÁ¦±È½ÏÈõ£¬ ¶ÁÕß¿ÉÒÔ×Ô¼º¸Ä½ø¡£ [ Last edited by sdlj8051 on 2006-10-6 at 12:43 ] |
» ²ÂÄãϲ»¶
ÇóbÇøÔºÐ£µ÷¼Á
ÒѾÓÐ4È˻ظ´
²ÄÁÏÓ뻯¹¤¿¼Ñе÷¼Á
ÒѾÓÐ9È˻ظ´
Çóµ÷¼Á
ÒѾÓÐ3È˻ظ´
347Çóµ÷¼Á
ÒѾÓÐ3È˻ظ´
×Ü·Ö293Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
284Çóµ÷¼Á
ÒѾÓÐ15È˻ظ´
359Çóµ÷¼Á
ÒѾÓÐ3È˻ظ´
¸÷λÀÏʦÄúºÃ£º±¾È˳õÊÔ372·Ö
ÒѾÓÐ5È˻ظ´
285Çóµ÷¼Á
ÒѾÓÐ3È˻ظ´
282Çóµ÷¼Á
ÒѾÓÐ3È˻ظ´













;
»Ø¸´´ËÂ¥