51单片机键盘输入数码管循环显示

2019-07-16 06:40发布

望高人指点一下,该程序如何来编写,谢谢啦!【要求】键盘编码排列如图所示,当首次键按下按键时,在第一位LED数码管中显示出键盘编码值,当第二次按下键时,前一次键移动到第二个数码管显示,本次键值在第一个数码管显示,以此类推。当输入数据超过6个时,最先输入的数据抛弃。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
diangongshi
1楼-- · 2019-07-16 08:26
 精彩回答 2  元偷偷看……
hanmang
2楼-- · 2019-07-16 11:31
这么好 可是图呢
cjnyyq@163.com
3楼-- · 2019-07-16 17:09
我也想做这个
涛声……依旧
4楼-- · 2019-07-16 21:55
也在学习中啊!
kangle
5楼-- · 2019-07-16 23:23
void diszf()          //处理转换给数码管显示字符
{
int freq;          
bit nums=1;
unsigned long tmp;
l_tmpdate[0]=freq/10000000;
tmp=freq/10000000;
if(tmp==0 && nums)l_tmpdate[0]=12;
else
{
nums=0;
}
tmp=freq%10000000;
l_tmpdate[1]=tmp/1000000;
if(l_tmpdate[1]==0 && nums)l_tmpdate[1]=12;
else
{
nums=0;
  }
tmp=tmp%1000000;
l_tmpdate[2]=tmp/100000;
if(l_tmpdate[2]==0 && nums)l_tmpdate[2]=12;
else
  {
nums=0;
  }
tmp=tmp%100000;
l_tmpdate[3]=tmp/10000;
if(l_tmpdate[3]==0 && nums)l_tmpdate[3]=12;
else
  {
nums=0;
  }
tmp=tmp%10000;
l_tmpdate[4]=tmp/1000;
if(l_tmpdate[4]==0 && nums)l_tmpdate[4]=12;
else
  {
nums=0;
  }
tmp=tmp%1000;
l_tmpdate[5]=tmp/100;
if(l_tmpdate[5]==0 && nums)l_tmpdate[5]=12;
else
{
nums=0;
}
tmp=tmp%100;
l_tmpdate[6]=tmp/10;
if(l_tmpdate[6]==0 && nums)l_tmpdate[6]=12;
  else
  {
nums=0;
  }
tmp=tmp%10;
l_tmpdate[7]=tmp%10;
}
怎么解释????
谢谢
kangle
6楼-- · 2019-07-17 00:25
 精彩回答 2  元偷偷看……

一周热门 更多>