²é¿´: 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 ]
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ sdlj8051 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 282Çóµ÷¼Á +3 wcq131415 2026-03-24 3/150 2026-03-25 12:16 by userper
[¿¼ÑÐ] ²ÄÁÏ277Çóµ÷¼Á +3 min3 2026-03-24 3/150 2026-03-25 11:57 by userper
[¿¼ÑÐ] ±±¿Æ281ѧ˶²ÄÁÏÇóµ÷¼Á +8 tcxiaoxx 2026-03-20 10/500 2026-03-25 11:53 by edmund7
[¿¼ÑÐ] ÉúÎï¼¼ÊõÓ빤³Ì +3 1294608413 2026-03-25 3/150 2026-03-25 10:45 by hxsm
[¿¼ÑÐ] 0703»¯Ñ§µ÷¼Á£¬Çóµ¼Ê¦ÊÕ +7 ÌìÌìºÃÔËÀ´Éϰ¶° 2026-03-24 7/350 2026-03-24 20:26 by peike
[¿¼ÑÐ] 0854È˹¤ÖÇÄÜ·½ÏòÕÐÊÕµ÷¼Á +3 ÕÂСÓã567 2026-03-24 3/150 2026-03-24 19:46 by zhouxuan..
[¿¼ÑÐ] 335Çóµ÷¼Á +4 yuyuÓî 2026-03-23 5/250 2026-03-23 23:49 by Txy@872106
[¿¼ÑÐ] 291Çóµ÷¼Á +8 hhhhxn.. 2026-03-23 8/400 2026-03-23 23:15 by peike
[¿¼ÑÐ] 361Çóµ÷¼Á +3 Glack 2026-03-22 3/150 2026-03-23 22:03 by fuyu_
[¿¼ÑÐ] 384Çóµ÷¼Á +3 ×Óϵ²© 2026-03-22 6/300 2026-03-23 21:45 by ×Óϵ²©
[¿¼ÑÐ] »¯Ñ§308·ÖÇóµ÷¼Á +3 ÄãºÃÃ÷ÌìÄãºÃ 2026-03-23 3/150 2026-03-23 20:11 by macy2011
[¿¼ÑÐ] Ò»Ö¾Ô¸ÉÂʦ´óÉúÎïѧ071000£¬298·Ö£¬Çóµ÷¼Á +3 SYA£¡ 2026-03-23 3/150 2026-03-23 19:09 by macy2011
[¿¼ÑÐ] 291 Çóµ÷¼Á +4 »¯¹¤2026½ì±ÏÒµÉ 2026-03-21 5/250 2026-03-23 16:46 by »¯¹¤2026½ì±ÏÒµÉ
[¿¼ÑÐ] 350Çóµ÷¼Á +6 weudhdk 2026-03-19 6/300 2026-03-23 15:47 by tangyuan0840221
[¿¼ÑÐ] Ò»Ö¾Ô¸¶«»ª´óѧ»¯Ñ§070300£¬Çóµ÷¼Á +7 2117205181 2026-03-21 8/400 2026-03-22 22:55 by chixmc
[¿¼ÑÐ] 297Çóµ÷¼Á +3 ϲ»¶»¹ÊDz»¸ÊÐÄ 2026-03-20 3/150 2026-03-21 18:33 by ѧԱ8dgXkO
[¿¼ÑÐ] ÄϾ©´óѧ»¯Ñ§376Çóµ÷¼Á +3 hisfailed 2026-03-19 6/300 2026-03-20 23:43 by hisfailed
[¿¼ÑÐ] 330Çóµ÷¼Á +4 С²Ä»¯±¾¿Æ 2026-03-18 4/200 2026-03-20 23:13 by JourneyLucky
[¿¼ÑÐ] Ò»Ö¾Ô¸Î÷°²½»Í¨´óѧ ѧ˶ 354Çóµ÷¼Á211»òÕß˫һÁ÷ +3 ÎÒÏëÒª¶ÁÑо¿Éú 2026-03-20 3/150 2026-03-20 20:13 by JourneyLucky
[¿¼ÑÐ] Çóµ÷¼Á +3 @taotao 2026-03-20 3/150 2026-03-20 19:35 by JourneyLucky
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û