一个按钮,按一下就会控制单片机发出一个命令给电脑,这个命令和空格键的命令式一样的,这个如何实现

“命令式”错别字,“式”应该改为“是”

串口实现,程序如下:
KEY BIT P3.2 ;假设P3.2为按钮输入,键按下为低
ORG 0000H
LJMP START

ORG 0050H
START:
CLR EA
MOV SP,#6FH
MOV TMOD,#20H
MOV SCON,#80H
MOV TH1,#0FDH ;BRD=9600
MOV TL1,#0FDH
SETB TR1
SETB KEY
LOOP:
JB KEY,LOOP ;等键按下
MOV SBUF,#20H ;发送空格键值
JNB TI,$
CLR TI
SJMP LOOP
END
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-18
单往串口发数据还不行,电脑端必须写一个程序,用来接收单片机发过来的数据,当接收到特定数据后给Windows系统发空格键的消息
第2个回答  2012-02-18
用单片机不控制电脑,这个可以实现,不知道你要控制电脑作出什么反应呢,是关机,开机,还是别的,你说具体点,这样可以针对性的帮你解决.追问

只要是实现空格的命令就可以了,具体是用软件测某个东西,按键盘上的空格键不方便,所以要另外做个按钮来代替空格键

追答

单片机与PC之间的通信,最常见的就是通过RS232串口(COM1)进行通信,数据线有3个(TX, RX, GND),这个我之前玩单片机时搞过一次,效果是:将128个ASCII码事先固化到单片机的ROM中,按一下按键,数据串从单片机的串口连续发出,通过串口线,送入PC,从PC的窗口中(串口接收软件)完整显示这128个ASCII码,之后PC将接收到的数据又发送回去,让单片机接收,并通过数据管逐个移位的显示出来,完成一次通信过程.(这128个ASCII码当然包括空格键的码值)
先说一说软件思路(当然只包括单片机的发送部分,PC这部分不用理):
空格的码值是0x20或是" "(两个双引号中间一个空格)
用T1做波特率发生器,频率设在9600Hz,用12M晶振的话TL1,TH1初值值设为0XFA,
TMOD工作在8位自动重装模式.
1.将0x20送入SBUF,
2.循环检测TI, //TI=1表示发送结束;=0表示还在发送
3.手动清除T1标志(即TI=0)
如此可以将空格指令能过RS232端口发送出去,若无问题,PC这边设好串口接收.就可以收到空格指令.你按照这个思索去写程序,应该不难了吧!

本回答被提问者采纳
第3个回答  2012-02-18
串行口通信呗、 把空格赋给SBUF
相似回答