/****************************
函数功能:扫描键盘,并读取键值
****************************/
#include "msp430x14x.h"
typedef unsigned int uint;
typedef unsigned char uchar;
/********全局变量************/
uint key_pressed,key_flag;
uint key_val;
/*********************局部变量***********************/
uchar key_map[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
uint row,col,tmp1,tmp2,position=0;
uint tmp=0x00;
/***********************
函数名称:Init_Keyboard
功能:完成键盘初始化
参数:无
返回值:无
***********************/
void Init_Keyboard(void)
{
P2DIR=0XF0;//将P2口底四位设置为输入,高四位设置为输出
P2OUT=0;//使P2口高四位输出为0,等待按键按下
key_pressed=0;
key_flag=0;
key_val=0;
}
/***********************
函数名称:delay
功能:延时约15ms,完成消斗功能
参数:无
返回值:无
***********************/
void Delay(void)
{
uint delay_num;
for(delay_num=5000;delay_num>0;delay_num--);
}
/***********************
函数名称:Key_Check
功能:用于矩阵键盘行列扫描
参数:无
返回值:无
***********************/
void Key_Check(void)
{
tmp1=0x80;
for(row=4;row>=1;row--)//行扫描
{
P2OUT=0XF0;
P2OUT -=0X80;
tmp1 >>=1;
if(tmp<0X0F)//检测有键被按下
{
tmp2=0x01;
for(col=1;col<=4;col++)//列扫描
{
if((tmp & tmp2)==0x00)//检查那一列为的键被按下
{
position=(row-1)*4+col;//确定梭按键盘位置
key_val=key_map[position];//读出键值
return;//结束循环
}
tmp2 <<=1;
}
}
}
}
/***********************
函数名称:key_event
功能:检测是否有键摁下,并赋予相应键值
参数:无
返回值:无
***********************/
void Key_Event(void)
{
tmp=P2IN&0x0f;
if((key_pressed==0)&&((tmp&0x0f)<0x0f))//判断有键按下
{
key_pressed=1;
Delay();
Key_Check();
}
else if((key_pressed==1)&&(tmp&0x0f==0x0f))//如果按键已经被按下且松开
{
key_pressed=0;
key_flag=1;
}
else _NOP();//不操作
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
电赛-代码相关.zip (23个子文件)
代码相关
模块程序
单片机资料宝典.exe 512KB
模块程序.rar 503KB
4x4矩阵键盘扫描
key_scan.eww 162B
keypad.h 229B
keypad.c 3KB
key_scan.dep 4KB
key_scan.ewp 46KB
1602.c 2KB
key_scan.ewd 17KB
1602.h 117B
main.c 644B
Debug
Obj
1602.pbi 514B
keypad.r43 15KB
keypad.pbi 518B
key_scan.pbd 311B
main.r43 7KB
main.pbi 514B
1602.r43 7KB
Exe
key_scan.d43 19KB
settings
key_scan.cspy.bat 3KB
key_scan.dbgdt 5KB
key_scan.dni 1KB
key_scan.wsdt 5KB
共 23 条
- 1
资源评论
常驻客栈
- 粉丝: 1w+
- 资源: 1378
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 技术资料分享STM32F10x-StdPeriph-Driver-3.5.0(中文版)很好的技术资料.zip
- 基于深度学习的裂缝检测技术Python源码.zip
- SpringBlade微服务开发平台
- 微信小程序运行TensorFlow的Demo.zip
- Unity 25种海洋鱼类(含动画)
- 懂车帝全国各个省会城市二手车相关数据.zip
- 解析 YOLOv8 新训练机制及其对性能的影响
- 微信小程序逆向工程.zip
- 心脏病指标数据集.zip
- TD-T 1067-2021《不动产登记数据整合建库技术规范》.pdf
- 微信小程序音乐播放器.zip
- 微信小程序高仿vivo商城.zip
- 毕业设计前端-实验室管理系统.zip
- 基于SSM的应急资源管理系统源码.zip
- 微信小程序,一个拼图游戏.zip
- 中国汽车质量网的汽车投诉信息.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功