是这样的:你如果想让单片机输出高电平,你就得针对单片机编程,单片机内有固化程序,然后你的计算机也要编写串口通信的程序。也就是下位机与上位机各自软件的编写。具体编码要根据你的电路与接法。
比如你想在P1.1脚输出高电平,你的单片机内的程序你得类似下面指令:
MOV A,SBUF //接收从计算机传来的数据或命令
XRL A,#88H //此处假设你从计算机送来的命令单片机输出高电平的指令数据是0X88H
JNZ RE //假如不是要单片机输出高电平,转入其它处理部分
SETB P1.1 //让单片机输出高电平
将上述程序用编程器写到单片机的程序存储器中;然后下一步你要编写计算机部分的程序。
此处假定你用的是C:
...
outportb(0x3fc,0x03) /*PC机片于发送状态*/
ourportb(0x3fb,0x88) /*送命令88H到单片机*/
...
编译之,在计算机上运行该程序,如果一切没出错的话单片机会在P1.1脚输出高电平。
如果你想在计算机上用汇编写计算机部分的程序也同样写法。以上直接读写串口不能在NT或win2000中运行。如想在NT或win2000中运行。如你所说,用SPCOMM之类的控件就可以了。
var
chigh:array[1..16] of byte;
begin
...
chigh[1]:=$88 //高电平指令数据;
comm1.writecommdata(@chigh[1],1) //送出控制命令到单片机
...
end;
[
]我省略了好多初始化与准备工作,只是划出了核心部分。