当前位置:首页 > 单片机 > 单片机
[导读] PS2键盘解码的基本原理是通过外部中断读取键盘输出的串行信号,在根据扫描码进行查表解码。键盘发送往主机的信号总是在时钟的下降沿因此此中断是在下降沿触发,且时钟信号是由键盘给出,因此使用P1口中

PS2键盘解码的基本原理是通过外部中断读取键盘输出的串行信号,在根据扫描码进行查表解码。键盘发送往主机的信号总是在时钟的下降沿因此此中断是在下降沿触发,且时钟信号是由键盘给出,因此使用P1口中断(已经在初始化端口时设置)。发送的数据位11位,第一位是起始位,总为0,紧接是8个数据位,然后是奇校验位,最后是停止位总为1.

本程序只能对基本按键(即键被按下时产生三个字节的扫描码的按键)做出解码,包括所有的可显示字符键和Table,Back Space和Ente三个特殊功能键。基本按键的扫描码由三个字节组成,第1个字节为接通码,第2、3字节为断开码;其中第1字节和第3字节相同,中间字节为断开标志0xf0。例如:通码和断码是以什么样的序列发送到你的计算机使得字符G 出现在你的字处理软件里呢?因为这是一个大写字母需要发生这样的事件次序按下Shift 键按下G 键释放G 键释放Shift 键,与这些时间相关的扫描码如下:Shift 键的通码12h G键的通码34h G 键的断码F0h 34h Shift 键的断码F0h 12h 因此发送到你的计算机的数据应该是12h 34h F0h 34h F0h 12h如果按键按着不放会连续发送通码命令,可以连续显示字符(没有验证,实验验证是可以的)。

具体的说明都已经在程序中做了注释,主程序,中断服务函数中读取键盘发送的值:


  1. /*****************************************************

  2. 程序功能:接收并解码来自标准键盘的基本按键的扫描码

  3. 然后在1602液晶上显示。按BackSpace键可以前向删除显

  4. 示字符,按Space键可以后向删除显示字符。

  5. -----------------------------------------------------

  6. 将拨码开关的SN74LVC2454和LCD位拨至ON

  7. 读取键盘的信号需要电平转换,注意设置SN74LVC2454的转换方向

  8. 跳线设置:将跳线座J13的B8脚和P1.7脚短接

  9. -----------------------------------------------------

  10. 测试说明:敲定标准键盘上的按键,观察液晶显示

  11. *****************************************************/

  12. #include

  13. #include"cry1602.h"

  14. #include"cry1602.C"

  15. #include"PS2Keyboard.h"

  16. #include"PS2Keyboard.C"

  17. #defineSIDvalP5IN&BIT6

  18. #defineBufferSize32//显示缓存大小

  19. unsignedcharbitcount=11;//位计数变量

  20. unsignedcharkb_buffer[BufferSize];//显示缓存

  21. unsignedcharinput=0;//数据压入缓存位置指针

  22. unsignedcharoutput=0;//数据弹出缓存位置指针

  23. unsignedcharpebit=0xff;//奇偶校验标志位

  24. unsignedcharrecdata=0;//接收到的数据

  25. unsignedchartishi[]={"thisisademo!"};

  26. /****************主函数****************/

  27. voidmain(void)

  28. {

  29. uchardisptmp,i;

  30. ucharx=0,y=0;

  31. ucharfirst=1;

  32. WDTCTL=WDTPW+WDTHOLD;//关闭看门狗

  33. P6DIR|=BIT2;P6OUT&=~BIT2;//打开电平转换

  34. P2DIR|=BIT3;P2OUT|=BIT3;//方向5V-->3.3V

  35. /*------选择系统主时钟为8MHz-------*/

  36. BCSCTL1&=~XT2OFF;//打开XT2高频晶体振荡器

  37. do

  38. {

  39. IFG1&=~OFIFG;//清除晶振失败标志

  40. for(i=0xFF;i>0;i--);//等待8MHz晶体起振

  41. }

  42. while((IFG1&OFIFG));//晶振失效标志仍然存在?

  43. BCSCTL2|=SELM_2;//主时钟选择高频晶振

  44. LcdReset();//复位液晶

  45. DispNchar(0,0,15,tishi);//液晶显示提示信息

  46. Init_KB();//初始化键盘端口

  47. _EINT();//打开全局中断

  48. while(1)

  49. {

  50. LPM3;//进入低功耗模式

  51. if(first)

  52. {

  53. first=0;

  54. LcdWriteCommand(0x01,1);//显示清屏

  55. LcdWriteCommand(0x0f,1);//打开游标

  56. }

  57. disptmp=GetChar();//读取键值对应的ASCII码

  58. if(disptmp!=0xff)//取出了一个有效字符

  59. {

  60. if(disptmp==8)//如果是退格键

  61. {

  62. if((x==0)&&(y==0))//如果游标在第1行第1位

  63. {

  64. x=15;

  65. y=1;

  66. Disp1Char(x,y,0x20);//0x20是空格的ASCII码

  67. LocateXY(x,y);

  68. }

  69. elseif((x==0)&&(y==1))//如果游标在第2行第1位

  70. {

  71. x=15;

  72. y=0;

  73. Disp1Char(x,y,0x20);

  74. LocateXY(x,y);

  75. }

  76. else

  77. {

  78. Disp1Char(--x,y,0x20);

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭