51单片机来控制ppt的操作,如使它全屏,退出等
51单片机连接pl2303通过USB线发送编码数据给电脑,通过单片机的按键来控制电脑中ppt的操作,如要使ppt全屏,按电脑键盘的F5就可以全屏,在网上查到电脑F5按键的编码是0x74。
程序如下,但是编译后发觉按键对ppt没反应。这是错在哪里了呢。那要怎么改才行呢。我是单片机新手,请高手们多多指教。谢谢
#include <reg51.h>
#include <string.h>
unsigned char ch;
bit read_flag= 0 ;
void init_serialcom( void )
{ SCON = 0x50 ;//SCON: serail mode 1, 8-bit UART, enable ucvr
//UART为模式1,8位数据,允许接收
TMOD |= 0x20 ; //TMOD: timer 1, mode 2, 8-bit reload
//定时器1为模式2,8位自动重装
PCON |= 0x80 ; //SMOD=1;
TH1 = 0xFD ; //Baud:19200 fosc="11".0592MHz
IE |= 0x90 ; //Enable Serial Interrupt
TR1 = 1 ; // timer 1 run
TI=1;
}
//向串口发送一个字符
void send_char_com( unsigned char ch)
{
SBUF=ch;
while (TI== 0);
TI= 0 ;
}
main()
{
init_serialcom(); //初始化串口
while ( 1 )
{
if (P0==0xfe) //如果按下单片机的按键,则P0=0xfe?
{
send_char_com(0x74); //按下单片机按键后,则向txd发送编码数据0x74,相当于电脑键盘的F5按键按下,ppt全屏。
}
}
} 因为你的电脑只认键盘传过来的0X74是F5,而认为你向他通信发送了一个数据,但是不认为你的单片机是键盘,所以不会执行键盘的功能~
否则的话我们要打开个TXT文件,你一直用串口发数据,还不打出文章来呵呵~~ 你得模拟一个usb键盘,单单串口是不行的 电脑F5按键的编码是0x74
-----------------------这个不是说串口,说的是PS/2口吧 谢谢楼上两位 。
我再试试。 总得先让电脑认出是键盘吧 这个好办,你得用一个控件,具体什么不记得了,以前做了一个通过串口的红外遥控键盘,可以当做一个键盘来使 回复【6楼】Hamyou
-----------------------------------------------------------------------
再搞搞上位机,难度也不小哦。 找到了,用驱动级模拟,使用一个组件WINIO来完成读写端口操作,工作于驱动层具有全局按键功能。能在VB下用,还可以在DELPHI、VC等其它环境下使用。 除了用单片机模拟PS/2接口,还有一个方法是用上位机,即在电脑里按装Grider3.2软件,把电脑串口接收的代码转换成电脑里的键盘及鼠标动作。
可以去磁动力看看,不过别人是用红外线传送的,你想51单片机连接pl2303通过USB线发送编码数据给电脑,把程序中的红外那部分省掉,修改修改就可以,比用红外还简单。
有关文章:打造超级PC遥控器(上篇)http://www.cdle.net/web/alldata/CDLE/cdle050007.htm
打造超级PC遥控器(下篇) http://www.cdle.net/web/alldata/CDLE/cdle050008.htm
Grider3.2简单使用教程 http://www.cdle.net/web/alldata/CDLE/cdle050009.htm 用串口通讯,搞个上位机程序吧~ 呵呵,有两个办法:
1,用单片机模拟出来一个HID设备来作为USB键盘,然后去查USB键盘的协议,一般来讲USB键盘的数据格式长度是5,看F5对应的什么码,通过USB接口直接发送给电脑,肯定可以用。(跟这个差不多的可以去模拟一个PS2的设备,原理一样)
2,单片机依然保留用串口的方法发送0x74(其实随便发什么都可以啦,配合好就行),然后做一个上位机程序去接收串口数据,当发现收到正确的数据之后再发送“F5”的命令给上层领导就可以了。 assingle 发表于 2011-5-20 09:52 static/image/common/back.gif
谢谢楼上两位 。
我再试试。
请问你用单片控制PPT有没有成功?
页:
[1]