#include"display.h"
#include"keyscan.h"
#include"12864.h"
#include"delay.h"
void display(void)
{
unsigned char x,y,a,first,end;
unsigned char n = 0 ;
int i;
for( i=0;i<2;i++)
{
a = keyscan();
if((a>=0)&&(a<=9))
{
n++;
if(n==1)
{
first = a;
}
else if(n>1)
{
first = first*10 + a;
}
}
end = first;
x=end/10;
y=end%10;
disbuff[0]=x;
disbuff[1]=y;
DelayMs(5);
lcd_pos(0,2);
lcd_wdat(ASCII[disbuff[0]]);
lcd_wdat(ASCII[disbuff[1]]);
}
}
这是部分代码:住
keyscan()是矩阵键盘扫描函数,返回值为0-9(unsigned char) 默认为-1;
lcd_pos()是12864的位置显示函数,这里直接调用;
lcd_wdat()是12864的写数据函数;
现在的问题就是我在矩阵键盘上按下一个数,可以刷新显示,但是在按下一个数程序就把以前的给覆盖掉了,现在我的想法就是按下二次,比如5,8可以在12864上显示出来;
恳请大神帮助我一下。
此帖出自
小平头技术问答
自动型变量声明在函数内每次进入函数时获得空间,退出时释放
关于变量作用域和生命期的内容
LZ的c语言需要加强
first和a都要static的
一周热门 更多>