📄 ps2key.c
字号:
//ps2 keyboard
//clk=pd2,dat=pb3
#include<io8515v.h>
#include<macros.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char KeyCode; //键盘键值
void data()
{
uchar num; //位数
DDRD=0X00;
while((PIND|0XFB)==0XFF); // 等待键盘把时钟第一次拉低
for(num=8;num!=0;num--) // 把起始位算入
{DDRD=0X00;
while((PIND|0XFB)!=0XFF); // 等待一个有效的下跳沿
while((PIND|0XFB)==0XFF);
KeyCode>>=1; // 按照PS2格式,数据低位在前
if((PINB|0XF7)==0XFF)
{
KeyCode|=0x80; // 得到有效的数据位
}
}
DDRD=0X00;
while((PIND|0XFB)!=0XFF);
while((PIND|0XFB)==0XFF);
while((PIND|0XFB)!=0XFF);
while((PIND|0XFB)==0XFF);
while((PIND|0XFB)!=0XFF);
}
void m8515_init()
{
DDRA=0XFF;
PORTA=0X00;
DDRB=0X00;
PORTB=0XFF;
DDRC=0X00;
PORTC=0XFF;
DDRD=0X04; //clk=1
PORTD=0XFF;
}
void main()
{
m8515_init();
while(1)
{
data();
if(KeyCode==0xe0)
{data();}
PORTA=KeyCode;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -