中级会员
- 积分
- 425
- 威望
- 225
- 贡献
- 108
- 兑换币
- 133
- 注册时间
- 2013-10-26
- 在线时间
- 46 小时
- 毕业学校
- 中南民族大学
|
我本意是要用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 11CD_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);
}
}
|
|