欢迎来到天天文库
浏览记录
ID:14101941
大小:49.50 KB
页数:10页
时间:2018-07-26
《msp430的矩阵键盘程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、msp430g2553的矩阵按键程序IAR环境下的程序!矩阵按键在单片机设计中经常见到,下面给大家几个程序!如果有需求可以看看!矩阵按键,扫描下面程序是淘来的!#include/***************全局变量***************/unsignedcharKey_Val; //存放键值voidCtrlKey(unsignedcharsw);//控制键盘开关//sw=0关sw=1开/*******************************************函数名称:Init_Keypad功 能:初
2、始化扫描键盘的IO端口参 数:无返回值 :无********************************************/voidInit_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;}/**************************
3、*****************函数名称:Check_Key功 能:扫描键盘的IO端口,获得键值参 数:无返回值 :无********************************************///p14567接上拉电阻/*************************************** key_Val对应键值 列:[p14] [p15] [p16] [p17] ↓ ↓ ↓ ↓行:[p13]→ 1 2 3 4 [p12]→ 5
4、 6 7 8 [p11]→ 9 10 11 12 [p10]→ 13 14 15 16 ***************************************/voidCheck_Key(void){ unsignedcharrow,col,tmp1,tmp2; unsignedcharkeymap[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};//设置键盘逻辑键值 tmp1=0x08; for(row=0;row<4;row++)
5、 //行扫描 { 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;c
6、ol++) //列检测 { if((P1IN&tmp2)==0x00) //是否是该列,等于0为是 { Key_Val=keymap[row*4+col]; //获取键值 return; //退出循环 } tmp2<<=1; //tmp2右移1位 } } } }/*******************************************函数名称:delay功 能
7、:延时约15ms,完成消抖功能参 数:无返回值 :t=tmp*5*clk根据使用时钟调整tmp值********************************************/voiddelay(void){ unsignedinttmp; for(tmp=12000;tmp>0;tmp--);}/*******************************************函数名称:Key_Event功 能:检测按键,并获取键值参 数:无返回值 :无*************************************
8、*****
此文档下载收益归作者所有