A. 51单片机如何用矩阵按键输入多位数,比如输入6显示6,再输入7显示67,最好给个c的程序,谢了!
用数组啊,如果是指定位数的就比较简单
当第一次输入时i=0,第一个数6放a[0],i=1,第二个数7放a[1],显示就是
OUT=a[0]*10+a[1]*1
数组用之前初始化为0,a[2]={0}
//这个好用点,递推
if(key_data)//有按键按下
{
for(i=key_count;i>0;i--;)
{
a[i+1]=a[i];
}
a[0]=key_data;
key_count++;
}
//显示调用,根据你的输入最大数定数组的位数
Sprint=a[3]*1000+a[2]*100+a[1]*10+a[0]*1;
B. 51单片机矩阵键盘输入11位数字,赋值给一个变量
(1)用手指头按下矩阵键盘的0~9数字键即可输入数值。
(2)最后赋值到一个变量上
unsigned char const str1[]="最后";
unsigned char const* pt1=&str1[0];
这样就把最后赋值到指针pt1上了
C. 单片机的矩阵按键怎么输入两位数,例如,先输入2,数码管显示2,再输入3,数码管显示23,有类似程序更好
我的思路是,把你输入的数字先保存在一个数组里,然后实时的显示该数组的内容即可。
#define MAX_NUM 2
uchar num_pos = 0;//输入数字的个数计数。
char num_buff[MAX_NUM] = {-1,-1};
void DisplayNum()
{
for(i = 0; i < num_pos; i++)
{
//在此将num_buff[]的数据显示出来,num_buff[i]的值是-1时,不显示
}
}
void main()
{
while(1)
{
key = KeyScan();//按键扫描,得到输入的数据
if(key >=0 && key <= 9)//有数字按键按下
{
if(num_pos >= MAX_NUM) //达到最大显示个数,清空显示状态。
{
num_pos = 0;
for(i = 0; i < MAX_NUM; i++)
{
num_buff[i] = -1;
}
}
num_buff[num_pos] = key;
num_pos++;
}
DisplayNum();
}
}
D. 51单片机怎么用按键控制一个数码管,按一下显示一个数字,顺序显示
1、首先,要把代码写好,点亮数码管。
E. 51单片机如何用矩阵键盘输入数值,最后赋值到一个变量上
你好!!
你做矩阵键盘检测的时候,会触发相关的IO口的状态,通过分析IO口,就能知道那个键按下;
定义一个变量,将按下的键值赋给变量就行了