智能车制作
标题:
k60 和键盘扫描的问题
[打印本页]
作者:
张扬2004
时间:
2013-11-29 20:00
标题:
k60 和键盘扫描的问题
我本意是要用k60,5110液晶屏和矩阵按键做简易计算器,但现在液晶屏能驱动了,
目前我只检测一个按键试试,但按键没反应,求大神们指教!!!
求指点!!!
unsigned char KeyScan(void)
{
unsigned char cord_h,cord_l;
int a,b,c,d,e,f,g,i;
Init1(); //引脚初始化函数,引脚0,1,2,3为输出,引脚4,5,6,7为输入
GPIO_ResetBits(PTD,GPIO_Pin_0); 引脚0输出低电平
GPIO_ResetBits(PTD,GPIO_Pin_1);引脚1输出低电平
GPIO_ResetBits(PTD,GPIO_Pin_2);引脚2输出低电平
GPIO_ResetBits(PTD,GPIO_Pin_3);引脚3输出低电平
a=GPIO_ReadInputDataBit(PTD, 4);读取4脚输入状态赋给a
b=GPIO_ReadInputDataBit(PTD, 5);同上
c=GPIO_ReadInputDataBit(PTD, 6);同上
d=GPIO_ReadInputDataBit(PTD, 7);同上
if(a==0||b ==0||c==0||d==0 ) //
{delay(20);
if( a==0 || b==0 || c==0 || d==0 )
{
if(a==0 && b!=0 && c!=0 && d!=0)
cord_h=10;
else if(a!=0 && b==0 && c!=0 && d!=0)
cord_h=20;
else if(a!=0 && b!=0 && c==0 && d!=0)
cord_h=30;
else if(a!=0 && b!=0 && c!=0 && d==0)
cord_h=40;
Init2(); 引脚初始化,引脚4,5,6,7为输出,引脚0,1,2,3为输入
GPIO_ResetBits(PTD,GPIO_Pin_4);4脚输出低电平
GPIO_ResetBits(PTD,GPIO_Pin_5);
GPIO_ResetBits(PTD,GPIO_Pin_6);
GPIO_ResetBits(PTD,GPIO_Pin_7);
e=GPIO_ReadInputDataBit(PTD, 0);读引脚状态
f=GPIO_ReadInputDataBit(PTD, 1);
g=GPIO_ReadInputDataBit(PTD, 2);
i=GPIO_ReadInputDataBit(PTD, 3);
if(e==0 && f!=0 && g!=0 && i!=0)
cord_l=1;
else if(e!=0 && f==0 && g!=0 && i!=0)
cord_l=2;
else if(e!=0 && f!=0 && g==0 && i!=0)
cord_l=3;
else if(e!=0 && f!=0 && g!=0 && i==0)
cord_l=4;
}
while(e==0 || f==0 || g==0 || i==0);
} return(cord_l+cord_h);
}
unsigned char KeyPro(void)
{
switch(KeyScan())
{
case 11
CD_Write_Char(45,2,35);delay(20); break;先只检测一个按键,LCD_Write_Char()函数是显示一个字符
default:return 0xff;break;
}
}
void main()
{
LCD_Init();液晶屏驱动
LCD_clear();清屏
while(1)
{
KeyPro();
delay(100);
}
}
作者:
张扬2004
时间:
2013-11-29 20:02
字打错了,是case 11
CD_Write_Char(45,2,35);delay(20); break;求指教啊
作者:
为丞而琳
时间:
2013-11-29 22:48
作为按键的时候,gpio的引脚要设置为输入上拉模式,你的初始化是错的
作者:
张扬2004
时间:
2013-11-30 10:45
为丞而琳 发表于 2013-11-29 22:48
作为按键的时候,gpio的引脚要设置为输入上拉模式,你的初始化是错的
我的行设为输出,列设为上拉输入,再作判断,得出cord_h的值,再将行设为上拉输入,列设为输出,再判断得出cord_l的值,最后再将cord_h+cord_l的值返回。
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2