PC与单片机通信程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用【 小 | 中 | 大 】字体浏览
C51编程:请教:PC与单片机通信 [boomh] [33次] 02-1-11 上午 10:17:38
我用PC接受51单片机串口数据,是3线连接,PC程序用BC++3.0,直接操作8250寄存器,不用
INT14或DOS中断,不管发甚末数据每次接受到的都是FF,我用示波器看见单片机串口输出数
据没错,请教各位,错在那里?
可参考下面的程序 [steave] [41次] 02-1-11 上午 10:24:20
#include
#include
#include
#define COMM 0x2f8
#define COMMBAUDL COMM
#define COMMBAUDH COMM+1
#define COMMLCR COMM+3
#define COMMLSR COMM+5
#define uchar unsigned char
#define uint unsigned int
void InitComm( void );
void send( uchar dt );
uchar receive( void );
void main( void )
{
uchar dt;
InitComm();
while( 1 )
{
send(0x55);
dt= receive();
}
}
return ;
}
/* Initialize comm port */
void InitComm( void )
{
outp( COMMLCR,0x80 );
outp( COMMBAUDL,0x60 );
outp( COMMBAUDH,0x0 ); /* set baud = 1200 */
outp( COMMLCR,0x03 ); /* 8 data bit,1 stop bit,no parity */
}
/* send to a byte to COMM port */
void send( uchar dt )
{
while( ( inp( COMMLSR ) & 0x20 ) == 0 );
outp( COMM,dt );
}
/* receive a byte from COMM port */
uchar receive( void )
{
uchar dt;
while( ( inp( COMMLSR ) & 0x01 ) == 0 );
dt = inp( COMM );
return ( dt );
}
控件 [lpywt7317] [8次] 02-1-11 下午 08:02:57
在BC++或c60下用通讯控件,简单,可以去啸峰工作室掌握