main()
{
unsigned char maini=0;
unsigned char mainj=0;
COM8155=0x03;
while(1)
{
num=Scan_Key(); -------------Scan_Key()是我的键值扫描函数 返回键盘值 共1~16个按键 KEY13作为状态生成的触发按键
if(num==13)
{
CREATE_STATE(); ---------------CREATE_STATE() 顾名思义 产生一个随机数 并显示在数码管上
flag=1;
}
else if(num==0)
{
if(flag==0)
{
Disp_LED(Dis_BUF);
}
if(flag==1)
{
Disp_LED(Disp_State);
}
}
else
{
Disp_LED(Dis_BUF);
flag=0;
}
/***********************************************************************************************************
此段函数达到的效果是 显存8888 按下KEY13后数码管末尾显示一个随机数 每按一次数码管更新一次随机数 按别的按键则显示显存
************************************************************************************************************/
if(num&&num!=13)
{
for(maini=2;maini>0;maini--)
{
Ans[maini]=Ans[maini-1];
}
num=KEYCHAR[num];//译码
Ans[0]=num;
}
Disp_LED(Ans);
/***********************************************************************************************************
此段函数达到的效果是 当有按键按下并且此按键不是KEY13时 将按下的键保存到数组的0~2位 并显示
************************************************************************************************************/
}
}
就是这两段函数 我把其中一段注释掉 另外一段烧录在单片机中 都是可以应用的
但是两个一起 就以上图格式烧录 就会出现数码管抖动 按几下按键 能录入数组中 但是这段时间数码管一直会闪烁 多按几个按键以后才稳定一会 我想知道是哪出了问题
单片机芯片是SST89E58RD |