2164|1

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求大神帮忙分析下 [复制链接]

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

最新回复

路过看看问题的,想多了解AVR单片机。  详情 回复 发表于 2013-5-1 13:40
点赞 关注
 

回复
举报

2

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
路过看看问题的,想多了解AVR单片机。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表