烽火社区

标题: 51 PS2键盘控制实验 实验(二十一) [打印本页]

作者: jiajia    时间: 2015-1-6 10:33 AM
吧                                                                                                                                                                       
作者: weifeng99    时间: 2015-1-16 09:17 AM
very good                                                                                                                                                                       
作者: picq    时间: 2015-2-15 08:32 AM
是仿造磁动力论坛的明浩那个帖子搞得吗?我觉得这个键盘键值缓存最好加一个数据队列                                                                                                                                                                       
作者: hzdzkjdx    时间: 2015-2-22 07:12 AM
51 PS2键盘控制实验 实验(二十一) 精华帖
作者: jacknupt    时间: 2015-2-22 09:34 AM
再回复?                                                                                                                                                                       
作者: jacknupt    时间: 2015-3-3 10:48 AM
kan xia                                                                                                                                                                       
作者: chen_jia_    时间: 2015-3-13 08:47 AM
需要了解                                                                                                                                                                       
作者: jacknupt    时间: 2015-3-13 09:54 AM
我来看下


作者: liusca1332    时间: 2015-3-13 11:58 AM
有趣!                                                                                                                                                                       
作者: tonyconnon    时间: 2015-3-13 12:33 PM
看看怎么样                                                                                                                                                                       
作者: tonyconnon    时间: 2015-3-13 01:35 PM
急需,谢谢                                                                                                                                                                       
作者: tonyconnon    时间: 2015-3-13 03:09 PM
走过路过不要错过 ,东西我下走了啊,谢谢楼主了。                                                                                                                                                                       
作者: li460135301    时间: 2015-3-13 05:34 PM
正需要这样的好东西                                                                                                                                                                       
作者: jchad    时间: 2015-3-13 06:16 PM
我喜欢                                                                                                                                                                       
作者: liu_6713dtszcr    时间: 2015-3-13 07:46 PM
下载看看                                                                                                                                                                       
作者: sdjntl    时间: 2015-3-13 09:40 PM
不错,看下                                                                                                                                                                       
作者: 1244467708179    时间: 2015-3-13 10:19 PM
学习学习!!!!                                                                                                                                                                       
作者: Iverson2589    时间: 2015-3-13 11:31 PM
111111111111111,真是个好淫。                                                                                                                                                                       
作者: tuqiuxiangshu    时间: 2015-3-14 12:11 AM
好好                                                                                                                                                                       
作者: wshr_king    时间: 2015-3-14 03:43 AM
顶~                                                                                                                                                                       
作者: liuyongpengedn    时间: 2015-3-14 06:36 AM
qw                                                                                                                                                                       
作者: aving    时间: 2015-3-14 08:25 AM
刚好需要                                                                                                                                                                       
作者: tuqiuxiangshu    时间: 2015-3-14 08:53 AM
下载下来看看, 学习一下, 谢谢楼主                                                                                                                                                                       
作者: aving    时间: 2015-3-14 10:19 AM
看看是不是我想要的                                                                                                                                                                       
作者: ling0408    时间: 2015-3-14 01:19 PM
真好!                                                                                                                                                                       
作者: fuconghua2422    时间: 2015-3-14 02:49 PM
非常感谢啊~~                                                                                                                                                                       
作者: jchad    时间: 2015-3-14 04:21 PM
正想学习下                                                                                                                                                                       
作者: liu_6713dtszcr    时间: 2015-3-14 06:14 PM
谢谢                                                                                                                                                                       
作者: feegle    时间: 2015-3-14 07:30 PM
dddddddddddddddddddddddddddddddddddddddddddddddddd                                                                                                                                                                       
作者: 1226627563154    时间: 2015-3-14 09:04 PM
看看,谢谢                                                                                                                                                                       
作者: sdjntl    时间: 2015-3-14 10:32 PM
学习一下                                                                                                                                                                       
作者: 1226627563154    时间: 2015-3-14 11:51 PM
谢谢楼主共享                                                                                                                                                                       
作者: 震哥    时间: 2015-3-15 02:48 AM
谢谢楼主分享                                                                                                                                                                       
作者: hnhy0394    时间: 2015-3-15 04:06 AM
gggggggggggggggggggg                                                                                                                                                                       
作者: beyong    时间: 2015-3-15 05:42 AM
哇哇哇哇~~ 感谢楼主 正需要呢。。                                                                                                                                                                       
作者: wshr_king    时间: 2015-3-15 07:20 AM
fds                                                                                                                                                                       
作者: tuqiuxiangshu    时间: 2015-3-15 08:03 AM
不错,看看                                                                                                                                                                       
作者: hzdzkjdx    时间: 2015-3-15 09:36 AM
继续  请发送源码                                                                                                                                                                       
作者: woshishiyanshj    时间: 2015-3-15 11:40 AM
怎么解压                                                                                                                                                                       
作者: jchad    时间: 2015-3-15 03:07 PM
好                                                                                                                                                                       
作者: picq    时间: 2015-3-15 04:33 PM
谢谢                                                                                                                                                                       
作者: jchad    时间: 2015-3-15 06:35 PM
学习学习                                                                                                                                                                       
作者: weiweiwyj    时间: 2015-3-26 03:58 AM
谢谢                                                                                                                                                                       
作者: fuconghua2422    时间: 2015-4-2 11:12 AM
看看看看~~                                                                                                                                                                       
作者: tcad007    时间: 2015-4-16 12:13 PM
键盘,顶!                                                                                                                                                                       
作者: tuqiuxiangshu    时间: 2015-4-17 04:28 AM
来看看。。                                                                                                                                                                       
作者: li460135301    时间: 2015-5-6 08:53 AM
LZ辛苦了                                                                                                                                                                       
作者: 正点原子    时间: 2015-5-11 07:56 AM
标题: 51 PS2键盘控制实验 实验(二十一)
[attach]10275[/attach]
附件一
[attach]10275[/attach]
附件二
[attach]10275[/attach]
附件三
这个实验利用键盘控制单片机,然后把实验结果显示到lcd12864上,详情见
附件
平台:FDR-1 51 开发板
主程序代码:
#include
#include"led.h" //该头文件包含数码管显示数字驱动
#include"tg12864p.h" //该头文件包含lcd12864驱动
sbit dat =P3^2;//DATA IN
#define uchar unsigned char // 即 uchar等同与unsigned char
#define uint unsigned int
uchar sp2key_scan();
/*****************常量声明区******************************************/
uchar code key_table[47]={
'0','1','2','3','4','5','6','7','8','9',
'a','b','c','d','e','f','g','h','i','j',
'k','l','m','n','o','p','q','r','s','t', //说明:存放键盘上按键的as2码值
'u','v','w','x','y','z',' ','-','=',']',
';','"',',','.','/','[',' ' //作用:方便日后传值到液晶上
};
/****************全局变量声明区************************************/
uchar key="0"; //用于存放键盘解码函数的解码结果
uchar key_temp=0;
bit BF="0"; //接收到通码的标志位
uchar key_count=0; //记录键盘传任一个数据时传来时钟脉冲个数
uchar key_buffer[5]={0,0,0,0,0};//接收键盘传来数据的缓冲区
uchar key_num=0;//一个按键动作,键盘会发出通码,段吗,这用于记录收到编码个数。
//可以参考附带的ps2.pdf第54页

/************* 键盘接收解码程序 *******************************
这是本程序的核心函数,用于键盘解码。建议读者参考附带的pse.pdf第54页
了解键盘ps2协议,理解通码、断码概念以及发送编码个数。
******************************************************************/
void key_dec() interrupt 2 using 0
{
if ((key_count>0)&&(key_count<9))
{
key_temp>>=1;
if (dat==1)key_temp|=0x80;
}
key_count++;
if (key_count>10)
{
key_buffer[key_num]=key_temp; //将获得的数据写入缓冲区
key_temp=0;
key_num++;
key_num%=5; //不会超过五个码
if(key_buffer[0]<0xe0) //收到通码或结束码
{
if(key_num==1) //若是通码
{
if(!BF)
{ //置标志位
BF=1; //清空缓冲区,准备接收下一个按键发来的码
key=key_buffer[0];
}
}
if(key_num>1&&key_buffer[key_num-1]==key_buffer[0])key_num=0; //收到结束码
}
else
{
if(key_num==2) //收到通码或结束码
{
if(!BF) //若是通码
{ //置标志位若置标志位是通码
BF=1; //清空缓冲区,准备接收下一个按键发来的码
key=key_buffer[1];
}
}
if(key_num>2&&key_buffer[key_num-1]==key_buffer[1])key_num=0;//收到结束码
}
key_count=0;
}
}
/**************** 键盘初始化函数 ***********************/
void init_keyboard()
{
TCON=0x04; //外部中断低电平触发
IE =132; //开启外部中断1
//不修改当前的优先级
}

/********************** 键值转换函数 **********************
主要用于将接收到的编码量化键值,以备以后分类处理。
返回数据: 量化后的键值
*******************************************************************/


uchar sp2key_scan()
{
unsigned char temp2,k=255;
if(BF==1) //如果收到
{ //清除接收到通码的标志位,键盘可以继续接收数据
BF="0";
temp2=key;
switch ( temp2 )
{
case 0x45: k="0"; break; //0
case 0x16: k="1"; break; //1
case 0x1e: k="2"; break; //2
case 0x26: k="3"; break; //3
case 0x25: k="4"; break; //4
case 0x2e: k="5"; break; //5
case 0x36: k="6"; break; //6
case 0x3d: k="7"; break; //7
case 0x3e: k="8"; break; //8
case 0x46: k="9"; break; //9
case 0x1c: k="10"; break; //a
case 0x32: k="11"; break; //b
case 0x21: k="12"; break; //c
case 0x23: k="13"; break; //d
case 0x24: k="14"; break; //e
case 0x2b: k="15"; break; //f
case 0x34: k="16"; break; //g
case 0x33: k="17"; break; //h
case 0x43: k="18"; break; //i
case 0x3b: k="19"; break; //j
case 0x42: k="20"; break; //k
case 0x4b: k="21"; break; //l
case 0x3a: k="22"; break; //m
case 0x31: k="23"; break; //n
case 0x44: k="24"; break; //o
case 0x4d: k="25"; break; //p
case 0x15: k="26"; break; //q
case 0x2d: k="27"; break; //r
case 0x1b: k="28"; break; //s
case 0x2c: k="29"; break; //t
case 0x3c: k="30"; break; //u
case 0x2a: k="31"; break; //v
case 0x1d: k="32"; break; //w
case 0x22: k="33"; break; //x
case 0x35: k="34"; break; //y
case 0x1a: k="35"; break; //z
case 0x0e: k="36"; break; //~
case 0x4e: k="37"; break; //-
case 0x55: k="38"; break; //=
case 0x29: k="46"; break; //SPACE
case 0x66: k="47";break; //del
case 0x5b: k="39";break; //]
case 0x4c: k="40";break;//;
case 0x52: k="41";break;// '
case 0x41: k="42"; break; //,
case 0x49: k="43";break;//.
case 0x4a: k="44";break; // /
case 0x54: k="45"; break; //[
case 0x58: k="49"; break; //cap
case 0x5a: k="48"; break; //回车键
case 112 : k="0" ; break; //小键盘部分
case 105 : k="1" ; break;
case 114 : k="2" ; break;
case 122 : k="3" ; break;
case 107 : k="4" ; break;
case 115 : k="5" ; break;
case 116 : k="6" ; break;
case 108 : k="7" ; break;
case 117 : k="8" ; break;
case 125 : k="9" ; break;
case 113 : k="43" ; break;;
default : k="255";
}

}
return k;
}
/************************* 输入显示函数****************************************
将输入数据显示在12864上
data 输入字符的asc2码值,
positon 是当前坐标
*******************************************************************************/
void input(uchar dat,uchar position)
{
switch(position)
{
case 16:Location_xy_12864(1,0); break;
case 32:Location_xy_12864(2,0); break;
case 48:Location_xy_12864(3,0); break;
}
Write_Char_12864(dat);
}
void main()
{
uchar t="0",
temp=0,
pos=0, //记录输入光标位置 ,输入一个字母或数字,光标加一
cap=0;
temp=200;
while(temp--);
init_keyboard();
Init_12864();
delay10us(1000);
while(1)
{
temp=sp2key_scan();
if(temp!=255)
{
t=temp;
if(t<48) //输入为字母或其他符号
{
if(pos==64)
{
pos=0;
LcmClearTXT();
}
if(t==47) //删除
{
if(pos)
{
Lcm_clear_char(pos);
if((pos%2))pos-=1;
if(pos)pos--;
}
}
else
{
temp=key_table[t];
if(t>9&&t<36)temp-=cap*32; //如果输入为字符,根据cap 令显示为大写或小写
input(temp,pos);
pos++;
}
}
if(t==48) //换行
{
if(pos<48)
{
pos+=16;
Location_xy_12864(pos/16,(pos%16)/2);
}
else
{
LcmClearTXT();
pos=0;
}
}
if(t==49)cap=!cap;//cap:大小写转换
}
}
}

作者: liusca1332    时间: 2015-5-13 09:08 AM
sese                                                                                                                                                                       
作者: weifeng99    时间: 2015-5-17 03:52 AM
谢谢                                                                                                                                                                       
作者: 耐心    时间: 2015-5-17 08:08 AM
51 PS2键盘控制实验 实验(二十一)                                                                                                                                                                        
作者: s8349626    时间: 2015-6-1 09:31 AM
好好                                                                                                                                                                       
作者: Iverson2589    时间: 2015-7-2 10:54 AM
好                                                                                                                                                                       
作者: zidane    时间: 2015-7-16 12:07 AM
谢谢!                                                                                                                                                                       
作者: feegle    时间: 2015-7-27 05:23 AM
那个12864的头文件是什么啊                                                                                                                                                                       
作者: s8349626    时间: 2015-8-2 09:06 AM
了解下


作者: ling0408    时间: 2015-8-4 01:32 AM
了解下了解下了解下了解下了解下了解下                                                                                                                                                                       
作者: tonyconnon    时间: 2015-8-4 01:32 AM
顶~                                                                                                                                                                       
作者: sdjntl    时间: 2015-8-19 09:11 AM
bu cuo  xia zai  kan kan   xuexi                                                                                                                                                                       
作者: mengyiqing    时间: 2015-8-19 09:11 AM
qw                                                                                                                                                                       
作者: 13590955160ke    时间: 2015-8-20 04:46 AM
刚好需要                                                                                                                                                                       
作者: 电子堂    时间: 2015-8-20 04:47 AM
看看                                                                                                                                                                       
作者: woshishiyanshj    时间: 2015-9-11 04:51 AM
下载下来看看, 学习一下, 谢谢楼主                                                                                                                                                                       
作者: skyjeffery    时间: 2015-9-12 11:08 AM
看看是不是我想要的                                                                                                                                                                       
作者: fjxmhzg    时间: 2015-9-15 12:03 PM
ua0                                                                                                                                                                       
作者: handsome414    时间: 2015-9-16 01:28 AM
学习一下                                                                                                                                                                       
作者: picq    时间: 2015-9-22 09:18 AM
谢谢                                                                                                                                                                       
作者: hnhy0394    时间: 2015-10-19 08:47 AM
学习                                                                                                                                                                       
作者: zl990812zzz    时间: 2015-10-31 07:17 AM
谢谢楼主分享,下回去学习学习                                                                                                                                                                       
作者: onlinezaixian    时间: 2015-12-30 07:53 AM
可否发到我邮箱popfeegle@gmail.com                                                                                                                                                                       




欢迎光临 烽火社区 (http://bbs.cnecport.com/) Powered by Discuz! X3.2