资源简介
很不错的USB键盘开发学习例子,值得推荐一番
代码片段和文件信息
/******************************************************************
本程序只供学习使用,未经作者许可,不得用于其它任何用途
我的邮箱:computer-lov@tom.com
欢迎访问我的blog: http://computer00.21ic.org
KEY.C file
作者:Computer-lov
建立日期: 2007.03.20
修改日期: 2007.03.22
版本:V1.1
版权所有,盗版必究。
Copyright(C) Computer-lov 2007-2017
All rights reserved
*******************************************************************/
#include “Key.h“
#include “my_type.h“
uint16 idata KeyMapCurrentKeyMapOldKeyMapOkKeyNoChangedTime;
uint8 KeyMapCanChange;
#define KeyIO P1
/*************************定时器0初始化***************************************/
void InitTimer0(void)
{
TMOD&=0xF0;
TMOD|=0x01;
TH0=0xDC;
ET0=1;
TR0=1;
}
/******************************************************************************/
/*************************定时器0中断处理***************************************/
void Timer0Isr(void) interrupt 1
{
uint8 temp;
TH0=0xDC; //定时器0重装
KeyIO=0x0F;
if((KeyIO&0x0F)==0x0F) //如果现在没有按键按下
{
KeyMapCurrent=0; //没有键按下
}
else
{
//开始键盘扫描
//扫描第一行
KeyIO=~0x10;
//保存四个开关状态
temp=KeyIO&0x0F;
//扫描第二行
KeyIO=~0x20;
//保存四个开关状态
temp|=KeyIO<<4;
//保存按键状态到当前按键情况
KeyMapCurrent=(~temp)&0xFF;
//扫描第三行
KeyIO=~0x40;
//保存四个开关状态
temp=KeyIO&0x0F;
//扫描第四行
KeyIO=~0x80;
//保存四个开关状态
temp|=KeyIO<<4;
//保存全部16个开关的状态
//KeyMap总共有16个bit,当某个开关按下时,
//对应的bit为1
KeyMapCurrent|=(((uint16)~temp)<<8);
}
if(KeyMapCurrent!=KeyMapOld) //说明按键情况发生了改变
{
KeyNoChangedTime=0; //键盘按下时间为0
KeyMapOld=KeyMapCurrent; //保存当前按键情况
return;
}
else
{
KeyNoChangedTime++; //按下时间累计
if(KeyNoChangedTime>=1) //如果按下时间足够
{
KeyNoChangedTime=1;
if(KeyMapCanChange)
{
KeyMapOk=KeyMapOld; //保存按键
}
}
}
}
/******************************************************************************/
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2011-12-09 14:20 USB键盘源程序(含调试信息-电路原理图)
目录 0 2011-12-09 14:22 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)
文件 2225 2007-03-22 16:25 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\Key.c
文件 706 2007-03-22 15:58 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\Key.h
文件 4569 2007-03-23 23:58 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\Key.LST
文件 5258 2007-03-23 23:58 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\Key.OBJ
文件 2102 2007-03-22 16:02 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\keyboard.h
文件 688 2007-03-22 15:54 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\My_type.h
文件 3081 2006-03-02 23:25 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\PDIUSBD12.h
文件 3901 2007-03-22 15:57 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\UART.c
文件 740 2007-03-22 15:58 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\UART.h
文件 6922 2007-03-23 23:58 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\UART.LST
文件 7945 2007-03-23 23:58 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\UART.OBJ
文件 7498 2007-03-22 15:58 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\USB.H
文件 68444 2007-03-23 23:58 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\UsbKeyBoard
文件 38004 2007-03-23 23:58 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\UsbKeyBoard.c
文件 16743 2007-03-23 23:58 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\UsbKeyBoard.hex
文件 79 2007-03-23 23:58 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\UsbKeyBoard.lnp
文件 61885 2007-03-23 23:58 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\UsbKeyBoard.LST
文件 62949 2007-03-23 23:58 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\UsbKeyBoard.M51
文件 66608 2007-03-23 23:58 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\UsbKeyBoard.OBJ
文件 3256 2011-12-09 14:22 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\UsbKeyBoard.Opt
文件 255 2011-12-09 14:22 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\UsbKeyBoard.plg
文件 2249 2011-12-09 14:22 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\UsbKeyBoard.Uv2
....... 2575 2007-03-23 23:58 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\UsbKeyBoard_Opt.Bak
....... 2230 2007-03-23 22:41 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\UsbKeyBoard_Uv2.Bak
文件 1525760 2009-02-28 06:32 USB键盘源程序(含调试信息-电路原理图)\USB键盘源程序(含调试信息-电路原理图)\调试信息-电路原理图.doc
----------- --------- ---------- ----- ----
1896672 27
............此处省略0个文件信息
评论
共有 条评论