如何使用Visual Studio 2010编写一个C语言程序,本经验将手把手教大家如何通过VS2010编写一个简单的C语言小程序......
2023-03-16 436 C语言
4X4键盘扫描c语言程序详解,键盘扫描方法
4X4键盘扫描,按下按键每个按键,在数码管上显示0~F
#include "reg51.h"//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#define uint unsigned int
#define uchar unsigned char
uint key;
uchar smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f
,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0-F
uchar shuzu[4][4]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};/*数组(00)(01)(02)(03)
(10)(11)(12)(13)
(20)(21)(22)(23)
(30)(31)(32)(33)*/
/******************************************************************/
/* 延时函数声明 */
/******************************************************************/
/*void mdelay(uint t)
{
uchar n;
for(;t>0;t--)
for(n=0;n125;n )
{;}
}*/
/*大约一毫秒的延时函数*/
void mdelay(uint t)
{
uchar n;
while(t--)
{
for(n=0;n123;n )
{;}
}
}
/******************************************************************/
/* 主函数 1 */
/******************************************************************/
void main()
{
uchar hang,lie;
P2=0x00;
while(1)
{
P3=0x0f; //行扫描
key=P3;
if(key!=0x0f)//检测是否有按键按下
{
mdelay(100);//去抖动
key=P3;
if(key!=0x0f)
{
switch(key)//行按键选择
{
case 0x0e: hang=0; break;
case 0x0d: hang=1; break;
case 0x0b: hang=2; break;
case 0x07: hang=3; break;
}
}
}
P3=0xf0; //列扫描
key=P3;
if(key!=0xf0)//检测是否有按键按下
{
mdelay(100);//去抖动
key=P3;
if(key!=0xf0)
{
switch(key)//列按键选择
{
case 0x70: lie=0; break;
case 0xb0: lie=1; break;
case 0xd0: lie=2; break;
case 0xe0: lie=3; break;
}
}
}
P0=smg[shuzu[hang][lie]];
}
}
本经验只供参考,如有不足,还请见谅,如果有什么疑问请在下边留言,及时给你解答。。。
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
标签: C语言
相关文章
如何使用Visual Studio 2010编写一个C语言程序,本经验将手把手教大家如何通过VS2010编写一个简单的C语言小程序......
2023-03-16 436 C语言