#include "msp430x14x.h"unsigned char LineScan[4]={0xef,0xdf,0xbf,0x7f}; //列值列举void ADD(){ P4OUT+=1;}void SUB(){ P4OUT-=1;}unsigned int key_check(void) //检测是否有按键按下{ unsigned char temp; P1DIR=0xf0; //定义P1.4~P1.7为输出 temp=P1IN & 0x0f; if(temp!=0x0f) return 1; else return 0;} unsigned char scan_key(void) //扫描对应按键的键号{P1DIR=0xf0;unsigned char count;unsigned char i,temp,m,n; //m为列的值,n为行的值unsigned int flag=0;for(i=0;i<4;i++) //列扫描{ P1OUT=LineScan[i]; //获取扫描的列 temp=P1IN&0x0f; if(temp==0x07) //为第一行 {n=0; //记录按下按钮的行 flag=1; //标志检测出来 break;} else if(temp==0x0b) //为第二行 {n=1; flag=1; break;} else if(temp==0x0d) //为第三行 {n=2; flag=1; break;} else if(temp==0x0e) //为第四行 {n=3; flag=1; break;}} if(flag==1) {m=i; flag=0; count=n*4+m; switch(count) { case 0: {;break;} case 1: {;break;} case 2: {;break;} case 3: {;break;} case 4: {;break;} case 5: {;break;} case 6: {;break;} case 7: {;break;} case 8: {;break;} case 9: {;break;} case 10:{;break;} case 11:{SUB();break;} case 12:{;break;} case 13:{;break;} case 14:{;break;} case 15:{ADD();break;} } return; } else return;}void Delay(char wDelay) //延时子程序{ while(wDelay!=0) wDelay--;}int main( void ){ WDTCTL = WDTPW + WDTHOLD; P4DIR =0xff; P4OUT=0X00; while(1) { if(key_check()) {Delay(10000); if(key_check()) { scan_key(); while(key_check()); P1OUT=0x0f; } } }}
导读:目前正在解读《msp430矩阵式按钮驱动程序》的相关信息,《msp430矩阵式按钮驱动程序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《msp430矩阵式按钮驱动程序》的详细说明。
简介:本文给大家分享了一个msp430矩阵式按钮驱动程序。
提醒:《msp430矩阵式按钮驱动程序》最后刷新时间 2024-03-14 00:57:57,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《msp430矩阵式按钮驱动程序》该内容的真实性请自行鉴别。