串行通讯问题



串行通讯 是计算机的必然的要求,因为现在的计算机不可能再局限于单机运行,它必需与别人打交道。除了网卡,就只有并口、串口了。
你想在DOS下在WIN32下在WIN95下


DOS下的程序可用BASIC(BASICA)C(TC,BC)
100 REM SERIAL CONTROL. WRITTEN BY TBLIN@163.NET
150 TXD$="ABCDEFG"
200 D$="":'DATA RECEIVED.
210 OPEN "COM2:9600,E,7,1,CD,RS,CS,DS" AS #1
220 GOSUB 630
250 CLOSE #1:END
630 PRINT "SENDING DATA=";TXD$
640 PRINT #1,TXD$:'SENDING
650 T3 = VAL(MID$(TIME$,7,2)):'WAITING 2 SECONDS
660 IF EOF(1)=0 THEN GOSUB 710
670 T4 = VAL(MID$(TIME$,7,2)) 
680 IFABS(T4-T2)<2 THEN 660 
690 PRINT:PRINT "OVER 2S!" 
700 RETURN 
710 A$="INPUT$(1,#1)" 
720 D$="D$+A$" 
730 PRINT A$; 
760 RETURN 

回页首

BC和TC做出的DOS程序没有区别,以下是所使用的头文件:
/*TLINK.H FOR TLINK.C tblin@163.net 97/04/29 */
#define SER_RBF		0 /*the read buffer*/
#define SER_THR		0 /*the write buffer*/
#define SER_IER		1 /*the int. enable register*/
#define SER_IIR		2 /*the int. identiffication register*/
#define SER_LCR		3 /*control data config. and divisor latch*/
#define SER_MCR		4 /*modem control register*/
#define SER_LSR		5 /*line status register*/
#define SER_MSR		6 /*modem status of cts,ring etc.*/
#define SER_DLL		0 /*the low byte of baud rate divisor*/
#define SER_DLH		1 /*the hi byte of divisor latch*/
#define SER_GP02	8 /*enable interrupt*/
#define COM_1		0x3F8
#define COM_2		0x2F8
#define COM485		0x1E8
#define SER_STOP_1	0 /*1stop bit per character*/
#define SER_STOP_2	4
#define SER_BITS_5	0 /*send 5 bit characters*/
#define SER_BITS_6	1 /*send 6 bit characters*/
#define SER_BITS_7	2 /*send 7 bit characters*/
#define SER_BITS_8	3 /*send 8 bit characters*/
#define SER_PARITY_NONE	0 /*no parity*/
#define SER_PARITY_ODD  8
#define SER_PARITY_EVEN	24
#define SER_DIV_LATCH_ON 128 /*used to turn reg 0,1 into divisor latch*/
#define PIC_IMR		0x21 /*pic's interrupt mask reg.*/
#define PIC_ICR		0x20 /*pic/s interrupt control reg.*/
#define INT_SER_PORT_0	0x0C /*port 0 interrupt com1&3*/
#define INT_SER_PORT_1	0x0B
#define Int_Mode 	0
#define Ask_Mode	1
#define SERIAL_BUFF_SIZE 4096 /*current size of receive buffer*/
#define SER_BAUD_1200	96
#define SER_BAUD_2400	48
#define SER_BAUD_9600	12

这里是源程序。编译后两机器使用同一程序,同样波特率,可以实现TALK.

回页首  下一页


Copyright 1998-2002 Fadshop.net, Inc. All rights reserved. jhj123@163.net