找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3734|回复: 3
打印 上一主题 下一主题
收起左侧

KEY.H文件下载-键盘驱动

[复制链接]
跳转到指定楼层
楼主
ID:70976 发表于 2014-12-25 20:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
key.h 文件内容是:大家可以复制代码 然后另存为下载到硬盘
  1. /*把我一直珍藏的程序全部拿出来,给大家共享,这也让我想起来,我刚学的时候,搜集资料是那么辛苦,而且找不到完整的资料,我将把我整理的和自己制作的H文件共享出来,只要修改定义端口,便可以随意的调用,以后我还会慢慢完善我的C资料,也希望大家给我指出程序的漏洞和缺点,已达到相互学习目地。*/

  2. #ifndef __key_H__
  3. #define __key_H__
  4. /************************返回值是字符****************************/
  5. #define port_k P1//单片机数据端口的定义
  6. #define uint unsigned int
  7. #define uchar unsigned char

  8. uchar a;
  9. uchar b;
  10. uchar c;
  11. uchar key_v;
  12. uchar key_val;

  13. void delay_key(uint n)
  14. {
  15. uint i;
  16. for(i=0;i<n;i++);
  17. }

  18. uchar key(void)
  19. {
  20. key_v=0;
  21. port_k=0x0f;
  22. a=port_k;
  23. delay_key(50);
  24. port_k=0xf0;
  25. b=port_k;
  26. delay_key(50);
  27. c=a+b;
  28. if(c!=0xff)
  29. {
  30.   port_k=0x0f;
  31.   a=port_k;
  32.   port_k=0xf0;
  33.   b=port_k;
  34.   key_v=a+b;
  35.   while(c!=0xff)
  36.   {
  37.    port_k=0x0f;
  38.    a=port_k;
  39.    port_k=0xf0;
  40.    b=port_k;
  41.    c=a+b;
  42.   }
  43. }

  44. switch(key_v)
  45. {
  46.   case 0xee:key_val='0';return(key_val);break;//0
  47.   case 0xde:key_val='1';return(key_val);break;//1
  48.   case 0xbe:key_val='2';return(key_val);break;//2
  49.   case 0x7e:key_val='3';return(key_val);break;//3
  50.   case 0xed:key_val='4';return(key_val);break;//4
  51.   case 0xdd:key_val='5';return(key_val);break;//5
  52.   case 0xbd:key_val='6';return(key_val);break;//6
  53.   case 0x7d:key_val='7';return(key_val);break;//7
  54.   case 0xeb:key_val='8';return(key_val);break;//8
  55.   case 0xdb:key_val='9';return(key_val);break;//9
  56.   case 0xbb:key_val='A';return(key_val);break;//a
  57.   case 0x7b:key_val='B';return(key_val);break;//b
  58.   case 0xe7:key_val='C';return(key_val);break;//c
  59.   case 0xd7:key_val='D';return(key_val);break;//d
  60.   case 0xb7:key_val='E';return(key_val);break;//e
  61.   case 0x77:key_val='F';return(key_val);break;//f
  62.   default:key_val=0;return(key_val);
  63. }
  64. }

  65. #endif
复制代码



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:32627 发表于 2015-1-2 09:09 | 只看该作者
下载了,谢谢!!
回复

使用道具 举报

板凳
ID:29438 发表于 2015-2-5 13:32 | 只看该作者
谢谢!
回复

使用道具 举报

地板
ID:184107 发表于 2017-3-28 14:56 | 只看该作者

谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表