173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

ps2单片机

htxw 2023-03-14 资讯中心 24 ℃

单片机制作PS/2键盘如何初始化?

/*********************************************************************/

/************************PS2 Command Process**************************/

/*********************************************************************/

void receive_process ( )

{

uchar command;

if ( !Check_command( ) ) return;

command = PS2_Recbyte ( );

if ( !command ) return;

switch( command )

{

case 0xff: // reset command

ps2_send ( 0xfa );

reset ( );

break;

case 0xfe: // re-send command

ps2_send ( 0xfa );

re_send ( );

break;

case 0xf6: // Set default

ps2_send ( 0xfa );

scan_on=1;

break;

case 0xf5: // Set default and Disable Keyboard

LED_ALARM = 0;

ps2_send ( 0xfa );

scan_on=0;

break;

case 0xf4: // Enable Keyboard

ps2_send ( 0xfa );

scan_on=1;

break;

case 0xf3: // Set Typematic Rate/Delay

ps2_send ( 0xfa );

break;

case 0xf2: // Read ID

ps2_send ( 0xfa );

ps2_send ( 0xAB );

ps2_send ( 0x83 );

break;

case 0xee: // respond command

ps2_send ( 0xee );

case 0xed: // set/reset led status command

ps2_send ( 0xfa );

receive_led ( );

break;

case 0x00:

ps2_send ( 0xfe );

break;

default:

ps2_send ( 0xfa ); // other command, just send a response of 0xFA

break;

}

}

ps2 键盘编码 单片机

部分编码如下:

0x1C, 'a',

0x32, 'b',

0x21, 'c',

0x23, 'd',

0x24, 'e',

0x2B, 'f',

0x34, 'g',

0x33, 'h',

0x43, 'i',

0x3B, 'j',

0x42, 'k',

0x4B, 'l',

0x3A, 'm',

0x31, 'n',

0x44, 'o',

0x4D, 'p',

0x15, 'q',

0x2D, 'r',

0x1B, 's',

0x2C, 't',

0x3C, 'u',

0x2A, 'v',

0x1D, 'w',

0x22, 'x',

0x35, 'y',

0x1A, 'z',

0x45, '0',

0x16, '1',

0x1E, '2',

0x26, '3',

0x25, '4',

0x2E, '5',

0x36, '6',

0x3D, '7',

0x3E, '8',

0x46, '9',

0x0E, '`',

0x4E, '-',

0x55, '=',

0x5D, '\\',

0x29, ' ',

0x54, '[',

0x5B, ']',

0x4C, ';',

0x52, '\'',

0x41, ',',

0x49, '.',

0x4A, '/',

0x71, '.',

0x70, '0',

0x69, '1',

0x72, '2',

0x7A, '3',

0x6B, '4',

0x73, '5',

0x74, '6',

0x6C, '7',

0x75, '8',

0x7D, '9',

0x1C, 'A',

0x32, 'B',

0x21, 'C',

0x23, 'D',

0x24, 'E',

0x2B, 'F',

0x34, 'G',

0x33, 'H',

0x43, 'I',

0x3B, 'J',

0x42, 'K',

0x4B, 'L',

0x3A, 'M',

0x31, 'N',

0x44, 'O',

0x4D, 'P',

0x15, 'Q',

0x2D, 'R',

0x1B, 'S',

0x2C, 'T',

0x3C, 'U',

0x2A, 'V',

0x1D, 'W',

0x22, 'X',

0x35, 'Y',

0x1A, 'Z',

0x45, '0',

0x16, '1',

0x1E, '2',

0x26, '3',

0x25, '4',

0x2E, '5',

0x36, '6',

0x3D, '7',

0x3E, '8',

0x46, '9',

0x0E, '~',

0x4E, '_',

0x55, '+',

0x5D, '|',

0x29, ' ',

0x54, '{',

0x5B, '}',

0x4C, ':',

0x52, '"',

0x41, '',

0x49, '',

0x4A, '?',

0x71, '.',

0x70, '0',

0x69, '1',

0x72, '2',

0x7A, '3',

0x6B, '4',

0x73, '5',

0x74, '6',

0x6C, '7',

0x75, '8',

0x7D, '9',

与单片机有关的ps2键盘是什么呀?

ps2键盘就是我们平常电脑用的键盘,ps2键盘实际上就是一个按键编码器,然后单片机要做的就是将ps2键盘发过来的键盘编码进行解码,最后在数码管上或是液晶上显示出来

单片机如何通过ps2向pc传输数据

第一,首先要知道PS/2接口跟PC是怎样连的。PC里的ps/2一般接键盘或鼠标。

PS/2的针脚

:

6*

u

*5

4*

*3

2*

*1

1

n/c

不连

2

DATA

KeyData-

3

VCC

Power,+5VDC

电源5伏

4

GND

GND

地线

5

n/c

不连

6

CLK

Clock-

时钟线

接线黄、红、白、绿对应的针脚如下

键盘

鼠标

3

4

6

绿

绿

2

接下来,你要知道数据是怎样经过ps/2接口传输到pc的?

数据是变成了2进制数后经过ps/2接口传递到PC的,常用串行方式传递数据。

所以单片机要用串行方式和ps/2通讯。即单片机的TXD做移位脉冲,接PS/2的6脚;RXD是数据线,接PS/2的2脚.

还不明白给hychyc_2008发消息。

ps2是11位。

PS/2帧的第一位是起始位,为0,然后是8位数据位,发送键盘扫描码的一个字节(扫描码为1-4个字节),然后是奇偶校验位,最后是停止位,为1。这些是在数据线(即1号引脚线)上发送的。无键按下时,数据线和始终线都保持为1。当有键按下时,时钟线CLOCK送出脉冲,同时数据线送出数据。主机(此处是89c51

MCU)在始终脉冲的下降沿对数据线采样获得数据。键盘扫描码包括通码和断码,当键按下时发送通码,抬起时发送断码。更详细的内容可参考所附的《PS/2

技术参考》。

根据上述原理,我这样设计了实验:将键盘的脉冲线接至89c51的外部中断输入口(INT0或INT1),当键按下和抬起时有脉冲产生,此脉冲引发MCU

中断。将键盘的DATA线连至89c51的输入口(如P1.0)。在中断处理程序中,从输入口读入数据,然后通过循环移位对读进的数据位进行处理,1(起始位)、10(奇偶校验)、11(停止位)可抛弃,如不嫌麻烦也可将奇偶校验位加以应用。当一个数据帧收完后,将处理后剩下的2-9位(即扫描码)通过串口发至PC机,通过PC机的串口监视软件(如“串口调试助手”)来查看。硬件连线和源码如下:

源码:

ORG

0000H

AJMP

MAIN;转入主程序

ORG

0003H

;外部中断P3.2脚INT0入口地址

AJMP

INT

;转入外部中断服务子程序

;以下为主程序进行CPU中断方式设置

MAIN:MOV

SCON,#50H;设置成串口1方式

MOV

TMOD,#20H;波特率发生器T1工作在模式2上

MOV

PCON,#80H;波特率翻倍为2400x2=4800BPS

MOV

TH1,#0F3H;预置初值(按照波特率2400BPS预置初值)

MOV

TL1,#0F3H;预置初值(按照波特率2400BPS预置初值)

SETB

EA

;打开CPU总中断请求

SETB

IT0

;设定INT0的触发方式为脉冲负边沿触发

SETB

EX0

;打开INT0中断请求

SJMP

$

INT:

CLR

EA

;暂时关闭CPU的所有中断请求

CJNE

R0,#0,L1

L3:

INC

R0

SJMP

L5

L1:

CJNE

R0,#9,L2

SJMP

L3

L2:

CJNE

R0,#10,L4

SETB

TR1;启动定时器T1

MOV

SBUF,A

MOV

R0,#0

L5:

SETB

EA

;允许中断

RETI

;退出子程序

L4:

MOV

C,P1.0

RRC

A

SJMP

L3

END

搞定后,当按下和释放键时,会在PC机上显示其扫描码。

忘了说明一点,通电时键盘会自检,此时键盘上三个灯全亮,自检完成后熄灭,并向主机发送十六进制字符AA.。

以上取自某网页。

ps2单片机的介绍就聊到这里吧,感谢您花时间阅读,谢谢。

本文标签:ps2单片机

<