首页 MSP430单片机_矩阵键盘与数码管实验(附原理图)

MSP430单片机_矩阵键盘与数码管实验(附原理图)

举报
开通vip

MSP430单片机_矩阵键盘与数码管实验(附原理图)MSP430单片机 矩阵键盘与数码管实验(附原理图) /************************************************************* *MSP430单片机矩阵键盘与数码管实验 *功能:用共阳极数码管显示按键的键值 *适用:MSP430各系列单片机 *by:duyunfu1987 *************************************************************/ #include "msp430x44x.h" #defin...

MSP430单片机_矩阵键盘与数码管实验(附原理图)
MSP430单片机 矩阵键盘与数码管实验(附原理图) /************************************************************* *MSP430单片机矩阵键盘与数码管实验 *功能:用共阳极数码管显示按键的键值 *适用:MSP430各系列单片机 *by:duyunfu1987 *************************************************************/ #include "msp430x44x.h" #define ROW P2OUT //矩阵键盘的行宏定义 #define COL P2IN //矩阵键盘的列宏定义 #define DPYOUT P3OUT //数码管输出口宏定义 unsigned char keyval; //键值 //共“阳”极数码管的码表 unsigned char LED7CA[] ={~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D, ~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71,0xff}; /******************************************************* *函数名称:keyscan() *功 能:扫描4*3矩阵键盘,并返回键值 *出口参数:若有按键则返回键值,若无按键返回15 *4*3矩阵键盘: 0 1 2 3 * 4 5 6 7 * 8 9 A b *******************************************************/ unsigned char keyscan() { int i=0; unsigned char key=0; ROW = 0x8f; //先置三行输出低电平 if((COL & 0x0f)!= 0x0f) //是否有按键 { do i++; while(i<3000); //消抖动延时 ROW = 0xbf; //扫描第一行 if((COL & 0x0f)== 0x0f) { ROW = 0xdf; //扫描第二行 if((COL & 0x0f)== 0x0f) { ROW = 0xef; //扫描第三行 if((COL & 0x0f)== 0x0f) key = 15; else key = ~((ROW & 0XF0)|(COL & 0X0F)); } else key = ~((ROW & 0XF0)|(COL & 0X0F)); } else key = ~((ROW & 0XF0)|(COL & 0X0F)); if(key != 15) switch(key) //获取有效地键值 { case 0x48: key=0; break; case 0x44: key=1; break; case 0x42: key=2; break; case 0x41: key=3; break; case 0x28: key=4; break; case 0x24: key=5; break; case 0x22: key=6; break; case 0x21: key=7; break; case 0x18: key=8; break; case 0x14: key=9; break; case 0x12: key=10;break; case 0x11: key=11;break; default: key=15; } } else key = 15; keyval=key; return key; } void main( void ) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; P3DIR |= 0xff; P3OUT = 0xff; //共阳极数码管输出口初始化 P2DIR |= BIT4 +BIT5+BIT6; //先配置矩阵键盘的行(输出) //P2.6 第一行,P2.5 第二行,P2.4 第三行 //P2.3 第一列,P2.2 第二列,P2.1 第三列,P2.0 第四列 keyval=16; while(1) { keyscan(); if(keyval != 15 && keyval<17) DPYOUT = LED7CA[keyval];//数码管显示键值 } }
本文档为【MSP430单片机_矩阵键盘与数码管实验(附原理图)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_262630
暂无简介~
格式:doc
大小:173KB
软件:Word
页数:3
分类:互联网
上传时间:2012-07-13
浏览量:36