PIC16F877A ( 请问为什么无法读键)

[复制链接]
 楼主| 最后之舞 发表于 2011-10-25 15:36 | 显示全部楼层 |阅读模式


如图,原意是按下S1.RC1也就是D102亮;按下S2,D103亮,但现在是还没按下就直接亮了,而且我按键也不起任何作用,为什么呢?求真相!求解答!谢谢!

程序清单:
main()
{
while(1)
   {
    TRISA=0X03;
    PORTA=0X03;
    TRISC=0X01;
    PORTC=0X01;
    if(key1==0)
    {
    delay(5);
    if(key1==0)
     {
      led1=1;
      led2=~led2;
     }
    }
    TRISD=0X00;
    PORTD=0X01;  
    uchar i;
    for(i=8;i>0;i--)
    {
     delay(300);
     PORTD=PORTD<<1;
    }
    for(i=3;i>0;i--)
    {
     delay(400);
     PORTD=0XFF;
     delay(400);
     PORTD=0X00;
    }
    PORTD=0XFF;
    delay(500);
    for(i=8;i>0;i--)
    {
     delay(300);
     PORTD=PORTD>>1;
    }
   }
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
asspeed 发表于 2011-10-25 15:58 | 显示全部楼层
A口??结果正常。因为这时读到为"0". 唉,又一个不看数据手册的。
兰天白云 发表于 2011-10-25 16:01 | 显示全部楼层
把A口设置为数字I/O口(注意默认是模拟输入口)
 楼主| 最后之舞 发表于 2011-10-25 16:08 | 显示全部楼层
2# asspeed

不好意思,我是新手,刚入门而已!
 楼主| 最后之舞 发表于 2011-10-25 16:22 | 显示全部楼层
3# 兰天白云

版主你好,应该怎么改呢?请问你有数据手册吗?!
 楼主| 最后之舞 发表于 2011-10-25 16:25 | 显示全部楼层
是加这个吗?
                                ADCON1 = 0xFF;
                                CMCON = 0x07;
兰天白云 发表于 2011-10-27 12:49 | 显示全部楼层
数据手册网站上有,就是关于你6楼的参数设置
xaq79 发表于 2011-10-27 13:48 | 显示全部楼层
按键上拉设置了吗
小鱼儿1045 发表于 2011-10-28 10:03 | 显示全部楼层
把RA口设置成普通的IO口,ADCON1=0x06;设置成输入,还有最好加个上来电阻
wangz2011 发表于 2011-11-13 08:49 | 显示全部楼层
A口一直读‘0’,故。。
ADCON1=0x07。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

8

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部