msp430的矩阵键盘程序.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
msp430的矩阵键盘程序

msp430g2553的矩阵按键程序IAR环境下的程序! 矩阵按键在单片机设计中经常见到,下面给大家几个程序!如果有需求可以看看! 矩阵按键,扫描 下面程序是淘来的! #includemsp430g2553.h /***************全局变量***************/ unsigned char Key_Val;? ?? ?? ? //存放键值 void CtrlKey(unsigned char sw); //控制键盘开关//sw=0关 sw=1开 /******************************************* 函数名称:Init_Keypad 功? ? 能:初始化扫描键盘的IO端口 参? ? 数:无 返回值??:无 ********************************************/ void Init_Keypad(void) {? ??? ??P1DIR = 0x0f;? ?? ? //P1.0~P1.3设置为输出状态,P1.4~P1.7输入 状态(上拉H) ??P1OUT=0; ??P1IES =0xf0;? ? //P1.4~P1.7允许中断 ??P1IE??=0xf0;? ?//P1.4~P1.7下降沿触发中断 ??P1IFG=0;? ?? ?//中断标志清0 ??Key_Val = 0; } /******************************************* 函数名称:Check_Key 功? ? 能:扫描键盘的IO端口,获得键值 参? ? 数:无 返回值??:无 ********************************************/ //p14\5\6\7 接上拉电阻 /***************************************? ? ?? ?? ?? ?key_Val 对应键值? ? ?? ???列:[p14]??[p15]??[p16]? ?[p17] ? ?? ?? ?? ? ↓? ???↓? ???↓? ???↓ 行: [p13]→? ?? ?1? ?? ?2? ?? ?3? ?? ?4? ? [p12]→? ?? ?5? ?? ?6? ?? ?7? ?? ?8? ?? [p11]→? ?? ?9? ???10? ???11? ???12? ? [p10]→? ???13? ???14? ???15? ???16? ? ***************************************/ void Check_Key(void) { ??unsigned char row ,col,tmp1,tmp2; ??unsigned char keymap[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};//设置键盘逻辑键值 ?? ??tmp1 = 0x08; ??for(row = 0;row 4;row++)? ?? ?? ?? ???//行扫描 ??{ ? ? P1OUT = 0x0f;? ?? ?? ?? ?? ?? ?? ???//P1.0~P1.3输出全1 ? ? P1OUT -= tmp1;? ?? ?? ?? ?? ?? ?? ? //P1.0~p1.3输出四位中有一个为0 ? ? tmp1 =1;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? ? ? if((P1IN 0xf0)0xf0)? ?? ?? ?? ???//是否P1IN的P1.4~P1.7中有一位为0 ? ? {? ?? ?? ?? ?? ?? ?? ??? ? ?? ?tmp2 = 0x10;? ?? ?? ?? ?? ?? ?? ?? ?// tmp2用于检测出哪一位为0?? ? ?? ?for(col = 0;col 4;col++)? ?? ?? ? // 列检测? ? ?? ?{? ?? ?? ?? ? ?? ???if((P1IN tmp2) == 0x00)? ?? ? // 是否是该列,等于0为是 ? ?? ???{? ?? ?? ?? ? ?? ?? ? Key_Val = keymap[row*4 + col];??// 获取键值 ? ?? ?? ? return;? ?? ?? ?? ?? ?? ?? ?? ? // 退出循环 ? ?? ???} ? ?? ???tmp2 = 1;? ?? ?? ?? ?? ?? ?? ???// tmp2右移1位? ? ?? ?} ? ? } ??}? ?? ? } /******************************************* 函数名称:de

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档