[求助] 求大神帮忙分析下

li001s   2013-5-1 02:06 楼主
小弟最近写一个程序,分别包括了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稳压芯片的时候就时显时不显,不显的意思是说,背光灯什么都好好的,就是屏幕上没有字,求大神帮分析…………

回复评论 (1)

路过看看问题的,想多了解AVR单片机。
点赞  2013-5-1 13:40
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复