矩阵键盘通用模块.doc

矩阵键盘通用模块.doc

ID:53125330

大小:73.50 KB

页数:3页

时间:2020-04-01

矩阵键盘通用模块.doc_第1页
矩阵键盘通用模块.doc_第2页
矩阵键盘通用模块.doc_第3页
资源描述:

《矩阵键盘通用模块.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、通用模块#ifndef_KEY_H_#define_KEY_H_#include//#include"public.h"为了让模块变的跟独立这个也不需要//#defineucharunsignedchar外部不需要调用,放在函数内部就可以#defineKEY_BUSP2//这个根据开发板来变;加一个分号导致整个程序错误externunsignedcharkey_scan(void);//返回一个无符号字符型变量(0~15),无按键按下返回一个'E'#endif/*************************************

2、**********************函数功能:**键盘扫描函数****带入参数:**无****带出参数:**返回键1-15若无返回'E'****其他备注:**4*4矩阵键盘****作者:**江锟****更新时间:**2017.12.14***********************************************************/#include"key.h"#include//---------------------------------------------------#defineuch

3、arunsignedchar#defineuintunsignedint//---------------------------------------------------/***********************************************************函数功能:**软件延时函数0~65536ms****带入参数:**unsignedint****带出参数:**无****其他备注:**延时0~unsignedint(带入参数)ms****作者:**江锟****时间:**2015.12.14**********

4、*************************************************/voiddelay_ms(unsignedintz){intx,y;for(x=0;x

5、/四次扫描{key=KEY_BUS&0x0f;//屏蔽掉低4位只保留检测回来的位switch(key){case0x0e:k=i;break;//能记录0-3case0x0d:k=i+4;break;//能记录4-7case0x0b:k=i+8;break;//能记录8-11case0x07:k=i+12;break;//能记录12-15default:;break;}KEY_BUS=(KEY_BUS<<1)+1;//把P1口的0的位向左移动//_crol_(KEY_BUS,1);可以用这个代替if(k!='E')break;//检测到按键后退出for

6、循环}KEY_BUS=0xf0;//for(c=0;(c>200)

7、

8、(P2!=0xf0);c++);//delay_ms(10);//for(c=0;(c>200)

9、

10、(P2!=0xf0);c++);//这样写可以让单片机检测200次,不至于是一个死循环,有些时候用的到//if(P2==0xf0)//{//returnk;//}//elsereturn20;//有按键按下但没松手,这种情况也可以定义笔记特殊while(P2!=0xf0);delay_ms(40);while(P2!=0xf0);//一直不松手会进入一个死循环,这样做不好,只要他延时一

11、段时间就好returnk;}elsereturn'E';//没有键按下返回'E'}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。