打印

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

[复制链接]
1998|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主


如图,原意是按下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

不好意思,我是新手,刚入门而已!

使用特权

评论回复
5
最后之舞|  楼主 | 2011-10-25 16:22 | 只看该作者
3# 兰天白云

版主你好,应该怎么改呢?请问你有数据手册吗?!

使用特权

评论回复
6
最后之舞|  楼主 | 2011-10-25 16:25 | 只看该作者
是加这个吗?
                                ADCON1 = 0xFF;
                                CMCON = 0x07;

使用特权

评论回复
7
兰天白云| | 2011-10-27 12:49 | 只看该作者
数据手册网站上有,就是关于你6楼的参数设置

使用特权

评论回复
8
xaq79| | 2011-10-27 13:48 | 只看该作者
按键上拉设置了吗

使用特权

评论回复
9
小鱼儿1045| | 2011-10-28 10:03 | 只看该作者
把RA口设置成普通的IO口,ADCON1=0x06;设置成输入,还有最好加个上来电阻

使用特权

评论回复
10
wangz2011| | 2011-11-13 08:49 | 只看该作者
A口一直读‘0’,故。。
ADCON1=0x07。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

8

帖子

2

粉丝