导航:首页 > 电脑设备 > 单片机模拟电脑键盘

单片机模拟电脑键盘

发布时间:2022-10-18 05:07:24

1. 如何用单片机模拟键盘向电脑发送一个A

首先要把单片机模拟成为 电脑能识别的键盘,有usb接口的键盘和P口的键盘,P口的键盘需要在启动时被电脑识别

2. 51单片机普通i/o可以模拟USB键盘吗

用2个普通的I/O口来模拟USB键盘当然是可以的。用USB控制芯片当然好了,写程序更方便简单。但增加了成本。

用I/O口来模拟,必须要知道USB的协议,更要知道USB键盘的协议,要把这些协议都写进程序中去才行啊。
这样,写程序比较麻烦,但可以节省硬件成本了。

3. 用单片机电脑模拟键盘控制两PC实现回车键

可以。你可以在网上找到PS/2键盘通信协议和全套键盘扫描码。
这样你就可以用单片机模拟PS/2通信协议在需要的时候往两个机器上发送回车键的扫描码就行了。

4. 单片机模拟电话键盘

这个题目在这里显得有点大,而且你也没有说清楚S204键一节这个矩阵键盘到底接到什么地方。

5. 如何用单片机模拟键盘控制电脑

接口协议原理
PS/2键盘接口采用一种双向同步串行协议。即每在时钟线上发一个脉冲,就在数据线上发送一位数据。在相互传输中,主机拥有总线控制权,即它可以在任何时候抑制键盘的发送。方法是把时钟线一直拉低,键盘就不能产生时钟信号和发送数据。在两个方向的传输中,时钟信号都是由键盘产生,即主机不产生通信时钟信号。
如果主机要发送数据,它必须控制键盘产生时钟信号。方法如下:主机首先下拉时钟线至少100μs抑制通信,然后再下拉数据线,最后释放时钟线。通过这一时序控制键盘产生时钟信号。当键盘检测到这个时序状态,会在10ms内产生时钟信号。如图3中 A 时序段。主机和键盘之间,传输数据帧的时序如图2、图3所示。2.2 数据包结构在主机程序中,利用每个数据位的时钟脉冲触发中断,在中断例程中实现数据位的判断和接收。在实验过程中,通过合适的编程,能够正确控制并接收键盘数据。但该方案有一点不足,由于每个CLOCK都要产生一次中断,中断频繁,需要耗用大量的主机资源。

/*-----------------------------------------------
ps2鼠标的基本原理应用
说明:此程序使用标准PS2键盘输入。此样例仅作测试使用
晶振使用12M或者11.0592M,本键盘使用部分字母和数字测试,其他按键不能使用,用
户可以自行扩展。由于开发板和程序的各种参数,程序中没有使用奇偶校验,不保证没有
误码,校验程序请自行添加。
-------------------------------------------------*/

#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

sbit Key_Data = P3^3 ; //定义Keyboard引脚
sbit Key_CLK = P3^2; //使用中断

bit BF=0;
bit Shift; //定义上档键标志
bit Key_UP; //定义通码断码标志
unsigned char KeyV;
unsigned char IntNum;
unsigned char DisNum;

/*-----------------------------------------------
外部中断读入信息
-----------------------------------------------*/
void Keyboard_out(void) interrupt 0
{
if ((IntNum > 0) && (IntNum < 9))
{
KeyV = KeyV >> 1; //因键盘数据是低>>高,结合上一句所以右移一位
if (Key_Data)
KeyV = KeyV | 0x80; //当键盘数据线为1时到最高位
}
IntNum++;
while (!Key_CLK); //等待PS/2CLK拉高

if (IntNum > 10)
{
IntNum = 0; //当中断11次后表示一帧数据收完,清变量准备下一次接收
BF = 1; //标识有字符输入完了
EA = 0; //关中断等显示完后再开中断
}
}

/*-----------------------------------------------
解码信息
注意:如SHIFT+G为12H 34H F0H 34H F0H 12H
也就是说shift的通码+G的通码+shift的断码+G的断码
-----------------------------------------------*/
void Decode(unsigned char ScanCode) //
{
unsigned char TempCyc,Val;
if (!Key_UP) //当键盘按下时
{
switch (ScanCode)
{
case 0xF0 : // 当收到0xF0,Key_UP置1表示断码开始
Key_UP = 1;
break;

case 0x12 : // 左 SHIFT
Shift = 1;
break;

case 0x59 : // 右 SHIFT
Shift = 1;
break;

default:
if(!Shift) //如果SHIFT没按下
{
for (TempCyc = 0;(UnShifted[TempCyc][0]!=ScanCode)&&(TempCyc<59); TempCyc++); //查表显示
if (UnShifted[TempCyc][0] == ScanCode)
{
Val= UnShifted[TempCyc][1];
LCD_Write_Char(DisNum%16,DisNum/16,Val);
DisNum++;
if(DisNum==33)
{
LCD_Clear(); //清屏
DisNum=0; //重头写数据
}
}
}
else //按下SHIFT
{
for(TempCyc = 0; (Shifted[TempCyc][0]!=ScanCode)&&(TempCyc<59); TempCyc++); //查表显示
if (Shifted[TempCyc][0] == ScanCode)
{
Val= Shifted[TempCyc][1];
LCD_Write_Char(DisNum%16,DisNum/16,Val);
DisNum++;
if(DisNum==33)
{
LCD_Clear(); //清屏
DisNum=0; //重头写数据
}
}
}
break;
}
}
else
{
Key_UP = 0;
switch (ScanCode) //当键松开时不处理判码,如G 34H F0H 34H 那么第二个34H不会被处理
{
case 0x12 : // 左 SHIFT
Shift = 0;
break;

case 0x59 : // 右 SHIFT
Shift = 0;
break;
}
}
BF = 0; //标识字符处理完了

}

/*-----------------------------------------------
ps2初始化(实际初始化外部中断)
-----------------------------------------------*/
void PS2_Init(void)
{
IT1 = 0; //设外部中断1为低电平触发
EA = 1; //外部中断开
EX0 = 1; //开中断
}
/*-----------------------------------------------
读取键盘值
-----------------------------------------------*/
void Read_KeyBoard(void)
{

if (BF)
Decode(KeyV);
else
EA = 1; //开中断
}

6. 单片机怎么控制电脑键盘输入

进入软件,最基础的创建工程我就不说了,直接到按键程序,写程序,首先要了解按键,对于按键,分为独立式和矩阵式按键。
先说说独立式按键,这个十分简单,特点是每个按键占用一条I/O线,当按键数量较多时,I/O口利用率不高,但程序编制简单。所以,如果按键就那么两三个的话用起来还是占优势的哦。这样的开关程序就是一个检测过程,看I/O端口是否低电平,如果是则有按键按下,否则就没有。如下是独立式按键的接法。
步骤阅读
3
复杂的是矩阵式按键,但是他也有很大的优势,电路连接复杂,但提高了I/O口利用率,软件编程较复杂。要是你的东西有很多的按键要操作,那么采用这种方式的优势就十分明显了。如下图就是矩阵式按键,矩阵式按键的程序较独立式按键复杂的多,方法也很多,基本的有线翻转法,扫描法,计算法,因为程序很复杂的原因,在这里就不一一讲解了,有兴趣的自己可以查查资料。

7. 单片机模拟PC键盘输入.怎样把串口数据转换为键盘

是想用单片机模拟一个电脑键盘吗?并且接到电脑上,相当于一个键盘?
现在电脑主板不再支持串口键盘了,要用PS/2接口或USB接口。
主要是,必须按标准键盘的数据格式向电脑发送数据,电脑才能识别。上网查键盘编码标准。

8. 有谁知道怎样用51单片机做模拟电脑键盘来控制电脑,自做的按钮按下,能在电脑txt中显示一个“E”字符

51单片机及其外围电路作为主机,电脑作为接收机,单片机发一个信号,电脑接受到再通过程序将它翻译出来,可以用串行通信实现,软件可以VB写。

9. 单片机可以模拟键盘按下某个键吗

单片机也用不着什么模拟键盘按下某个键的,就是能做到的,为什么要模拟呀?本来就行的事,还模拟干什么?单片机连这么点事都做不了,还叫什么单片机。你用过电脑的键盘吗,所有电脑都有的,那就是用单片机来做的。难道不相信吗?

10. 我想用51单片机模拟PS/2或USB键盘来向计算机发送数据,做自动化用

51的没搞过,但是stm32来模拟usb键盘很简单,arino好像也可以模拟ps2键盘,见过资料。

阅读全文

与单片机模拟电脑键盘相关的资料

热点内容
电脑上怎么下载班智达的软件 浏览:1152
无痕迹消除图片软件 浏览:715
免费小票软件 浏览:949
华为在哪里设置软件停止运行 浏览:956
用电脑键盘调节声音大小 浏览:1255
自动刷软件赚钱 浏览:1257
古装连续剧免费版 浏览:1410
工免费漫画 浏览:1141
手机软件专门储存文件 浏览:1504
uos如何用命令安装软件 浏览:1312
有线耳机插电脑麦克风 浏览:642
侏罗纪世界3在线观看完整免费 浏览:991
单个软件怎么设置名称 浏览:716
凤凰网电脑版下载视频怎么下载视频怎么下载 浏览:1380
明白之后如何免费获得无人机 浏览:827
如何解禁软件菜单 浏览:847
副路由器连接电脑视频 浏览:1347
内置wifi电视如何装软件 浏览:1099
手机换零免费雪碧 浏览:1584
国行苹果如何下载美版软件 浏览:1204