小弟最近写一个程序,分别包括了LCD12864 与一个舵机的PWM波控制以及键盘的输入,但是在仿真的时候遇到个问题,如果我先给LCD初始化的话,后面按键将会失灵,下面是小弟的一些程序,求大神看看
int main()
{
port_init();
timer1_init();
INT_init();
// LCD_init();
timer1_init();
INT_init();
usart_init();
sei();
_delay_ms(100);
while(1)
{
Show_Angle();
if((KeyNo=GetKey()) == 0xFF) continue;
temp[count] = Key_Table[KeyNo];
if(++count == 4)
{
count = 0 ;
Send_Angle();
}
while(GetKey() != 0xFF);
}
}
INT8U GetKey()
{
DDRA = 0x0F;PORTA = 0xF0;
_delay_ms(1);
if(PINA != 0xF0)
{
DDRA = 0x0F;
PORTA = 0xFE;
_delay_ms(1);
switch(PINA)
{
case 0xEE:return 0;
case 0xDE:return 1;
case 0xBE:return 2;
}
DDRA = 0x0F;
PORTA = 0xFD;
_delay_ms(1);
switch (PINA)
{
case 0xED:return 3;
case 0xDD:return 4;
case 0xBD:return 5;
}
DDRA = 0x0F;
PORTA = 0xFB;
_delay_ms(1);
switch(PINA)
{
case 0xEB:return 6;
case 0xDB:return 7;
case 0xBB:return 8;
}
DDRA = 0x0F;
PORTA = 0xF7;
_delay_ms(1);
switch(PINA)
{
case 0xE7:return 9;
case 0xD7:return 10;
case 0xB7:return 11;
}
return 0xFF;
}
else return 0xFF;
}
void LCD_init()
{
writeCmd(0x38);
_delay_ms(100);
writeCmd(0x38);
_delay_ms(100);
writeCmd(0x08);
writeCmd(0x01);
writeCmd(0x06);
writeCmd(0x0C);
}
另外小弟还有个问题,小弟做实物的时候,用ISP给LCD供电,显示很正常,但是换5V稳压芯片的时候就时显时不显,不显的意思是说,背光灯什么都好好的,就是屏幕上没有字,求大神帮分析…………
此帖出自
小平头技术问答
一周热门 更多>